一:网络结构
- Backbone:
New CSP-Darknet53
- Neck:
SPPF
,New CSP-PAN
- Head:
YOLOv3 Head
二:网络结构改进
1.Focus换成6*6卷积
YOLOv5在v6.0
版本后把网络的第一层(原来是Focus
模块)换成了一个6x6
大小的卷积层。两者在理论上其实等价的,但是对于现有的一些GPU设备(以及相应的优化算法)使用6x6
大小的卷积层比使用Focus
模块更加高效。
【Yolov系列】Yolov5学习(一)补充2:Focus模块详解
Focus模块是一种用于特征提取的卷积神经网络层,用于将输入特征图中的信息进行压缩和组合,从而提取出更高层次的特征表示,它被用作网络中的第一个卷积层,用于对输入特征图进行下采样,以减少计算量和参数量。
Focus层在YOLOv5中是图片进入Backbone前,对图片进行切片操作,原理与Yolov2的passthrough层类似,采用切片操作把高分辨率的图片(特征图)拆分成多个低分辨率的图片或特征图,即隔列采样+拼接。
具体操作是在一张图片中每隔一个像素拿到一个值,类似于邻近下采样,这样就拿到了四张图片,四张图片互补,长得差不多,但是没有信息丢失,这样一来,将W、H信息就集中到了通道空间,输入通道扩充了4倍,即拼接起来的图片相对于原先的RGB三通道模式变成了12个通道,最后将得到的新图片再经过卷积操作,最终得到了没有信息丢失情况下的二倍下采样特征图。
2.在Neck,将SPP换成SPPF
作用相同,但后者效率更高
SPPF
结构是将输入串行通过多个5x5
大小的MaxPool
层,这里需要注意的是串行两个5x5
大小的MaxPool
层是和一个9x9
大小的MaxPool
层计算结果是一样的,串行三个5x5
大小的MaxPool
层是和一个13x13
大小的MaxPool
层计算结果是一样的。
3.引入CSP在PAN
在Neck的ConvSet添加了CSP成为C3,并且Backbone中也使用了C3。
CSP的优点:
- 增强CNN的学习能力,能够在轻量化的同时保持准确性。
- 降低计算瓶颈。
- 降低内存成本。
其他方面看博文吧:YOLOv5网络详解