[YOLO] yolov3、yolov4、yolov5改进

 yolov3网络结构图:

[YOLO] yolov3、yolov4、yolov5改进_第1张图片

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网络结构图:

[YOLO] yolov3、yolov4、yolov5改进_第2张图片

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之前的网络结构图): [YOLO] yolov3、yolov4、yolov5改进_第3张图片

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

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

[YOLO] yolov3、yolov4、yolov5改进_第4张图片

 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博客

在有了yolov3的基础上,yolov4的网络结构还是很容易看懂的。

这篇博客写的整个yolov4的网络概况

【经典论文解读】YOLOv4 目标检测https://blog.csdn.net/qq_41204464/article/details/119673960?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167791613516800211577984%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167791613516800211577984&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-3-119673960-null-null.142%5Ev73%5Einsert_down2,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&utm_term=cspdarknet53&spm=1018.2226.3001.4187

 这篇博客的CSPDarknet53的细节就更多一点,例如,第一个CSP模块其实与后面的CSP模块有所不同。

YOLOv4网络详解https://blog.csdn.net/qq_37541097/article/details/123229946结合Bubbliiiing大佬的代码可以看出:

睿智的目标检测30——Pytorch搭建YoloV4目标检测平台https://blog.csdn.net/weixin_44791964/article/details/106214657[YOLO] yolov3、yolov4、yolov5改进_第5张图片

首先就是几个基本的模块:

(1)CBM

[YOLO] yolov3、yolov4、yolov5改进_第6张图片

[YOLO] yolov3、yolov4、yolov5改进_第7张图片

 (2)Res unit

[YOLO] yolov3、yolov4、yolov5改进_第8张图片

[YOLO] yolov3、yolov4、yolov5改进_第9张图片

 (3)CSPX

[YOLO] yolov3、yolov4、yolov5改进_第10张图片

[YOLO] yolov3、yolov4、yolov5改进_第11张图片

 这里的代码分为两个部分,这里涉及到了参数first的bool值

[YOLO] yolov3、yolov4、yolov5改进_第12张图片

[YOLO] yolov3、yolov4、yolov5改进_第13张图片

你可能感兴趣的:(机器学习,YOLO,目标检测,计算机视觉)