YOLO系列博文:
- 【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】
- 【第2篇:YOLO系列论文、代码和主要优缺点汇总】
- 【第3篇:YOLOv1——YOLO的开山之作】
- 【第4篇:YOLOv2——更好、更快、更强】
- 【第5篇:YOLOv3——多尺度预测】
- 【第6篇:YOLOv4——最优速度和精度】
- 【第7篇:YOLOv5——使用Pytorch框架、AutoAnchor、多尺度预训练模型】
- 【第8篇:YOLOv6——更高的并行度、引入量化和蒸馏以提高性能加速推理】
- 【第9篇:YOLOv7——跨尺度特征融合】
- 【第10篇:YOLOv8——集成检测、分割和跟踪能力】
- 【第11篇:YOLO变体——YOLO+Transformers、DAMO、PP、NAS】
- 【第12篇:YOLOv9——可编程梯度信息(PGI)+广义高效层聚合网络(GELAN)】
- 【第13篇:YOLOv10——实时端到端物体检测】
- 【第14篇:YOLOv11——在速度和准确性方面具有无与伦比的性能】
- 【第15篇(完结):讨论和未来展望】
1 摘要
- 发布日期:2020年6月
- 作者:Glenn Jocher
- 论文:无
- 代码:https://github.com/ultralytics/yolov5
- 主要优缺点:
- 使用Pytorch框架,便于开发者使用和扩展;
- 自适应的anchor box学习机制提高检测效率;
- 提供多种尺寸的预训练模型满足不同场景需求。
YOLOv5_33">2 YOLOv5
YOLOv5 由Ultralytics的创始人兼首席执行官Glen Jocher在2020年发布,时间上比YOLOv4晚了几个月。它采用了YOLOv4部分描述的许多改进,但使用PyTorch框架而不是Darknet进行开发。YOLOv5引入了一种名为AutoAnchor的Ultralytics算法。如果锚框与数据集和训练设置(如图像大小)不匹配的话,这个预训练工具会检查并调整锚框。
2.1 AutoAnchor
AutoAnchor 的工作原理:
- 初始化:AutoAnchor 通过 k-means 聚类算法对数据集中的标签进行初步分析,以生成初始的一组锚框。这些锚框是基于数据集中实际物体的尺寸分布来设定的,从而确保它们能够更好地匹配数据集中的物体。
- 遗传进化算法 (Genetic Evolution, GE):
- 适应度函数:使用 CIoU 损失(Complete Intersection over Union Loss)和最佳可能召回率(Best Possible Recall)作为适应度函数。
- 迭代优化:默认情况下,GE 算法会通过 1000 代的进化来优化这些锚框。每一代中,算法会评估当前锚框的表现,并根据适应度函数的结果进行选择、交叉和变异操作,以生成下一代更优的锚框集合。
- 调整与优化:经过多代的进化后,最终得到的锚框集合将更加适合特定的数据集和训练设置,如图像大小等。这样可以提高模型的检测性能,尤其是在处理不同尺寸和比例的物体时。
AutoAnchor的优点:
- 自适应性:AutoAnchor 能够自动适应不同的数据集,无需手动调整锚框尺寸。
- 提升性能:通过优化锚框,可以提高模型的检测精度和召回率。
- 减少过拟合风险:由于锚框是基于数据集的实际分布生成的,因此可以减少因固定锚框导致的过拟合问题。
2.2 网络架构
下图展示了YOLOv5的详细架构。
Backbone是一个经过修改的CSPDarknet53,它以一个Stem层开始,这是一个具有大窗口尺寸的步进卷积层,用于减少内存和计算成本;随后是提取输入图像相关特征的卷积层。SPPF(快速空间金字塔池化)层和后续的卷积层处理不同尺度的特征,而上采样层则增加特征图的分辨率。SPPF层旨在通过将不同尺度的特征池化为固定大小的特征图来加速网络的计算。每个卷积层后都跟随批量归一化(BN)和SiLU激活。Neck使用了SPPF和修改后的CSP-PAN,而Head类似于YOLOv3。
YOLOv5使用了多种数据增强技术,如马赛克、复制粘贴、随机仿射变换、MixUp、HSV增强、随机水平翻转,以及其他来自albumentations包的数据增强方法。它还改进了网格敏感度,使其对梯度爆炸更加稳定。
YOLOv5提供了五个不同规模的版本:YOLOv5n(纳米)、YOLOv5s(小)、YOLOv5m(中)、YOLOv5l(大)和YOLOv5x(超大),其中卷积模块的宽度和深度会根据特定应用和硬件需求进行调整。例如,YOLOv5n和YOLOv5s是针对资源有限设备的轻量级模型,而YOLOv5x则优化了高性能,尽管牺牲了一定的速度。
YOLOv5 v7.0版本包含了能够进行分类和实例分割。
YOLOv5是开源的,并由Ultralytics积极维护,拥有超过250名贡献者,经常有新的改进。YOLOv5易于使用、训练和部署。Ultralytics提供了iOS和Android的移动版本,以及许多用于标注、训练和部署的集成工具。
在MS COCO 2017测试开发集上的评估显示,YOLOv5x在640像素的图像尺寸下达到了50.7%的平均精度(AP)。使用32的批量大小,它可以在NVIDIA V100上达到200帧每秒(FPS)的速度。使用更大的1536像素输入尺寸和测试时增强(TTA),YOLOv5可以达到55.8%的AP。