YOLOv5 与 RTDETRv2:平衡实时速度和Transformer 精度
在快速发展的计算机视觉领域,选择正确的物体检测模型对于项目的成功至关重要。本综合技术比较研究了两种不同的方法: YOLOv5和RTDETRv2,前者是基于 CNN 的检测器,以其多功能性和速度著称;后者是transformer现代模型,注重高精度。
RTDETRv2 利用视觉转换器 (ViT)捕捉全局背景、 Ultralytics YOLOv5仍然是开发人员的首选,因为他们需要一个强大、可部署、资源开销低的解决方案。
型号规格和起源
在深入研究性能指标之前,有必要了解每种模型的背景和架构理念。
| 特点 | Ultralytics YOLOv5 | RTDETRv2 |
|---|---|---|
| 架构 | 基于 CNN(基于锚点) | 混合型(CNN 主干网 +Transformer |
| 主要重点 | 实时速度、多功能性、易用性 | 高精度、全球背景 |
| 作者 | 格伦-约切尔 | Wenyu Lv, Yian Zhao, et al. |
| 组织结构 | Ultralytics | 百度 |
| 发布日期 | 2020-06-26 | 2023-04-17 |
| 任务 | 检测、分段、分类 | 检测 |
建筑与设计理念
这些模型的根本区别在于它们如何处理视觉数据。
Ultralytics YOLOv5
YOLOv5 采用高度优化的卷积神经网络 (CNN)架构。它利用改进的 CSPDarknet 主干网和路径聚合网络 (PANet) 颈来提取特征图。
- 基于锚点:依靠预定义的锚点框来预测物体位置,从而简化了常见物体形状的学习过程。
- 效率:专为在各种硬件(从NVIDIA Jetson等边缘设备到标准 CPU)上实现最高推理速度而设计。
- 多功能性:在一个统一的框架内支持多种任务,包括实例分割和图像分类。
RTDETRv2
RTDETRv2(实时检测Transformer v2)代表了向transformer 架构的转变。
- 混合设计:将 CNN 骨干网与transformer 编码器-解码器相结合,利用自我关注机制处理对象关系。
- 全局背景: transformer 组件可让模型同时 "看到 "整个图像,从而提高在有遮挡的复杂场景中的性能。
- 计算成本:与纯粹基于 CNN 的解决方案相比,这种复杂的架构通常需要更多的GPU 内存和计算能力(FLOPs)。
性能分析
下表提供了关键性能指标的直接比较。在COCO 数据集上,RTDETRv2 显示出令人印象深刻的准确性mAP),而YOLOv5 则显示出卓越的推理速度,尤其是在CPU 硬件上,而变压器在CPU 硬件上经常会遇到困难。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| 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 |
解读数据
虽然 RTDETRv2 实现了更高的mAP 数值,但请注意速度和FLOPs栏。YOLOv5n 在CPU 上的运行速度为73.6 毫秒,因此可用于非加速硬件上的实时应用。RTDETRv2 模型则明显更重,需要强大的 GPU 才能保持实时帧速率。
训练效率和内存使用情况
YOLOv5 的一个重要优势是 YOLOv5的一个重要优势是其训练效率。RTDETRv2 等Transformer模型因 VRAM 消耗高和收敛速度慢而臭名昭著。
- 更低的内存占用: YOLOv5 可在具有适度CUDA 内存的消费级 GPU 上进行训练,实现了人工智能开发的平民化。
- 更快收敛:用户通常可以在更短的时间内获得可用的结果,从而节省宝贵的时间和云计算成本。
Ultralytics YOLOv5的主要优势
对于大多数开发人员和商业应用而言,YOLOv5 提供了一系列更均衡、更实用的优势:
- 无与伦比的易用性: Ultralytics Python 应用程序接口是简便性的行业标准。加载模型、运行推理和对自定义数据进行训练只需几行代码即可完成。
- 丰富的生态系统:在大规模开源社区的支持下,YOLOv5 与用于无代码培训的Ultralytics HUB、用于跟踪的MLOps 工具以及多种导出格式(如 ONNX和TensorRT 等多种导出格式。
- 部署灵活:从iOS 和Android 移动应用程序到树莓派(Raspberry Pi)和云服务器,YOLOv5 的轻量级架构使其能够在较重的transformer 型号无法运行的地方运行。
- 任务多样性:RTDETRv2 主要是一个对象检测器,而YOLOv5 则不同,它支持分类和分割,从而减少了为不同视觉任务维护多个代码库的需要。
升级路径
如果您需要比YOLOv5 更高的精度,同时保持这些生态系统优势,请考虑新的 YOLO11.它采用了现代结构改进技术,精度可与transformer 媲美,甚至超过transformer ,并具有您所期望的YOLO 效率。
代码比较:易用性
下面的示例演示了将YOLOv5 与Ultralytics 软件包结合使用的简便性。
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model
model = YOLO("yolov5s.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Display results
for result in results:
result.show() # show to screen
result.save(filename="result.jpg") # save to disk
理想用例
何时选择Ultralytics YOLOv5
- 边缘计算:在电池供电或资源受限的设备(无人机、手机、物联网)上部署。
- 实时视频分析:同时处理多个视频流,用于交通管理或安全。
- 快速原型开发:当您需要在数小时而非数天内完成从数据集到部署模型的转换时。
- 多任务要求:需要同时进行物体检测和图像分割的项目。
何时选择 RTDETRv2
- 学术研究:以静态数据集的绝对先进水平为基准,速度是次要的。
- 高端GPU 可用性:专用服务器级 GPU(如NVIDIA A100)可用于训练和推理的环境。
- 复杂静态场景:具有密集遮挡的场景,在这种场景中,自我注意机制可提供关键的精确度优势。
结论
虽然RTDETRv2以令人印象深刻的精确度数字展示了变压器在计算机视觉中的潜力,但它在硬件资源和训练复杂性方面的成本也很高。对于现实世界中的绝大多数应用而言,RTDETRv2 都是一个巨大的挑战、 Ultralytics YOLOv5仍然是最佳选择。它完美地融合了速度、准确性和低内存使用率,再加上支持性的生态系统和丰富的文档,确保开发人员能够构建可扩展、高效和有效的人工智能解决方案。
对于那些在不牺牲Ultralytics 框架可用性的前提下追求绝对最新性能的用户,我们强烈推荐您探索 YOLO11它在 CNN 效率和transformer精度之间架起了一座桥梁。