DAMO-YOLO 对比 YOLOv9:一项技术比较
在飞速发展的计算机视觉领域,选择最佳的物体检测模型是一项至关重要的决策,会影响到从系统延迟到检测精度的方方面面。本综合指南对阿里巴巴集团的高速检测器YOLO 和YOLOv9 进行了技术比较。 YOLOv9之间的技术比较。我们将分析它们的架构创新、性能指标和理想用例,帮助开发人员和研究人员做出明智的选择。
尽管这两个模型都比其前身有了显著改进,但 YOLOv9,尤其是在 Ultralytics 生态系统中利用时,提供了最先进的准确性、开发人员友好的工具和多功能部署选项的引人注目的融合。
DAMO-YOLO:通过神经网络架构搜索实现的速度导向设计
DAMO-YOLO 是阿里巴巴开发的一种目标检测框架,采用“一次性”方法设计。它优先考虑低延迟和高吞吐量,使其成为需要对特定硬件施加严格速度限制的工业应用的有力竞争者。
作者: 徐贤哲、蒋一奇、陈卫华、黄一伦、张远、孙秀宇
机构:阿里巴巴集团
日期: 2022-11-23
预印本:https://arxiv.org/abs/2211.15444
GitHub:https://github.com/tinyvision/DAMO-YOLO
架构创新
DAMO-YOLO 凭借自动化设计流程和高效组件而脱颖而出:
- 神经架构搜索 (NAS):DAMO-YOLO 没有手动设计骨干网络,而是利用神经架构搜索 (NAS) 来发现针对不同计算预算量身定制的有效结构 (TinyNAS)。
- RepGFPN 颈部:它引入了一种广义特征金字塔网络 (GFPN) 的高效变体,称为 RepGFPN。该组件优化了特征融合并支持重参数化,从而实现了更快的推理速度。
- ZeroHead: 该模型采用轻量级“ZeroHead” detect 头部,这减少了通常与复杂 detect 头部相关的计算开销。
- AlignedOTA: 为了提高训练稳定性和准确性,它使用 AlignedOTA,这是一种标签分配策略,可解决分类和回归任务之间的不匹配问题。
优势与局限性
DAMO-YOLO 的主要优势在于其推理速度。该架构针对高 GPU 吞吐量进行了大量优化,使其适用于处理量至关重要的视频分析流水线。此外,蒸馏技术的使用增强了其较小模型的性能。
然而,DAMO-YOLO在生态系统成熟度方面面临挑战。与Ultralytics模型可用的强大工具相比,用户可能会发现部署、格式转换和社区支持方面的资源较少。其任务多功能性通常也仅限于目标detect,而现代框架通常原生支持segmentation和姿势估计。
YOLOv9:用于实现最高效率的可编程梯度
YOLOv9通过解决深度神经网络中信息丢失的根本问题,代表着实时目标检测领域的范式转变。通过确保关键数据在整个网络深度中得以保留,YOLOv9以卓越的参数效率实现了更高的精度。
作者:王建尧、廖鸿源Chien-Yao Wang, Hong-Yuan Mark Liao
组织:台湾中央研究院信息科学研究所
日期:2024-02-21
Arxiv:https://arxiv.org/abs/2402.13616
GitHub:https://github.com/WongKinYiu/yolov9
Documentation:ultralytics
核心架构:PGI 和 GELAN
YOLOv9引入了两项使其脱颖而出的开创性技术:
- 可编程梯度信息 (PGI):深度网络常受信息瓶颈困扰,即输入数据在通过各层时会丢失。PGI 提供了一个辅助监督分支,生成可靠的梯度,确保深层接收完整信息以进行准确的权重更新。
- 广义高效层聚合网络 (GELAN):这种新颖的架构结合了 CSPNet 和 ELAN 的优势。GELAN 旨在最大限度地提高参数利用率,提供了一个既轻量级又功能强大的模型。
为什么PGI很重要
在传统的深度学习模型中,输出层的损失函数通常缺乏足够的信息来有效指导浅层更新。PGI充当桥梁,保留输入信息并确保整个网络学习到鲁棒的特征,从而实现更好的收敛和更高的准确性。
Ultralytics 优势
在 Ultralytics 生态系统中使用 YOLOv9 时,开发者将获得相较于独立实现的显著优势:
- 易用性:Ultralytics Python API 和 CLI 将复杂的训练流程抽象为简单的命令。
- 训练效率:Ultralytics 方法确保了最佳的资源利用。YOLOv9 在训练期间通常比基于 Transformer 的检测器需要更少的CUDA 内存,使其可在更广泛的硬件上使用。
- 多功能性:尽管 YOLOv9 核心论文侧重于 detect,但 Ultralytics 框架促进了这些架构向其他任务的扩展,并确保无缝导出到 ONNX、TensorRT 和 OpenVINO 等格式。
性能分析:准确性与效率
以下比较突出了 DAMO-YOLO 和 YOLOv9 之间的权衡。尽管 DAMO-YOLO 在特定硬件上提供了具有竞争力的速度,YOLOv9 始终以更少的参数提供更高的 平均精度均值 (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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
主要收获:
- 参数效率:YOLOv9s实现了比DAMO-YOLOs更高的mAP(46.8 vs 46.0),同时参数量不到其一半(7.1M vs 16.3M)。这使得YOLOv9更节省存储空间,并且更容易通过无线方式为边缘AI设备进行更新。
- 顶尖精度:最大的 YOLOv9 变体(c 和 e)将精度边界推至远超 DAMO-YOLO 的极限,达到 55.6 mAP。
- 速度: 尽管DAMO-YOLO在中等模型上在原始TensorRT延迟方面略有优势,但YOLOv9t速度极快 (2.3 ms),使其成为实时移动应用的理想选择。
训练方法与可用性
两种模型的训练体验差异显著。DAMO-YOLO 对 NAS 的依赖意味着需要复杂的搜索阶段来推导架构,或者使用预先搜索的骨干网络。如果需要定制骨干网络结构,其“一劳永逸”的方法可能会带来高昂的计算成本。
相比之下,由 Ultralytics 支持的 YOLOv9 提供了精简的 训练模式。用户可以通过最少的配置,在 Open Images V7 等自定义数据集或专业集合上微调模型。与 Ultralytics HUB 的集成支持云端训练、可视化和一键部署,从而普及了对高级 AI 的访问,而无需在 NAS 或超参数调优方面拥有深厚专业知识。
代码示例:训练 YOLOv9
使用 Ultralytics Python 包实现 YOLOv9 非常简单。
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
理想用例
何时选择 DAMO-YOLO
- 大规模视频处理: 如果您在特定服务器 GPU 上处理数千个视频流,其中每毫秒的延迟都意味着巨大的基础设施成本节省,那么 DAMO-YOLO 对高吞吐量的优化可能会带来益处。
- 固定硬件约束:对于硬件已知且静态的场景,可以选择基于NAS的架构来完美满足可用的计算预算。
何时选择 YOLOv9
- 通用计算机视觉:对于大多数从事机器人、安防或零售分析的开发人员,YOLOv9 提供了准确性和易用性的最佳平衡。
- 边缘部署: 由于其卓越的参数效率(例如 YOLOv9s),它更适合 Raspberry Pi 或 NVIDIA Jetson 等资源受限设备,为其他应用留下了更多空间。
- 研究与开发:PGI 架构为进一步研究深度学习效率提供了一个引人入胜的基础。
- 需要成熟的生态系统:如果您的项目需要可靠的track、轻松导出到 CoreML 或 TFLite,以及活跃的社区支持,那么围绕 YOLOv9 的 Ultralytics 生态系统是无与伦比的。
结论
DAMO-YOLO 和 YOLOv9 都展示了目标检测领域的快速创新。DAMO-YOLO 证明了神经架构搜索在榨取最大速度性能方面的价值。然而,YOLOv9 对大多数用户而言,是更通用、更强大的解决方案。
通过 PGI 解决深度监督信息瓶颈并使用 GELAN 优化层,YOLOv9 实现了 卓越的效率和最先进的准确性。当与 Ultralytics 生态系统结合时,它提供了一个强大、维护良好且用户友好的平台,加速了从概念到部署的进程。对于希望自信地构建尖端视觉应用的开发人员来说,Ultralytics YOLO 模型仍然是卓越的选择。
探索其他模型
如果您对探索 Ultralytics 系列中的其他最先进选项或进行进一步比较感兴趣,可以参考这些资源:
- Ultralytics YOLO11 - 适用于各种视觉任务的最新 SOTA 模型。
- YOLOv8 vs. DAMO-YOLO
- RT-DETR vs. DAMO-YOLO
- YOLOv10 对比 DAMO-YOLO
- YOLOX 与 DAMO-YOLO 对比