YOLOv10 与 DAMO-YOLO#
在构建现代 computer vision 管道时,选择正确的实时目标检测架构至关重要。在这篇全面的技术分析中,我们探讨了 YOLOv10 和 DAMO-YOLO 的架构、性能指标和理想用例。这两种模型都代表了目标检测能力的重大飞跃,但它们采用了不同的架构路径来实现目标。
无论你的项目是需要在受限的 edge AI 硬件上部署,还是需要云端 GPU 上的最高准确率,理解这些架构的细节都将帮助你做出明智的决定。
探索 YOLOv10#
由清华大学研究人员提出的 YOLOv10 引入了原生的端到端方法,彻底革新了 YOLO 家族,有效消除了后处理中对非极大值抑制(NMS)的需求。
YOLOv10 详情:
- 作者:Ao Wang, Hui Chen, Lihao Liu 等。
- 机构:Tsinghua University
- 日期:2024-05-23
- Arxiv:https://arxiv.org/abs/2405.14458
- GitHub:https://github.com/THU-MIG/yolov10
- 文档:https://docs.ultralytics.com/models/yolov10/
关键架构特征#
YOLOv10 的核心创新是用于无 NMS 训练的一致双重分配策略。传统的目标检测器严重依赖 NMS 来过滤重叠的边界框,这会引入不可预测的延迟——这是自动驾驶和高速机器人等实时应用的一个重大瓶颈。通过直接为每个目标预测单个最佳边界框,YOLOv10 实现了可预测且超低延迟的推理。
此外,该模型采用了一种 Holistic Efficiency-Accuracy Driven Design。该架构优化了各种组件,包括轻量级分类头和空间通道解耦下采样,这显着减少了计算冗余。这使得该架构在保持具有竞争力的 mean Average Precision (mAP) 的同时,拥有更低的参数量和更少的 FLOPs。
使用示例#
YOLOv10 深度集成到了 Ultralytics 生态系统中,通过 Ultralytics Python package 使用起来极其简单。
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 颈部。这个特征金字塔网络旨在改善不同尺度的特征融合,这对于诸如 aerial imagery analysis 这样目标大小差异巨大的复杂任务至关重要。为了补充这一点,DAMO-YOLO 实现了一个 ZeroHead,这是一个极简的检测头,大大降低了最终预测层的复杂性,在推理过程中节省了宝贵的计算时间。
性能比较#
在评估目标检测架构时,找到推理速度、参数效率和检测精度之间的正确权衡至关重要。下表比较了 YOLOv10 和 DAMO-YOLO 在各自模型规模下的性能。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | 参数量 (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 的实时检测: 得益于无需非极大值抑制(Non-Maximum Suppression)的端到端检测,能够降低部署复杂性的应用。
- 平衡的速度与精度权衡: 需要在推理速度和检测精度之间取得良好平衡的各类项目,适用于多种模型规模。
- 一致延迟的应用: 预测推理时间至关重要的部署场景,例如机器人技术或自主系统。
何时选择 DAMO-YOLO#
建议在以下场景使用 DAMO-YOLO:
- 高吞吐量视频分析: 在固定的 NVIDIA GPU 基础设施上处理高 FPS 视频流,其中 batch-1 吞吐量是主要指标。
- 工业生产线: 在专用硬件上对 GPU 延迟有严格限制的场景,例如生产线上的实时质量检查。
- 神经架构搜索研究: 研究自动化架构搜索 (MAE-NAS) 和高效重参数化骨干网络对检测性能的影响。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26 提供了性能与开发者体验的最佳结合:
- 无 NMS 的边缘部署: 需要一致、低延迟推理且无需复杂非极大值抑制后处理的应用。
- 仅 CPU 环境: 没有专用 GPU 加速的设备,YOLO26 带来的高达 43% 的 CPU 推理提速可提供决定性优势。
- 小目标检测: 诸如航拍无人机图像或物联网传感器分析等具有挑战性的场景,其中 ProgLoss 和 STAL 显著提高了微小目标的准确率。
Ultralytics 的优势#
虽然这两个模型在技术上都令人印象深刻,但为生产环境选择架构需要超越纯粹的指标。使用由 Ultralytics ecosystem 原生支持的模型,可以为开发者和研究人员提供无与伦比的优势。
易用性与维护良好的生态系统#
与经常面临废弃的独立学术仓库不同,Ultralytics 提供了一个强大且积极维护的生态系统。为严重依赖 NAS 管道的模型设置复杂的环境可能会令人望而生畏。相比之下,Ultralytics 提供了标准化、直观的 Python API 和强大的 CLI,并有丰富的 documentation 支持。这从根本上缩短了自定义视觉解决方案的上市时间。
训练效率和内存需求#
训练大型模型很快就会变得计算成本高昂。Ultralytics YOLO 架构历来以其在训练和推理期间的低 CUDA 内存占用而闻名。这种效率允许开发者在消费级硬件或性价比高的云实例上训练模型,而不会遇到使用诸如 RT-DETR 等基于 Transformer 的模型时常见的内存溢出错误。
Ultralytics 与顶级 MLOps 工具原生集成。你可以通过集成 Weights & Biases、Comet 或 ClearML,在零额外样板代码的情况下轻松跟踪模型训练进度。
任务的多功能性#
许多专业检测模型的一个重大局限性是它们的范围狭窄。在 Ultralytics 生态系统中,你不局限于单一的目标检测。这些工具无缝扩展到多种 computer vision tasks,包括 instance segmentation、image classification、pose estimation 和 oriented bounding box (OBB) detection。
展望未来: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: 大幅改进的损失函数,对小物体识别提供了显着的增强,这对于 agriculture 和遥感等用例至关重要。
通过利用新改版的 Ultralytics Platform,开发者只需点击几下即可无缝标注、训练和部署像 YOLO26 这样的下一代模型,确保你的计算机视觉管道既前沿又经得起未来考验。