YOLOv10 与 DAMO-YOLO#
在构建现代计算机视觉流水线时,选择合适的实时目标检测架构至关重要。在这份全面的技术分析中,我们将探讨 YOLOv10 和 DAMO-YOLO 的架构、性能指标及理想应用场景。这两个模型都代表了目标检测能力的重大跃升,但它们采用了不同的架构路径来实现各自的目标。
无论你的项目需要部署在受限的边缘 AI硬件上,还是需要在云端 GPU 上实现最高精度,了解这些架构的细微差异都能帮助你做出明智的决策。
探索 YOLOv10#
YOLOv10 由清华大学的研究人员推出,通过引入原生端到端方法革新了 YOLO 系列,有效消除了后处理阶段对非极大值抑制(NMS)的需求。
YOLOv10 详情:
- 作者: Ao Wang、Hui Chen、Lihao Liu 等。
- 机构: 清华大学
- 日期: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: https://github.com/THU-MIG/yolov10
- Docs: https://docs.ultralytics.com/models/yolov10
核心架构特性#
YOLOv10 的主要创新是用于实现无 NMS 训练的 一致性双重分配策略。传统目标检测器高度依赖 NMS 来过滤重叠的边界框,这会引入不可预测的延迟,成为自动驾驶车辆和高速机器人等实时应用的重大瓶颈。YOLOv10 直接为每个目标预测一个最优边界框,从而实现可预测的超低延迟推理。
此外,该模型采用了整体效率-精度驱动设计。该架构优化了多个组件,包括轻量级分类头和空间-通道解耦下采样,大幅减少了计算冗余。最终得到的架构参数量更低、FLOPs 更少,同时保持了具有竞争力的平均精度(mAP)。
使用示例#
YOLOv10 深度集成于 Ultralytics 生态系统中,你可以通过 Ultralytics Python 软件包非常轻松地使用它。
from ultralytics import YOLO
# Load a pre-trained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a test image
results = model("https://ultralytics.com/images/bus.jpg")
# Export the model to TensorRT format
model.export(format="engine", quantize=16)探索 DAMO-YOLO#
DAMO-YOLO 由阿里巴巴集团开发,专注于通过自动化神经架构搜索(NAS)发现高效的网络结构,旨在推动速度与精度的帕累托前沿。
DAMO-YOLO 详情:
- 作者: Xianzhe Xu、Yiqi Jiang、Weihua Chen、Yilun Huang、Yuan Zhang 和 Xiuyu Sun
- 组织: Alibaba Group
- 日期: 2022-11-23
- Arxiv: https://arxiv.org/abs/2211.15444v2
- GitHub: https://github.com/tinyvision/DAMO-YOLO
核心架构特性#
DAMO-YOLO 引入了几项专为工业应用定制的新颖技术。该模型的基础是其通过最大熵引导搜索生成的 MAE-NAS 骨干网络。这一自动化过程可发现严格遵守预定义计算预算的骨干网络结构,在准确率和推理延迟之间取得良好的平衡。
此外,该架构还采用了 Efficient RepGFPN 颈部结构。这个特征金字塔网络旨在改善不同尺度之间的特征融合,这对于航空影像分析等复杂任务至关重要,因为其中目标的尺寸差异可能非常大。作为补充,DAMO-YOLO 实现了 ZeroHead,这是一种极简检测头,可大幅降低最终预测层的复杂度,从而节省推理期间宝贵的计算时间。
性能对比#
评估目标检测架构时,在推理速度、参数效率和检测精度之间找到合适的权衡至关重要。下表比较了 YOLOv10 和 DAMO-YOLO 在各自模型规模下的性能。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数量 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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-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 |
从基准测试结果可以看出,YOLOv10 在 TensorRT 上始终展现出出色的延迟表现,尤其是 nano 版本。与 DAMO-YOLO 的可比模型相比,它所需的参数和 FLOPs 显著更少。虽然 DAMO-YOLO 的 tiny 版本具有较高的 mAP,但 YOLOv10 系列的参数效率和推理延迟为受限部署环境带来了明显优势。
使用场景与建议#
在 YOLOv10 和 DAMO-YOLO 之间进行选择取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 YOLOv10#
YOLOv10 适合:
- 无 NMS 实时检测: 适用于能够从无需非极大值抑制的端到端检测中受益的应用,可降低部署复杂性。
- 速度与准确率的平衡: 适用于需要在各种模型规模之间实现推理速度和检测准确率良好平衡的项目。
- 延迟稳定的应用: 适用于推理时间可预测至关重要的部署场景,例如机器人技术或自主系统。
何时选择 DAMO-YOLO#
以下场景推荐使用 DAMO-YOLO:
- 高吞吐量视频分析: 在固定的 NVIDIA GPU 基础设施上处理高 FPS 视频流,其中批量大小为 1 时的吞吐量是首要指标。
- 工业制造产线: 在专用硬件上具有严格 GPU 延迟约束的场景,例如装配线上的实时质量检测。
- 神经架构搜索研究: 研究自动化架构搜索(MAE-NAS)和高效重参数化骨干网络对检测性能的影响。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26 在性能和开发者体验之间提供了最佳组合:
- 无 NMS 边缘部署: 适用于需要稳定、低延迟推理,同时又不希望引入非极大值抑制后处理复杂性的应用。
- 仅使用 CPU 的环境: 适用于没有专用 GPU 加速的设备,此时 YOLO26 最高提升 43% 的 CPU 推理速度将带来决定性优势。
- 小目标检测: 适用于航空无人机影像或 IoT 传感器分析等具有挑战性的场景,在这些场景中,ProgLoss 和 STAL 能显著提升微小目标的准确率。
Ultralytics 的优势#
虽然这两个模型在技术上都令人印象深刻,但为生产环境选择架构时,需要考虑原始指标之外的因素。使用原生受 Ultralytics 生态系统支持的模型进行开发,能为开发者和研究人员带来无可比拟的优势。
易用性与维护良好的生态系统#
与经常面临弃维护风险的独立学术代码库不同,Ultralytics 提供了一个强大且持续维护的生态系统。为高度依赖 NAS 流程的模型配置复杂环境可能令人望而生畏。相比之下,Ultralytics 提供了标准化且直观的 Python API 和功能强大的 CLI,并由丰富的文档提供支持。这大幅缩短了定制视觉解决方案的上市时间。
训练效率与内存需求#
训练大型模型很快就会产生高昂的计算成本。Ultralytics YOLO 架构一直以训练和推理期间较低的 CUDA 内存占用而闻名。这种高效性使开发者能够在消费级硬件或经济高效的云实例上训练模型,而不会遇到使用基于 Transformer 的模型(如 RT-DETR)时常见的内存不足错误。
Ultralytics 原生集成了顶级 MLOps 工具。你可以通过与 Weights & Biases、Comet 或 ClearML 的集成,轻松跟踪模型训练进度,无需编写任何额外的样板代码。
跨任务的多功能性#
许多专用检测模型的一项重要局限是关注范围狭窄。在 Ultralytics 生态系统中,你不受限于目标检测这一项任务。这些工具可无缝扩展到多种计算机视觉任务,包括实例分割、图像分类、姿态估计和定向边界框(OBB)检测。
展望未来:YOLO26 的演进#
YOLOv10 开创了无 NMS 推理,DAMO-YOLO 展示了 NAS 的强大能力,但计算机视觉领域发展迅速。对于寻求最先进解决方案的开发者,我们建议了解 Ultralytics YOLO26。
作为 YOLO11 的正式后继版本,YOLO26 在 YOLOv10 奠定的无 NMS 基础上进一步发展,并将其显著推进。
YOLO26 的主要进展包括:
- **CPU 推理速度最高提升 43%:**针对边缘计算和低功耗设备进行了专门优化。
- **移除 DFL:**移除了 Distribution Focal Loss,从而确保导出更加简单,并增强对多种部署目标的兼容性。
- **MuSGD 优化器:**SGD 与 Muon 的混合优化器,将先进的 LLM 训练稳定性和更快的收敛速度直接引入计算机视觉。
- **ProgLoss + STAL:**大幅改进的损失函数,在小目标识别方面带来了显著提升,这对于农业和遥感等应用场景至关重要。
借助焕然一新的 Ultralytics Platform,开发者只需点击几下即可无缝标注、训练和部署 YOLO26 等新一代模型,确保你的计算机视觉流水线既处于技术前沿,又面向未来。