Ultralytics YOLO27: 加入候补名单。
Get Started

YOLOv9 与 YOLOv10#

随着研究人员不断改善性能与效率之间的权衡,实时计算机视觉领域迅速发展。在先进视觉模型的演进过程中,YOLOv9 和 YOLOv10 是两个重要的里程碑。这两种模型均于 2024 年初发布,并对架构进行了重大调整,以解决深度神经网络中长期存在的挑战,从信息瓶颈到后处理延迟。

本技术对比将探讨这两种模型的架构、性能指标和理想部署场景,帮助你选择合适的目标检测模型。

模型起源与架构#

了解这些模型的发展脉络和理论基础,对于为你的特定计算机视觉项目选择合适的架构至关重要。

YOLOv9:掌控信息流#

YOLOv9 于 2024 年 2 月 21 日推出,旨在解决数据通过深层神经网络时发生信息丢失这一理论问题。

YOLOv9 引入了通用高效层聚合网络 (GELAN),通过结合 CSPNet 和 ELAN 的优势,最大限度地提高参数利用率。此外,它还采用可编程梯度信息 (PGI) 这一辅助监督机制,确保深层保留关键空间信息。这使 YOLOv9 适用于需要高特征保真度的任务,例如医学图像分析或远距离监控。

了解有关 YOLOv9 的更多信息

YOLOv10:实时端到端效率#

YOLOv10 于 2024 年 5 月 23 日不久后发布,它通过消除目标检测中众所周知的延迟瓶颈——非极大值抑制 (NMS)——简化了部署流水线。

YOLOv10 在训练期间采用一致双重分配,从而实现原生的无 NMS 设计。这消除了推理期间的后处理开销并降低延迟。结合以效率和准确率为核心的整体模型设计,YOLOv10 在降低计算开销 (FLOPs) 的同时保持有竞争力的准确率,从而在边缘计算应用中颇具吸引力。

进一步了解 YOLOv10

性能与指标对比#

在标准 MS COCO 数据集上对这两个模型系列进行基准测试时,可以发现纯准确率和推理延迟之间存在明显的权衡。

模型尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.226.7
YOLOv9m64051.4-6.4320.176.8
YOLOv9c64053.0-7.1625.5102.8
YOLOv9e64055.6-16.7758.1192.5
YOLOv10n64038.5-1.842.36.7
YOLOv10s64046.3-2.497.221.6
YOLOv10m64051.1-4.7415.459.1
YOLOv10b64052.5-5.7419.192.0
YOLOv10l64053.2-7.2824.4120.3
YOLOv10x64054.4-10.7029.5160.4

数据分析#

  1. 延迟与准确率:YOLOv10 模型通常推理速度更快。例如,YOLOv10s 使用 TensorRT 时只需 2.49 ms,mAP 达到 46.3%;相比之下,YOLOv9s 需要 3.54 ms,才能达到相近的 46.8% mAP。
  2. 顶级精度:对于要求检测精度最高的研究场景,YOLOv9e 仍是一个强有力的选择,mAP 可达 55.6%,PGI 有助于模型可靠地提取细微特征。
  3. 效率:YOLOv10 在 FLOPs 效率方面表现出色。这会直接降低功耗,这对于运行视觉 AI 模型的电池供电设备来说是一个关键指标。
部署提示

如果你要将模型部署到 CPU 或 Raspberry Pi 这类资源受限的边缘硬件上,YOLOv10 的无 NMS 架构通常能通过消除延迟不确定的后处理步骤,让整个流水线更加流畅。

Ultralytics 的优势:训练与生态系统#

架构差异固然至关重要,但周边软件生态系统往往决定项目能否成功。YOLOv9 和 YOLOv10 都已全面集成到 Ultralytics 生态系统中,为开发者提供一致的开发体验。

易用性与内存效率#

与可能需要大量内存的复杂 Transformer 架构不同,Ultralytics YOLO 模型旨在高效使用 GPU 内存。这样,研究人员就能在消费级硬件上使用更大的批量大小,让更多人能够使用最先进的 AI。

统一的 Python API 可处理数据增强和超参数调优的复杂工作。你只需更改权重文件字符串,就能切换架构。

from ultralytics import YOLO

# 加载 YOLOv10 模型(如需切换到 YOLOv9,可轻松改为 "yolov9c.pt")
model = YOLO("yolov10n.pt")

# 使用 COCO8 数据集训练模型
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device=0)

# 验证模型性能
metrics = model.val()

# 将训练好的模型导出为 ONNX 格式,以便部署
model.export(format="onnx")

无论你是要将指标记录到 MLflow,还是要导出到 TensorRT以便在硬件上高速部署,Ultralytics Python 包都能原生处理。

理想应用场景#

在这些模型之间进行选择,取决于你的部署限制:

  • 选择 YOLOv9 的情况:你正在处理小目标检测任务,例如航空无人机图像分析或小肿瘤检测,此时 GELAN 架构的特征保留能力能提供最高保真度。
  • 选择 YOLOv10 的情况:你的主要目标是在边缘设备上实现实时推理。无 NMS 设计使其非常适合自主机器人、实时交通监控和智能监控。

面向未来:转向 YOLO26#

YOLOv8、YOLOv9 和 YOLOv10 都是出色的模型,但希望构建现代 AI 解决方案的开发者应考虑于 2026 年 1 月发布的Ultralytics YOLO26。

YOLO26 在前几代模型的基础上,将 YOLOv10 的无 NMS 高效特性与比本次比较中任一模型都更高的精度结合起来。

YOLO26 的关键创新#

  • 端到端无 NMS 设计:在 YOLOv10 奠定的基础上,YOLO26 的可选一对一检测头(nms=False)跳过 NMS 后处理,简化部署。
  • MuSGD 优化器:结合 SGD 和 Muon 的混合优化器,将 LLM 训练创新引入计算机视觉,带来稳定的训练过程和快速收敛。
  • CPU 推理速度最高提升 43%:YOLO26n 在 CPU 上的运行速度比 YOLO11n 快 43%,适用于边缘计算和没有独立 GPU 的设备。
  • 移除 DFL:移除了分布焦点损失,以简化模型导出并提升与低功耗设备的兼容性。
  • ProgLoss + STAL:渐进式损失和小目标感知标签分配(STAL)可提升小目标检测效果。

对于正在评估其他架构的研究人员,RT-DETR 和 YOLO11 也是 Ultralytics 生态系统中有完善文档的备选方案。不过,如果你希望在所有视觉任务中获得多功能性,新项目推荐使用 Ultralytics Platform 上的 YOLO26。

评论