跳转至内容

YOLOv10 与YOLOv9:全面技术比较

随着YOLO (You Only Look Once,只看一次)架构的不断迭代,物体检测的发展日新月异,其速度和精度也在不断提升。该领域最近最重要的两个贡献是 YOLOv10YOLOv9.虽然这两个模型在COCO 数据集上都达到了最先进的性能,但它们在设计理念和架构目标上存在很大差异。

YOLOv10 通过消除对非最大抑制NMS) 的需求,优先考虑低延迟和端到端效率,而YOLOv9 则侧重于通过可编程梯度信息 (PGI) 最大限度地提高信息保留率和准确性。本指南提供了详细的技术比较,帮助开发人员和研究人员为其计算机视觉应用选择最佳模型。

YOLOv10:端到端的实时检测器

由清华大学研究人员于 2024 年 5 月发布、 YOLOv10代表了YOLO 系列的范式转变。它的主要创新之处在于取消了非最大值抑制(NMS)后处理步骤,而该步骤历来是推理延迟的瓶颈。

技术细节:

架构与关键创新

YOLOv10 通过将一致的双重分配整体效率-精度驱动模型设计相结合来实现其效率

  1. NMS 训练:传统的YOLO 模型依赖NMS 来过滤重复的边界框。YOLOv10 在模型训练过程中采用了双重分配策略。一对多分支为学习提供丰富的监督信号,而一对一分支则确保模型在推理过程中为每个对象生成一个最佳预测。这样就可以在没有NMS 的情况下部署模型,从而大大减少推理延迟
  2. 模型优化:该架构包括轻量级分类头、空间通道解耦下采样和等级引导块设计。这些功能减少了计算冗余和内存使用,使模型在资源有限的硬件上非常高效。

效率优势

在YOLOv10 中取消NMS 特别有利于边缘部署。在CPU 资源稀缺的设备上,避免对数千个候选盒进行排序和过滤的计算成本可大幅提高速度。

了解有关YOLOv10的更多信息

YOLOv9:掌握信息保存方法

由 Chien-Yao Wang 和 Hong-Yuan Mark Liao 于 2024 年 2 月推出、 YOLOv9针对深度神经网络固有的 "信息瓶颈 "问题。当数据通过连续层(特征提取)时,关键信息可能会丢失,从而导致准确性降低,尤其是对于小型或难以detect 的物体。

技术细节:

架构与关键创新

YOLOv9 引入了新概念,以确保网络保留并利用尽可能多的输入信息。

  1. 可编程梯度信息 (PGI):PGI 提供了一个辅助监督框架,可生成用于更新网络权重的可靠梯度。这可确保深层接收完整的输入信息,缓解梯度消失问题,提高收敛性。
  2. 通用高效层聚合网络(GELAN):这种新架构取代了以前版本中使用的传统 ELAN。GELAN 优化了参数利用率和计算效率 (FLOPs),使YOLOv9 能够在模型大小与前代产品相当的情况下实现更高的精度。

深度学习洞察力

YOLOv9 专注于信息保留,这使其在复杂场景中检测物体时表现尤为突出,否则在骨干网进行下采样操作时可能会丢失特征细节。

了解有关YOLOv9的更多信息

性能指标:速度与准确性

要在这两种模型之间做出选择,往往需要在原始推理速度和检测精度之间做出权衡。下表突出显示了不同模型规模下的性能差异。

分析:

  • 延迟: YOLOv10 在延迟方面始终优于YOLOv9 ,尤其是在较小的模型规模(N 和 S)中。例如,YOLOv10n在TensorRT 上的推理速度为1.56 毫秒,明显快于同类模型。
  • 精确度: YOLOv9 在高端精确度方面表现出色。YOLOv9e型号的 mAP 高达55.6%,是精度要求极高的应用场合的最佳选择。
  • 效率: YOLOv10 每参数精度极高。与YOLOv9c 相比,YOLOv10b以更低的延迟实现了 52.7% 的mAP ,证明了其整体设计的有效性。
模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
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
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

理想用例

了解每种模式的优势有助于为您的特定项目目标选择合适的工具。

何时选择YOLOv10

  • 边缘人工智能部署:在NMS Jetson或 Raspberry Pi 等设备上运行的应用程序可受益于NMS 设计,从而减少CPU 开销。
  • 高频视频分析:需要处理高 FPS 视频流的场景,如交通监控或体育分析。
  • 实时机器人技术:依靠低延迟反馈回路进行导航和避障的自主系统。

何时选择YOLOv9

  • 高精度检测:工业质量控制,漏检缺陷(假阴性)代价高昂。
  • 小物体检测:涉及卫星图像分析或医学成像的应用,这些应用中的物体体积小、特征少。
  • 复杂场景:高度遮挡或杂乱的环境,需要最大限度地保留信息才能分辨物体。

使用Ultralytics

使用这些模型的一个显著优势是它们与Ultralytics 生态系统的集成。YOLOv10 和YOLOv9 可通过相同的统一Python API 和命令行界面CLI) 使用,从而简化了从培训到部署的工作流程。

Python 示例

下面的代码演示了如何使用 ultralytics 软件包。

from ultralytics import YOLO

# Load a YOLOv10 model (NMS-free, high speed)
model_v10 = YOLO("yolov10n.pt")

# Load a YOLOv9 model (High accuracy)
model_v9 = YOLO("yolov9c.pt")

# Run inference on an image
# The API remains consistent regardless of the underlying architecture
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v9 = model_v9("https://ultralytics.com/images/bus.jpg")

# Print results
for r in results_v10:
    print(f"YOLOv10 Detections: {r.boxes.shape[0]}")

for r in results_v9:
    print(f"YOLOv9 Detections: {r.boxes.shape[0]}")

Ultralytics 的优势

在计算机视觉项目中选择Ultralytics ,不仅能提供模型架构,还能带来多种优势:

  • 易用性:用户友好的 API 允许您在YOLOv9、YOLOv10 和其他型号(如 YOLO11之间进行切换。
  • 性能平衡: Ultralytics 实现针对实际性能进行了优化,兼顾了速度和准确性。
  • 训练效率:该框架支持自动混合精度 (AMP)和GPU GPU 训练等功能,使您能更轻松地在自己的数据集上训练自定义模型。
  • 内存要求:与transformer替代方案相比,Ultralytics 模型的内存使用率通常较低,有利于在消费级 GPU 上进行训练。

结论

两个 YOLOv10YOLOv9都是物体检测领域的重要里程碑。 YOLOv10凭借其创新的NMS 架构,在优先考虑速度和效率的应用中脱颖而出。反之亦然、 YOLOv9仍然是要求尽可能高的准确性和信息保留率的应用场合的可靠选择。

对于寻求最新、最多功能解决方案的开发人员,我们还建议探索 YOLO11.YOLO11 以这些前代产品的优势为基础,在检测、分割和姿势估计 任务的速度、准确性和功能方面实现了完美的平衡。

探索其他模型


评论