Skip to content

百度RT-DETR:基于Vision Transformer的实时目标检测器

概述

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



观看: 实时检测Transformer(RT-DETR)

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

关键特性

  • 高效混合编码器: 百度RT-DETR使用高效混合编码器,通过解耦同尺度交互和跨尺度融合来处理多尺度特征。这种独特的基于Vision Transformers的设计降低了计算成本,实现了实时目标检测
  • IoU感知查询选择: 百度RT-DETR通过利用IoU感知查询选择改进了对象查询的初始化。这使得模型能够专注于场景中最相关的对象,提高了检测精度。
  • 可调节的推理速度: 百度RT-DETR支持通过使用不同的解码器层灵活调整推理速度,而无需重新训练。这种适应性便于在各种实时目标检测场景中实际应用。

预训练模型

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

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

使用示例

此示例提供了简单的RT-DETR训练和推理示例。有关这些和其他模式的完整文档,请参阅预测训练验证导出文档页面。

Example

from ultralytics import RTDETR

# 加载一个COCO预训练的RT-DETR-l模型
model = RTDETR("rtdetr-l.pt")

# 显示模型信息(可选)
model.info()

# 在COCO8示例数据集上训练模型100个周期
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 在'bus.jpg'图像上使用RT-DETR-l模型进行推理
results = model("path/to/bus.jpg")
# 加载一个COCO预训练的RT-DETR-l模型并在COCO8示例数据集上训练100个周期
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640

# 加载一个COCO预训练的RT-DETR-l模型并在'bus.jpg'图像上进行推理
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg

支持的任务和模式

该表格展示了模型类型、具体的预训练权重、每个模型支持的任务以及支持的各种模式(训练验证预测导出),并用✅表情符号表示支持。

模型类型 预训练权重 支持的任务 推理 验证 训练 导出
RT-DETR 大模型 rtdetr-l.pt 目标检测
RT-DETR 超大模型 rtdetr-x.pt 目标检测

引用和致谢

如果您在研究或开发工作中使用百度的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}
}

我们感谢百度和PaddlePaddle团队为计算机视觉社区创建和维护这一宝贵资源。他们在基于Vision Transformers的实时目标检测器RT-DETR的开发中对领域的贡献非常值得赞赏。

常见问题

百度的RT-DETR模型是什么,它是如何工作的?

百度的RT-DETR(实时检测Transformer)是一种基于Vision Transformer架构的高级实时目标检测器。它通过其高效的混合编码器解耦了尺度内交互和跨尺度融合,从而高效地处理多尺度特征。通过采用IoU-aware查询选择,模型专注于最相关的对象,提高了检测精度。其通过调整解码器层而不需要重新训练来实现的可调节推理速度,使得RT-DETR适用于各种实时目标检测场景。了解更多关于RT-DETR的特性这里

如何使用Ultralytics提供的预训练RT-DETR模型?

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

Example

from ultralytics import RTDETR

# 加载一个COCO预训练的RT-DETR-l模型
model = RTDETR("rtdetr-l.pt")

# 显示模型信息(可选)
model.info()

# 在COCO8示例数据集上训练模型100个周期
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 在'bus.jpg'图像上使用RT-DETR-l模型进行推理
results = model("path/to/bus.jpg")
# 加载一个COCO预训练的RT-DETR-l模型并在COCO8示例数据集上训练100个周期
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640

# 加载一个COCO预训练的RT-DETR-l模型并在'bus.jpg'图像上进行推理
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg

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

百度的RT-DETR因其高效的混合编码器和IoU-aware查询选择而脱颖而出,这大大降低了计算成本同时保持了高精度。其独特的通过使用不同解码器层而不需要重新训练来调整推理速度的能力增加了显著的灵活性。这使得它在需要加速后端(如CUDA与TensorRT)上实现实时性能的应用中特别有优势,超越了许多其他实时目标检测器。

RT-DETR如何支持不同实时应用的可调节推理速度?

百度的RT-DETR通过使用不同的解码器层,无需重新训练即可灵活调整推理速度。这种适应性对于在各种实时目标检测任务中扩展性能至关重要。无论您是需要更快的处理速度以满足较低的精度需求,还是需要更慢但更准确的检测,RT-DETR都可以根据您的具体需求进行定制。

我能否将RT-DETR模型与其他Ultralytics模式(如训练、验证和导出)一起使用?

是的,RT-DETR模型兼容多种Ultralytics模式,包括训练、验证、预测和导出。您可以参考各自文档中的详细说明,了解如何使用这些模式:训练验证预测导出。这确保了开发和部署您的目标检测解决方案的全面工作流程。


📅 Created 11 months ago ✏️ Updated 20 days ago

Comments