DAMO-YOLO 与 YOLOX#
实时计算机视觉领域不断发展。DAMO-YOLO 和 YOLOX 是其中两个重要的里程碑,它们分别为高速、高精度目标检测带来了独特创新。虽然这两种模型都为开源社区做出了重要贡献,但对于机器学习工程师来说,了解它们在架构、训练方法和理想部署场景方面的差异至关重要。
本指南全面探讨这两种模型的技术细节,并重点说明,为何 Ultralytics YOLO26 等现代替代方案在当今生产环境中具有更出色的性能和易用性。
模型概述#
DAMO-YOLO 详情#
DAMO-YOLO 由阿里巴巴集团的一支研究团队开发,是一种高效的目标检测方法,利用自动化架构搜索来实现优化。
- 作者: Xianzhe Xu、Yiqi Jiang、Weihua Chen、Yilun Huang、Yuan Zhang 和 Xiuyu Sun
- 组织: 阿里巴巴集团
- 日期: 2022-11-23
- Arxiv: https://arxiv.org/abs/2211.15444v2
- GitHub: https://github.com/tinyvision/DAMO-YOLO
- 文档:DAMO-YOLO 文档
YOLOX 详情#
YOLOX 由旷视科技的研究人员创建,旨在通过将 YOLO 系列改为无锚框设计,弥合研究与工业社区之间的差距。该设计大幅简化了架构,并在当时实现了更好的性能。
- 作者:郑革、刘松涛、王峰、李泽明和孙剑
- 机构:旷视科技
- 日期:2021-07-18
- Arxiv: https://arxiv.org/abs/2107.08430
- GitHub: https://github.com/Megvii-BaseDetection/YOLOX
- 文档:YOLOX 文档
架构分析#
DAMO-YOLO 架构#
DAMO-YOLO 高度依赖神经架构搜索(NAS)。其核心组件包括:
- MAE-NAS 骨干网络:采用最大熵引导搜索,寻找推理速度与精度之间达到最佳平衡的骨干网络。
- 高效 RepGFPN:一种用于特征融合的重型颈部结构,可帮助模型在不同目标尺度下保持较高精度。
- ZeroHead:一种简化的轻量级检测头,可降低最终预测层的计算开销。
YOLOX 架构#
YOLOX 采取了不同的方法,侧重结构简洁性和无锚框设计:
- 无锚框机制:YOLOX 直接预测边界框坐标,无需预定义锚框,从而减少所需的设计参数和启发式调整。
- 解耦检测头:将分类和回归任务分配到不同的特征分支,从而提升收敛速度和整体精度。
- SimOTA 标签分配:一种先进的标签分配策略,可动态地将正样本分配给真实目标,提高训练效率。
DAMO-YOLO 采用机器驱动的 NAS 搜索,在严格约束下寻找最优架构;YOLOX 则利用优雅的人工设计简化方案(如无锚框检测头),简化目标检测流水线。
性能对比#
评估这些模型需要考察平均精度均值(mAP)、推理速度和参数量。下面的详细对比表展示了两种架构的标准版和轻量级变体。
| 模型 | 尺寸 (像素) | 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
YOLOXx 的 mAP 绝对值最高,为 51.1;而 DAMO-YOLOl 的 mAP 达到极具竞争力的 50.8,参数量却不到前者的一半(42.1M 对 99.1M),且 TensorRT 执行速度显著更快。
训练方法#
训练 DAMO-YOLO#
DAMO-YOLO 在训练过程中使用复杂的蒸馏增强方法。通常会先训练一个较大的“教师”模型,再将其知识蒸馏到较小的“学生”模型中。它还采用 AlignedOTA 进行动态标签分配。虽然这种方法效果显著,但多阶段训练流程会大幅增加所需的 GPU 计算时间和内存开销。
训练 YOLOX#
YOLOX 使用 MixUp 和 Mosaic 等强力数据增强策略。不过,作者发现,在最后 15 个训练周期关闭这些强增强,能帮助模型缩小与真实场景之间的差距,显著提高最终精度指标。
理想应用场景#
- DAMO-YOLO:最适合高要求的工业部署场景,这些场景需要支持服务器端蒸馏流水线,并且目标硬件(例如特定的 NVIDIA GPU)能直接受益于其重型颈部 NAS 架构。
- YOLOX:非常适合寻求纯粹无锚框方案的开发者。极其轻量的
YOLOXnano适用于老旧 Android 设备、边缘计算,以及参数量受限的 IoT 传感器等资源极其有限的场景。
Ultralytics 的优势:YOLO26 登场#
DAMO-YOLO 和 YOLOX 都是出色的重要里程碑,但如今的开发者需要更全面、多功能且易用的解决方案。这正是 Ultralytics Platform 和新发布的 Ultralytics YOLO26 的优势所在。
YOLO26 于 2026 年 1 月发布,是适用于所有计算机视觉任务的首选模型。它带来了一系列突破,超越了旧版架构:
- 端到端无 NMS 设计:YOLO26 的可选一对一检测头(
nms=False)无需执行非极大值抑制(NMS)后处理。这样可以大幅简化并加快部署,避免传统检测头固有的延迟瓶颈。 - CPU 推理速度最高提升 43%:通过有针对性地移除 Distribution Focal Loss(DFL)并优化网络层,YOLO26 在 CPU 和边缘硬件上实现了无与伦比的速度。
- MuSGD 优化器:YOLO26 受大型语言模型(LLM)训练技术启发,引入了 MuSGD 优化器(结合 SGD 和 Muon 的混合优化器),与 YOLOX 的旧式配置相比,训练过程更加稳定,收敛速度也显著加快。
- ProgLoss + STAL:这些先进的损失函数显著提升了小目标识别能力,使 YOLO26 在无人机影像和机器人领域表现出色。
- 多功能性:与仅用于目标检测的 DAMO-YOLO 不同,YOLO26 可在同一套维护完善的生态系统中无缝支持实例分割、姿态估计、分类和定向边界框(OBB)任务。
使用 Ultralytics,轻松上手#
Ultralytics Python API 简化了开发者的工作流程。训练先进的 YOLO26 模型所需的样板代码少得多,也无需使用 DAMO-YOLO 复杂的蒸馏流水线。此外,与大型基于 Transformer 的模型相比,Ultralytics 模型在训练期间所需的 CUDA 内存极少。
from ultralytics import YOLO
# 加载最新的 Ultralytics YOLO26 nano 模型
model = YOLO("yolo26n.pt")
# 只需一行代码,即可使用自定义数据集训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 对图像进行快速、无 NMS 推理
results = model("https://ultralytics.com/images/bus.jpg", nms=False)
# 无缝导出为 ONNX 或 TensorRT
model.export(format="onnx")你可以使用 Ultralytics Platform 自动标注、训练模型并将模型部署到边缘设备;平台会为你处理所有数据版本管理和云端 GPU 资源配置。
结论#
DAMO-YOLO 和 YOLOX 之间的选择取决于具体限制:DAMO-YOLO 借助 NAS,在特定 GPU 上实现出色的速度与精度比;YOLOX 则提供简洁的无锚框设计,适用于轻量级边缘场景。
不过,对于寻求现代、面向未来且拥有活跃社区支持的解决方案的团队来说,Ultralytics YOLO26 架构是明确之选。它可选的无 NMS 推理、快速 CPU 推理,以及用于检测、分割和姿态任务的统一 API,使其成为从研究平稳过渡到稳健的实际生产环境的理想选择。
如果你有兴趣探索其他现代架构,我们还建议查看 Ultralytics YOLO11,或了解全面的 Ultralytics 文档中提供的 RT-DETR 等基于 Transformer 的模型。