现在让我们简单地摘要。最近,它也是重新提供的。查看本学期的学习结果,合并和增强。一系列笔记仍在整理。我会给自己自己的时间。当然,深度学习的内容是Yolo,下周是我自己的班级。
这篇博客文章还准备了大约两天,我仔细研究了V1?V3论文。我还没有阅读V4,V5,因为从开发的角度来看,V1到V3的变化非常大。V4,V5 More Moreit在神经网络的结构中进行了优化。今天,我们的任务是如何重新出现Yolov5的骨干。
无论理论多么好,都必须练习。这可以加深理解和形象。接下来,我们需要使用Yolo来做更多的很酷的事情,因此此级别是我无法通过的水平。
根据Yolov5.5版本探索了此博客文章。考虑长度的长度,将在此处拆卸两个博客文章以复制。
在开始之前,让我们看一下整个Yolov5的网络结构。这是一个完整的神经网络结构。您可以通过https://netron.app/in来生成它,实际上有很多重复,我们使用此图片来实现
因为实际的图片不容易理解,所以让我们参考Zhihu的图片:江户的图片
接下来,我们开始解释每个模块。(实际上请注意,实际上,我们当前的版本是输入batch_size x 3 x 640 x 640的图片)),我们的实际图片与此参考图纸不同。我将发布它。
开始之前注意一件事情
这件事是这样的事情就是这样
原始的3 x 640×640图像输入使用切片操作的焦点结构,首先在此处成为12 x 320×320的特征映射。这是代码中的图片。因此,这是C1*4.您应该注意到此Conv W的大小为64 x 32 x3 x3。这也是一个很好的解释。图片最初是。3 x 640 x 640卷积核心尺寸3 x 3.输出通道很有意义。如果您是32 x 3 x 3 x 3 x 3 3 x 3,此时32 x 3 x 3目前输出,但是您有4个副本12,因此是32 x 12 x 3 x 3.特定推导可以看到此图片
接下来是我们的其他模块
为了在Yolov5中放置各种培训问题,它进行了很多优化。首先,在第一次训练期间进行了数据增强处理,然后是在卷积期间进行的归一化处理,以防止参数差距从参数之间的差距。
注意到,这种Sigmoid实际上与规则非常相似,但是人们在这里具有负值。实际上,这种卷积核与我们的线性重量相似,但是人们这样做。不是如此神秘。
那么这里的相应图应为CBL模块,但这里是Conv。
这个相应的实际上是此模块CSP1_X模块
就像我们当前版本一样
这个模块是这样的,它与残差有点相似,但没有添加,但没有扩展。它保留了零件,然后进入残差,最后融合。
这种“切割”的一半是通过卷积实现的,并且通过将通道切为0.5倍,然后将通道留下一半,然后通过残留模块self.m(cv1)实现卷积部分,然后通过猫合并。
基本上,我们的实际网络体系结构图中有一些内容。当然,实际上有很多门。如果仔细观察,您会知道这些东西需要与纸张结合在一起。我至少阅读了5,6篇论文,我必须组织它。
之后,V3版本中提出的7x7 13x13 26x26的Grad细胞在这里(当然,Grad Cell,此处不再那么小)。这类似于老师江户的照片。
后来是连续重复。
在这里,让我们谈谈Yolov5演出后这些后缀的内容。
实际上,您可以打开这个Yolov5xx.yaml。
除此之外,您会发现这一点,其他一切都相似。
实际上,这两个参数代表您网络的深度和宽度,例如width_multiple在这里为0.5
如何控制输出?非常简单。
卷积输出通道的大小在控制深度的width_mulitple上乘以。例如,我有128个频道输出,最初设置为64的0.5输出,因此宽度很小。
老师江户的图片表明您重复了一些残留物。我假设标准设置为CSP1_3(假设有一个模块)。现在3x0.3采用一个整数。只有一个残留物,我们的深度向下推了。最大的标准是yolov5l.pt,因为设置为1.0。
原始:https://juejin.cn/post/7101961593797214238