YOLOv9 vs. YOLOv10:目标检测技术对比
对于任何计算机视觉项目来说,选择合适的物体检测模型都是至关重要的决定,它直接影响性能、速度和资源效率。YOLO 系列不断突破可能的界限。本页面提供了两个最先进的模型:YOLOv9 和 YOLOv10 之间的详细技术比较。我们将分析它们的架构创新、性能指标和理想用例,以帮助您根据您的特定需求选择最佳模型,从而平衡 准确性、推理速度 和计算成本等因素。
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 引入了两个突破性的概念:
- 可编程梯度信息(PGI): 这种机制解决了数据在深度网络层中流动时信息丢失的挑战。通过生成可靠的梯度,PGI确保模型能够有效地学习并进行准确的更新,这对于检测复杂对象至关重要。
- 广义高效层聚合网络 (GELAN): YOLOv9 采用了一种新的网络架构 GELAN,这是一种高效的设计,可优化参数利用率和计算效率。这使得 YOLOv9 能够在不变得过大或过慢的情况下实现顶级性能。
优势
- 高精度: YOLOv9 树立了高精度标准,其最大的变体 YOLOv9-E 在 COCO 数据集 上实现了先进的 mAP 分数。
- 信息保持: PGI 的核心创新有效地缓解了信息瓶颈问题,从而改善了模型学习和性能。
- 高效架构: GELAN 在速度和准确性之间实现了出色的平衡,使 YOLOv9 在参数性能方面具有很强的竞争力。
- Ultralytics 生态系统: 在 Ultralytics 框架中使用时,YOLOv9 受益于 简化的用户体验、简单的 Python API 和丰富的 文档。该生态系统通过随时可用的预训练权重、积极的开发、强大的社区支持以及通常 更低的内存要求(与其他模型类型(如 transformers)相比)来确保 高效训练。
弱点
- 较新的模型: 作为一个最近发布的版本,与更成熟的模型相比,社区贡献的示例和第三方集成的广度仍在增长。
- 复杂性: 新颖的 PGI 概念虽然强大,但与更直接的设计相比,为架构增加了一层复杂性。
理想用例
对于以实现尽可能高的精度为主要目标的应用,YOLOv9 是一个绝佳的选择:
YOLOv10:实时端到端效率
由清华大学的研究人员于2024年5月发布的YOLOv10,专为实现最大效率和速度而设计。它通过重新设计YOLO架构的关键组件来实现这一点,最值得注意的是,它消除了对非极大值抑制(NMS)后处理的需求。
技术细节:
- 作者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 组织: Tsinghua University
- 日期: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: https://github.com/THU-MIG/yolov10
- 文档: https://docs.ultralytics.com/models/yolov10/
架构和主要特性
YOLOv10 的设计理念侧重于端到端效率:
- 无 NMS 训练: YOLOv10 在训练期间使用 一致性双重分配,这使得它能够生成清晰的预测,而无需 NMS 步骤。这显著降低了推理延迟并简化了部署流程。
- 整体效率-精度驱动设计: 模型架构已从上到下进行了优化。这包括一个轻量级分类头,空间通道解耦降采样以有效地保留信息,以及一个秩引导块设计以消除计算冗余。
优势
- 极高的效率和速度: 经过优化,可最大限度地减少延迟和计算成本,使其成为目前速度最快的对象检测器之一。
- End-to-End Deployment: 无 NMS 设计消除了后处理开销,从而能够在单个步骤中实现真正的端到端检测。
- 卓越的每瓦性能: 其低计算和内存占用使其成为功耗受限设备的理想选择。
- Ultralytics 集成: YOLOv10 已完全集成到 Ultralytics 生态系统中,为用户提供一个维护良好且易于使用的平台。这包括一个简单的 API、全面的文档以及对 Ultralytics 全套工具的访问权限。
弱点
- 最新的模型: 作为该系列中最新的模型,社区资源和实际部署示例仍在不断积累。
- 任务专业化: YOLOv10 高度专注于目标检测。它缺乏对其他任务(如 实例分割 或 姿势估计)的内置多功能性,而这些任务是 Ultralytics YOLOv8 等模型的原生功能。
理想用例
YOLOv10 在实时性能和效率至关重要的应用中表现出色:
- 边缘计算: 非常适合部署在资源受限的设备(如 NVIDIA Jetson)和移动平台。
- 高速视频分析: 需要在视频流中立即进行对象检测的应用,例如交通监控或实时体育分析。
- 移动和嵌入式系统: 集成到应用程序中,在这些应用程序中,速度和功耗是用户体验的关键因素。
性能对决:YOLOv9 vs. YOLOv10
YOLOv9 和 YOLOv10 之间的主要区别在于它们的设计重点。YOLOv9 侧重于通过复杂的架构设计来最大化准确率,而 YOLOv10 则专为无与伦比的计算效率和低延迟而设计。
下表显示,虽然最大的模型 YOLOv9-E 实现了最高的总体 mAP,但 YOLOv10 模型在相当的精度水平下始终提供更好的速度和参数效率。例如,对于类似的性能,YOLOv10-B 比 YOLOv9-C 具有更少的 46% 的延迟和 25% 的参数。这使得 YOLOv10 成为推理速度是关键瓶颈的应用程序的非常强大的选择。
模型 | 尺寸 (像素) |
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 |
YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
结论:您应该选择哪种模型?
您对 YOLOv9 和 YOLOv10 的选择完全取决于您项目的优先级。
-
如果您的主要要求是最大精度,请选择 YOLOv9。它非常适合精度不可协商的复杂任务,并且您可以适应稍微更高的计算开销。
-
如果您的主要要求是实时速度和效率,请选择 YOLOv10。其无 NMS 架构使其成为低延迟应用和资源受限硬件部署的卓越选择。
这两款模型都代表了目标检测的最前沿技术,并且在各自的领域内都是极佳的选择。它们集成到 Ultralytics 生态系统中,确保了开发人员和研究人员可以轻松地利用这些强大的工具,并获得强大的支持。
探索其他模型
对于那些需求可能与 YOLOv9 或 YOLOv10 不完全一致的用户,Ultralytics 生态系统提供了其他强大的替代方案。Ultralytics YOLOv8 仍然是性能和多功能性之间实现卓越平衡的理想选择,它开箱即用地支持分割、分类和姿势估计等任务。对于那些寻求绝对最新进展的人,Ultralytics YOLO11 在其前身的基础上进行了构建,从而在性能和效率方面树立了新的基准。您可以探索更深入的比较,例如 YOLOv9 与 YOLOv8 以及 YOLOv8 与 YOLOv10,以找到最适合您项目的模型。