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 paste、Random 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
首先就是几个基本的模块:
(1)CBM
(2)Res unit
(3)CSPX
这里的代码分为两个部分,这里涉及到了参数first的bool值