Meet YOLO26: next-gen vision AI.

Link to this section百度的 RT-DETR:一种基于视觉 Transformer 的实时目标检测器#

Link to this section概述#

由百度开发的实时检测 Transformer (RT-DETR) 是一种前沿的端到端目标检测器,它在保持高 准确率 的同时提供了实时性能。它基于 DETR 的理念(无 NMS 框架),同时引入了基于卷积的 骨干网络 和高效的混合编码器以获得实时速度。RT-DETR 通过解耦尺度内交互和跨尺度融合,高效地处理多尺度特征。该模型具有高度的适应性,支持通过使用不同的解码器层灵活调整推理速度,无需重新训练。RT-DETR 在 CUDA 和 TensorRT 等加速后端上表现出色,优于许多其他实时目标检测器。



Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀

百度 RT-DETR 模型架构概览 百度 RT-DETR 概览。 RT-DETR 模型架构图显示了骨干网络的最后三个阶段 {S3, S4, S5} 作为编码器的输入。高效混合编码器通过尺度内特征交互 (AIFI) 和跨尺度特征融合模块 (CCFM) 将多尺度特征转换为图像特征序列。IoU 感知查询选择用于选择固定数量的图像特征,作为解码器的初始目标查询。最后,带有辅助预测头的解码器通过迭代优化目标查询来生成边界框和置信度分数 (来源)。

Link to this section主要特性#

  • 高效混合编码器: 百度的 RT-DETR 使用高效混合编码器,通过解耦尺度内交互和跨尺度融合来处理多尺度特征。这种独特的设计基于 Vision Transformers,降低了计算成本并实现了实时 目标检测
  • IoU 感知查询选择: 百度的 RT-DETR 通过利用 IoU 感知查询选择改进了目标查询初始化。这使得模型能够专注于场景中最相关的目标,从而提高检测准确率。
  • 可适应的推理速度: 百度的 RT-DETR 支持通过使用不同的解码器层灵活调整推理速度,而无需重新训练。这种适应性促进了其在各种实时目标检测场景中的实际应用。
  • 无 NMS 框架: 基于 DETR,RT-DETR 消除了对 非极大值抑制 后处理的需求,简化了检测流程并可能提高效率。
  • 无锚点检测: 作为一种 无锚点检测器,RT-DETR 简化了检测过程,并可能提高在不同数据集上的泛化能力。

Link to this section预训练模型#

Ultralytics Python API 提供了不同规模的预训练 PaddlePaddle RT-DETR 模型:

  • RT-DETR-L:在 COCO val2017 上达到 53.0% AP,在 T4 GPU 上达到 114 FPS
  • RT-DETR-X:在 COCO val2017 上达到 54.8% AP,在 T4 GPU 上达到 74 FPS

此外,百度于 2024 年 7 月发布了 RTDETRv2,它在原始架构的基础上进一步提升了性能指标。

Link to this section使用示例#

此示例提供了简单的 RT-DETR 训练和推理示例。有关这些模式以及其他 模式 的完整文档,请参阅 预测训练验证导出 文档页面。模型还可以通过 Ultralytics Platform 在云端 GPU 上进行训练。

示例
from ultralytics import RTDETR

# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
更快的推理权衡

RT-DETR 预训练权重支持两种推理时设置,无需重新训练即可降低延迟:

  • eval_idx:提前停止解码。对于默认的 6 层解码器,请使用从 0 开始的索引(05)。eval_idx=5 使用所有层;eval_idx=3 使用 4 层。在配备 TensorRT v10.11 的 T4 GPU 上,RT-DETR-L 使用 4 层时可从 8.0 ms / 52.7 mAP 提升至 7.4 ms / 52.5 mAP。
  • num_queries:减少目标查询数量(默认:300)。在相同的设置下,降低至 100 可以达到 7.4 ms / 51.7 mAP。在每张图像包含较少目标的数据库上,mAP 的下降通常较小,但请保持该值高于每张图像预期的最大目标数。

这两种设置都可能降低 mAP — 在部署前请先在你的数据集上验证这种权衡。

from ultralytics import RTDETR

rtdetr = RTDETR("rtdetr-l.pt")
head = rtdetr.model.model[-1]

# Choose one or both settings after validating the speed/accuracy trade-off.
head.decoder.eval_idx = 3  # Use 4 of 6 decoder layers.
head.num_queries = 100  # Use fewer object queries.

results = rtdetr("path/to/image.jpg")

# Export uses the same decoder and query settings, including TensorRT exports.
rtdetr.export(format="engine", device=0, quantize=16)

Link to this section支持的任务和模式#

