当前位置: 首页 > 网络应用技术

yolov5骨干基基于pytorch重新出现

时间:2023-03-05 18:53:35 网络应用技术

  现在让我们简单地摘要。最近,它也是重新提供的。查看本学期的学习结果,合并和增强。一系列笔记仍在整理。我会给自己自己的时间。当然,深度学习的内容是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