RTDETRv2 与 YOLOX:实时目标 detect 的技术比较
在快速发展的计算机视觉领域,对速度和准确性之间最佳平衡的追求持续推动创新。两种截然不同的方法已成为领先者:基于 Transformer 的 RTDETRv2 和基于 CNN 的无锚点 YOLOX。本比较探讨了它们的架构差异、性能指标和理想用例,以帮助开发人员根据其特定需求选择合适的工具。
模型概述
在深入探讨技术细节之前,让我们先明确这两个有影响力的模型的起源和核心理念。
RTDETRv2
RTDETRv2 (实时检测 Transformer 版本 2) 代表了将 Transformer 架构引入实时应用的重大进步。它由百度研究人员开发,在原始 RT-DETR 的基础上引入了“免费赠品包”(Bag-of-Freebies),提高了训练稳定性和性能,同时不增加推理延迟。它旨在解决通常与视觉 Transformer (ViTs)相关的高计算成本,同时在精度上优于传统的 CNN 检测器。
- 作者: Wenyu Lv、Yian Zhao、Qinyao Chang、Kui Huang、Guanzhong Wang 和 Yi Liu
- 组织:百度
- 日期:2023-04-17(原始 RT-DETR),随后进行了 v2 更新。
- Arxiv:RT-DETRv2:带有 Bag-of-Freebies 的改进基线
- GitHub:RT-DETRv2 仓库
YOLOX
YOLOX在2021年通过转向无锚点机制并结合解耦头和SimOTA标签分配等先进技术,重振了YOLO家族。尽管它保留了YOLO系列Darknet风格的骨干网络特征,但其架构转变解决了基于锚点检测器的许多局限性,从而产生了一个高效灵活的模型,在边缘设备上表现出色。
- 作者: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, 和 Jian Sun
- 组织:旷视科技
- 日期: 2021-07-18
- Arxiv:YOLOX:2021 年超越 YOLO 系列
- GitHub:YOLOX 仓库
性能分析
RTDETRv2 和 YOLOX 之间的性能权衡是截然不同的。RTDETRv2 优先考虑峰值 accuracy (mAP),利用 Transformer 的全局注意力机制以更好地理解复杂场景和被遮挡的对象。然而,这伴随着更高的计算需求,尤其是在 GPU 内存使用方面。
相反,YOLOX 针对速度和效率进行了优化。其无锚点设计简化了检测头,减少了设计参数数量并加快了后处理 (NMS)。YOLOX 模型,特别是 Nano 和 Tiny 变体,通常是硬件资源受限的边缘 AI 部署的首选。
下表突出显示了这些差异。请注意,虽然RT-DETRv2实现了更高的mAP分数,但YOLOX-s在TensorRT上提供了更快的推理速度,这说明其适用于对延迟敏感的应用。
| 模型 | 尺寸 (像素) | 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
架构深度解析
理解结构差异有助于阐明这些模型表现不同的原因。
RTDETRv2:混合编码器-解码器
RTDETRv2 通过引入高效混合编码器,解决了标准 DETR 模型的计算瓶颈。该组件处理多尺度特征,解耦了尺度内交互(同一特征层内)和尺度间融合(跨层)。
- IoU 感知查询选择:RTDETRv2 没有选择静态对象查询,而是根据分类分数选择固定数量的图像特征作为初始对象查询,从而改进了初始化。
- 灵活解码器:该解码器支持在推理过程中动态调整查询数量,使用户无需重新训练即可权衡速度和准确性。
YOLOX:无锚框与解耦
YOLOX摆脱了YOLOv4和YOLOv5中使用的基于锚框的范式。
- 无锚框: 通过直接预测对象中心和大小,YOLOX 无需手动设计锚框,从而降低了超参数调整的复杂性。
- 解耦头:它将分类和回归任务分离到网络头部的不同分支中。这种分离通常能带来更快的收敛速度和更高的精度。
- SimOTA: 一种高级标签分配策略,将分配过程视为最优传输问题,基于全局优化成本动态地将正样本分配给真实值。
基于锚点与无锚点
传统检测器使用预定义框(锚点)来估计对象位置。YOLOX 消除了这种依赖,简化了架构,并使模型对各种对象形状更具鲁棒性。RTDETRv2 作为 Transformer,完全使用对象查询而不是锚点,动态学习关注相关的图像区域。
优势与劣势
RTDETRv2
- 优势:
- 高精度:在COCO基准测试中实现了最先进的mAP。
- 全局上下文: Transformer 注意力机制能有效捕获长距离依赖关系。
- 适应性: 可调整的查询选择允许在推理时具有灵活性。
- 弱点:
- 资源密集型:与CNN相比,训练和推理需要大量的GPU内存。
- 较慢的训练:Transformer通常比基于CNN的架构需要更长的收敛时间。
YOLOX
- 优势:
- 推理速度:极快,尤其是较小的变体(Nano、Tiny、S)。
- 部署友好: 由于 FLOPs 和参数数量更少,更易于部署到边缘设备和 CPU。
- 简洁性: 无锚点设计降低了工程复杂性。
- 弱点:
- 较低的峰值精度:难以匹敌RTDETRv2-x等大型Transformer模型的顶级精度。
- 特征演进:缺乏新框架中发现的一些多模态能力。
Ultralytics 的优势:为什么选择 YOLO11?
尽管 RTDETRv2 和 YOLOX 是强大的模型,但由最先进的 YOLO11 引领的 Ultralytics YOLO 生态系统提供了一个全面的解决方案,其优势往往超过单个模型的益处。
- 性能平衡:YOLO11 旨在提供速度和准确性之间的最佳权衡。它通常达到或超过基于 Transformer 的模型的准确性,同时保持 YOLO 系列特有的推理速度。
- 易用性: Ultralytics 优先考虑开发者体验。通过统一的 python API 和 CLI,您只需几行代码即可训练、验证和部署模型。
- 内存效率:与可能占用大量 GPU 显存的 RTDETRv2 不同,YOLO11 在训练和推理期间都具有高度的内存效率。这使得拥有消费级硬件的研究人员和开发人员也能使用它。
- 良好维护的生态系统:Ultralytics 模型由频繁的更新、充满活力的社区和详尽的文档提供支持。诸如 Ultralytics HUB 等功能有助于无缝的模型管理和云训练。
- 多功能性:除了简单的目标检测之外,YOLO11 原生支持实例分割、姿势估计、旋转框检测和分类,而 YOLOX 和 RTDETRv2 主要专注于 detect。
- 训练效率:凭借适用于各种任务的预训练权重和复杂的迁移学习能力,YOLO11 大幅减少了训练高性能模型所需的时间和能源。
代码示例
Ultralytics 使得使用这些高级模型变得异常简单。下面是使用 YOLO11 运行推理的示例,值得注意的是,Ultralytics 还直接支持 RT-DETR,与原始仓库相比,大大简化了其使用。
from ultralytics import RTDETR, YOLO
# Load the Ultralytics YOLO11 model (Recommended)
model_yolo = YOLO("yolo11n.pt")
# Run inference on an image
results_yolo = model_yolo("path/to/image.jpg")
# Load an RT-DETR model via Ultralytics API
model_rtdetr = RTDETR("rtdetr-l.pt")
# Run inference with RT-DETR
results_rtdetr = model_rtdetr("path/to/image.jpg")
结论
RTDETRv2 和 YOLOX 之间的选择最终取决于您的具体限制。
- 如果您的应用程序要求绝对最高的精度,例如在学术研究或高精度工业检测中,并且您拥有强大的GPU资源,请选择RTDETRv2。
- 如果您要部署到资源受限的环境,例如树莓派或移动设备,其中每一毫秒的延迟都至关重要,请选择YOLOX。
然而,对于绝大多数实际应用而言,Ultralytics YOLO11 脱颖而出,成为卓越的全能选择。它将现代架构的准确性优势与CNN的速度和效率相结合,所有这些都封装在一个用户友好、生产就绪的生态系统中。无论您是为边缘设备还是云端构建,YOLO11 都提供了成功所需的工具和性能。
探索其他比较
为了进一步帮助您做出决定,请考虑探索其他模型比较: