DAMO-YOLO 与 YOLOv10:高效实时目标检测的演进
计算机视觉领域见证了实时 目标检测 架构的飞速发展。在对比 DAMO-YOLO 和 YOLOv10 时,我们可以观察到两种截然不同的模型设计哲学:自动化架构搜索与端到端无 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 计算 时间。
YOLOv10:端到端目标检测的先驱
YOLOv10 在一年半后发布,通过完全消除推理过程中对非极大值抑制 (NMS) 的需求,引发了一场范式转移。
- 作者: Ao Wang, Hui Chen, Lihao Liu 等。
- 所属机构: 清华大学
- 日期: 2024 年 5 月 23 日
- Arxiv: 2405.14458
- 文档: Ultralytics YOLOv10
架构亮点
YOLOv10 的突出特点是其用于无 NMS 训练的 一致性双重分配。传统的检测器会为单个对象预测多个重叠的边界框,需要 NMS 来过滤重复项。这种后处理步骤会造成瓶颈,尤其是在边缘设备上。YOLOv10 通过允许模型自然地为每个对象预测一个准确的边界框来解决这个问题。
作者还专注于整体效率与准确性驱动的模型设计。通过仔细分析现有架构中的计算冗余,他们优化了主干和检测头,以减少 FLOPs 和参数数量。这种轻量级设计确保了 YOLOv10 在导出到 TensorRT 或 OpenVINO 等格式时,能够提供卓越的推理延迟。
性能与基准测试
下表展示了 COCO 数据集 上的原始性能指标。每列中表现最好的数值已用 粗体 标出。
| 模型 | 尺寸 (像素) | 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 始终提供更低的延迟和显著更小的 模型权重。例如,YOLOv10s 的 mAP (46.7%) 比 DAMO-YOLOs (46.0%) 略高,但参数量却不到后者的一半(7.2M 对比 16.3M)。更低的 内存需求 使 YOLOv10 成为嵌入式系统的一个极其通用的选择。
训练效率与易用性
从学术研究转向生产环境时,易用性至关重要。DAMO-YOLO 的多阶段蒸馏过程和复杂的 NAS 配置可能会为工程团队带来陡峭的学习曲线。
Conversely, YOLOv10 benefits immensely from being fully integrated into the Ultralytics Python SDK. Training a custom model involves minimal boilerplate code. Ultralytics handles data augmentation, hyperparameter tuning, and experiment tracking automatically.
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 架构保证了确定性和可预测的延迟,这对于 自动驾驶 中的安全系统至关重要。
- Industrial Automation (YOLOv10): Detecting defects on fast-moving assembly lines requires models that maximize real-time inference speeds without consuming vast VRAM, making YOLOv10 a prime candidate for edge deployment.
用例与建议
在 DAMO-YOLO 和 YOLOv10 之间做出选择,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 DAMO-YOLO
DAMO-YOLO 是以下场景的有力选择:
- 高吞吐量视频分析: 在固定 NVIDIA GPU 基础设施上处理高 FPS 视频流,其中 batch-1 吞吐量是主要指标。
- 工业制造生产线: 专用硬件上具有严格 GPU 延迟约束的场景,例如装配线上的实时质量检测。
- 神经架构搜索研究: 研究自动化架构搜索(MAE-NAS)和高效重参数化骨干网络对检测性能的影响。
何时选择 YOLOv10
建议在以下场景中使用 YOLOv10:
- 无需 NMS 的实时检测: 得益于端到端检测且无需非极大值抑制,从而降低了部署复杂性的应用。
- 平衡的速度-精度权衡: 需要在不同模型规模下实现推理速度与检测精度之间良好平衡的项目。
- Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.
何时选择 Ultralytics (YOLO26)
对于大多数新项目,Ultralytics YOLO26 提供了性能与开发者体验的最佳结合:
- 无需 NMS 的边缘部署: 需要持续、低延迟推理且无需复杂非极大值抑制后处理的应用。
- 仅 CPU 环境: 在没有专用 GPU 加速的设备上,YOLO26 的 CPU 推理速度提升高达 43%,这提供了决定性优势。
- 小目标检测: 具有挑战性的场景,如 航拍无人机图像 或 IoT 传感器分析,ProgLoss 和 STAL 在小目标上显著提升了准确性。
下一代:隆重推出 Ultralytics YOLO26
尽管 YOLOv10 为无 NMS 检测奠定了基础,但该技术已经飞速发展。对于现代应用程序,Ultralytics YOLO26 模型提供了无与伦比的性能和可用性,它汲取了前几代的精华,并针对生产环境进行了精炼。
YOLO26 features a strictly natively end-to-end design, eliminating NMS post-processing for simpler deployment pipelines across edge devices. Furthermore, the removal of Distribution Focal Loss (DFL) has dramatically improved compatibility with low-power edge AI hardware.
在训练方面,YOLO26 引入了 MuSGD 优化器,这是一种受大语言模型 (LLM) 训练技术启发的混合优化器。这确保了更稳定的训练和更快的收敛速度。结合 ProgLoss + STAL 损失函数,YOLO26 在小目标识别方面表现出显著的改进,这是 野生动物保护 和 无人机操作 的关键功能。
至关重要的是,YOLO26 不仅仅是一个目标检测器。它在各个方面都提供了针对特定任务的改进,原生支持 实例分割、使用残差对数似然估计 (RLE) 的 姿态估计,以及针对 旋转边界框 (OBB) 的专门角度损失。凭借比前代产品快达 43% 的 CPU 推理速度,它是敏捷工程团队的最终选择。
对于 YOLO26 模型的集中化管理、标注和云训练,Ultralytics 平台 提供了一个直观的界面,简化了整个计算机视觉生命周期。
对探索其他近期进展感兴趣的开发者,也可以评估 Ultralytics YOLO11 或基于 Transformer 的 RT-DETR 框架,以应对需要不同架构解决方案的场景。