百度のRT-DETR:ビジョントランスフォーマーベースのリアルタイム物体検出器
概要
Real-Time Detection Transformer (RT-DETR) は、百度によって開発された、高精度を維持しながらリアルタイム性能を提供する最先端のエンドツーエンド物体検出器である。DETR(NMSフリーフレームワーク)のアイデアをベースに、convベースのバックボーンと効率的なハイブリッドエンコーダを導入することで、リアルタイムの高速化を実現している。RT-DETR 、スケール内相互作用とクロススケールフュージョンを切り離すことで、マルチスケール特徴を効率的に処理する。このモデルは適応性が高く、再トレーニングなしに異なるデコーダ層を使用して推論速度を柔軟に調整することができる。RT-DETR は、CUDA withTensorRT のような高速化されたバックエンドにおいて優れており、他の多くのリアルタイム物体検出器を凌駕している。
見るんだ: リアルタイム検出トランス (RT-DETR)
百度の概要RT-DETR. RT-DETR モデルのアーキテクチャ図は、エンコーダへの入力として、バックボーンの最後の3つのステージ{S3、S4、S5}を示している。効率的なハイブリッドエンコーダは、イントラスケール特徴相互作用(AIFI)とクロススケール特徴融合モジュール(CCFM)を介して、マルチスケール特徴を画像特徴のシーケンスに変換する。IoUを考慮したクエリ選択は、デコーダの初期オブジェクトクエリとして機能する固定数の画像特徴を選択するために採用される。最後に、補助予測ヘッドを持つデコーダがオブジェクトクエリを繰り返し最適化し、ボックスと信頼度スコア(ソース).
主な特徴
- 効率的なハイブリッド・エンコーダ:BaiduのRT-DETR 、効率的なハイブリッド・エンコーダを使用し、イントラ・スケール・インタラクションとクロス・スケール・フュージョンを切り離すことで、マルチスケール特徴を処理する。このユニークなVision Transformersベースの設計は、計算コストを削減し、リアルタイムのオブジェクト検出を可能にします。
- IoUを意識したクエリー選択:BaiduのRT-DETR 、IoUを意識したクエリ選択を利用することで、オブジェクトクエリの初期化を改善。これにより、モデルはシーン内の最も関連性の高いオブジェクトに焦点を当てることができ、検出精度が向上する。
- 適応可能な推論速度:BaiduのRT-DETR 、再トレーニングの必要なく、異なるデコーダ層を使用することで推論速度を柔軟に調整することができます。この適応性により、様々なリアルタイム物体検出シナリオでの実用化が容易になります。
訓練済みモデル
Ultralytics Python APIは、事前に訓練されたPaddlePaddle RT-DETR モデルをさまざまなスケールで提供する:
- RT-DETR-L:COCOバル2017でAP53.0%、T4で114FPSGPU
- RT-DETR-X:COCOバル2017のAP54.8%、T4のFPS74GPU
使用例
この例では、単純なRT-DETR トレーニングと推論の例を提供します。これらのモードや他のモードに関する完全なドキュメントはPredict,Train,ValandExportdocs ページを参照してください。
例
from ultralytics import RTDETR
# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
サポートされるタスクとモード
この表は、モデルの種類、事前にトレーニングされた重み、各モデルでサポートされるタスク、サポートされる様々なモード(Train、Val、Predict、Export)を✅の絵文字で表しています。
モデル・タイプ | 事前に訓練されたウェイト | 対応タスク | 推論 | バリデーション | トレーニング | 輸出 |
---|---|---|---|---|---|---|
RT-DETR 大型 | rtdetr-l.pt | 物体検出 | ✅ | ✅ | ✅ | ✅ |
RT-DETR エクストラ・ラージ | rtdetr-x.pt | 物体検出 | ✅ | ✅ | ✅ | ✅ |
引用と謝辞
研究または開発作業でBaiduのRT-DETR 、元の論文を引用してください:
我々はBaiduとそのチームに感謝したい。 PaddlePaddleコンピュータビジョンコミュニティのためにこの貴重なリソースを作成し、維持してくれたBaiduとそのチームに感謝したい。Vision Transformersベースのリアルタイム物体検出器、RT-DETR の開発による、この分野への貢献には大いに感謝している。
よくあるご質問
バイドゥのRT-DETR モデルとその仕組みとは?
BaiduのRT-DETR (Real-Time Detection Transformer)は、Vision Transformerアーキテクチャに基づいて構築された先進的なリアルタイム物体検出器です。効率的なハイブリッドエンコーダにより、スケール内相互作用とクロススケールフュージョンを切り離すことで、マルチスケール特徴を効率的に処理する。IoUを意識したクエリ選択を採用することで、このモデルは最も関連性の高いオブジェクトに焦点を当て、検出精度を向上させる。再トレーニングなしでデコーダのレイヤーを調整することによって達成されるその適応可能な推論速度は、RT-DETR 、様々なリアルタイムのオブジェクト検出シナリオに適しています。RT-DETR の機能の詳細については、こちらをご覧ください。
Ultralytics で提供されている、事前に訓練されたRT-DETR モデルはどのように使用できますか?
Ultralytics Python API を活用して、事前に訓練されたPaddlePaddle RT-DETR モデルを使用することができます。例えば、COCO val2017 で事前に訓練されたRT-DETR-l モデルをロードし、T4GPU で高 FPS を達成するには、以下の例を利用できます:
例
from ultralytics import RTDETR
# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
なぜ他のリアルタイム物体検出器ではなくBaiduのRT-DETR 。
バイドゥのRT-DETR は、効率的なハイブリッド・エンコーダとIoUを意識したクエリ選択により、高い精度を維持しながら計算コストを大幅に削減している。再トレーニングなしで異なるデコーダー層を使用することで推論速度を調整できる独自の機能は、重要な柔軟性を追加します。CUDA このため、TensorRT のようなアクセラレーションバックエンドでリアルタイムのパフォーマンスを必要とするアプリケーションには特に有利であり、他の多くのリアルタイムオブジェクト検出器を凌駕している。
RT-DETR 、さまざまなリアルタイム・アプリケーションに適応可能な推論速度をどのようにサポートしているのだろうか?
BaiduのRT-DETR 、再トレーニングを必要とせず、異なるデコーダ層を使用することで推論速度を柔軟に調整することができる。この適応性は、さまざまなリアルタイムの物体検出タスクで性能を拡張するために非常に重要です。低精度のニーズに対してより高速な処理を必要とする場合でも、より低速で高精度の検出を必要とする場合でも、RT-DETR は特定の要件に合わせて調整することができます。
トレーニング、検証、エクスポートなど、他のUltralytics モードでRT-DETR モデルを使用できますか?
はい、RT-DETR モデルは、トレーニング、検証、予測、エクスポートを含む様々なUltralytics モードと互換性があります。これらのモードの利用方法の詳細については、それぞれのドキュメントを参照してください:トレーニング、検証、予測、エクスポート。これにより、オブジェクト検出ソリューションの開発と展開のための包括的なワークフローが保証されます。