模型概述
模型特點
模型能力
使用案例
🚀 RT-DETR即時目標檢測模型
RT-DETR是首個即時端到端目標檢測器,有效解決了即時目標檢測中速度與精度平衡的難題。它通過高效混合編碼器和不確定性最小查詢選擇等技術,在速度和精度上超越了之前先進的YOLO系列模型,且支持靈活的速度調整以適應不同場景。
🚀 快速開始
使用以下代碼開始使用該模型:
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_r18vd")
model = RTDetrForObjectDetection.from_pretrained("PekingU/rtdetr_r18vd")
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}")
此代碼應輸出:
sofa: 0.97 [0.14, 0.38, 640.13, 476.21]
cat: 0.96 [343.38, 24.28, 640.14, 371.5]
cat: 0.96 [13.23, 54.18, 318.98, 472.22]
remote: 0.95 [40.11, 73.44, 175.96, 118.48]
remote: 0.92 [333.73, 76.58, 369.97, 186.99]
✨ 主要特性
- 解決YOLO系列難題:YOLO系列在即時目標檢測中因非極大值抑制(NMS)影響速度和精度,而基於Transformer的端到端檢測器(DETRs)雖可消除NMS,但計算成本高限制了實用性。RT-DETR有效解決了這一困境。
- 分兩步構建模型:借鑑先進的DETR,先在保持精度的同時提高速度,再在保持速度的同時提高精度。
- 高效混合編碼器:通過解耦尺度內交互和跨尺度融合,設計了高效混合編碼器,可快速處理多尺度特徵,提高速度。
- 不確定性最小查詢選擇:提出不確定性最小查詢選擇方法,為解碼器提供高質量初始查詢,從而提高精度。
- 靈活速度調整:支持通過調整解碼器層數進行靈活的速度調整,無需重新訓練即可適應各種場景。
- 性能超越YOLO:RT-DETR-R50 / R101在COCO數據集上達到53.1% / 54.3%的平均精度(AP),在T4 GPU上達到108 / 74幀每秒(FPS),在速度和精度上均優於之前先進的YOLO系列模型。
📦 安裝指南
文檔未提供具體安裝步驟,暫不展示。
💻 使用示例
基礎用法
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_r18vd")
model = RTDetrForObjectDetection.from_pretrained("PekingU/rtdetr_r18vd")
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}")
高級用法
文檔未提供高級用法代碼示例,暫不展示。
📚 詳細文檔
模型詳情
YOLO系列由於在速度和精度之間取得了合理的平衡,已成為即時目標檢測最流行的框架。然而,我們觀察到YOLO的速度和精度受到非極大值抑制(NMS)的負面影響。最近,基於端到端Transformer的檢測器(DETRs)提供了一種消除NMS的替代方案。然而,高計算成本限制了它們的實用性,並阻礙了它們充分發揮排除NMS的優勢。在本文中,我們提出了即時檢測Transformer(RT-DETR),據我們所知,這是第一個解決上述困境的即時端到端目標檢測器。我們分兩步構建RT-DETR,借鑑先進的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。項目頁面:點擊查看。
模型來源
- HF文檔:RT-DETR
- 代碼倉庫:https://github.com/lyuwenyu/RT-DETR
- 論文:https://arxiv.org/abs/2304.08069
- 演示:RT-DETR跟蹤
訓練詳情
訓練數據
RT-DETR模型在COCO 2017目標檢測數據集上進行訓練,該數據集分別包含118k/5k張用於訓練/驗證的標註圖像。
訓練過程
我們在COCO和Objects365數據集上進行實驗,其中RT-DETR在COCO train2017數據集上進行訓練,並在COCO val2017數據集上進行驗證。我們報告了標準的COCO指標,包括平均精度(AP,在從0.50到0.95的均勻採樣交併比(IoU)閾值上平均,步長為0.05)、AP50、AP75,以及不同尺度下的AP:APS、APM、APL。
預處理
圖像被調整為640x640像素,並使用image_mean=[0.485, 0.456, 0.406]
和image_std=[0.229, 0.224, 0.225]
進行重新縮放。
訓練超參數
評估
模型 | 訓練輪數 | 參數數量(M) | 浮點運算次數(GFLOPs) | 幀率(FPS_bs=1) | 平均精度(AP)(驗證集) | AP50(驗證集) | AP75(驗證集) | 小目標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(Objects 365預訓練) | 60 | 20 | 61 | 217 | 49.2 | 66.6 | 53.5 | 33.2 | 52.3 | 64.8 |
RT-DETR-R50(Objects 365預訓練) | 24 | 42 | 136 | 108 | 55.3 | 73.4 | 60.1 | 37.9 | 59.9 | 71.8 |
RT-DETR-R101(Objects 365預訓練) | 24 | 76 | 259 | 74 | 56.2 | 74.6 | 61.3 | 38.3 | 60.5 | 73.5 |
模型架構與目標
RT-DETR概述。我們將骨幹網絡最後三個階段的特徵輸入編碼器。高效混合編碼器通過基於注意力的尺度內特徵交互(AIFI)和基於卷積神經網絡的跨尺度特徵融合(CCFF)將多尺度特徵轉換為圖像特徵序列。然後,不確定性最小查詢選擇選擇固定數量的編碼器特徵作為解碼器的初始目標查詢。最後,帶有輔助預測頭的解碼器迭代優化目標查詢,以生成類別和邊界框。
🔧 技術細節
文檔未提供具體技術實現細節,暫不展示。
📄 許可證
本模型採用Apache-2.0許可證。
📚 引用信息
BibTeX:
@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}
}
模型卡片作者











