DAMO-YOLO 与 YOLOv10#
计算机视觉领域见证了实时object detection架构的迅猛演变。在对比 DAMO-YOLO 和 YOLOv10 时,我们发现模型设计中有两种截然不同的理念:自动化架构搜索与端到端免 NMS 优化。虽然两者都将准确率和速度推向了极限,但它们的底层结构和理想用例存在显着差异。
DAMO-YOLO:大规模神经架构搜索#
由Alibaba Group开发的 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(Reparameterized Generalized Feature Pyramid Network)。这种重型颈部(heavy-neck)设计特别擅长提取复杂的空间层次结构,使其在aerial imagery analysis等场景中非常有用。此外,DAMO-YOLO 引入了 ZeroHead,这是一个精简的检测头,大幅降低了最终预测层的复杂度,并在训练过程中依赖强大的蒸馏增强过程。
DAMO-YOLO 通常采用多阶段知识蒸馏过程。它需要训练一个较重的“教师”模型来指导较小的“学生”模型,这能提取出更高的mAP (mean Average Precision),但会显着增加所需的GPU compute时间。
YOLOv10:端到端目标检测的先行者#
YOLOv10 于一年半后发布,通过在推理过程中完全消除对非极大值抑制 (NMS) 的需求,引入了一次范式转变。
- 作者: Ao Wang, Hui Chen, Lihao Liu 等
- 机构: Tsinghua University
- 日期: 2024 年 5 月 23 日
- Arxiv: 2405.14458
- 文档:Ultralytics YOLOv10
架构亮点#
YOLOv10 的突出特点是其用于无 NMS 训练的一致性双重分配机制。传统检测器会为同一个物体预测多个重叠的边界框,需要 NMS 来过滤重复项。这种后处理步骤会造成瓶颈,尤其是在边缘设备上。YOLOv10 通过允许模型自然地为每个对象预测单个准确的边界框来解决这个问题。
作者还专注于整体效率与准确率驱动的模型设计。通过仔细分析现有架构中的计算冗余,他们优化了主干网络和检测头,以减少FLOPs和参数数量。这种轻量级设计确保了 YOLOv10 在导出为TensorRT或OpenVINO等格式时能够提供出色的推理延迟。
性能与基准测试#
下表展示了在COCO dataset上的原始性能指标。每列中的最佳整体值均以粗体显示。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 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 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
虽然 DAMO-YOLO 在准确率方面不落下风,但 YOLOv10 始终能提供更低的延迟和显着更小的model weights。例如,YOLOv10s 的 mAP(46.7%)略高于 DAMO-YOLOs(46.0%),而参数量却不到其一半(7.2M 对 16.3M)。较低的memory requirements使 YOLOv10 成为嵌入式系统极其多样的选择。
训练效率与可用性#
从学术研究转向生产环境时,易用性至关重要。DAMO-YOLO 的多阶段蒸馏过程和复杂的 NAS 配置可能会给工程团队带来陡峭的学习曲线。
相反,YOLOv10 深度集成到Ultralytics Python SDK中,从而获得了巨大的优势。训练自定义模型只需极少量的样板代码。Ultralytics 会自动处理data augmentation、hyperparameter tuning和experiment tracking。
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 生态系统,开发者只需几行代码即可从原型过渡到完全exported ONNX model,从而绕过了旧框架所需的复杂环境设置。
实际应用场景#
- 智能零售(DAMO-YOLO): DAMO-YOLO 的准确率非常适合分析customer behavior的高密度服务器环境,在这些环境中 GPU 资源充足且实时的 NMS 瓶颈易于管理。
- 自动驾驶(YOLOv10): 免 NMS 架构可确保确定性、可预测的延迟,这对于autonomous driving中的安全系统至关重要。
- 工业自动化(YOLOv10): 在高速移动的装配线上检测缺陷需要最大化real-time inference速度且不消耗大量 VRAM 的模型,这使得 YOLOv10 成为边缘部署的极佳候选者。
应用场景与建议#
在 DAMO-YOLO 和 YOLOv10 之间进行选择,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 DAMO-YOLO#
DAMO-YOLO 是以下场景的理想选择:
- 高吞吐量视频分析: 在固定的 NVIDIA GPU 基础设施上处理高 FPS 视频流,其中 batch-1 吞吐量是主要指标。
- 工业生产线: 在专用硬件上对 GPU 延迟有严格限制的场景,例如生产线上的实时质量检查。
- 神经架构搜索研究: 研究自动化架构搜索 (MAE-NAS) 和高效重参数化骨干网络对检测性能的影响。
何时选择 YOLOv10#
推荐使用 YOLOv10 的情况:
- 无需 NMS 的实时检测: 得益于无需非极大值抑制(Non-Maximum Suppression)的端到端检测,能够降低部署复杂性的应用。
- 平衡的速度与精度权衡: 需要在推理速度和检测精度之间取得良好平衡的各类项目,适用于多种模型规模。
- 一致延迟的应用: 预测推理时间至关重要的部署场景,例如机器人技术或自主系统。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26 提供了性能与开发者体验的最佳结合:
- 无 NMS 的边缘部署: 需要一致、低延迟推理且无需复杂非极大值抑制后处理的应用。
- 仅 CPU 环境: 没有专用 GPU 加速的设备,YOLO26 带来的高达 43% 的 CPU 推理提速可提供决定性优势。
- 小目标检测: 诸如航拍无人机图像或物联网传感器分析等具有挑战性的场景,其中 ProgLoss 和 STAL 显著提高了微小目标的准确率。
下一代:进入 Ultralytics YOLO26#
虽然 YOLOv10 为无 NMS 检测奠定了基础,但技术在快速演进。对于现代应用,Ultralytics YOLO26 模型提供了无与伦比的性能和可用性,汲取了前几代的精华并针对生产环境进行了优化。
YOLO26 采用严格的原生端到端设计,消除了 NMS 后处理,从而简化了整个边缘设备的部署管道。此外,移除 Distribution Focal Loss (DFL) 极大地提高了与低功耗edge AI硬件的兼容性。
在训练方面,YOLO26 引入了 MuSGD Optimizer,这是一种受大语言模型 (LLM) 训练技术启发而来的混合优化器。这确保了更稳定的训练和更快的收敛。结合 ProgLoss + STAL 损失函数,YOLO26 在小目标识别方面表现出显着的改进,这是wildlife conservation和drone operations的关键功能。
至关重要的是,YOLO26 不仅仅是一个目标检测器。它在整体上提供特定于任务的改进,原生支持Instance Segmentation、使用残差对数似然估计 (RLE) 的Pose Estimation,以及针对Oriented Bounding Boxes (OBB)的专门角度损失。它的 CPU 推理速度比前代产品快高达 43%,是敏捷工程团队的绝对首选。
对于集中式管理、标注和 YOLO26 模型的云端训练,Ultralytics Platform提供了一个直观的界面,简化了整个计算机视觉生命周期。
有兴趣探索其他最新进展的开发者也可以评估Ultralytics YOLO11或基于 transformer 的RT-DETR框架,以满足需要独特架构解决方案的场景。