YOLOv10 YOLOv9 对比:实时目标检测的进步
2024年标志着物体检测领域创新飞速发展的时期,期间发布了两项重要架构: YOLOv10 和 YOLOv9。尽管两者都致力于突破速度与精度的边界,但它们通过根本不同的架构理念实现了这一目标。
YOLOv10 NMSYOLOv10 消除后处理造成的推理延迟,而YOLOv9 则利用可编程梯度信息(PGI)YOLOv9 在深度网络中保留信息。
性能对比
下表详细展示了这些模型在标准基准测试中的对比情况。数据突显了参数效率、推理速度与检测精度(mAP)之间的权衡关系。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
YOLOv10:端到端先驱
YOLOv10由清华大学研究人员开发的YOLOv10标志着向端到端处理的转变。该模型由王傲、陈辉等研究人员于2024年5月23日发布,有效解决了非最大抑制(NMS)的瓶颈问题。
主要架构特性
- NMS:通过采用一致的双重任务分配机制,YOLOv10 NMS 推理NMS YOLOv10 NMS 。这有效降低了延迟并简化了部署流程,尤其适用于边缘计算场景。
- 整体效能设计:该架构通过优化各类组件,在保持高性能的同时降低计算开销(浮点运算次数)。
- 延迟优化:如表所示,在保持相似准确度水平的前提下,YOLOv10 相较于YOLOv9 通常能提供更低的推理时间。
有关技术细节,可参阅YOLOv10 的YOLOv10 论文。
YOLOv9:掌控信息流
YOLOv9由中央研究院的王建耀与廖宏源于2024年2月21日发布,该模型聚焦于深度神经网络中信息丢失的理论问题。
主要架构特性
- GELAN架构: 通用高效层聚合网络融合了CSPNet与ELAN的优势,以实现参数利用率最大化。
- 可编程梯度信息(PGI):这种辅助监督机制确保深层网络保留关键信息以实现精准检测,使模型在需要高精度的任务中表现出卓越效能。
- 高精度:YOLOv9e模型实现了55.6%的出色mAPval值,在纯检测精度方面超越了众多同类模型。
若需深入了解,请阅读YOLOv9 论文。
训练与易用性
两种模型均已完全集成到Ultralytics ,为开发者提供统一且无缝的体验。无论您使用的是YOLOv10 YOLOv9 Ultralytics Python 都能抽象化处理训练管道、数据增强和日志记录等复杂操作。
代码示例
在自定义数据集或COCO8 标准基准数据集上训练模型COCO8 简单。该框架COCO8 自动处理架构差异。
from ultralytics import YOLO
# Load a model (Choose YOLOv10 or YOLOv9)
model = YOLO("yolov10n.pt") # or "yolov9c.pt"
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model
model.val()
理想用例
YOLOv10 YOLOv9 YOLOv10 进行选择YOLOv9 取决于部署环境的具体限制条件。
何时选择 YOLOv10
- 低延迟约束:若您的应用运行于移动设备或嵌入式系统,且每毫秒都至关重要,YOLOv10 的NMS设计YOLOv10 显著优势。
- 简化部署:移除后处理步骤可简化导出至ONNX等格式 ONNX 或 TensorRT等格式的操作,降低了运算符不兼容的风险。
- 实时视频:适用于交通管理或高速生产线等对吞吐量要求极高的场景。
何时选择 YOLOv9
- 最高精度:在研究应用或精度至关重要的场景(如医学图像分析)中,YOLOv9e的PGI增强架构可提供卓越的性能表现。
- 小目标检测:GELAN在丰富特征保留方面的优势,使YOLOv9 在航空影像中检测小型或被遮挡目标时YOLOv9 鲁棒性。
- 复杂场景:在视觉杂乱程度高的环境中,可编程梯度信息有助于模型更有效地识别相关特征。
未来已至:YOLO26
YOLOv9 YOLOv10 强大的工具,但计算机视觉领域发展日新月异。Ultralytics 发布的YOLO26模型,在融合历代优势特性的同时,引入了突破性的优化方案。
YOLO26是新项目的推荐选择,在速度、精度和多功能性之间实现了卓越的平衡。
为何升级到 YOLO26?
- 端到端NMS: YOLOv10类似,YOLOv26天生具备端到端特性。它消除了NMS ,确保更快的推理速度和更简化的部署流程。
- MuSGD优化器:受大型语言模型(LLM)训练领域的创新启发(特别是Moonshot AI的Kimi K2模型),SGD 混合方案。这使得训练过程显著更稳定,收敛速度更快。
- DFL移除:通过移除分布式焦点损失(Distribution Focal Loss),YOLO26精简了模型架构,使其更易于导出,并兼容更广泛的边缘/低功耗设备。
- 性能飞跃:针对CPU 优化使速度较前代提升高达43%,使其成为边缘AI的强劲引擎。
- 任务多样性: 与侧重检测功能的v9和v10版本不同,YOLO26针对所有任务都进行了专项改进:
- 分割:新型语义分割损失函数与多尺度原型。
- 姿势估计:用于高精度关键点的残差对数似然估计(RLE)。
- 旋转框检测:为解决定向边界框任务中的边界问题而设计的专用角度损失函数。
Ultralytics 实现高效工作流程
开发者可Ultralytics (原HUB)管理YOLO26模型的全生命周期。从数据集标注到云端训练再到边缘设备部署,该平台提供统一接口,有效缩短产品上市周期。
结论
两者 YOLOv10 和 YOLOv9 都是物体检测发展史上的重要里程碑。YOLOv10 NMS架构也能达到顶尖水平,而YOLOv9 梯度信息流在深度网络中的关键作用。
然而,对于寻求最强大、最灵活且面向未来的解决方案的开发者而言,YOLO26无疑是首选。通过将NMS设计与革命性的MuSGD优化器相结合,并支持广泛的任务类型,YOLO26为现代计算机视觉应用提供了最佳的性能平衡。