YOLO(You Only Look Once,你只看一次)是一系列开创性的实时目标检测模型,它们彻底改变了计算机视觉领域。由Joseph Redmon开发,后续版本由不同研究人员迭代,YOLO模型以其在图像中检测对象的高速度和准确性而闻名。以下是对每个YOLO版本的详细查看:
1. YOLOv1
发布时间:2016年
主要贡献:
- 统一检测:YOLOv1引入了一种新方法,将目标检测框架作为一个单一的回归问题,直接从图像像素到边界框坐标和类别概率。
- 网格系统:图像被划分为S x S的网格,每个网格单元预测B个边界框及其置信度分数。
- 速度:YOLOv1比之前的检测系统(如R-CNN和Faster R-CNN)快得多,实现了每秒45帧(fps)的实时性能,快速版本达到155 fps。
限制:
- 定位误差:YOLOv1在精确定位较小对象时存在困难。
- 泛化:它倾向于对新出现或频率较低的对象泛化能力较差。
2. YOLOv2(YOLO9000)
发布时间:2017年
主要贡献:
- 批量归一化:实施批量归一化以归一化每层的输入,改善了收敛性和正则化。
- 高分辨率分类器:在高分辨率图像上训练模型,从而提高了性能。
- 锚框:采用锚框(Faster R-CNN引入的一种技术)来预测边界框,提高了定位精度。
- YOLO9000:模型在COCO数据集和超过9000个类别的自定义数据集上进行训练,因此得名YOLO9000,允许检测广泛范围的对象类别。
改进:
- 与YOLOv1相比,平均精度均值(mAP)更好。
- 提高了速度和准确性的平衡。
3. YOLOv3
发布时间:2018年
主要贡献:
- 特征金字塔网络(FPN):YOLOv3使用FPN在三个不同的尺度上检测对象,提高了对小对象的检测。
- Darknet-53主干网络:引入了新的主干网络Darknet-53,它更深、更高效,结合了残差连接。
- 多标签分类:每个边界框可以预测多个类别标签,这有助于处理对象可能属于多个类别的情况。
改进:
- YOLOv3在保持实时速度的同时显著提高了准确性。
- 在检测小对象和处理复杂图像方面取得了显著改进。
4. YOLOv4
发布时间:2020年
主要贡献:
- 免费工具包(BoF)和特殊工具包(BoS):引入了一系列增强功能,分为BoF(在不增加推理时间的情况下提高准确性的技术)和BoS(略微增加推理时间但显著提高准确性的技术)。
- CSPDarknet53主干网络:使用了CSPDarknet53,它结合了跨阶段部分连接,提高了学习效率并减少了计算负载。
- 数据增强技术:采用了如Mosaic和Self-Adversarial Training等技术来增强模型的鲁棒性和泛化能力。
改进:
- mAP和FPS显著增加,使其成为发布时最快、最准确的模型之一。
- 提高了检测小对象和大对象的能力。
5. YOLOv5
发布时间:2020年(由Ultralytics发布,不是Joseph Redmon的官方续作)
主要贡献:
- PyTorch实现:YOLOv5使用PyTorch开发,使其更易于访问和修改。
- 预训练模型:为不同用例提供了各种预训练模型(小到大),促进了迁移学习。
- 自学习边界框锚:通过在训练期间自动调整锚框来增强学习过程。
改进:
- 保持实时检测能力,提高了准确性。
- 简化了部署和集成到各种应用程序中。
6. YOLOv6
发布时间:2022年
YOLOv6在前身YOLOv5的基础上引入了几项创新和改进,专注于提高性能、效率和适用性,以适应各种现实世界场景。以下是关键的新功能和改进:
主要贡献:
- 工业适用性:YOLOv6专门针对工业应用设计,优化了边缘设备上的实时性能,这些设备的计算资源可能有限。
- 增强架构:YOLOv6包括改进的主干和颈部设计,提高了特征提取和表示能力。这导致更好的检测精度和性能。
- 无锚检测:YOLOv6的一个重要创新是探索无锚检测方法。这通过去除锚生成和匹配的需求来简化训练过程,可能导致更快的训练时间和某些数据集上的性能改进。
- 高级训练技术:YOLOv6采用了高级训练技术,如复杂的数据增强策略和优化的训练时间表。这些技术提高了模型在不同条件和数据集下的鲁棒性和泛化能力。
- 改进的损失函数:模型使用经过改进的损失函数,在训练期间提供更准确的梯度,帮助模型更好地学习对象及其位置的表示。这些损失函数旨在更有效地处理目标检测任务的复杂性。
改进:
- 性能提升:与YOLOv5相比,YOLOv6在平均精度均值(mAP)方面显示出显著改进。这是通过架构优化和增强的训练方法实现的,使YOLOv6能够更准确地检测对象。
- 效率和速度:YOLOv6旨在比YOLOv5更具计算效率。它在保持或提高准确性的同时实现了更高的检测速度,使其更适合实时应用,特别是在边缘设备上。
- 减少模型大小和计算成本:与YOLOv5相比,YOLOv6以更少的参数和更低的计算要求实现了更好的性能。这种模型大小和计算成本的减少使YOLOv6在资源受限的环境中部署更有效。
- 多功能性和适应性:与YOLOv5相比,YOLOv6具有更广泛的多功能性和适应性,能够处理各种大小和复杂性的对象,这得益于其改进的特征提取机制和无锚检测方法。
- 针对边缘设备的优化:对YOLOv6的特别关注包括模型量化和剪枝等技术。这些优化使YOLOv6更适合在计算能力有限的设备上部署,提高了其在工业应用中的实用性。
- 延迟减少:通过一致的双重分配消除了对非最大抑制(NMS)的需求,与YOLOv5相比,YOLOv6显著减少了端到端延迟,提高了实时性能。
7. YOLOv7
发布年份:2022年
YOLOv7是YOLO(你只看一次)系列目标检测模型的延续,以其实时性能和准确性而闻名。这一迭代带来了几个值得注意的进步,增强了架构设计和性能效率。
主要贡献:
(1)高效层聚合网络(ELAN):
- YOLOv7引入了一种名为高效层聚合网络(ELAN)的新架构设计,显著提高了网络学习和有效表示特征的能力。
- ELAN结构增强了梯度流,并加强了在不同层捕获不同特征的能力。
(2)扩展高效层聚合网络(E-ELAN):在ELAN的基础上,扩展版本E-ELAN通过提高参数利用率和计算效率进一步优化了网络。这允许更深的网络具有更好的性能指标。
(3)动态头部:YOLOv7以动态头部模块为特色,该模块在训练期间自适应地调整网络的重点。这种机制有助于更好地处理各种大小的对象,并提高了检测精度,特别是对于较小的对象。
(4)辅助和引导损失:模型采用了辅助和引导损失的组合来促进更好的学习。辅助损失在训练的早期阶段引导网络,而引导损失确保了准确的最终预测。
(5)标签分配策略:YOLOv7引入了一种新的标签分配策略来优化训练过程。这种策略确保使用了最相关和最有信息量的标签,从而提高了准确性和鲁棒性。
改进:
- 性能提升:与YOLOv6相比,YOLOv7实现了更高的平均精度均值(mAP)。性能提升归因于YOLOv7中实施的架构改进和新颖的训练策略。
- 计算效率:尽管网络的复杂性和深度增加,YOLOv7旨在更具计算效率。它以更少的计算资源实现了更好的性能,使其适合在资源受限的环境中部署。
- 改进的训练技术:YOLOv7利用高级训练技术,如动态头部模块和高效层聚合,来增强学习过程。这些技术导致更快的收敛和在不同数据集上更好的泛化。
- 更好地处理对象尺度变化:动态头部和改进的标签分配策略使YOLOv7能够更好地检测不同尺度的对象,特别是以前版本难以检测的小型对象。
- 增强的主干和颈部设计:— YOLOv7的主干和颈部组件经过改进,以提高特征提取和表示。这导致在广泛的情境中更准确、更强大的目标检测。
8. YOLOv8
发布年份:2023年,由Ultralytics发布。
主要贡献和改进:
- C2f构建块:YOLOv8引入了C2f(连接到融合)构建块,改进了
- 特征提取和融合,增强了模型处理复杂目标检测任务的能力。
- 增强的网络架构:网络架构经过改进,以实现更好的性能和效率,专注于以更低的计算成本实现更高的准确性。
- 改进的训练策略:结合了先进的训练策略,包括更好的增强技术和优化算法,有助于提高模型的鲁棒性和准确性。
- 与Ultralytics Hub集成:YOLOv8与Ultralytics Hub集成,这是一个管理和部署模型的平台,简化了用户的工作流程,并促进了更容易的模型管理。
9.YOLOv8.1
发布年份:2024年1月,由Ultralytics发布。
- YOLOv8 OBB模型:引入了定向边界框模型,提高了检测角度对象的准确性。
- 分割增强:高级分割功能,用于更精确的图像分析。
- 性能优化:专注于YOLOv8框架的速度和效率的改进。
10. YOLOv9
发布年份:2024年2月
关键特性:
(1)可编程梯度信息(PGI):
- YOLOv9引入了PGI,这是一个旨在通过辅助可逆分支生成可靠梯度的概念。这有助于保持执行目标任务所需的深度特征的关键特征。
- PGI允许灵活选择适合特定任务的损失函数,克服了与传统深度监督过程相关的限制。
(2)通用ELAN(GELAN):YOLOv9中的GELAN架构平衡了参数数量、计算复杂性、准确性和推理速度。它允许用户为不同的推理设备选择合适的计算块,提高了多功能性和性能。
(3)性能提升:
- 与以前的模型相比,YOLOv9在各种指标上实现了卓越的性能。在准确性、参数效率和计算要求方面,它优于YOLOv8和其他最先进的模型。
- 例如,与YOLOv8-X相比,YOLOv9-E实现了1.7%更高的平均精度(AP),参数减少了16%,计算成本降低了27%。
(4)多功能性和应用:
- PGI和GELAN的集成允许YOLOv9有效地应用于轻量级和深度神经网络架构,使其适合广泛的现实世界应用。
- YOLOv9的设计支持传统和深度卷积,为模型部署和优化提供了灵活性。
(5)实验验证:在MS COCO数据集上进行的广泛实验验证了YOLOv9的顶级性能。它显著超过了现有的实时目标检测器,展示了在速度、准确性和资源效率方面的改进。
贡献:
- 理论见解:YOLOv9的开发包括对深度神经网络架构的理论分析,特别关注可逆函数。这一分析有助于解决以前无法解释的现象,并指导了PGI和辅助可逆分支的设计。
- 增强的轻量级模型:PGI有效地解决了深度监督的限制,使轻量级模型实现了高准确性,使其适合日常使用。
- 效率和速度:使用传统卷积的GELAN设计,确保了与基于深度卷积的设计相比,参数使用效率和计算速度更高。
总之,YOLOv9代表了YOLO系列的重大进步,结合了PGI和GELAN等创新概念,提供了一个强大、多功能且高效的目标检测模型,适用于广泛的应用。
11. YOLOv10
发布年份:2024年5月
YOLOv10代表了实时目标检测领域的重大进步,建立在其在YOLO(你只看一次)系列中的前辈奠定的坚实基础上。这一迭代引入了几个关键创新和改进,旨在提高性能和效率。以下是YOLOv10的主要亮点:
关键特性:
- 无NMS训练:YOLOv10通过使用一致的双重分配消除了其后处理阶段对非最大抑制(NMS)的需求。这种方法不仅显著减少了端到端延迟,还保持了竞争性能水平。
- 整体模型设计:YOLOv10的设计策略专注于效率和准确性之间的平衡。模型的各个组成部分都经过优化,以减少计算开销,同时提高能力。这包括全面的架构调整,导致更少的参数和更低的延迟。
- 性能提升:在各种模型规模(N、S、M、L、X)中,YOLOv10在平均精度(AP)方面取得了改进,同时显著减少了参数和计算要求。例如,与前身YOLOv8-N相比,YOLOv10-N实现了1.2%的AP改进,参数减少了28%,计算成本降低了23%。
- 效率增益:YOLOv10在准确性和计算成本之间展现了优越的权衡。例如,与YOLOv6–3.0-S相比,YOLOv10-S实现了1.5 AP改进,并大幅减少了参数和FLOPs(每秒浮点运算次数)。
- 延迟减少:通过消除NMS和优化模型架构,YOLOv10实现了显著的延迟减少。例如,与YOLOv9-C相比,YOLOv10-S的延迟降低了46%,展示了模型在实时应用中的效率。
- 比较性能:YOLOv10在速度和准确性方面一致优于其他最先进的模型,如RT-DETR和以前的YOLO版本。它比RT-DETR-R18快1.8倍,同时保持类似的AP性能,并且在参数和FLOPs方面也大幅减少。
12. YOLOX
发布年份:2021年
主要贡献和改进:
- 无锚设计:YOLOX采用无锚机制,简化了模型架构和训练过程。
- 分离的头部:分离的头部将分类和定位任务分开,提高了整体性能。
- 高级增强技术:使用Mosaic和MixUp等技术来增强模型的泛化能力和鲁棒性。
- 性能提升:与以前的YOLO版本相比,YOLOX实现了更高的准确性和效率,使其与其他最先进的模型竞争。
13. YOLOR
发布年份:2021年
主要贡献和改进:
- 统一网络:YOLOR(你只学习一次表示)将显性和隐性知识整合到统一网络中,增强了模型的学习能力。
- 知识蒸馏:利用知识蒸馏来提高轻量级模型的性能。
- 改进的主干:在主干中结合了CSPNet,增强了特征提取和表示。
- 多功能性:在各种任务中表现出色,包括目标检测、实例分割和关键点检测。
14. PaddleYOLO
发布年份:2022年8月,作为PaddlePaddle深度学习平台的一部分开发。
主要贡献和改进:
- 针对PaddlePaddle优化:PaddleYOLO针对PaddlePaddle框架进行了优化,确保了高效的训练和推理。
- 全面模型:包括各种YOLO模型(YOLOv3、YOLOv4等),针对PaddlePaddle进行了特定优化。
- 易用性:提供用户友好的API和广泛的文档,使开发者易于访问。
- 高性能:通过在PaddlePaddle平台上提供高准确性和快速推理时间,与其他YOLO实现竞争。
15. MMYOLO
发布年份:2022年9月,是MMDetection框架的一部分,被研究社区广泛使用。
主要贡献和改进:
- 模块化设计:MMYOLO受益于MMDetection的模块化设计,允许轻松定制和扩展。
- 与MMDetection集成:与MMDetection框架内的其他模型和工具无缝集成,促进了全面的实验。
- 最新技术:结合了目标检测的最新进展,包括高级增强方法和损失函数。
- 研究导向:旨在具有高度灵活性和可配置性,非常适合研究目的和开发新技术。
这些模型代表了YOLO家族和目标检测框架的重要进步,每个模型都贡献了独特的功能和改进,以满足特定需求和平台。
结论
每个YOLO版本都对目标检测领域做出了重要贡献(不要搞错,一些最新版本还支持对象分割、定向边界框等),不断推动实时计算机视觉应用的可能性的边界。从YOLOv1到YOLOv10的发展显示了模型架构、训练技术和性能优化方面的显著演变,巩固了YOLO作为目标检测的领先方法的地位。
注意:由于对模型架构的理解有限,我省略了一些YOLO版本,如GOLD-YOLO、DAMO-YOLO、YOLO Air、Scaled YOLOv4、deepstream YOLO等。