库名称: transformers
许可证: apache-2.0
支持语言:
- 英文
任务标签: 目标检测
标签:
- 目标检测
- 视觉
数据集:
- coco
演示样例:
- 图片链接: https://huggingface.co/datasets/mishig/sample_images/resolve/main/savanna.jpg
示例标题: 热带草原
- 图片链接: https://huggingface.co/datasets/mishig/sample_images/resolve/main/football-match.jpg
示例标题: 足球比赛
- 图片链接: https://huggingface.co/datasets/mishig/sample_images/resolve/main/airport.jpg
示例标题: 机场
RT-DETR模型卡
目录
- 模型详情
- 模型来源
- 快速开始
- 训练详情
- 评估结果
- 模型架构与目标
- 引用方式
模型详情

YOLO系列因其在速度与精度间的平衡优势,已成为实时目标检测最流行的框架。
但我们发现非极大值抑制(NMS)会负面影响YOLO的检测速度和精度。
近期,基于Transformer的端到端检测器(DETR)提供了消除NMS的替代方案。
然而,高昂的计算成本限制了其实用性,使其难以充分发挥无NMS的优势。
本文提出实时检测变换器(RT-DETR),这是首个解决上述困境的实时端到端目标检测器。
我们分两步构建RT-DETR:
首先在保证精度的前提下提升速度,继而在保持速度的同时提高精度。
具体而言,我们设计高效混合编码器,通过解耦尺度内交互与跨尺度融合来快速处理多尺度特征;
提出不确定性最小化查询选择机制,为解码器提供高质量初始查询;
支持通过调整解码器层数实现灵活的速度调节,无需重新训练即可适配不同场景。
RT-DETR-R50/R101在COCO上达到53.1%/54.3% AP,T4 GPU实现108/74 FPS,速度与精度均超越先进YOLO模型。
缩放版RT-DETR也优于轻量级YOLO(S/M型)。
RT-DETR-R50精度超越DINO-R50达2.2% AP,FPS提升约21倍。
经Objects365预训练后,RT-DETR-R50/R101达到55.3%/56.2% AP。
项目主页: https://zhao-yian.github.io/RTDETR/
这是HuggingFace transformers库的模型卡。
- 开发者: 赵毅安、崔相范
- 资助方: 中国国家重点研发计划(2022ZD0118201)、国家自然科学基金(61972217, 32071459, 62176249, 62006133, 62271465)、深圳市医学研究基金(B2302037)
- 共享者: 崔相范
- 模型类型: RT-DETR
- 许可证: Apache-2.0
模型来源
- HF文档: RT-DETR
- 代码库: https://github.com/lyuwenyu/RT-DETR
- 论文: https://arxiv.org/abs/2304.08069
- 演示: RT-DETR追踪演示
快速开始
import torch
import requests
from PIL import Image
from transformers import RTDetrForObjectDetection, RTDetrImageProcessor
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
image_processor = RTDetrImageProcessor.from_pretrained("PekingU/rtdetr_r50vd_coco_o365")
model = RTDetrForObjectDetection.from_pretrained("PekingU/rtdetr_r50vd_coco_o365")
inputs = image_processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
results = image_processor.post_process_object_detection(outputs, target_sizes=torch.tensor([image.size[::-1]]), threshold=0.3)
for result in results:
for score, label_id, box in zip(result["scores"], result["labels"], result["boxes"]):
score, label = score.item(), label_id.item()
box = [round(i, 2) for i in box.tolist()]
print(f"{model.config.id2label[label]}: {score:.2f} {box}")
输出示例:
沙发: 0.97 [0.14, 0.38, 640.13, 476.21]
猫: 0.96 [343.38, 24.28, 640.14, 371.5]
猫: 0.96 [13.23, 54.18, 318.98, 472.22]
遥控器: 0.95 [40.11, 73.44, 175.96, 118.48]
遥控器: 0.92 [333.73, 76.58, 369.97, 186.99]
训练详情
训练数据
使用COCO 2017目标检测数据集,包含11.8万训练图像和5千验证图像。
训练流程
在COCO和Objects365数据集上进行实验,使用COCO train2017训练,val2017验证。
评估指标包括AP(IOU阈值0.50-0.95)、AP50、AP75及不同尺度下的AP。
数据预处理
图像缩放至640x640像素,标准化参数为image_mean=[0.485, 0.456, 0.406]
,image_std=[0.229, 0.224, 0.225]
。
超参数设置

评估结果
模型 |
训练周期 |
参数量(百万) |
计算量(GFLOPs) |
帧率(FPS) |
AP(val) |
AP50(val) |
AP75(val) |
AP小目标 |
AP中目标 |
AP大目标 |
RT-DETR-R18 |
72 |
20 |
60.7 |
217 |
46.5 |
63.8 |
50.4 |
28.4 |
49.8 |
63.0 |
RT-DETR-R34 |
72 |
31 |
91.0 |
172 |
48.5 |
66.2 |
52.3 |
30.2 |
51.9 |
66.2 |
RT-DETR-R50 |
72 |
42 |
136 |
108 |
53.1 |
71.3 |
57.7 |
34.8 |
58.0 |
70.0 |
RT-DETR-R101 |
72 |
76 |
259 |
74 |
54.3 |
72.7 |
58.6 |
36.0 |
58.8 |
72.1 |
RT-DETR-R18(Objects365预训练) |
60 |
20 |
61 |
217 |
49.2 |
66.6 |
53.5 |
33.2 |
52.3 |
64.8 |
RT-DETR-R50(Objects365预训练) |
24 |
42 |
136 |
108 |
55.3 |
73.4 |
60.1 |
37.9 |
59.9 |
71.8 |
RT-DETR-R101(Objects365预训练) |
24 |
76 |
259 |
74 |
56.2 |
74.6 |
61.3 |
38.3 |
60.5 |
73.5 |
模型架构与目标

RT-DETR架构概述:
- 将主干网络最后三阶段特征输入编码器
- 高效混合编码器通过注意力机制(AIFI)和CNN(CCFF)处理多尺度特征
- 不确定性最小化查询选择机制生成初始对象查询
- 带辅助预测头的解码器迭代优化查询生成检测结果
引用方式
@misc{lv2023detrs,
title={DETRs Beat YOLOs on Real-time Object Detection},
author={Yian Zhao and Wenyu Lv and Shangliang Xu and Jinman Wei and Guanzhong Wang and Qingqing Dang and Yi Liu and Jie Chen},
year={2023},
eprint={2304.08069},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
模型卡作者
崔相范
帕维尔·雅库博夫斯基