目录
1 前言
现在最强的YOLO系列算法是YOLOv5x6-TTA, boxAP: 55.0;
2 致谢
感谢DarrenZhang的分享——《Yolov4/v5的创新点汇总!》
3 YOLO模型列表
yolov5x – yolov5x.yaml
YOLOv5中参数量最多的模型,在图像张量输入主干网络之前使用了Focus模块;
4 模型结构
2.1 Backbone
Focus——网格下采样
关于Focus模块的解析请参考《yolov5中的Focus模块的理解》
备注:
- 在实际使用中发现会增大显存消耗,根据作者说明“Focus() module is designed for FLOPS reduction and speed increase, not mAP increase.”,对最终结果似乎没有提升,所以暂时没有使用;
- 之前是想用来增大batch-size,发现会增大显存消耗,然后就暂时停用了;
CSPDarknet53
首先,我们来看看CSPDarknet53网络的整体结构图,

2.3 Neck —— SPP & PAN
SPP:特征融合
我们先来看看Scaled-YOLOv4对SPP的结构设置:

其中,pool_rates=[5, 9, 13];
这里我们可以看看感受野的比例,已知
p
o
o
l
_
r
a
t
e
=
5
:
9
:
13
pool\_rate = 5:9:13
pool_rate=5:9:13,则
p
o
o
l
_
a
r
e
a
=
25
:
81
:
169
pool\_area = 25:81:169
pool_area=25:81:169;
则有
p
o
o
l
_
a
r
e
a
[
1
:
2
]
=
25
:
81
=
1
:
3.24
pool\_area[1:2] = 25:81=1:3.24
pool_area[1:2]=25:81=1:3.24
p
o
o
l
_
a
r
e
a
[
2
:
3
]
=
81
:
169
≈
1
:
2.09
pool\_area[2:3] = 81:169\approx1:2.09
pool_area[2:3]=81:169≈1:2.09
基本上扩大的比例都在2以上;
PAN:自顶向下的特征融合
PAN在YOLOv4的论文中首次提出,也被用于YOLOv5中(YOLOv5x6-TTA, boxAP: 55.0);
首先,我们来直观的感受以下PAN的结构如图所示

可以看到是在使用了FPN之后的一种上采样操作;
5 后处理算法
- Scaled-YOLOv4论文中没有具体给出NMS设置的描述,于是我们参考了YOLOv4中的设置,使用了DIoU-NMS;
- 还可以看看Scaled-YOLOv4的代码来确认一下
2.1 NMS Screening——DIoU-NMS
YOLOv4使用了DIoU-NMS作为后处理的方法;
6 YOLOV3学习笔记
可以参考的资料:
GiantPandaCV:在GiantPandaCV公众号的后台回复“yolov3”获取相关的资料。
6.1 熊猫群主的聚类脚本
熊猫群主的聚类脚本:
https://github.com/BBuf/cv_tools/blob/master/yolo-cluster-anchors.py
聚类教程:
目标检测算法之YOLO系列算法的Anchor聚类代码实战
U版的数据集制作:
GitHub - pprp/voc2007_for_yolo_torch: Prepare VOC format datasets for ultralytics/yolov3 & yolov5
6.1 损失函数
这里我们参考CSDN博文《YOLO系列详解:YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5 by AI小白一枚》中的图文描述:

6 调试笔记
Scaled-YOLOv4的repo代码实际上是基于U版YOLO的框架来实现的,也是基于PyTorch函数库;
3.1 测试ScaledYOLOv4是否配置成功
这里我们可以一个我们依据U版YOLO生成的测试数据集coco128:
百度网盘链接:https://pan.baidu.com/s/1tHFUASikGDLQnzhLEFAKxA
提取码:sbal
# download yolov4-csp.weights and put it in /yolo/weights/ folder.
python test.py --img 640 --conf 0.001 --batch 8 --device 0 --data coco.yaml --cfg models/yolov4-csp.cfg --weights weights/yolov4-csp.weights
3.1.1 PyCharm连接Docker出现“cannot connect to the docker daemon at Unix…”
这里在使用PyCharm连接Docker时出现错误“cannot connect to the docker daemon at Unix…”,其主要原因是在运行docker 命令时需要root权限,所以这里我们还需要根据Docker官方文档进行“Post-installation steps for Linux”的操作,其
主要目的就是:当前登录Ubuntu用户在使用docker命令是前面不需要加上sudo命令;
具体的设置方式请参考Docker官方文档《Manage Docker as a non-root user》;
3.2 YOLOv5的调试笔记
请参考博文《目标检测——YOLOv5的学习笔记》;
1万+

被折叠的 条评论
为什么被折叠?



