YOLOv9 对比 YOLOv5:详细对比
本页提供了两个重要的目标检测模型之间的技术比较:YOLOv9 和 Ultralytics YOLOv5。这两种模型都是有影响力的 YOLO(You Only Look Once)系列的一部分,该系列以平衡实时目标检测的速度和准确性而闻名。此比较探讨了它们的架构差异、性能指标和理想用例,以帮助您选择最适合您计算机视觉项目的模型。
YOLOv9:通过新颖架构提高准确性
YOLOv9 于 2024 年 2 月推出,为目标检测领域带来了重大的架构创新。它旨在解决深度神经网络中的信息损失问题,这是训练高效模型的关键挑战。
作者: 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 在其论文“YOLOv9:使用可编程梯度信息学习您想学习的内容”中介绍了两个突破性的概念:
- 可编程梯度信息 (PGI): 这种新颖的方法旨在解决数据在深度网络层中流动时发生的信息瓶颈问题。PGI 确保完整的输入信息可用于计算损失函数,从而保留关键数据,以实现更准确的梯度更新和更有效的模型训练。
- 广义高效层聚合网络 (GELAN): YOLOv9 还具有 GELAN,这是一种新的网络架构,经过优化,可实现卓越的参数利用率和计算效率。它建立在 CSPNet 和 ELAN 的原理之上,以创建一种结构,以更少的参数和计算成本 (FLOP) 实现更高的准确性。
优势
- 增强的准确性: YOLOv9在COCO数据集上创造了新的最先进水平,在平均精度均值(mAP)方面超越了许多先前的实时目标检测器。
- 效率提升: PGI 和 GELAN 的结合使得模型不仅高度精确,而且计算效率高,使其在性能至关重要的任务中非常强大。
- 信息保留: 通过直接解决信息瓶颈问题,PGI 允许训练更深、更复杂的网络,而不会出现典型的性能下降,从而产生更强大的模型。
弱点
- 训练资源: 正如YOLOv9 文档中所述,与 YOLOv5 等更成熟的模型相比,训练 YOLOv9 模型可能需要更多的资源和时间。
- 更新的生态系统: 作为一个来自不同研究团队的较新模型,与已建立的 Ultralytics YOLOv5 相比,其生态系统、社区支持和第三方集成不够成熟。
- 任务多功能性: 原始 YOLOv9 主要侧重于目标检测。它缺乏对其他视觉任务(如实例分割、图像分类和姿势估计)的内置支持,而这些任务在 Ultralytics 模型中得到原生支持。
应用案例
Ultralytics YOLOv5:已建立且用途广泛的标准
Ultralytics YOLOv5 于 2020 年发布,因其在速度、准确性和易用性方面的卓越平衡而迅速成为行业标准。它完全在 PyTorch 中开发,并不断完善,并由强大的生态系统提供支持。
作者: Glenn Jocher
组织: Ultralytics
日期: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
文档: https://docs.ultralytics.com/models/yolov5/
架构与特性
YOLOv5 采用经过验证的架构,该架构具有 CSPDarknet53 主干网络和 PANet neck,可实现有效的特征聚合。其基于 anchor 的检测头非常高效。该模型有多种尺寸(n、s、m、l、x)可供选择,使开发人员可以在性能和资源限制之间选择最佳的权衡。
优势
- 卓越的速度和效率: YOLOv5 针对快速推理进行了高度优化,使其成为从强大的 GPU 到资源受限的 边缘设备 的各种硬件上实时应用的理想选择。
- 易用性: YOLOv5 以其简化的用户体验而闻名,提供简单的 Python 和 CLI 接口,以及广泛而清晰的文档。
- 完善的生态系统: YOLOv5 受益于全面的 Ultralytics 生态系统,该生态系统包括积极的开发、Discord 上庞大且支持性强的社区、频繁的更新以及 Ultralytics HUB 等强大的工具,可用于无代码训练和部署。
- 性能平衡: 在推理速度和检测准确性之间实现了强大的权衡,使其适用于各种现实部署场景。
- 多功能性: 与许多专用模型不同,YOLOv5 开箱即用地支持多项任务,包括目标检测、实例分割和图像分类。
- 训练效率: 与许多其他架构(尤其是基于 Transformer 的模型)相比,YOLOv5 提供高效的训练过程、随时可用的预训练权重以及通常更低的内存要求。
弱点
- 峰值精度: 虽然在当时非常准确,但像YOLOv9这样的较新模型可以在COCO等基准测试中获得更高的mAP分数。
- 基于 Anchor 的设计: 它依赖于预定义的 anchor 框,与现代的无 anchor 方法相比,这可能需要对具有不规则形状对象的数据集进行更多调整。
应用案例
- 实时视频监控和安全系统。
- 在资源受限的边缘设备(如 Raspberry Pi 和 NVIDIA Jetson)上部署。
- 工业自动化和质量控制,例如通过计算机视觉改进制造业。
- 由于其易用性和广泛的支持,可实现快速原型设计和开发。
性能与基准测试:YOLOv9 vs. YOLOv5
YOLOv9 和 YOLOv5 之间的性能比较突出了多年来模型架构的进步。YOLOv9 模型始终比其 YOLOv5 同类产品获得更高的 mAP 分数,通常在高端更有效地利用参数和 FLOPs。例如,YOLOv9-C 以 25.3M 参数实现了 53.0% 的 mAP,优于 YOLOv5x 的 50.7% mAP(具有 86.7M 参数)。
然而,YOLOv5 在速度方面表现出色,尤其是其较小的变体,如 YOLOv5n 和 YOLOv5s,它们在 CPU 和 GPU 上提供极快的推理时间,使其在许多实时边缘应用中无与伦比。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
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 |
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 |
结论:您应该选择哪种模型?
YOLOv9 和 YOLOv5 之间的选择很大程度上取决于您项目的具体需求。
-
对于以最大精度为主要目标,并且您有足够的计算资源进行训练的应用,YOLOv9 是更优的选择。其创新的架构使其成为在专业领域中突破目标检测性能界限的理想选择。
-
Ultralytics YOLOv5 仍然是更实用和通用的选择,适用于更广泛的应用。它的主要优势——易用性、速度、多任务支持以及成熟、良好支持的生态系统——使其成为需要快速高效地构建强大的现实解决方案的开发人员的首选模型。对于需要在边缘设备上部署或在速度和准确性之间取得平衡的项目,YOLOv5 通常是最佳选择。
对于那些寻找中间地带甚至更高级功能的人,Ultralytics 提供了一整套模型。 考虑探索 YOLOv8,它结合了 YOLOv5 的许多可用性优势以及无锚架构和更大的通用性,或者最新的 YOLO11,以在 Ultralytics 生态系统中获得最先进的性能。 您可以在我们的模型比较页面上找到更多比较。