跳转至内容

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:优化信息保留

由王建尧和廖弘源于 2024 年 2 月推出,YOLOv9 旨在解决深度神经网络中固有的“信息瓶颈”问题。当数据通过连续层(特征提取)时,关键信息可能会丢失,导致精度下降,特别是对于小型或难以 detect 的目标。

技术细节:

架构与关键创新

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

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

深度学习洞察

YOLOv9 对信息保留的关注使其在复杂场景中 detect 物体方面表现出色,在这些场景中,特征细节在骨干网络的下采样操作中可能会丢失。

了解更多关于YOLOv9的信息。

性能指标:速度对比准确性

这两种模型之间的选择通常归结为原始推理速度和检测精度之间的权衡。下表强调了不同模型规模下的性能差异。

分析:

  • 延迟:YOLOv10 在延迟方面持续优于 YOLOv9,尤其是在较小的模型尺寸(N 和 S)中。例如,YOLOv10n 在 TensorRT 上实现了 1.56 毫秒的推理速度,显著快于同类模型。
  • 精度: YOLOv9 在频谱的较高端表现出色。YOLOv9e 模型实现了卓越的 55.6% mAP,使其成为对精度要求极高的应用的上佳选择。
  • 效率: YOLOv10 提供了卓越的每参数精度。YOLOv10b 以低于 YOLOv9c 的延迟实现了 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

  • 边缘AI部署:NVIDIA Jetson或树莓派等设备上运行的应用程序受益于无NMS设计,这减少了CPU开销。
  • 高频视频分析:需要处理高帧率视频流的场景,例如交通监控或体育分析。
  • 实时机器人技术: 依赖低延迟反馈回路进行导航和避障的自主系统。

何时选择 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 训练等功能,从而更轻松地在您自己的数据集上训练自定义模型。
  • 内存要求: Ultralytics 模型通常比基于 Transformer 的替代方案表现出更低的内存使用,有助于在消费级 GPU 上进行训练。

结论

YOLOv10YOLOv9都代表了目标检测领域的重要里程碑。YOLOv10凭借其创新的无NMS架构,成为优先考虑速度和效率的应用的明显赢家。相反,YOLOv9仍然是要求尽可能高的准确性和信息保留的场景的稳健选择。

对于寻求最新、最多功能解决方案的开发者而言,我们也推荐探索 YOLO11。YOLO11 建立在这些前代模型的优势之上,为 detect、segment 和姿势估计任务提供了速度、准确性和功能的精细平衡。

探索其他模型

  • Ultralytics YOLO11 - 最新的 state-of-the-art 模型。
  • Ultralytics YOLOv8 - 适用于各种视觉任务的多功能且成熟的模型。
  • RT-DETR - 一种基于 Transformer 的检测器,适用于高精度应用。

评论