YOLOv5 vs YOLOv9:详细对比
本页提供了两个重要的目标检测模型之间的技术比较:Ultralytics YOLOv5 和 YOLOv9。这两种模型都是有影响力的 YOLO(You Only Look Once)系列的一部分,该系列以平衡实时目标检测的速度和准确性而闻名。此比较探讨了它们的架构差异、性能指标和理想用例,以帮助您选择最适合您计算机视觉项目的模型。
Ultralytics YOLOv5:已建立的行业标准
作者: Glenn Jocher
组织: Ultralytics
日期: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
文档: https://docs.ultralytics.com/models/yolov5/
Ultralytics YOLOv5 发布后,因其在速度、准确性和易用性之间实现了出色的平衡而迅速普及。YOLOv5 完全基于 PyTorch 开发,其架构采用 CSPDarknet53 作为主干网络,PANet 用于特征聚合,并配备了高效的基于 Anchor 的检测头。它提供多种模型尺寸(n、s、m、l、x),允许用户根据其计算资源和性能需求进行选择。
优势
- 卓越的速度和效率: YOLOv5 针对快速推理进行了高度优化,使其成为各种硬件(包括 边缘设备)上实时应用的理想选择。
- 易用性: Ultralytics YOLOv5 以其简化的用户体验、简单的 Python 和 CLI 界面以及丰富的 文档而闻名。
- 完善的生态系统: 受益于集成的 Ultralytics 生态系统,该系统具有积极的开发、庞大且支持性的社区、频繁的更新以及用于无代码训练的 Ultralytics HUB 等综合资源。
- 性能平衡: 在推理速度和检测准确性之间实现了强大的权衡,适用于各种现实部署场景。
- 多功能性: 支持多种任务,包括目标检测、实例分割和图像分类。
- 训练效率: 提供高效的训练流程、随时可用的预训练权重,并且与许多其他架构(尤其是基于Transformer的模型)相比,通常具有更低的内存要求。
弱点
- 准确率: 虽然在其时代具有很高的准确性,但像YOLOv9这样的较新模型可以在COCO等基准测试中实现更高的mAP分数。
- 基于Anchor: 依赖于预定义的anchor框,与无anchor方法相比,可能需要针对特定数据集进行更多调整。
应用案例
- 实时视频监控和安全系统。
- 在资源受限的边缘设备(如 Raspberry Pi 和 NVIDIA Jetson)上部署。
- 工业自动化和质量控制,例如通过计算机视觉改进制造业。
- 由于其易用性和强大的生态系统,可实现快速原型设计和开发。
YOLOv9:通过新颖技术提高准确性
作者: Chien-Yao Wang, Hong-Yuan Mark Liao
组织: 台湾中研院资讯所
日期: 2024-02-21
Arxiv: https://arxiv.org/abs/2402.13616
GitHub: https://github.com/WongKinYiu/yolov9
文档: https://docs.ultralytics.com/models/yolov9/
YOLOv9 引入了重大的架构创新,即可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)。PGI 旨在通过为损失函数计算提供完整的输入信息,来缓解数据在深度网络中流动时的信息丢失。GELAN 是一种为实现卓越的参数利用率和计算效率而设计的新型架构。这些进步使 YOLOv9 能够在保持效率的同时实现更高的准确性。
优势
- Enhanced Accuracy: 在 COCO 数据集上为实时对象检测器设置了新的最先进的结果,在 mAP 方面超越了 YOLOv5 和其他模型。
- 更高的效率: GELAN 和 PGI 有助于减少模型所需的参数和计算资源 (FLOP),从而实现与以前的模型相当或更好的性能。
- 信息保留: PGI 有效地解决了信息瓶颈问题,这对于准确训练更深、更复杂的网络至关重要。
弱点
- 训练资源: 正如YOLOv9 文档中所述,与 Ultralytics YOLOv5 相比,训练 YOLOv9 模型可能需要更多的资源和时间。
- 更新的架构: 作为一个来自不同研究团队的较新模型,与已建立的 Ultralytics YOLOv5 相比,其生态系统、社区支持和第三方集成不够成熟。
- 任务通用性: 主要侧重于目标检测,缺乏对分割、分类和姿势估计的内置支持,而这些功能在 Ultralytics 模型(如 YOLOv5 和 YOLOv8)中可以找到。
应用案例
性能与基准测试:YOLOv5 vs. YOLOv9
在性能对比时,YOLOv9 模型通常比其 YOLOv5 同类产品实现更高的 mAP 分数,这证明了其架构创新的有效性。然而,Ultralytics YOLOv5 由于其卓越的推理速度和高度优化的实现而保持着强大的地位,使其成为每秒帧数 (FPS) 是关键指标的实时应用的强大选择。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
架构深度解析
YOLOv5 架构
Ultralytics YOLOv5 的架构是 YOLO 系列原则的改进实现。它由三个主要部分组成:
- 主干网络: CSPDarknet53 网络,它是 Darknet-53 的修改版本,它结合了 Cross Stage Partial (CSP) 模块,以减少计算量,同时保持准确性。
- Neck: 采用路径聚合网络(PANet)聚合来自不同骨干层级的特征,从而提高在各种尺度上对物体的检测能力。
- Head: 该检测头是基于anchor的,通过预定义的anchor框形状预测边界框,这有助于提高其速度。
YOLOv9 架构
YOLOv9 引入了突破精度和效率界限的新概念:
- 可编程梯度信息(PGI): 这种机制旨在解决深度网络中的信息瓶颈问题。它确保完整的输入信息可用于计算损失函数,从而实现更可靠的梯度更新和更好的模型收敛。
- 广义高效层聚合网络 (GELAN): 这是一种新的网络架构,它建立在 CSPNet 和 ELAN 的原理之上。GELAN 旨在优化参数利用率和计算效率,使模型能够以更少的资源实现更高的准确性。
训练与生态系统
Ultralytics YOLOv5 的真正优势在于其训练体验和生态系统支持。
- 易用性: YOLOv5 提供了非常友好的用户体验,具有简单的命令行和 Python API、大量的教程和全面的文档。
- 完善的维护生态系统: 作为 Ultralytics 的官方模型,YOLOv5 是一个强大生态系统的一部分,该生态系统包括积极的开发、GitHub 和 Discord 上的大型社区、频繁的更新以及与 Ultralytics HUB 等 MLOps 工具的无缝集成。
- 训练效率: YOLOv5 的训练效率非常高,与更复杂的架构相比,它具有随时可用的预训练权重和更低的内存需求。这使得更广泛的硬件用户可以使用它。
虽然 YOLOv9 是一个强大的模型,但其训练过程可能要求更高,并且其生态系统不如 Ultralytics 模型成熟或集成。对于寻求从训练到部署的平稳、良好支持的路径的开发人员来说,YOLOv5 具有明显的优势。
结论:您应该选择哪种模型?
YOLOv5 和 YOLOv9 都是非常出色的模型,但它们侧重的优先级不同。
-
Ultralytics YOLOv5 是优先考虑速度、易用性和成熟、良好支持的生态系统的开发人员的理想选择。其卓越的性能平衡使其非常适合实时应用、快速原型设计以及在资源受限的 边缘 AI 设备上进行部署。它在多个视觉任务中的多功能性增加了其作为通用视觉 AI 框架的价值。
-
YOLOv9 最适合于那些以实现尽可能高的目标检测精度为主要目标,并且对训练的计算资源要求不敏感的应用。其创新的架构在具有挑战性的基准测试中提供了最先进的结果。
对于大多数用户,尤其是那些寻求可靠、快速且易于使用的模型,并具有强大的社区和商业支持的用户,Ultralytics YOLOv5 仍然是首要推荐。对于那些对 Ultralytics 的最新进展感兴趣的人,像 YOLOv8 和最新的 YOLO11 这样的模型提供了更高的性能和多功能性,同时保留了定义 Ultralytics 生态系统的用户友好体验。