[YOLO] yolov3、yolov4、yolov5改进汇总

 yolov3网络结构图:

Yolov3三个基本组件:

(1)CBL:Yolov3网络结构中的最小组件,由Conv+Bn+Leaky_relu激活函数三者组成。
(2)Res unit:借鉴Resnet网络中的残差结构,让网络可以构建的更深。
(3)ResX:由一个CBL和X个残差组件构成,是Yolov3中的大组件。每个Res模块前面的CBL都起到下采样的作用,因此经过5次Res模块后,得到的特征图是608->304->152->76->38->19大小。
其他基础操作
(1)Concat:张量拼接,会扩充两个张量的维度,例如26×26×256和26×26×512两个张量拼接,结果是26×26×768。Concat和cfg文件中的route功能一样。
(2)Add:张量相加,张量直接相加,不会扩充维度,例如104×104×128和104×104×128相加,结果还是104×104×128。add和cfg文件中的shortcut功能一样。

  yolov4网络结构图:

Yolov4的五个基本组件: 

1. CBM:Yolov4网络结构中的最小组件,由Conv+Bn+Mish激活函数三者组成。
2. CBL:由Conv+Bn+Leaky_relu激活函数三者组成。
3. Res unit:借鉴Resnet网络中的残差结构,让网络可以构建的更深。
4. CSPX:借鉴CSPNet网络结构,由卷积层和X个Res unint模块Concat组成。
5. SPP:采用1×1,5×5,9×9,13×13的最大池化的方式,进行多尺度融合。
其他基础操作:
1. Concat:张量拼接,维度会扩充,和Yolov3中的解释一样,对应于cfg文件中的route操作。
2. Add:张量相加,不会扩充维度,对应于cfg文件中的shortcut操作。

YoloV4的创新之处:

(1)输入端:这里指的创新主要是训练时对输入端的改进,主要包括Mosaic数据增强。
(2)BackBone主干网络:将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock
(3)Neck:目标检测网络在BackBone和最后的输出层之间往往会插入一些层,比如Yolov4中的SPP模块、FPN+PAN结构
(4)Prediction:输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms

其他的改进之处:Eliminate grid sensitivity(消除网格敏感度)  IOU threshold(正样本匹配)

学习链接:

深入浅出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基础知识完整讲解_yolov5江大白_江大白*的博客-CSDN博客
YOLOv4网络详解_yolov4网络结构图_太阳花的小绿豆的博客-CSDN博客

yolov5网络结构图(yolov5的版本较多,这里的是yolov5版本6.0之前的网络结构图):

YOLOv5在v6.0版本后相比之前版本有一个很小的改动,把网络的第一层(原来是Focus模块)换成了一个6*6大小的卷积层。两者在理论上其实等价的,但是对于现有的一些GPU设备(以及相应的优化算法)使用6*6大小的卷积层比使用Focus模块更加高效。

SPP结构也被SPPF取代。两者的作用是一样的,但后者效率更高。

 Yolov5的创新之处:

(1)输入端:数据增强(Mosaic、Copy pasteRandom affine、MixUp)、自适应锚框计算
(2)Backbone:Focus结构,New CSP-Darknet53
(3)Neck:FPN+PAN结构 New CSP-PAN
(4)Prediction:GIOU_Loss 损失函数

其他改进之处:

消除Grid敏感度 匹配正样本(Build Targets)

链接:

YOLOv5网络详解_太阳花的小绿豆的博客-CSDN博客

 

附件:YOLOX网络图:

猜你喜欢

转载自blog.csdn.net/qq_51533157/article/details/129335526