跳转至内容

YOLOv9 :目标检测技术演进深度解析

实时目标检测领域发展迅猛,2024年涌现出两项重要架构: YOLOv9YOLOv10。两者虽均致力于突破精度与效率的边界,却通过截然不同的架构理念实现目标:YOLOv9 最大化网络深层的信息保留能力,YOLOv10 通过消除非最大抑制(NMS)需求YOLOv10 部署流程。

本指南提供全面的技术对比,旨在帮助研究人员和工程师为其特定的计算机视觉应用选择合适的工具。

YOLOv9:可编程梯度信息

由王建尧与廖宏源(YOLOv7)于2024年2月YOLOv9 深度神经网络固有的"信息瓶颈"问题。当数据通过层层传递时,输入数据常会流失,导致模型学习特定特征的能力下降。

为应对这一YOLOv9 PGI(可编程梯度信息) 和GELAN(广义高效层聚合网络)架构。PGI提供辅助监督分支,确保主分支在训练过程中保留关键信息;而GELAN通过优化参数利用率,实现更优的梯度路径规划。

了解更多关于 YOLOv9

YOLOv10:实时端到端检测

2024年5月,清华大学研究人员发布的YOLOv10 YOLO 的重要转变。 传统YOLO NMS 过滤重叠边界框。YOLOv10 在训练阶段YOLOv10 一致的双重分配策略——采用多目标分配实现丰富监督,同时采用一对一分配进行推理——使模型实现原生NMS

这种架构变更降低了推理延迟并简化了部署流程,使其CPU 极为宝贵的边缘计算场景中尤为具有吸引力。

了解更多关于 YOLOv10

性能对比

在比较这两种架构时,我们关注原始检测能力(mAP)与推理效率(延迟和浮点运算次数)之间的权衡关系。

指标分析

下表展示了COCO 上的性能指标。虽然YOLOv9e在复杂任务中展现出更高的准确率,但由于去除了NMS YOLOv10 通常具有更低的延迟。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

主要内容

  1. 延迟与精度:YOLOv10nGPU 运行时显著更快(1.56毫秒 vs 2.3毫秒),同时实现了高于YOLOv9t(38.3%)mAP 39.5%)。这使得v10架构在小规模部署中具有极高的效率。
  2. 顶级精度:在精度百分比至关重要的研究场景中,YOLOv9e凭借55.mAP依然表现强劲,其可编程梯度信息能提取其他模型可能忽略的细微特征。
  3. 效率: YOLOv10 在浮点运算效率方面 YOLOv10 。其仅需21.6G浮点运算性能,而YOLOv9s则需26.4G,这意味着在电池供电设备上能实现更低的功耗。

硬件考量

若部署于CPU(如Intel 处理器)或专用边缘硬件(树莓派、Jetson),YOLOv10 NMS通常能实现更流畅的管道,因其消除了后处理步骤中非确定性的处理时间。

训练与生态系统

使用Ultralytics 的最大优势之一在于其统一的生态系统。无论选择YOLOv9 YOLOv10,训练、验证和导出工作流始终保持一致。这种一致性极大地降低了开发者的学习成本。

Ultralytics 优势

  • 易用性: 一个Python 允许您通过修改单个字符串(例如从 yolov9c.ptyolov10m.pt)。
  • 完善的生态系统:Ultralytics 提供频繁更新,确保与最新PyTorch 版本和 CUDA 驱动程序兼容。
  • 内存需求:与许多易受内存膨胀困扰的transformer模型Ultralytics 针对GPU 效率进行了优化。这使得在消费级硬件上能够处理更大的批量大小。

训练示例

在自定义数据集上训练任一模型都十分简单。该框架会自动处理数据增强、缓存和指标记录。

from ultralytics import YOLO

# Load a model (Swap "yolov10n.pt" for "yolov9c.pt" to switch architectures)
model = YOLO("yolov10n.pt")

# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Validate the model's performance
model.val()

# Export to ONNX for deployment
model.export(format="onnx")

理想用例

何时选择 YOLOv9

YOLOv9 需要高特征保真度的场景的首选方案。其GELAN架构对信息丢失具有强健性,使其成为以下场景的理想选择:

  • 医学影像:检测微小肿瘤或异常病灶,其中任何特征的遗漏都可能致命。参阅我们的医疗健康人工智能指南。
  • 小目标检测:涉及航空影像或远距离监控的场景,其中目标仅占据极少像素。
  • 研究基准:与2024年初最先进架构进行基准测试时。

何时选择 YOLOv10

YOLOv10 速度与部署简易性YOLOv10 。通过NMS 以下领域的有力竞争者:

  • 边缘计算:树莓派或手机等设备上运行,避免因后期处理造成的CPU 导致性能瓶颈。
  • 实时机器人技术:需要持续、低延迟反馈循环的应用,例如自主导航
  • 复杂管道:指将检测器输出输入追踪算法的系统;NMS设计简化了下游任务的逻辑处理。

展望未来:YOLO26的强大功能

YOLOv9 YOLOv10 优秀的模型,但人工智能领域发展日新月异。对于2026年启动的新项目,我们强烈建议评估YOLOv26

YOLO26于2026年1月发布YOLOv10 实现的NMS突破基础上YOLOv10 引入了重大的架构改进:

  1. 端到端NMS:与v10版本类似,YOLO26天生具备端到端特性,但通过对检测头进行进一步优化,实现了更高的检测精度。
  2. MuSGD优化器:融合了SGD (受大型语言模型训练启发),该优化器将大型语言模型的训练稳定性引入计算机视觉领域,确保更快的收敛速度。
  3. DFL移除:通过移除分布式焦点损失(Distribution Focal Loss),YOLO26简化了输出图结构,使其在NPU受限设备上的部署显著简化。
  4. ProgLoss + STAL:新型损失函数,专门针对提升小目标识别性能进行优化,有效解决了实时检测器普遍存在的弱点。
  5. 性能:YOLO26专为边缘计算优化 CPU 较前代产品提升高达43%

了解更多关于 YOLO26 的信息

此外,YOLO26不仅是一个检测器,它还包含针对姿势估计 (采用RLE算法)、实例分割以及定向边界框旋转框检测任务专项改进使其Ultralytics 中最全能的工具。

结论

YOLOv9 YOLOv10 YOLOv9 YOLOv10 计算机视觉领域的重要飞跃。YOLOv9 深度网络可以在不丢失信息的情况下提升效率,而YOLOv10 数十年来对NMS 的依赖NMS 被打破。

对于当今开发者而言,选择主要取决于部署限制。若需在复杂数据上实现绝对最高精度,YOLOv9e是强有力的候选方案;若延迟控制与部署简易性至关重要,YOLOv10 卓越YOLOv10 。然而,若追求速度、精度与前瞻性功能的最佳平衡,YOLO26作为当前尖端方案Ultralytics 理想推荐。


评论