YOLOv9 与 RTDETRv2:物体检测技术比较
选择合适的物体检测架构是计算机视觉开发中的关键决策,通常需要开发人员在精度、推理延迟和计算开销之间权衡利弊。本分析对 YOLOv9 和 YOLOv8 进行了全面的技术比较。 YOLOv9和RTDETRv2 进行了全面的技术比较,YOLOv9 是一种基于 CNN 的架构,针对效率进行了优化,而RTDETRv2 则是一种transformer模型,专为高保真检测而设计。
YOLOv9:重新定义 CNN 效率
YOLOv9YOLO 是 "你只看一次YOLO)系列的重大演进,重点解决了深度神经网络固有的信息瓶颈问题。通过引入新颖的架构概念,它实现了最先进的性能,同时保持了YOLO 系列轻量级的特点。
- 作者: Chien-Yao Wang, Hong-Yuan Mark Liao
- 组织机构台湾中央研究院资讯科学研究所
- 日期: 2024-02-21
- Arxiv:arXiv:2402.13616
- GitHub:WongKinYiu/yolov9
- 文档:Ultralytics YOLOv9 文档
核心架构
YOLOv9 引入了两项主要创新:可编程梯度信息 (PGI)和广义高效层聚合网络 (GELAN )。PGI 解决了数据信息在深层传播时丢失的问题,确保为模型更新保留可靠的梯度信息。GELAN 优化了参数利用率,与传统的卷积架构相比,它允许模型以更少的浮点运算 (FLOP) 达到更高的精度。
Ultralytics 生态系统集成
YOLOv9 已完全集成到Ultralytics 生态系统中,为开发人员提供了无缝访问培训、验证和部署工具的途径。这种集成确保用户可以利用与 YOLO11和 YOLOv8大大降低了高级计算机视觉任务的入门门槛。
RTDETRv2:Transformer 挑战者
RTDETRv2以实时检测Transformer RT-DETR)的成功为基础,对基线进行了改进,以提高动态规模处理能力和训练稳定性。作为一种transformer模型,它利用自我注意机制来捕捉全局背景,这对于在复杂场景中区分物体非常有利。
- 作者: Wenyu Lv、Yian Zhao、Qinyao Chang、Kui Huang、Guanzhong Wang 和 Yi Liu
- 组织机构:百度
- 日期:2024-07-24
- Arxiv:arXiv:2407.17140
- GitHub:RT-DETR GitHub 仓库
核心架构
与在局部斑块中处理图像的 CNN 不同,RTDETRv2 利用transformer 骨干来处理图像特征。这种方法能让模型理解图像远处部分之间的关系,从而提高在杂乱环境中的准确性。不过,这种全局关注机制通常会带来较高的内存和计算成本,尤其是在训练过程中。
性能对比
以下数据突出显示了COCO 数据集上各种规模模型的性能指标。比较的重点是平均精度mAP)、推理速度和计算复杂度。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| RTDETRv2-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
指标分析
- 峰值精度: YOLOv9e 模型实现了55.6% 的显著 mAP,超过了最大的 RTDETRv2-x 模型(54.3%mAP)。这表明,YOLOv9 在架构上的创新有效缩小了 CNN 和 Transformers 之间的差距,甚至在最高精度上超过了它们。
- 效率: YOLOv9 始终能提供更高的单位参数性能。例如,YOLOv9c 只需25.3M 参数和102.1B FLOPs 即可达到 53.0%mAP ,而同类的 RTDETRv2-l 需要42M 参数和136B FLOPs才能达到 53.4%mAP。这种效率使YOLOv9 的存储和执行速度大大提高。
- 推理速度:在实时应用中,速度至关重要。较小的YOLOv9 变体(如 YOLOv9t)具有极低的延迟(在TensorRT 上为 2.3 毫秒),非常适合 RTDETRv2 模型可能过于繁重的边缘人工智能部署。
培训效率和生态系统
对开发人员来说,最关键的因素之一是在自定义数据集上训练模型的难易程度和微调模型所需的资源。
内存要求
由于自我注意机制的二次方复杂性,RTDETRv2 等Transformer的模型在训练过程中的内存消耗之高是出了名的。这通常需要配备大量 VRAM 的高端企业 GPU。与此形成鲜明对比的是 YOLOv9保持了 CNN 的内存效率,允许在消费级硬件上进行训练。这种较低的入门门槛使最先进的物体检测技术平民化。
Ultralytics 的优势
在Ultralytics 生态系统中选择一个模型,不仅能获得原始性能指标,还能获得其他明显优势:
- 易用性: Ultralytics Python API 将复杂的训练循环抽象为几行代码。
- 维护良好的生态系统:频繁更新确保与最新PyTorch 版本、导出格式ONNX、TensorRT、CoreML)和硬件驱动程序兼容。
- 多功能性:RTDETRv2 主要是一种物体检测器,而Ultralytics 框架则支持各种任务,包括实例分割、姿势估计 以及跨模型系列的定向边界框(旋转框检测)检测。
代码示例
使用Ultralytics 软件包训练YOLOv9 非常简单。下面的代码片段演示了如何加载预训练模型并在自定义数据集上进行训练:
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")
# Train the model on a custom dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
出口能力
Ultralytics 模型可以轻松导出为各种格式,以便部署。例如,导出到ONNX ,以获得更广泛的兼容性:
model.export(format="onnx")
理想用例
何时选择YOLOv9
YOLOv9 是大多数计算机视觉应用的推荐选择,尤其是在需要兼顾速度、精度和资源效率的情况下。
- 边缘部署: NVIDIA Jetson 或 Raspberry Pi 等设备可从YOLOv9 较低的 FLOPs 和参数数量中获益。
- 实时视频分析:安全传输和交通监控系统需要YOLOv9 提供的高帧频。
- 资源有限的训练:无法使用大规模GPU 集群的团队仍可对最先进的模型进行微调。
何时考虑 RTDETRv2
RTDETRv2 适用于以下小众场景:
- 全局背景至关重要:高度遮挡的场景,或需要从远处像素获取背景信息才能进行分类的场景。
- 硬件无限:在服务器级 GPU 上部署,内存和计算限制可忽略不计。
- 无锚首选项:研究人员特别希望尝试transformer纯transformer无锚架构。
结论
虽然 RTDETRv2 展示了变换器在物体检测方面的潜力,但对于大多数开发人员和研究人员来说,YOLOv9 是更优越的实用选择。它具有更高的峰值精度(55.6%mAP)、更高的效率、更低的内存使用率和更快的推理速度。结合Ultralytics 生态系统提供的强大支持、广泛的文档和易用性,YOLOv9 提供了一条从原型到生产的更简化路径。
如果您想了解计算机视觉技术的最新发展,我们还建议您浏览 YOLO11,它将速度和准确性的极限进一步推向了极致。
探索其他模型
- YOLO11:YOLO 系列的最新进化版,针对各种任务进行了优化,包括分割和姿势估计 。
- YOLOv8:一款广受欢迎的多功能机型,以其可靠性和广泛的社区支持而著称。
- RT-DETR:探索Ultralytics 框架内原始实时检测Transformer 的实现。