コンテンツにスキップ

BaiduのRT-DETR:Vision Transformerベースのリアルタイム物体検出器

概要

Baiduが開発したReal-Time Detection Transformer (RT-DETR)は、高い精度を維持しながらリアルタイム性能を提供する最先端のエンドツーエンド物体検出器です。これはDETR(NMS-freeフレームワーク)のアイデアに基づいており、同時に畳み込みベースのバックボーンと効率的なハイブリッドエンコーダを導入することでリアルタイム速度を実現しています。RT-DETRは、スケール内相互作用とスケール間融合を分離することで、マルチスケール特徴を効率的に処理します。このモデルは高い適応性を持ち、再学習なしに異なるデコーダ層を使用して推論速度を柔軟に調整できます。RT-DETRは、CUDAとTensorRTのような高速化されたバックエンドで優れた性能を発揮し、他の多くのリアルタイム物体検出器を凌駕しています。



見る: BaiduのRT-DETRを物体detectに利用する方法 | Ultralyticsによる推論とベンチマーク 🚀

百度RTRT-DETR アーキテクチャ概要BaiduのRT-DETRの概要。 RT-DETRモデルのアーキテクチャ図は、バックボーンの最後の3つのステージ{S3, S4, S5}をエンコーダへの入力として示しています。効率的なハイブリッドエンコーダは、スケール内特徴相互作用(AIFI)とスケール間特徴融合モジュール(CCFM)を介して、マルチスケール特徴を画像特徴のシーケンスに変換します。IoU-awareクエリ選択は、デコーダの初期物体クエリとして機能する固定数の画像特徴を選択するために採用されています。最後に、補助予測ヘッドを持つデコーダは、物体クエリを反復的に最適化して、ボックスと信頼度スコアを生成します(ソース)。

主な特徴

  • 効率的なハイブリッドエンコーダ: Baidu の RT-DETR は、スケール内インタラクションとスケール間融合を分離することにより、マルチスケール機能を処理する効率的なハイブリッドエンコーダを使用します。この独自の Vision Transformers ベースの設計により、計算コストが削減され、リアルタイムのオブジェクト検出が可能になります。
  • IoU認識クエリ選択: BaiduのRT-DETRは、IoU認識クエリ選択を利用することで、物体クエリの初期化を改善します。これにより、モデルはシーン内の最も関連性の高い物体に焦点を当てることができ、検出精度が向上します。
  • 適応可能な推論速度: BaiduのRT-DETRは、再トレーニングを必要とせずに、異なるデコーダレイヤーを使用することで、推論速度の柔軟な調整をサポートします。この適応性により、さまざまなリアルタイム物体検出シナリオでの実用的なアプリケーションが容易になります。
  • NMSフリーフレームワーク: DETRに基づいて、RT-DETRは非最大抑制の後処理の必要性を排除し、検出パイプラインを簡素化し、効率を向上させる可能性があります。
  • Anchor-Free Detection: anchorフリー検出器として、RT-DETRは検出プロセスを簡素化し、異なるデータセット間での汎化を向上させる可能性があります。

学習済みモデル

Ultralytics Python APIは、異なるスケールの事前学習済みPaddlePaddle RT-DETRモデルを提供しています。

  • RT-DETR-L: COCO val2017で53.0% AP、T4 GPUで114 FPS
  • RT-DETR-X: COCO val2017で54.8% AP、T4 GPUで74 FPS

さらに、Baiduは2024年7月にRTDETRv2をリリースしました。これにより、元のアーキテクチャがさらに改善され、パフォーマンス指標が向上しています。

使用例

この例では、簡単なRT-DETRのトレーニングと推論の例を提供します。これらおよびその他のモードに関する完全なドキュメントについては、PredictTrainVal、およびExportのドキュメントページを参照してください。

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")
# Load a COCO-pretrained RT-DETR-l model and train it on the COCO8 example dataset for 100 epochs
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained RT-DETR-l model and run inference on the 'bus.jpg' image
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg

サポートされているタスクとモード

この表は、モデルの種類、特定の事前学習済み重み、各モデルがサポートするタスク、および、✅絵文字で示される、サポートされている様々なモード(TrainValPredictExport)を示しています。

モデルの種類事前学習済み重みサポートされているタスク推論検証学習エクスポート
RT-DETR Largertdetr-l.pt物体検出
RT-DETR Extra-Largertdetr-x.pt物体検出

理想的なユースケース

RT-DETRは、高い精度とリアルタイム性能の両方が必要なアプリケーションに特に適しています。

引用と謝辞

