day2-yolo5
八、YOLOV5
工程化阶段
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
1. 与YOLOV4对比
-
大体结构一致
-
主干网络是C3-Darknet53
-
网络最开始增加Focus结构
-
Neck也是采用FPN+PAN,但将卷积变成了CSP
-
预测损失采用GloU损失
2. Focus模块
先分块,后拼接,再卷积
①、640 x 640 x 3的图像输入Focus结构,采用切片操作,先变成320 x 320 x 12的特征图;
②、再经过一次32个卷积核的卷积操作,最终变成320 x 320 x 32的特征图;
③、目的是加速
没有破坏图像特征:网络结构会把特征放在合适的位置
计算量的计算公式为:
$$
\begin{aligned}&\text{计算量}=\text{卷积核尺寸}\times\text{输入通道数}\times\text{输出通道数}\times\text{输出尺寸}^2\end{aligned}
$$
$$
\mathrm{FLOPs(conv)}=3\times3\times3\times32\times320\times320=88473600 \\ \mathrm{FLOPs(Focus)}=1\times1\times12\times32\times320\times320=39321600
$$
3 整体网络结构
3.1 Bottleneck
Bottleneck是用于减少参数和计算量的结构,其设计灵感来自于ResNet,结构如下:
-
1 x 1卷积:用于减少特征图的通道数。
-
3 x 3卷积:用于提取特征,后接一个Batch Normalization层和ReLU激活函数。
-
1 x 1卷积:用于恢复特征图的通道数,后接一个BN层。
-
跳跃连接(Shortcut):将输入直接加到输出上,以形成残差连接。
这样既可以减少计算量,同时又保持模型的表达能力。
3.2 C3代替CSP
YOLOv5中的C3模块在CSP上进行了优化,非常相似但略有不同:
不同点:
-
具体实现:YOLOv4中的CSP模块通常使用残差块,而YOLOv5中的C3模块通常使用Bottleneck或BottleneckCSP块。
-
性能优化:YOLOv5中的C3模块在具体实现上进行了进一步优化,以提高计算效率和模型性能。
4 输出头说明
灵活度较高,支持多种尺寸:
-
输入图像尺寸:通常为640 x 640(或者其它尺寸,如416 x 416等)
-
输出特征图:YOLOv5 使用大、中、小三个尺寸。
-
输出尺寸:
-
大目标: 通常是输入图像尺寸的 1/32
-
中目标: 通常是输入图像尺寸的 1/16
-
小目标: 通常是输入图像尺寸的 1/8
-
假设输入图像尺寸为640×640,具体的特征图尺寸如下:
$$
\bullet\quad\text{大目标:}\frac{640}{32}\times\frac{640}{32}=20\times20\\\bullet\quad\text{中目标:}\frac{640}{16}\times\frac{640}{16}=40\times40\\\bullet\quad\text{小目标:}\frac{640}8\times\frac{640}8=80\times80
$$
5 开源项目
项目可以在Github搜到:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
conda list pip install -r requirements #图片 python detect.py --weights yolov5s.pt --source ./data/images/bus.jpg #视频 python detect.py --weights yolov5s.pt --source http://ip/fire/index.mp4 --view-img
预训练模型:
| Model | size (pixels) | mAPval 50-95 | mAPval 50 | Speed CPU b1 (ms) | Speed V100 b1 (ms) | Speed V100 b32 (ms) | params (M) | FLOPs @640 (B) |
|---|---|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 45.7 | 45 | 6.3 | 0.6 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | 56.8 | 98 | 6.4 | 0.9 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | 64.1 | 224 | 8.2 | 1.7 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | 67.3 | 430 | 10.1 | 2.7 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | 68.9 | 766 | 12.1 | 4.8 | 86.7 | 205.7 |
| YOLOv5n6 | 1280 | 36.0 | 54.4 | 153 | 8.1 | 2.1 | 3.2 | 4.6 |
| YOLOv5s6 | 1280 | 44.8 | 63.7 | 385 | 8.2 | 3.6 | 12.6 | 16.8 |
| YOLOv5m6 | 1280 | 51.3 | 69.3 | 887 | 11.1 | 6.8 | 35.7 | 50.0 |
| YOLOv5l6 | 1280 | 53.7 | 71.3 | 1784 | 15.8 | 10.5 | 76.8 | 111.4 |
| YOLOv5x6 + TTA | 1280 1536 | 55.0 55.8 | 72.7 72.7 | 3136 - | 26.2 - | 19.4 - | 140.7 - | 209.8 - |
n:nm,Speed CPU b1 (ms)-b:batch_size,Speed V100 b32 (ms)比Speed CPU b1 (ms)快的原因是要进行数据预处理,b32可以多线程运行,最大限度应用硬件算力
这些模型的结构是一样的,区别在于网络的深度和宽度,网络的深度指的就是C3模块中Bottleneck的数量,网络的宽度是指网络每层输出的通道数。
九、YOLO作者及论文
1. Yolov1
作者:
Joseph Redmon ,Santosh Divvala , Ross Girshick 和 Ali Farhadi 。 Joseph Redmon 是YOLO系列的主要创始人,他在华盛顿大学进行研究工作时提出了 YOLO 的概念。
论文:
2. Yolov2
作者:
由 Joseph Redmon 和 Ali Farhadi 共同开发。Joseph Redmon的工作推动了目标检测技术的边界。
论文:
3. Yolov3
作者:
该版本继续由 Joseph Redmon 和 Ali Farhadi 共同开发,但在yolov3 之后,他宣布退出计算机视觉研究,以表达对 AI 技术潜在不负责任使用的担忧。
论文:
https://arxiv.org/pdf/1804.02767.pdf
4. Yolov4
作者:
Alexey Bochkovskiy、Chien-Yao Wang(yolov4,yolov7 作者) 和 Hong-Yuan MarkLiao(Yolov4、Yolov7、yolov9 的作者)。
论文:
https://arxiv.org/pdf/2004.10934.pdf
5. Yolov5
作者:
Yolov5的项目团队是 Ultralytics LLC 公司,是一个专注于深度学习和人工智能领域的公司,特别是在计算机视觉和目标检测技术方面。yolov5主要是对YOLO完成工程化的工作,并没有在核心技术上进行突破和创新,所以没有论文。
项目:
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
6. Yolov6
作者:
开发者是来自中国的科技公司美团的研究团队。
论文:
https://arxiv.org/pdf/2209.02976.pdf
7. Yolov7
作者:
Chien-Yao Wang(Yolov4、Yolov7、Yolov9 作者)、Hong-Yuan Mark Liao(Yolov4、Yolov7、Yolov9 的作者)、 Alexey Bochkovskiy (Yolov4 作者)。
论文:
8. Yolov11
作者:
由小型初创公司 Ultralytics 创建并维护的,具体情况同 Yolov5。
项目:
GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀
9. Yolov9
作者:
Chien-Yao Wang (Yolov4、Yolov7、Yolov9 作者) , I-Hau Yeh , Hong-Yuan Mark Liao(Yolov4、Yolov7、Yolov9 的作者)
论文:
https://arxiv.org/pdf/2402.13616.pdf
10. Yolov10
作者:
由清华大学团队Ao Wang,Hui Chen,Lihao Liu,Kai Chen,Zijia Lin,Jungong Han,Guiguang Ding开发。
论文:

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



