YOLOv5 vs RTDETRv2:详细模型比较
选择最佳的目标检测模型对于任何计算机视觉项目来说都是至关重要的决定。本页提供了两个强大模型之间的详细技术比较:Ultralytics YOLOv5,一种以其速度和效率的平衡而闻名的已建立的行业标准,以及 RTDETRv2,一种为高精度而设计的基于Transformer的模型。我们将深入研究它们的架构差异、性能基准和理想用例,以帮助您选择最适合您需求的模型。
Ultralytics YOLOv5:已建立的行业标准
作者: Glenn Jocher
组织: Ultralytics
日期: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
文档: https://docs.ultralytics.com/models/yolov5/
Ultralytics YOLOv5 在发布时为实时目标检测树立了新的基准,因其在速度、准确性和用户友好性方面的卓越融合而迅速成为开发人员和研究人员的最爱。它完全基于 PyTorch 构建,经过高度优化,易于训练、验证和部署。
架构
YOLOv5 采用经典的基于 CNN 的架构,既高效又有效。
- 主干网络: 它使用 CSPDarknet53 主干网络,它是 Darknet 的变体,通过 Cross Stage Partial (CSP) 连接进行优化,以改善梯度流并降低计算成本。
- Neck: 路径聚合网络 (PANet) 用于特征聚合,有效地结合来自不同尺度的特征,以增强对各种大小对象的检测。
- Head: 该模型使用基于anchor的检测头来预测边界框、类别概率和对象置信度分数。
优势
- 卓越的速度和效率: YOLOv5 针对快速 推理速度 进行了高度优化,使其成为从 CPU 到 边缘设备 的各种硬件上实时应用的首选。
- 易用性: YOLOv5 以其简化的用户体验而闻名,提供简单的 Python API 和 CLI,并有广泛的文档支持。
- 完善的维护生态系统: 作为一个 Ultralytics 模型,它受益于一个强大且积极开发的生态系统。这包括一个大型社区、频繁的更新以及与 Ultralytics HUB 等工具的无缝集成,以实现无代码训练和部署。
- 性能平衡: YOLOv5 在速度和准确性之间实现了出色的平衡,使其在各种实际场景中都非常实用。
- 内存效率: 与基于Transformer的模型相比,YOLOv5 模型在训练期间通常需要更少的 CUDA 内存,并且在推理期间更具内存效率。
- 多功能性: 它支持多种任务,包括 目标检测、实例分割 和 图像分类,所有这些都在统一的框架内。
- 训练效率: 训练过程快速高效,在 COCO 等数据集上提供随时可用的预训练权重,以加速开发。
弱点
- 复杂场景中的精度: 虽然非常准确,但在具有许多小物体或被遮挡物体的数据集上,它可能不如像 RTDETRv2 这样更新、更复杂的架构。
- 基于 Anchor 的设计: 它对预定义 anchor 框的依赖有时可能需要手动调整,以便在具有非常规对象纵横比的数据集上实现最佳性能。
理想用例
YOLOv5 在速度、资源效率和快速开发至关重要的应用中表现出色。
- 实时视频监控: 非常适合安全警报系统和监控实时视频源。
- 边缘计算: 其轻量级模型非常适合部署在资源受限的设备(如 Raspberry Pi 和 NVIDIA Jetson)上。
- 移动应用程序: 适用于移动应用程序中的设备上推理。
- 工业自动化: 为质量控制和交通管理中的人工智能提供支持。
RTDETRv2:高精度实时检测 Transformer
作者: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang, 和 Yi Liu
机构: Baidu
日期: 2023-04-17 (初始 RT-DETR), 2024-07-24 (RT-DETRv2 改进)
Arxiv: https://arxiv.org/abs/2304.08069, https://arxiv.org/abs/2407.17140
GitHub: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch
文档: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch#readme
RTDETRv2(Real-Time Detection Transformer v2)是一种最先进的目标检测器,它利用Vision Transformers (ViT)的强大功能来实现高精度,同时在有能力的硬件上保持实时性能。
架构
RTDETRv2采用了一种混合方法,结合了CNN和Transformer的优势。
- 主干网络: 它通常使用 CNN(如 ResNet 变体)进行高效的初始特征提取。
- 编码器-解码器: 基于 Transformer 的编码器-解码器结构处理图像特征。它使用自注意力机制来捕获全局上下文,使模型能够更好地理解远处对象和复杂场景之间的关系。
优势
- 高精度: Transformer 架构使 RTDETRv2 能够获得出色的 mAP 分数,尤其是在具有密集或小对象的复杂数据集上,例如卫星图像分析中的那些。
- 实时能力: 经过优化,可以提供具有竞争力的推理速度,尤其是在使用NVIDIA TensorRT等工具在强大的GPU上加速时。
- 稳健的特征提取: 通过捕获全局上下文,它在诸如遮挡之类的具有挑战性的场景中表现良好,这对于诸如自动驾驶之类的应用是有益的。
弱点
- 高计算成本: RTDETRv2 通常比 YOLOv5 具有更高的参数计数和 FLOPs,需要更多的计算资源,如 GPU 内存和处理能力。
- 训练复杂性: 训练基于Transformer的模型通常比训练 CNN 更消耗资源且速度更慢。它们通常需要更多的 CUDA 内存,这使得硬件有限的用户更难使用它们。
- CPU/边缘设备上的推理速度: 虽然在强大的 GPU 上可以实现实时处理,但在 CPU 或性能较低的边缘设备上,其性能可能明显低于 YOLOv5。
- 生态系统与可用性: 它缺乏Ultralytics为其YOLO模型提供的广泛、统一的生态系统、工具和广泛的社区支持。
性能分析:速度 vs. 准确性
YOLOv5 和 RTDETRv2 之间的主要区别在于它们的设计理念。YOLOv5 专为在各种硬件上实现速度和精度的最佳平衡而设计,使其具有极高的通用性。相比之下,RTDETRv2 优先考虑实现最大精度,利用计算密集型的Transformer架构,该架构在高端 GPU 上表现最佳。
下表重点介绍了这些差异。虽然 RTDETRv2 模型实现了更高的 mAP 分数,但 YOLOv5 模型,特别是较小的变体,提供了明显更快的推理时间,尤其是在 CPU 上。这使得 YOLOv5 成为对低延迟和在各种硬件上部署至关重要的应用程序的更实用选择。
模型 | 尺寸 (像素) |
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 |
结论与建议
YOLOv5 和 RTDETRv2 都是强大的目标检测模型,但它们满足不同的需求。
RTDETRv2 是一个极好的选择,适用于那些以实现尽可能高的精度为主要目标,并且可以随时获得大量计算资源(即高端 GPU)用于训练和部署的应用程序。其基于Transformer的架构使其在复杂场景中具有优势。
然而,对于绝大多数实际应用而言,Ultralytics YOLOv5 提出了一个更具吸引力和实用性的解决方案。它在速度和精度方面实现了卓越的平衡,并且资源需求较低,因此适用于更广泛的部署场景。维护良好的 Ultralytics 生态系统 的主要优势(包括 易用性、全面的文档、积极的社区支持以及 Ultralytics HUB 等工具)显著降低了入门门槛并缩短了开发时间。
对于寻求现代、通用和高效框架的开发者来说,像 YOLOv8 和 YOLO11 这样较新的 Ultralytics 模型建立在 YOLOv5 的优势之上,提供更好的性能和更多的功能。这些模型代表了用户友好、高性能计算机视觉领域的最新技术。
其他模型对比
如果您有兴趣探索其他模型,请查看以下对比:
- YOLOv5 vs YOLOv7
- YOLOv5 vs YOLOv8
- YOLOv5 vs YOLOv9
- RT-DETR vs YOLOv8
- RT-DETR vs YOLO11
- EfficientDet vs YOLOv5