🚀 RT-DETRのモデルカード
RT-DETRは、リアルタイム物体検出のための最先端のエンドツーエンド物体検出器です。このモデルは、速度と精度のバランスを最適化し、NMSの問題を解決することで、既存の手法を上回る性能を発揮します。
🚀 クイックスタート
以下のコードを使用して、モデルを始めることができます。
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_r34vd")
model = RTDetrForObjectDetection.from_pretrained("PekingU/rtdetr_r34vd")
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]
✨ 主な機能
- リアルタイム性能: 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_r34vd")
model = RTDetrForObjectDetection.from_pretrained("PekingU/rtdetr_r34vd")
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ベースの検出器(DETR)がNMSを排除する代替手段を提供しています。しかし、高い計算コストがその実用性を制限し、NMSを排除する利点を十分に活用することを妨げています。この論文では、Real-Time DEtection TRansformer(RT-DETR)を提案します。これは、私たちの知る限りでは初のリアルタイムエンドツーエンド物体検出器であり、上記のジレンマを解決します。私たちは、高度なDETRに着想を得て、2つのステップでRT-DETRを構築します。まず、精度を維持しながら速度を向上させ、次に速度を維持しながら精度を向上させます。具体的には、効率的なハイブリッドエンコーダを設計して、スケール内相互作用とクロススケール融合を分離することで、多スケール特徴を迅速に処理し、速度を向上させます。次に、不確実性最小化クエリ選択を提案して、デコーダに高品質の初期クエリを提供し、精度を向上させます。さらに、RT-DETRは、デコーダ層の数を調整することで、再トレーニングなしに様々なシナリオに適応するための柔軟な速度調整をサポートします。私たちのRT-DETR-R50 / R101は、COCOで53.1% / 54.3%のAPを達成し、T4 GPUで108 / 74 FPSを達成し、速度と精度の両方で以前の高度なYOLOを上回っています。また、軽量なYOLO検出器(SおよびMモデル)を上回るスケーラブルなRT-DETRを開発しました。さらに、RT-DETR-R50は、精度でDINO-R50を2.2%のAPで上回り、FPSで約21倍上回っています。Objects365で事前学習した後、RT-DETR-R50 / R101は55.3% / 56.2%のAPを達成します。プロジェクトページはこちら https URL。
これは、🤗 transformers モデルのモデルカードであり、Hubに公開されています。
- 開発者: Yian ZhaoとSangbum Choi
- 資金提供元: 中国国家重点研究開発プログラム(No.2022ZD0118201)、中国自然科学基金(No.61972217、32071459、62176249、62006133、62271465)、および中国深セン医療研究基金(No.B2302037)
- 共有者: Sangbum Choi
- モデルタイプ: RT-DETR
- ライセンス: Apache-2.0
モデルのソース
- HF Docs: RT-DETR
- リポジトリ: https://github.com/lyuwenyu/RT-DETR
- 論文: https://arxiv.org/abs/2304.08069
- デモ: RT-DETR Tracking
トレーニングの詳細
トレーニングデータ
RTDETRモデルは、COCO 2017物体検出 データセットでトレーニングされました。このデータセットは、トレーニング用に118k、検証用に5kの注釈付き画像で構成されています。
トレーニング手順
私たちは、COCOとObjects365データセットで実験を行い、RT-DETRをCOCO train2017でトレーニングし、COCO val2017データセットで検証しました。私たちは、標準的なCOCOメトリクスを報告しています。これには、AP(IoUしきい値が0.50 - 0.95の範囲で均一にサンプリングされ、ステップサイズが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 (val) |
AP50 (val) |
AP75 (val) |
AP-s (val) |
AP-m (val) |
AP-l (val) |
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 pretrained) |
60 |
20 |
61 |
217 |
49.2 |
66.6 |
53.5 |
33.2 |
52.3 |
64.8 |
RT-DETR-R50 (Objects 365 pretrained) |
24 |
42 |
136 |
108 |
55.3 |
73.4 |
60.1 |
37.9 |
59.9 |
71.8 |
RT-DETR-R101 (Objects 365 pretrained) |
24 |
76 |
259 |
74 |
56.2 |
74.6 |
61.3 |
38.3 |
60.5 |
73.5 |
モデルアーキテクチャと目的

RT-DETRの概要です。バックボーンの最後の3つのステージからの特徴をエンコーダに入力します。効率的なハイブリッドエンコーダは、Attentionベースのスケール内特徴相互作用(AIFI)とCNNベースのクロススケール特徴融合(CCFF)によって、多スケール特徴を画像特徴のシーケンスに変換します。次に、不確実性最小化クエリ選択は、デコーダの初期物体クエリとして機能するために、固定数のエンコーダ特徴を選択します。最後に、補助予測ヘッドを備えたデコーダは、物体クエリを反復的に最適化して、カテゴリとボックスを生成します。
引用
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}
}
モデルカード作成者
Sangbum Choi
Pavel Iakubovskii
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。