此表列出了模型类型、特定的预训练权重、每个模型支持的任务,以及 ✅ 表情符号所示支持的各种模式(训练验证预测导出)。

模型类型预训练权重支持的任务推理验证训练导出
RT-DETR Largertdetr-l.pt目标检测
RT-DETR Extra-Largertdetr-x.pt目标检测
仅架构变体

rtdetr-resnet50.yamlrtdetr-resnet101.yaml 仅作为 YAML 架构发布。Ultralytics 仅为 rtdetr-lrtdetr-x 发布预训练权重。从 YAML 实例化 ResNet 变体(例如 RTDETR("rtdetr-resnet50.yaml")),并根据需要进行训练或微调。

Link to this section理想使用场景#

RT-DETR 特别适合需要高准确率和实时性能的应用:

Link to this section引用与致谢#

如果你在研究或开发工作中使用了百度的 RT-DETR,请引用原始论文

引用
@misc{lv2023detrs,
      title={DETRs Beat YOLOs on Real-time Object Detection},
      author={Wenyu Lv and Shangliang Xu and Yian Zhao and Guanzhong Wang and Jinman Wei and Cheng Cui and Yuning Du and Qingqing Dang and Yi Liu},
      year={2023},
      eprint={2304.08069},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

对于 RTDETRv2,你可以引用2024 年论文

引用
@misc{lv2024rtdetrv2,
      title={RTDETRv2: All-in-One Detection Transformer Beats YOLO and DINO},
      author={Wenyu Lv and Yian Zhao and Qinyao Chang and Kui Huang and Guanzhong Wang and Yi Liu},
      year={2024},
      eprint={2407.17140},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

我们要感谢百度和 PaddlePaddle 团队为 计算机视觉 社区创建并维护了这一宝贵资源。他们通过开发基于 Vision Transformers 的实时目标检测器 RT-DETR 为该领域做出了贡献,我们对此深表感谢。

Link to this section常见问题解答#

Link to this section什么是百度的 RT-DETR 模型,它是如何工作的?#

百度的 RT-DETR(实时检测 Transformer)是一种基于 Vision Transformer 架构的先进实时目标检测器。它通过高效的混合编码器,对尺度内交互和跨尺度融合进行解耦,从而高效地处理多尺度特征。通过采用 IoU 感知查询选择,模型专注于最相关的目标,从而提高了检测准确率。它通过在无需重新训练的情况下调整解码器层来提供可适应的推理速度,这使得 RT-DETR 适用于各种实时目标检测场景。在 RT-DETR Arxiv 论文 中了解更多关于 RT-DETR 特性的信息。

Link to this section我该如何使用 Ultralytics 提供的预训练 RT-DETR 模型?#

你可以利用 Ultralytics Python API 使用预训练的 PaddlePaddle RT-DETR 模型。例如,要加载一个在 COCO val2017 上预训练的 RT-DETR-l 模型并在 T4 GPU 上实现高 FPS,你可以使用以下示例:

示例
from ultralytics import RTDETR

# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Link to this section为什么我应该选择百度的 RT-DETR 而不是其他实时目标检测器?#

百度的 RT-DETR 因其高效的混合编码器和 IoU 感知查询选择而脱颖而出,这些设计在保持高准确率的同时大幅降低了计算成本。它无需重新训练即可通过使用不同解码器层来调整推理速度的独特能力,增加了极大的灵活性。这使得它在需要 CUDA 和 TensorRT 加速后端实现实时性能的应用中尤为有利,优于许多其他实时目标检测器。Transformer 架构 相比传统的基于 CNN 的检测器,也提供了更好的全局语境理解能力。

Link to this sectionRT-DETR 如何为不同的实时应用支持可适应的推理速度?#

百度的 RT-DETR 允许通过使用不同的解码器层灵活调整推理速度,而无需重新训练。这种适应性对于跨各种实时目标检测任务扩展性能至关重要。无论你是需要针对较低 精度 需求获得更快的处理速度,还是需要更慢、更准确的检测,RT-DETR 都可以根据你的具体要求进行定制。当在计算能力不同的设备上部署模型时,这一特性尤其有价值。

Link to this section我可以将 RT-DETR 模型与其他 Ultralytics 模式(如训练、验证和导出)一起使用吗?#

是的,RT-DETR 模型与各种 Ultralytics 模式兼容,包括训练、验证、预测和导出。你可以参考相应的文档获取关于如何使用这些模式的详细说明:训练验证预测导出。这确保了开发和部署目标检测解决方案的完整工作流程。Ultralytics 框架在不同模型架构间提供了一致的 API,使得使用 RT-DETR 模型变得非常简单。

评论