YOLOv9 与YOLOv9:技术比较
在飞速发展的计算机视觉领域,选择最佳的物体检测模型是一项至关重要的决策,会影响到从系统延迟到检测精度的方方面面。本综合指南对阿里巴巴集团的高速检测器YOLO 和YOLOv9 进行了技术比较。 YOLOv9之间的技术比较。我们将分析它们的架构创新、性能指标和理想用例,帮助开发人员和研究人员做出明智的选择。
虽然这两款机型都比前一代机型有很大改进、 YOLOv9尤其是在Ultralytics 生态系统中使用时,它将最先进的准确性、开发人员友好型工具和多功能部署选项完美地结合在一起。
DAMO-YOLO:通过神经架构搜索进行速度导向设计
YOLO 是阿里巴巴开发的对象检测框架,采用 "一次性 "方法设计。它优先考虑低延迟和高吞吐量,因此是对特定硬件速度有严格要求的工业应用的有力竞争者。
作者:徐先哲、蒋一琪、陈伟华、黄一伦、张远、孙秀玉Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang, and Xiuyu Sun
Organization:Alibaba Group
Date:2022-11-23
Arxiv:https://arxiv.org/abs/2211.15444
GitHub:YOLO
建筑创新
YOLO 通过自动化设计流程和高效组件脱颖而出:
- 神经架构搜索(NAS): YOLO 不需要手动设计骨干网,而是利用神经架构搜索(NAS)来发现适合不同计算预算的高效结构(TinyNAS)。
- RepGFPN Neck:它引入了广义特征金字塔网络(GFPN)的高效变体,称为 RepGFPN。该组件优化了特征融合并支持重新参数化,从而提高了推理速度。
- ZeroHead:该模型采用了轻量级的 "ZeroHead "探测头,减少了通常与复杂探测头相关的计算开销。
- AlignedOTA:为了提高训练的稳定性和准确性,它使用了 AlignedOTA,这是一种标签分配策略,可以解决分类和回归任务之间的错位问题。
优势与局限
YOLO 的主要优势在于其推理速度。该架构针对GPU 的高吞吐量进行了大量优化,因此适用于对处理量要求极高的视频分析管道。此外,蒸馏技术的使用也提高了较小模型的性能。
然而,DAMO-YOLO 面临着生态系统成熟度方面的挑战。与用于Ultralytics 模型的强大工具相比,用户可能会发现用于部署、格式转换和社区支持的资源较少。它的任务通用性一般也仅限于对象检测,而现代框架通常都支持原生的分割和姿势估计 。
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 方法可确保资源的最佳利用。与transformer检测器相比,YOLOv9 在训练过程中需要的CUDA 内存通常更少,因此可以在更多硬件上使用。
- 多功能性:虽然YOLOv9 的核心论文侧重于检测,但Ultralytics 框架有助于将这些架构扩展到其他任务,并确保无缝导出为以下格式 ONNX, TensorRT和 OpenVINO.
性能分析:准确性与效率
下面的比较突出了YOLO 和YOLOv9 之间的权衡。虽然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 的mAP (46.8)高于 DAMO-YOLOs 的mAP (46.0),而使用的参数(7.1M 对 16.3M)却不到 DAMO-YOLOs 的一半。这使得YOLOv9 对存储更友好,也更易于对边缘人工智能设备进行无线更新。
- 最高精度:最大的YOLOv9 变体(c 和 e)的精度远远超过了YOLO 的极限,达到了 55.6mAP。
- 速度:虽然YOLO 在中等模型的原始TensorRT 延迟方面略胜一筹,但 YOLOv9t 的速度极快(2.3 毫秒),是实时移动应用的理想之选。
训练方法与可用性
这两种模式的培训体验大相径庭。YOLO 对 NAS 的依赖意味着需要一个复杂的搜索阶段来推导结构,或者使用预先搜索过的骨干网。如果需要定制骨干网结构,其 "一劳永逸 "的方法可能会造成昂贵的计算成本。
相比之下,Ultralytics 支持的YOLOv9 提供了简化的训练模式。用户只需进行最少的配置,就可以在开放图像 V7等自定义数据集或专业集合上对模型进行微调。与Ultralytics HUB集成后,可实现基于云的训练、可视化和一键式部署,从而使高级人工智能的使用平民化,而无需深厚的 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")
理想用例
何时选择YOLO
- 大规模视频处理:如果您要在特定服务器 GPU 上处理成千上万的视频流,每毫秒的延迟都能节省大量基础设施成本,那么YOLO 对高吞吐量的优化可能会让您受益匪浅。
- 固定硬件限制:在硬件已知且静态的情况下,可选择 NAS 衍生架构来完美填补可用的计算预算。
何时选择YOLOv9
- 通用计算机视觉:对于大多数从事机器人、安全或零售分析工作的开发人员来说,YOLOv9 在准确性和易用性之间实现了最佳平衡。
- 边缘部署:由于其卓越的参数效率(如 YOLOv9s),它更适合 Raspberry Pi 或NVIDIA Jetson 等受限设备,从而为其他应用留出更多空间。
- 研发: PGI 架构为进一步研究深度学习效率提供了令人着迷的基础。
- 需要成熟的生态系统:如果您的项目需要可靠的跟踪、轻松导出到CoreML 或TFLite 以及活跃的社区支持,那么围绕YOLOv9 的Ultralytics 生态系统将是无与伦比的。
结论
YOLO 和YOLOv9 都展示了物体检测领域的快速创新。YOLO 证明了神经架构搜索在最大限度地提高速度性能方面的价值。然而 YOLOv9对于大多数用户来说是功能更全面、更强大的解决方案。
YOLOv9 利用 PGI 解决了深度监控信息瓶颈问题,并利用 GELAN 优化了图层,从而以出色的效率提供了最先进的精度。与Ultralytics 生态系统相结合,它提供了一个强大、维护良好、用户友好的平台,加快了从概念到部署的过程。对于希望构建尖端视觉应用的开发人员来说,Ultralytics YOLO 模型仍然是最佳选择。
探索其他模型
如果您有兴趣了解Ultralytics 系列中的其他先进产品,或者想进一步比较,请参考以下资源:
- Ultralytics YOLO11- 适用于多种视觉任务的最新 SOTA 型号。
- YOLOv8 vs. DAMO-YOLO
- RT-DETR vs. DAMO-YOLO
- YOLOv10 vs.YOLO
- YOLOX 与 DAMO-YOLO 对比