YOLOv9 与YOLOv10:物体检测技术比较
对于开发人员和研究人员来说,选择合适的物体检测模型是一项关键决策,需要在高精度需求与实时推理和计算资源的限制之间取得平衡。本指南对 YOLOv9 和 YOLOv9 进行了深入的技术比较。 YOLOv9和 YOLOv10之间进行了深入的技术比较。
YOLOv9 专注于解决深度学习信息瓶颈的架构创新,而YOLOv10 则通过NMS 设计实现了范式转变,将延迟降到最低。这两种模型都完全集成到了Ultralytics Python 软件包中,用户可以在一个统一的生态系统中轻松地对其进行训练、验证和部署。
性能指标和基准
这两种模型之间的性能权衡是截然不同的。YOLOv9 通常会提高平均精度(mAP),尤其是其较大的变体,因此适用于精度至关重要的应用场景。相反,YOLOv10 则追求效率,大大减少了推理延迟和参数数量,非常适合边缘部署。
下表使用COCO 数据集说明了这些差异。值得注意的是,YOLOv10n在 T4 GPU 上实现了令人难以置信的速度,而YOLOv9e则在检测准确性方面占据优势。
| 模型 | 尺寸 (像素) | 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:解决信息瓶颈问题
2024 年 2 月发布、 YOLOv9YOLOv9 针对深度神经网络中的一个基本理论难题:数据通过深层传播时的信息丢失。该模型旨在确保网络保留准确检测物体所需的基本特征。
技术细节:
- 作者: Chien-Yao Wang, Hong-Yuan Mark Liao
- 组织机构中央研究院信息科学研究所
- 日期: 2024-02-21
- Arxiv:arXiv:2402.13616
- GitHub:WongKinYiu/yolov9
建筑:PGI 和 GELAN
YOLOv9 引入了两个突破性的概念:
- 可编程梯度信息(PGI):一种辅助监督框架,可防止训练过程中的信息丢失。它能确保生成可靠的梯度来更新网络权重,从而解决以往架构中存在的深度监督问题。
- 通用高效层聚合网络(GELAN):一种能最大限度提高参数效率的新型架构。与传统设计相比,GELAN 通过优化跨层聚合特征的方式,使模型以更少的参数达到更高的精度。
优势与劣势
YOLOv9 在精度要求极高的应用中表现出色。它能够保留详细的特征信息,因此在检测小型物体或导航复杂场景方面表现出色。然而,这种复杂性是以复杂性为代价的。像 PGI 这样的架构添加物主要用于训练,这意味着它们可以在推理过程中移除,但训练资源可能会更高。此外,虽然效率高,但其延迟一般高于YOLOv10 的专门高效设计。
YOLOv10:NMS 检测时代
YOLOv10YOLOv10 由清华大学研究人员开发,于 2024 年 5 月发布,优先考虑实时速度和端到端的可部署性。它的最大特点是消除了非最大抑制(NMS),这是一个后处理步骤,传统上一直是推理延迟的瓶颈。
技术细节:
- 作者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 组织机构: 清华大学清华大学
- 日期: 2024-05-23
- Arxiv:arXiv:2405.14458
- GitHub:THU-MIG/yolov10
建筑:一致的双重分配
YOLOv10 的核心创新是训练期间的一致双分配。该模型在训练期间采用一对多的分配策略进行丰富的监督,但在推理时则切换为一对一的分配。这种架构允许模型直接预测每个对象的最佳边界框,从而使NMS 后处理变得过时。YOLOv10 采用了等级引导块设计,减少了冗余和计算开销(FLOPs)。
优势与劣势
YOLOv10 的主要优势在于低延迟。通过移除NMS,推理延迟变得确定且显著降低,这对实时视频处理至关重要。它还拥有出色的参数效率,从对比表中可以看出,YOLOv10 模型以更少的 FLOP 达到了具有竞争力的精度。一个潜在的弱点是,与成熟的生态系统相比,YOLOv10 的推出时间相对较短,不过与Ultralytics 集成可以缓解这一问题。此外,YOLOv10 高度专注于检测,而生态系统中的其他模型则提供更广泛的多任务支持。
端到端出口
由于YOLOv10 在设计上NMS,因此将其导出为ONNX 或TensorRT 等格式通常会更简单,并能生成 "纯粹的 "端到端模型,而无需复杂的后处理插件。
开发人员比较分析
在将这些模型集成到生产中时,除了原始指标外,还有一些实际因素也会发挥作用。
易用性和生态系统
作为Ultralytics 生态系统的一部分,这两种模型都受益匪浅。这意味着开发人员只需更改模型字符串,就可以利用相同的训练管道、验证工具和部署格式在YOLOv9 和YOLOv10 之间切换。
- 训练效率:与transformer探测器相比,Ultralytics 模型所需的内存通常更少,因此可以在标准的消费级 GPU 上进行训练。
- 多功能性: YOLOv9 和YOLOv10 专注于检测,而Ultralytics API 则通过YOLO11 和YOLOv8 等模型支持实例分割和姿势估计 等其他任务,为各种视觉人工智能项目提供了全面的工具包。
理想用例
在下列情况下选择YOLOv9
- 您的应用需要尽可能高的精确度(例如,医学成像、制造中的缺陷检测)。
- 在处理detect 检测的物体时,信息的保留至关重要。
- 与精度相比,延迟是次要问题。
选择YOLOv10 时:
- 速度至关重要。自动驾驶、机器人导航或高帧频视频分析等应用都得益于NMS 设计。
- 在GPU 资源有限的边缘设备(如NVIDIA Jetson 或 Raspberry Pi)上部署。
- 您需要一个确定的推理时间,而不需要NMS 处理带来的可变性。
代码示例:运行两种模型
有了统一的Ultralytics API,在自己的数据上比较这些模型就变得简单易行了。下面的Python 代码演示了如何使用这两种架构加载和运行推理。
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model_v9 = YOLO("yolov9c.pt")
# Load a pre-trained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")
# Run inference on an image
results_v9 = model_v9("path/to/image.jpg")
results_v10 = model_v10("path/to/image.jpg")
# Print results
print(f"YOLOv9 Detection: {len(results_v9[0].boxes)}")
print(f"YOLOv10 Detection: {len(results_v10[0].boxes)}")
结论
YOLOv9 和YOLOv10 都是计算机视觉领域的重要里程碑。 YOLOv9突破了特征保持和精确度的理论极限,使其成为研究和高精度任务的强大工具。 YOLOv10通过消除NMS 瓶颈重新定义了效率,为实时应用提供了精简的解决方案。
对于在多项任务(包括细分和分类)中寻求准确性、速度和特征丰富度的绝对最佳平衡的用户,我们还建议探索 YOLO11.作为Ultralytics 的最新迭代产品,YOLO11 将其前代产品的最佳特性精炼为一个强大的企业级软件包,几乎适用于任何视觉人工智能应用。
探索其他模型
Ultralytics 生态系统非常庞大。如果您的项目要求不同,请考虑这些替代方案:
- YOLO11:最新的先进机型,在检测、分段、姿势估计、旋转框检测和分类方面具有卓越的性能和多功能性。
- YOLOv8:以广泛的兼容性和多任务支持而著称,是一款非常受欢迎且稳定的机型。
- RT-DETR: transformer探测器,无需NMS 即可提供高精度,可作为特定用例中YOLO 架构的替代方案。
利用Ultralytics 平台,您可以访问这一整套模型,确保您始终拥有适合工作的工具。