BaiduのRT-DETRを研究または開発で使用する場合は、元の論文を引用してください。

@misc{lv2023detrs,
      title={DETRs Beat YOLOs on Real-time Object Detection},
      author={Wenyu Lv and Shangliang Xu and Yian Zhao and Guanzhong Wang and Jinman Wei and Cheng Cui and Yuning Du and Qingqing Dang and Yi Liu},
      year={2023},
      eprint={2304.08069},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

RTDETRv2については、2024年の論文を参照してください。

@misc{lv2024rtdetrv2,
      title={RTDETRv2: All-in-One Detection Transformer Beats YOLO and DINO},
      author={Wenyu Lv and Yian Zhao and Qinyao Chang and Kui Huang and Guanzhong Wang and Yi Liu},
      year={2024},
      eprint={2407.17140},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

コンピュータビジョンコミュニティにとって貴重なリソースを作成および管理しているBaiduとPaddlePaddleチームに感謝いたします。Vision Transformersベースのリアルタイム物体検出器であるRT-DETRの開発における彼らの貢献に深く感謝いたします。

よくある質問

Baidu の RT-DETR モデルとは何ですか?また、どのように機能しますか?

BaiduのRT-DETR(Real-Time Detection Transformer)は、Vision Transformerアーキテクチャに基づいて構築された高度なリアルタイム物体検出器です。効率的なハイブリッドエンコーダを介して、スケール内相互作用とスケール間融合を分離することで、マルチスケール特徴を効率的に処理します。IoU-awareクエリ選択を採用することで、モデルは最も関連性の高い物体に焦点を当て、検出精度を向上させます。再学習なしにデコーダ層を調整することで実現される適応可能な推論速度により、RT-DETRは様々なリアルタイム物体検出シナリオに適しています。RT-DETRの機能については、RT-DETR Arxiv論文で詳細をご確認ください。

Ultralyticsが提供する事前学習済みRT-DETRモデルはどのように使用できますか?

Ultralytics Python APIを活用して、事前学習済みのPaddlePaddle RT-DETRモデルを使用できます。例えば、COCO val2017で事前学習されたRT-DETR-lモデルをロードし、T4 GPUで高い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")
# Load a COCO-pretrained RT-DETR-l model and train it on the COCO8 example dataset for 100 epochs
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained RT-DETR-l model and run inference on the 'bus.jpg' image
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg

BaiduのRT-DETRを他のリアルタイムオブジェクト検出器よりも選ぶべきなのはなぜですか?

BaiduのRT-DETRは、効率的なハイブリッドエンコーダとIoU-awareクエリ選択により際立っており、高い精度を維持しながら計算コストを大幅に削減します。再学習なしに異なるデコーダ層を使用することで推論速度を調整できる独自の能力は、大きな柔軟性をもたらします。これにより、CUDAとTensorRTのような高速化されたバックエンドでリアルタイム性能を必要とするアプリケーションにとって特に有利であり、他の多くのリアルタイム物体検出器を凌駕しています。また、トランスフォーマーアーキテクチャは、従来のCNNベースの検出器と比較して、より優れたグローバルコンテキスト理解を提供します。

RT-DETRは、さまざまなリアルタイムアプリケーションに対して、適応可能な推論速度をどのようにサポートしますか?

Baidu の RT-DETR は、再トレーニングを必要とせずに異なるデコーダレイヤーを使用することで、推論速度を柔軟に調整できます。この適応性は、さまざまなリアルタイムオブジェクト検出タスクにわたってパフォーマンスを拡張するために重要です。より低い精度ニーズのために高速処理が必要な場合でも、より遅く、より正確な検出が必要な場合でも、RT-DETR は特定の要件に合わせて調整できます。この機能は、さまざまな計算能力を持つデバイス全体にモデルをデプロイする場合に特に役立ちます。

RT-DETRモデルを、トレーニング、検証、エクスポートなど、他のUltralyticsモードで使用できますか?

はい、RT-DETRモデルは、トレーニング、検証、予測、エクスポートなど、さまざまなUltralyticsモードと互換性があります。これらのモードの使用方法の詳細については、それぞれのドキュメント(TrainValPredictExport)を参照してください。これにより、オブジェクト検出ソリューションの開発とデプロイのための包括的なワークフローが保証されます。Ultralyticsフレームワークは、さまざまなモデルアーキテクチャにわたって一貫したAPIを提供し、RT-DETRモデルの操作を容易にします。



📅 2年前に作成 ✏️ 2日前に更新
glenn-jocherRizwanMunawarpderrengerleonnilLaughing-qMatthewNoyceRizwanMunawar

コメント