Ultralytics YOLO27:
Get Started

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 计算时间也会显著增加。

进一步了解 DAMO-YOLO

YOLOv10:开创端到端目标检测#

YOLOv10 发布于一年半之后,它带来了范式转变:彻底消除了推理期间对非极大值抑制(NMS)的需求。

架构亮点#

YOLOv10 的突出特点是采用一致的双重分配进行无 NMS 训练。传统检测器会为单个目标预测多个重叠边界框,因此需要用 NMS 过滤重复框。这一后处理步骤会形成瓶颈,在边缘设备上尤其明显。YOLOv10 通过让模型直接为每个目标预测一个准确的边界框来解决这一问题。

作者还重点关注以效率和精度为核心的整体模型设计。通过仔细分析现有架构中的计算冗余,他们优化了骨干网络和检测头,以减少 FLOPs 数量和参数量。这种轻量化设计使 YOLOv10 导出为 TensorRT 或 OpenVINO 等格式后,仍能实现出色的推理延迟。

进一步了解 YOLOv10

性能与基准测试#

下表展示了模型在 COCO 数据集上的原始性能指标。每列中的最佳值以粗体突出显示。

模型尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
DAMO-YOLOt64042.0-2.328.518.1
DAMO-YOLOs64046.0-3.4516.337.8
DAMO-YOLOm64049.2-5.0928.261.8
DAMO-YOLOl64050.8-7.1842.197.3
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

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 框架,以满足对不同架构方案的需求。

评论