DAMO-YOLO 与 YOLOX:全面技术比较
实时计算机视觉领域正在不断发展。在这一进程中,两个值得关注的里程碑是 DAMO-YOLO 和 YOLOX,它们都为高速、高准确度目标 detect 问题带来了独特的创新。尽管这两种模型都为开源社区做出了重大贡献,但理解它们的架构差异、训练方法和理想部署场景对于机器学习工程师至关重要。
本综合指南探讨了这两种模型的技术细微之处,并强调了为什么Ultralytics YOLO26平台等现代替代方案为当今的生产环境提供了卓越的性能和易用性。
模型概述
DAMO-YOLO 详情
DAMO-YOLO 由阿里巴巴集团的研究团队开发,作为一种高效的目标检测方法被引入,该方法利用自动化架构发现技术。
作者:Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang, and 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利用优雅的人工设计简化(如无锚点检测头)来简化目标detect流程。
性能对比
评估这些模型需要查看平均精度均值 (mAP)、推理速度和参数数量。下面是两种架构的标准和轻量级变体的详细比较表。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (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实现了51.1的最高绝对mAP,但DAMO-YOLOl以不到一半的参数(42.1M vs 99.1M)提供了极具竞争力的50.8 mAP,并且TensorRT执行速度显著更快。
训练方法
训练 DAMO-YOLO
DAMO-YOLO 在训练过程中利用复杂的蒸馏增强技术。通常,首先训练一个大型“教师”模型,然后将其知识蒸馏到较小的“学生”模型中。它还采用 AlignedOTA 进行动态标签分配。尽管效率很高,但这种多阶段训练过程会大幅增加所需的 GPU 计算 时间和内存开销。
训练 YOLOX
YOLOX 依赖 MixUp 和 Mosaic 等强大的数据增强策略。然而,作者发现,在最后 15 个 epoch 关闭这些强增强可以帮助模型缩小现实差距,显著提升最终准确率指标。
理想用例
- DAMO-YOLO:最适合高风险工业部署,在这些部署中可以支持服务器端蒸馏管道,并且目标硬件(如特定的NVIDIA GPU)直接受益于其重颈NAS架构。
- YOLOX: 非常适合寻求纯无锚点方法的开发者。极其轻量级的
YOLOXnano使其适用于旧版 Android 设备, 边缘计算以及参数数量是绝对瓶颈的极度受限的物联网传感器。
Ultralytics 优势:YOLO26 登场
尽管DAMO-YOLO和YOLOX代表了卓越的里程碑,但如今的开发者需要更全面、更通用、更易用的解决方案。这正是Ultralytics平台和新发布的Ultralytics YOLO26大放异彩的地方。
YOLO26于2026年1月发布,是所有计算机视觉任务的终极推荐模型。它引入了一系列突破,超越了旧有架构:
- 端到端免NMS设计:YOLO26原生消除了非极大值抑制(NMS)后处理。这使得部署显著更简单、更快速,避免了传统检测头固有的延迟瓶颈。
- CPU 推理速度提升高达 43%:通过策略性地移除分布焦点损失 (DFL) 并优化网络层,YOLO26 在 CPU 和边缘硬件上提供了无与伦比的速度。
- MuSGD 优化器:受大型语言模型(LLM)训练技术的启发,YOLO26引入了MuSGD优化器(SGD和Muon的混合),与YOLOX中的传统设置相比,实现了高度稳定的训练过程和更快的收敛。
- ProgLoss + STAL: 这些先进的损失函数在小目标识别方面取得了显著改进,使YOLO26在无人机影像和机器人技术方面具有显著优势。
- 多功能性:与DAMO-YOLO严格专注于目标detect不同,YOLO26在同一维护良好的生态系统内原生无缝处理实例segment、姿势估计、分类和旋转框检测(obb)。
Ultralytics的易用性
Ultralytics python API 简化了开发人员体验。训练最先进的 YOLO26 模型所需的样板代码大大减少,并避免了 DAMO-YOLO 复杂的蒸馏管道。此外,与基于 Transformer 的大型模型相比,Ultralytics 模型在训练期间的 CUDA 内存需求极低。
from ultralytics import YOLO
# Load the latest Ultralytics YOLO26 nano model
model = YOLO("yolo26n.pt")
# Train the model on your custom dataset with one line of code
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run fast, NMS-free inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Export to ONNX or TensorRT seamlessly
model.export(format="onnx")
云端训练与部署
您可以使用 Ultralytics Platform 自动标注、训练并将模型部署到边缘设备,该平台为您处理所有数据版本控制和云 GPU 资源调配。
结论
在 DAMO-YOLO 和 YOLOX 之间进行选择取决于具体的限制:DAMO-YOLO 通过 NAS 在特定 GPU 上提供卓越的速度-准确率比,而 YOLOX 提供了一种简洁、无锚点的设计,非常适合轻量级边缘场景。
然而,对于寻求具有活跃社区的现代化、面向未来的解决方案的团队而言,Ultralytics YOLO26 架构是明确的选择。其免NMS设计、快速CPU推理以及用于detect、segment和姿势估计任务的统一API,使其在从研究到稳健的实际生产的平稳过渡方面无与伦比。
对于有兴趣探索其他现代架构的开发者,我们还建议查阅Ultralytics YOLO11或RT-DETR等基于Transformer的模型,这些模型在全面的Ultralytics文档中均有提供。