RTDETRv2 与YOLOv8:技术比较
在快速发展的计算机视觉领域,选择正确的物体检测模型对于项目的成功至关重要。目前,有两种截然不同的架构理念在该领域占据主导地位:以RTDETRv2为代表transformer方法和高度优化的卷积神经网络 (CNN) 设计,其典范是 Ultralytics YOLOv8.
RTDETRv2 利用视觉转换器推动了精度的发展,而YOLOv8 则完善了速度、精度和易于部署之间的平衡。本比较探讨了技术规格、架构差异和实际性能指标,以帮助开发人员和研究人员为其应用选择最佳解决方案。
性能指标:速度、准确性和效率
性能状况凸显了一种明显的权衡。RTDETRv2 侧重于通过复杂的关注机制最大限度地提高平均精度mAP),而YOLOv8 则优先考虑实时推理速度和高精度之间的多功能平衡,适合边缘和云部署。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
结果分析
这些数据揭示了部署战略的几个重要见解:
- 计算效率: YOLOv8 显示出卓越的效率。例如 YOLOv8l的精度(52.9mAP)与 RTDETRv2-l(53.4mAP)接近,同时在GPU 上的推理速度更快。
- CPU 性能: YOLOv8 在CPU 硬件上提供有据可查的强大性能,使其成为缺乏专用加速器的边缘人工智能设备的实用选择。由于transformer 层的计算成本较高,CPU 的 RTDETRv2 基准通常无法使用。
- 参数效率: YOLOv8 模型始终需要更少的参数和浮点运算 (FLOP) 才能获得有竞争力的结果,从而直接降低了内存消耗,缩短了训练时间。
硬件考虑因素
如果您的部署目标涉及标准 CPU(如Intel 处理器)或嵌入式设备(如 Raspberry Pi),YOLOv8 基于 CNN 的架构与 RTDETRv2 的transformer操作相比,在延迟方面具有显著优势。
RTDETRv2:基于 Transformer 的实时检测
RTDETRv2(实时检测Transformer v2)是将视觉变换器(ViT)应用于物体检测的持续演进。它由百度的研究人员开发,旨在解决传统上与基于 DETR 的模型相关的延迟问题,同时保留其理解全局上下文的能力。
作者:吕文宇、赵一安、常沁瑶、黄奎、王冠中和刘毅
组织:百度
日期:2024-07-24 (v2 发布)
Arxiv:https://arxiv.org/abs/2304.08069
GitHub:RT-DETR
架构
RTDETRv2 采用混合架构,将骨干网(通常是类似 ResNet 的 CNN)与高效的transformer 编码器-解码器相结合。其主要特点是将尺度内交互与跨尺度融合解耦,这有助于模型捕捉整个图像的长距离依赖关系。这样,模型就能同时 "关注 "场景的不同部分,从而提高在杂乱环境中的性能。
优势与劣势
RTDETRv2 的主要优势在于其在复杂数据集上的高精确度,而复杂数据集的全局上下文是至关重要的。由于摒弃了锚点框,转而使用对象查询,因此无需进行非最大值抑制NMS),从而简化了后处理流程。
然而,这些好处是有代价的:
- 资源强度:与 CNN 相比,该模型的训练需要更多的GPU 内存。
- 收敛速度较慢: Transformer模型通常需要更长的时间来训练收敛。
- 功能有限:它主要用于边界框检测,缺乏对分割或姿势估计 本地支持。
Ultralytics YOLOv8:速度、多功能性和生态系统
Ultralytics YOLOv8是一种最先进的无锚点物体检测模型,为业界的多功能性和易用性设定了标准。它继承了YOLO 系列的传统,在保持YOLO 著名的实时速度的同时,引入了提高性能的架构改进。
作者:Glenn Jocher、Ayush Chaurasia 和 Jing QiuGlenn Jocher、Ayush Chaurasia 和 Jing Qiu
组织机构:Ultralytics
日期:2023-01-10
GitHubultralytics
文档yolov8
架构
YOLOv8 采用 CSP(跨阶段部分)暗网骨干和 PANet(路径聚合网络)颈部,最终形成一个解耦检测头。这种架构是无锚点的,这意味着它可以直接预测对象中心,从而简化了设计并提高了通用性。该模型针对tensor 处理单元和 GPU 进行了高度优化,确保了最大吞吐量。
开发商的主要优势
- 易于使用:通过 Pythonic API 和强大的CLI,用户只需几行代码就能训练和部署模型。全面的文档降低了初学者和专家的入门门槛。
- 维护良好的生态系统:在Ultralytics 的支持下,YOLOv8 可享受频繁更新、社区支持以及与TensorBoard和MLFlow 等工具的无缝集成。
- 多功能性:与 RTDETRv2 不同,YOLOv8 开箱即支持多种任务,包括实例分割、姿势估计 、分类和定向对象检测(旋转框检测)。
- 训练效率:该模型旨在以较低的CUDA 内存需求进行快速训练,使硬件预算有限的研究人员也能使用。
深入探讨:架构和用例
在这两种模式中如何选择,通常取决于应用环境的具体要求。
建筑理念
YOLOv8 依靠卷积神经网络 (CNN),CNN 擅长高效处理局部特征和空间层次。这使得它们在本质上速度更快、内存占用更少。RTDETRv2 对变形器的依赖使其能够有效地建立全局关系模型,但却带来了与图像大小相关的二次复杂性,导致更高的延迟和内存使用率,尤其是在高分辨率下。
理想用例
在以下情况下选择YOLOv8
- 实时性能至关重要:自动驾驶、视频分析和制造质量控制等应用要求低延迟。
- 硬件受限:使用YOLOv8,可以在NVIDIA Jetson、Raspberry Pi 或移动设备上无缝部署。
- 需要多任务处理:如果您的项目需要在检测的同时分割对象或跟踪关键点,YOLOv8 提供了一个统一的框架。
- 快速开发周期: Ultralytics 生态系统可加快数据标注、培训和部署。
选择 RTDETRv2 时:
- 最大精度是唯一标准:适用于学术基准或有无限计算能力的情况,每一小部分mAP 都很重要。
- 复杂遮挡:在高度杂乱的场景中,理解远处像素之间的关系至关重要,全局注意力机制可能会略胜一筹。
比较摘要
RTDETRv2 在将变压器应用于检测方面取得了有趣的学术进步、 YOLOv8仍然是大多数实际应用的上佳选择。它在速度、准确性和效率之间的平衡是无与伦比的。此外,YOLOv8 还能在一个用户友好的库中执行多种计算机视觉任务,是现代人工智能开发的多功能工具。
对于追求绝对最新性能和功能集的开发人员来说,可以将目光投向较新的迭代版本,如 YOLO11与YOLOv8 和 RTDETRv2 相比,效率和准确性都有了更大的提高。
代码示例:开始使用YOLOv8
将YOLOv8 集成到工作流程中非常简单。下面是一个Python 示例,演示如何加载预训练模型、运行推理并导出以进行部署。
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a local image
# Ensure the image path is correct or use a URL
results = model("path/to/image.jpg")
# Export the model to ONNX format for deployment
success = model.export(format="onnx")
探索其他模型
要从更广阔的视角了解物体检测架构,可以参考这些相关比较: