Ultralytics YOLO27:

DAMO-YOLO 与 YOLOv10#

计算机视觉领域见证了实时目标检测架构的快速发展。在比较 DAMO-YOLOYOLOv10 时,我们可以看到两种截然不同的模型设计理念:自动化架构搜索与端到端无 NMS 优化。虽然两者都在不断突破精度和速度的极限,但它们的底层结构和理想应用场景存在显著差异。

DAMO-YOLO:大规模神经架构搜索#

DAMO-YOLO 由阿里巴巴集团开发,是一款功能强大的检测器,专注于利用自动化发现来提升结构效率。

  • 作者: 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 导出为 TensorRTOpenVINO 等格式后,仍能实现出色的推理延迟。

了解更多关于 YOLOv10 的信息

性能与基准测试#

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

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数量
(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
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

虽然 DAMO-YOLO 在精度方面表现不俗,但 YOLOv10 始终能够提供更低的延迟和显著更小的模型权重。例如,YOLOv10s 的 mAP 为 46.7%,略高于 DAMO-YOLOs 的 46.0%,同时参数量不到后者的一半(7.2M 对比 16.3M)。更低的内存需求使 YOLOv10 成为嵌入式系统中极具通用性的选择。

训练效率与易用性#

从学术研究转向生产环境时,易用性至关重要。DAMO-YOLO 的多阶段蒸馏流程和复杂的 NAS 配置,可能会给工程团队带来较高的学习门槛。

相比之下,YOLOv10 完全集成到 Ultralytics Python SDK中,因此受益匪浅。训练自定义模型只需极少的样板代码。Ultralytics 会自动处理数据增强超参数调优实验跟踪

from ultralytics import YOLO

# Load a pretrained YOLOv10 nano model
model = YOLO("yolov10n.pt")

# Train on a custom dataset with built-in validation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image seamlessly
prediction = model("path/to/image.jpg")
prediction[0].show()
快速原型开发

借助 Ultralytics 生态系统,开发者只需编写几行代码,就能从原型直接得到完整的导出 ONNX 模型,无需进行旧框架所要求的复杂环境配置。

实际应用场景#

  • 智能零售(DAMO-YOLO): DAMO-YOLO 的精度非常适合高密度服务器环境,用于分析客户行为,此类环境通常拥有充足的 GPU,且能够应对实时 NMS 瓶颈。
  • 自动驾驶车辆(YOLOv10): 无 NMS 架构能够保证确定且可预测的延迟,这对于自动驾驶中的安全系统至关重要。
  • 工业自动化(YOLOv10): 在快速移动的装配线上检测缺陷,需要模型在不消耗大量 VRAM 的情况下最大化实时推理速度,因此 YOLOv10 非常适合边缘部署。

使用场景与建议#

在 DAMO-YOLO 和 YOLOv10 之间进行选择,取决于你的具体项目需求、部署限制和生态系统偏好。

何时选择 DAMO-YOLO#

DAMO-YOLO 适合以下场景:

  • 高吞吐量视频分析: 在固定的 NVIDIA GPU 基础设施上处理高 FPS 视频流,其中批量大小为 1 时的吞吐量是首要指标。
  • 工业制造产线: 在专用硬件上具有严格 GPU 延迟约束的场景,例如装配线上的实时质量检测。
  • 神经架构搜索研究: 研究自动化架构搜索(MAE-NAS)和高效重参数化骨干网络对检测性能的影响。

何时选择 YOLOv10#

以下情况推荐选择 YOLOv10:

  • 无 NMS 实时检测: 适用于能够从无需非极大值抑制的端到端检测中受益的应用,可降低部署复杂性。
  • 速度与准确率的平衡: 适用于需要在各种模型规模之间实现推理速度和检测准确率良好平衡的项目。
  • 延迟稳定的应用: 适用于推理时间可预测至关重要的部署场景,例如机器人技术或自主系统。

何时选择 Ultralytics (YOLO26)#

对于大多数新项目,Ultralytics YOLO26 在性能和开发者体验之间提供了最佳组合:

  • 无 NMS 边缘部署: 适用于需要稳定、低延迟推理,同时又不希望引入非极大值抑制后处理复杂性的应用。
  • 仅使用 CPU 的环境: 适用于没有专用 GPU 加速的设备,此时 YOLO26 最高提升 43% 的 CPU 推理速度将带来决定性优势。
  • 小目标检测: 适用于航空无人机影像或 IoT 传感器分析等具有挑战性的场景,在这些场景中,ProgLoss 和 STAL 能显著提升微小目标的准确率。

下一代方案:Ultralytics YOLO26#

YOLOv10 为无 NMS 检测奠定了基础,但这项技术发展迅速。对于现代应用,Ultralytics YOLO26 模型提供了无与伦比的性能和易用性,汲取前几代模型的优势并针对生产环境进行了优化。

YOLO26 采用原生端到端设计,消除了 NMS 后处理,从而简化了各种边缘设备的部署管道。此外,移除分布式焦点损失(DFL)显著提升了其与低功耗边缘 AI 硬件的兼容性。

在训练方面,YOLO26 引入了 MuSGD Optimizer,这是一种受大语言模型训练技术启发的混合优化器。它能够确保更稳定的训练和更快的收敛。结合 ProgLoss + STAL 损失函数,YOLO26 在小目标识别方面展现出显著改进,这对野生动物保护无人机作业至关重要。

重要的是,YOLO26 不仅仅是一个目标检测器。它在各项任务中都提供了针对性的改进,原生支持实例分割、使用残差对数似然估计(RLE)的姿态估计,以及用于旋转边界框(OBB)的专用角度损失。其 CPU 推理速度最高比前代提升 43%,是敏捷工程团队的理想选择。

对于 YOLO26 模型的集中式管理、标注和云端训练,Ultralytics Platform提供了直观的界面,可简化整个计算机视觉生命周期。

有兴趣探索其他最新进展的开发者,还可以评估 Ultralytics YOLO11,或在需要不同架构方案的场景中评估基于 Transformer 的 RT-DETR框架。

评论