DAMO-YOLO 与 YOLOv10#
计算机视觉领域的实时目标检测架构发展迅速。对比 DAMO-YOLO 和 YOLOv10,我们可以看到两种截然不同的模型设计理念:自动化架构搜索与端到端无 NMS 优化。尽管两者都在不断突破精度和速度的界限,但其底层结构和理想应用场景有显著差异。
DAMO-YOLO:大规模神经架构搜索#
DAMO-YOLO 由 Alibaba Group 开发,是一款强大的检测器,专注于利用自动化探索实现结构效率。
- 作者: Xianzhe Xu、Yiqi Jiang、Weihua Chen、Yilun Huang、Yuan Zhang 和 Xiuyu Sun
- 日期: 2022 年 11 月 23 日
- Arxiv:2211.15444v2
- GitHub:tinyvision/DAMO-YOLO
架构亮点#
DAMO-YOLO 高度依赖神经架构搜索(NAS),以平衡性能和延迟。其名为 MAE-NAS 的骨干网络采用最大熵引导搜索,并受严格计算预算限制,以寻找最佳的层深度和宽度。
为了融合不同尺度的特征,该模型采用高效的 RepGFPN(重参数化广义特征金字塔网络)。这种复杂的颈部网络尤其擅长提取复杂的空间层次结构,因此适用于航空影像分析等场景。此外,DAMO-YOLO 还引入了 ZeroHead,这是一种精简的检测头,可大幅降低最终预测层的复杂度,并在训练期间通过稳健的蒸馏增强流程提供支持。
DAMO-YOLO 通常采用多阶段知识蒸馏流程。该流程需要训练一个更大的“教师”模型来指导较小的“学生”模型,从而获得更高的 mAP(平均精度均值),但所需的 GPU 计算时间也会显著增加。
YOLOv10:开创端到端目标检测#
YOLOv10 发布于一年半之后,它带来了范式转变:彻底消除了推理期间对非极大值抑制(NMS)的需求。
- 作者: Ao Wang、Hui Chen、Lihao Liu 等
- 组织: 清华大学
- 日期: 2024 年 5 月 23 日
- Arxiv: 2405.14458
- 文档: Ultralytics YOLOv10
架构亮点#
YOLOv10 的突出特点是采用一致的双重分配进行无 NMS 训练。传统检测器会为单个目标预测多个重叠边界框,因此需要用 NMS 过滤重复框。这一后处理步骤会形成瓶颈,在边缘设备上尤其明显。YOLOv10 通过让模型直接为每个目标预测一个准确的边界框来解决这一问题。
作者还重点关注以效率和精度为核心的整体模型设计。通过仔细分析现有架构中的计算冗余,他们优化了骨干网络和检测头,以减少 FLOPs 数量和参数量。这种轻量化设计使 YOLOv10 导出为 TensorRT 或 OpenVINO 等格式后,仍能实现出色的推理延迟。
性能与基准测试#
下表展示了模型在 COCO 数据集上的原始性能指标。每列中的最佳值以粗体突出显示。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
DAMO-YOLO 的精度表现不俗,但 YOLOv10 在相近规模下精度更高,而且模型权重明显更小。例如,YOLOv10s 的 mAP 略高于 DAMO-YOLOs(46.3% 对 46.0%),而参数量不到后者的一半(7.2M 对 16.3M)。更低的内存需求让 YOLOv10 成为嵌入式系统的理想选择,适用范围极广。
训练效率与易用性#
从学术研究转向生产部署时,易用性至关重要。DAMO-YOLO 的多阶段蒸馏流程和复杂的 NAS 配置,可能会给工程团队带来较高的学习门槛。
相比之下,YOLOv10 的一大优势是与 Ultralytics Python SDK 完全集成。训练自定义模型只需极少的样板代码。Ultralytics 会自动处理数据增强、超参数调优和实验跟踪。
from ultralytics import YOLO
# 加载预训练的 YOLOv10 nano 模型
model = YOLO("yolov10n.pt")
# 在自定义数据集上训练,并使用内置验证功能
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 轻松对图像运行推理
prediction = model("path/to/image.jpg")
prediction[0].show()借助 Ultralytics 生态系统,开发者只需编写几行代码,就能从原型快速生成完整的导出 ONNX 模型,无需像旧框架那样进行复杂的环境配置。
实际应用场景#
- 智慧零售(DAMO-YOLO): DAMO-YOLO 的高精度适用于高密度服务器环境,可在 GPU 资源充足且实时 NMS 瓶颈尚可应对的情况下分析客户行为。
- 自动驾驶车辆(YOLOv10): 无 NMS 架构可确保延迟具有确定性且可预测,这对自动驾驶安全系统至关重要。
- 工业自动化(YOLOv10): 要在高速运转的装配线上检测缺陷,需要模型在不大量占用显存的情况下实现最快的实时推理,因此 YOLOv10 是边缘部署的理想选择。
用例与建议#
在 DAMO-YOLO 和 YOLOv10 之间做出选择,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 DAMO-YOLO#
DAMO-YOLO 适用于:
- 高吞吐量视频分析:在固定的 NVIDIA GPU 基础设施上处理高帧率视频流,且主要关注批量大小为 1 时的吞吐量。
- 工业制造生产线:在专用硬件上对 GPU 延迟有严格要求的场景,例如装配线上的实时质量检测。
- 神经架构搜索研究:研究自动架构搜索 (MAE-NAS) 和高效重参数化骨干网络对检测性能的影响。
何时选择 YOLOv10#
以下场景推荐使用 YOLOv10:
- 无 NMS 的实时检测:适用于需要从端到端检测中获益、无需使用非极大值抑制并能降低部署复杂度的应用。
- 均衡权衡速度与准确率:适用于需要在不同模型规模下兼顾推理速度和检测准确率的项目。
- 延迟稳定的应用:适用于推理时间可预测性至关重要的部署场景,例如机器人或自主系统。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:
- 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
- 仅使用 CPU 的环境:适用于没有专用 GPU 加速的设备,此时 YOLO26 的 CPU 推理速度最高提升 43%,可带来显著优势。
- 小目标检测:适用于无人机航拍影像等具有挑战性的场景,或 IoT 传感器分析等需要 ProgLoss 和 STAL 大幅提升微小目标准确率的场景。
新一代模型:Ultralytics YOLO26 登场#
YOLOv10 为无 NMS 检测奠定了基础,而这项技术也在迅速发展。对于现代应用,Ultralytics YOLO26 模型在性能和易用性方面表现卓越,吸收了前几代模型的优势,并进一步优化以满足生产需求。
YOLO26 具备原生端到端模式(nms=False),可跳过 NMS 后处理,简化边缘设备上的部署流程。此外,移除分布焦点损失(DFL)大幅提升了模型与低功耗边缘 AI硬件的兼容性。
在训练方面,YOLO26 引入了MuSGD 优化器,这是一种借鉴大语言模型(LLM)训练技术的混合优化器,可确保训练更稳定、收敛更快。结合 ProgLoss + STAL 损失函数后,YOLO26 在小目标识别方面取得了显著提升,这对野生动物保护和无人机作业至关重要。
重要的是,YOLO26 不仅仅是目标检测器。它针对各项任务进行了专项优化,原生支持实例分割、使用残差对数似然估计(RLE)的姿势估计,以及适用于有向边界框(OBB)的专用角度损失。与前代模型相比,它的 CPU 推理速度最高提升 43%,是敏捷工程团队的理想选择。
对于 YOLO26 模型的集中管理、标注和云端训练,Ultralytics Platform 提供直观的界面,可简化整个计算机视觉生命周期。
想要了解其他近期进展的开发者,也可以评估 Ultralytics YOLO11,或基于 Transformer 的 RT-DETR 框架,以满足对不同架构方案的需求。