大家好,YOLO(You Only Look Once)系列模型是一类非常高效的目标检测模型。其主要特点是能够在单次前向传播中同时进行目标的定位和分类,实现实时的目标检测。
YOLO 系列模型从最初的 YOLOv1 到 YOLOv10,经过了多次迭代和改进,逐渐提高了检测的精度和速度。近期,ultralytics 团队再次更新,YOLOv11速度更快、更准确。
YOLOv1
YOLOv1架构图
2015 年,Joseph Redmon 及其团队推出了 YOLOv1(You Only Look Once version 1),这一里程碑式的实时目标检测模型彻底颠覆了传统检测方法的框架。YOLOv1 凭借其独特的设计理念——将目标检测任务转化为一个单一的回归问题,仅通过一次前向传播即可同时预测出图像中物体的边界框及其类别概率,极大地提升了检测速度与效率,为后续版本的迭代与优化奠定了坚实的基础。
这是YOLO模型的第一个版本,它将输入图像划分为7x7个网格,每个网格负责预测两个边界框和一个类别标签。YOLOv1使用一个全卷积神经网络来直接输出边界框的坐标、置信度和类别概率。YOLOv1的优点是速度快,背景误检率低,通用性强,但是缺点是对小物体和重叠物体的检测效果不好,而且只支持固定的输入分辨率。
定性结果
参考论文:You Only Look Once: Unified, Real-Time Object Detection
论文链接:https://arxiv.org/abs/1506.02640
YOLOv2
次年,该团队提出 YOLO9000,作为 YOLO 系列的第二代力作,在 V1 的基础上做了很多改进,包括使用批量归一化、锚框、维度聚类、多尺度训练和测试等技术来提高模型的精度和鲁棒性。
YOLOv2提出先验锚框
YOLOv2还可以同时检测超过9000个类别的对象,通过使用WordTree来组织不同数据集的类别标签。它的优点是精度高,速度快,可以适应不同的输入分辨率,缺点是对小物体的检测仍然不够理想,而且锚框的设置需要根据数据集进行调整。在标准的 VOC 2007 测试集上,YOLOv2 达到了 76.8% 的 mAP,比 YOLOv1 的 63.4% 有了明显提升。
参考论文:YOLO9000: Better, Faster, Stronger
论文链接:https://arxiv.org/abs/1612.08242
YOLOv3
YOLOv3 是 YOLO 系列目标检测模型的第三个版本,由 Joseph Redmon和Ali Farhadi 于 2018 年提出。YOLOv3 在继承前两代 YOLO 模型优点的基础上,进行了多项改进,包括使用更高效的骨干网络、多锚和空间金字塔池,使其在检测精度和速度上达到了更高的平衡。
YOLOv3的优点是精度高,速度快,可以检测多种尺度和多标签的对象,但是缺点是对小物体的检测仍然不够好,而且模型较大,需要更多的计算资源。
参考论文:YOLOv3: An Incremental Improvement
论文链接:https://arxiv.org/abs/1804.02767
YOLOv4
YOLOv4原理图
YOLOv4于2020年发布,这是YOLO模型的第四个版本,它在YOLOv3的基础上引入 Mosaic 数据增强、新的无锚检测头和新的损失函数等创新技术。模型使用更强的特征提取器CSPDarknet53,用注意力机制和自注意力机制来增强特征的表达能力;使用多种数据增强方法,如Mosaic、CutMix、MixUp等来提高模型的泛化能力;使用了多种检测技巧,如CIoU、CmBN、Mish激活函数、SPP、SAM、PAN、DIoU-NMS等来提高模型的精度和速度。
YOLOv4的优点是精度高,速度快,可以检测多种尺度和多标签的对象,而且模型较小,需要较少的计算资源,但是模型的结构较为复杂,需要更多的超参数进行调整。
参考论文:YOLOv4: Optimal Speed and Accuracy of Object Detection
论文链接:https://arxiv.org/abs/2004.10934
YOLOv5
YOLOv5s网络架构
YOLOv5 是由 Ultralytics 推出的一个版本,虽然并非 YOLO 创始团队推出,但因其更易用、部署简单且性能卓越,迅速在业界赢得广泛赞誉与普及。YOLOv5 继续优化了检测速度和精度,并支持导出为多种格式(如TFLite、ONNX、CoreML和TensorRT)。
相较于第四版,YOLOv5在网络结构、数据预处理、损失函数、激活函数、优化器和学习率调整、运行效率方面都有改进,提高了模型精度、速度,在实际应用中更有效。其缺点是对于小目标、密集物体检测方面还有待提升。
YOLOv5 有几种尺寸(n、s、m、l、x),以适应不同的计算需求:
-
YOLOv5n(纳米版):适合在计算能力有限的设备上部署,如微控制器和低功耗的物联网设备。体积虽小,但保持了合理的准确度。
-
YOLOv5s(小型):适合许多边缘应用,包括移动设备和嵌入式系统。相较于纳米版,准确度提升的同时仍然保持较低的计算占用。
-
YOLOv5m(中型):适合于需要更高精度但仍然需要在边缘设备限制下运行的应用。
-
YOLOv5l(大型):专为需要高准确度的更复杂任务设计。
-
YOLOv5x(超大型):适用于需要最高精度且计算资源丰富的场景,如:高分辨率视频分析和复杂的目标检测任务。
参考论文:Improved YOLOv5 network for real-time multi-scale traffic sign detection
论文链接:https://arxiv.org/abs/2112.08782
开源链接:https://github.com/ultralytics/yolov5
YOLOv6
YOLOv6流程图
这是 YOLO 模型的第六个版本,它是由中国科学院自动化研究所的研究人员提出的,在 YOLOv5 的基础上做了一些改进,目标检测框架致力于工业应用。YOLOv6 模型使用更深的特征提取器YOLOv6s、YOLOv6m、YOLOv6l和YOLOv6x,用残差结构和注意力机制来增强特征的表达能力;使用多种数据增强方法,如Mosaic、CutMix、MixUp等来提高模型的泛化能力;使用多种优化方法,如SGD、CosineAnnealing等来加速模型的收敛。
其优点是精度高,速度快,可以检测多种尺度和多标签的对象,而且模型较小,需要较少的计算资源,而且模型的结构较为简单,易于使用和部署,缺点是对小物体的检测仍然不够好,而且模型的性能和稳定性还有待验证。
参考论文:YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications
论文链接:https://arxiv.org/abs/2209.02976
YOLOv7
YOLOv7流程图
YOLOv7 是 YOLO 模型的第七个版本,它是由台湾中央研究院的研究人员提出的,它在 YOLOv6 的基础上做了一些改进。该版本在 5FPS 到 160FPS 的范围内,在速度和精度上都超过了所有(此版本以前)已知的目标检测器,在 GPU V100 上以 30 FPS 或更高的速度在所有已知的实时目标检测器中具有最高的精度 56.8%AP。
YOLOv7的优点是精度高,速度快,可以检测多种尺度和多标签的对象,而且模型较小,需要较少的计算资源,而且模型的结构较为简单,易于使用和部署,但是模型的性能和稳定性还有待验证。
参考论文:YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
论文链接:https://arxiv.org/abs/2207.02696
开源链接:https://github.com/WongKinYiu/yolov7
YOLOv8
YOLOv8 由Ultralytics的研究人员提出,它在 YOLOv5 的基础上做了一些改进。优点是精度高,速度快,可以检测多种尺度和多标签的对象,而且模型较小,需要较少的计算资源,而且模型的结构较为简单,易于使用和部署
版本支持全方位的视觉 AI 任务,包括检测、分割、姿态估计、跟踪和分类,这种多功能性使用户能够在各种应用和领域中利用 YOLOv8 的功能。
参考文档:https://docs.ultralytics.com/models/yolov8/
开源链接:https://github.com/ultralytics/ultralytics
YOLOv9
PGI
GELAN
YOLOv9 由中国台湾 Academia Sinica、台北科技大学等机构联合开发,基于YOLOv7 进行改进,引入了可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 等创新方法。
与 YOLOv8 相比,两者的结合设计使深度模型的参数数量减少了 49%,计算量减少了 43%,但在 MS COCO 数据集上仍有 0.6% 的 AP 改进。
参考论文:YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
论文链接:https://arxiv.org/abs/2402.13616
开源链接:https://github.com/WongKinYiu/yolov9
YOLOv10
NMS-free
YOLOv10 由清华大学开源,其中两大改进是:后处理改进,提出NMSfree(非极大值抑制)训练的一致双分配,实现了高效的端到端检测;引入了整体效率精度驱动的模型设计策略,改善了性能效率的权衡。
YOLOv10 在各种模型规模上都达到了最先进的性能和效率。例如,在 COCO 上类似的 AP 下,YOLOv10-S 比 RT-DETR-R18 快 1.8 倍,同时参数和 FLOP 数量减少 2.8 倍。与 YOLOv9-C 相比,在相同的性能下,YOLOv10-B 的延迟减少了 46%,参数减少了 25%。
参考论文:YOLOv10: Real-Time End-to-End Object Detection
论文链接:https://arxiv.org/abs/2405.14458
开源链接:https://github.com/THU-MIG/yolov10
YOLOv11
YOLOv11 是 Ultralytics YOLO 系列的最新版本,基于之前 YOLO 版本的成功,引入了新特性和改进,进一步提升性能和灵活性。与 YOLOv8 相比,它具有更少的参数和更好的结果。
YOLOv11 是进行目标检测与跟踪、实例分割、图像分类和姿态估计等广泛任务的优秀选择。
官方链接:https://github.com/ultralytics/ultralytics