🚀 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_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ベースの検出器(DETR)は、NMSを排除する代替手段を提供しました。しかし、高い計算コストがその実用性を制限し、NMSを排除する利点を十分に活用することを妨げています。
この論文では、Real - Time DEtection TRansformer(RT - DETR)を提案します。これは、私たちの知る限りでは、上記のジレンマを解決する最初のリアルタイムエンドツーエンド物体検出器です。RT - DETRは、高度なDETRを参考に2段階で構築されます。まず、精度を維持しながら速度を向上させ、次に速度を維持しながら精度を向上させます。具体的には、効率的なハイブリッドエンコーダを設計して、スケール内相互作用とクロススケール融合を分離することで、多スケール特徴を迅速に処理し、速度を向上させます。次に、不確実性最小化クエリ選択を提案して、デコーダに高品質の初期クエリを提供し、精度を向上させます。
さらに、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%高く、FPSが約21倍速いです。Objects365で事前学習した後、RT - DETR - R50 / R101は55.3% / 56.2%のAPを達成します。プロジェクトページはこちら[https URL](https://zhao - yian.github.io/RTDETR/)。
📦 インストール
このモデルはtransformers
ライブラリを使用しています。transformers
ライブラリをインストールすることで、モデルを使用できます。以下のコマンドでインストールできます。
pip install transformers
📚 ドキュメント
モデルの詳細

モデルのソース
- HF Docs: RT - DETR
- リポジトリ: https://github.com/lyuwenyu/RT - DETR
- 論文: https://arxiv.org/abs/2304.08069
- デモ: [RT - DETR Tracking](https://huggingface.co/spaces/merve/RT - DETR - tracking - coco)
トレーニングの詳細
トレーニングデータ
RTDETRモデルは、COCO 2017物体検出データセットでトレーニングされました。このデータセットは、トレーニング用に118k、検証用に5kのアノテーション付き画像で構成されています。
トレーニング手順
COCOとObjects365データセットで実験を行い、RT - DETRはCOCO train2017でトレーニングされ、COCO val2017データセットで検証されます。標準的なCOCOメトリクスを報告します。これには、AP(IoU閾値0.50 - 0.95の範囲で均一にサンプリングされた平均AP)、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 - s (検証) |
AP - m (検証) |
AP - l (検証) |
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の概要です。バックボーンの最後の3つのステージからの特徴をエンコーダに入力します。効率的なハイブリッドエンコーダは、Attention - based Intra - scale Feature Interaction(AIFI)とCNN - based Cross - scale Feature Fusion(CCFF)を通じて、多スケール特徴を画像特徴のシーケンスに変換します。次に、不確実性最小化クエリ選択が、エンコーダ特徴の固定数を選択して、デコーダの初期物体クエリとして使用します。最後に、補助予測ヘッド付きのデコーダが物体クエリを反復的に最適化して、カテゴリとボックスを生成します。
🔧 技術詳細
RT - DETRは、YOLOシリーズのNMSの問題とDETRの高い計算コストの問題を解決するために開発されました。エンコーダでは、多スケール特徴の処理を効率化するために、スケール内相互作用とクロススケール融合を分離したハイブリッドエンコーダを使用しています。デコーダには、不確実性最小化クエリ選択を用いて、高品質の初期クエリを提供し、精度を向上させています。また、デコーダ層の数を調整することで、再トレーニングなしに速度を柔軟に調整できるようになっています。
📄 ライセンス
このモデルは、Apache - 2.0ライセンスの下で提供されています。
📚 引用
@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](https://huggingface.co/qubvel - hf)