[OSS紹介#8] RT-DETRv2:論文実装!YOLOを超える高精度リアルタイム物体検出ツール

この記事について

この記事では、注目のオープンソースソフトウェア(OSS)である「RT-DETR」を紹介します。本シリーズでは、これまで文書解析ツールに焦点を当ててきましたが、今回は画像の物体検出に特化した革新的なツールに目を向けます。RT-DETRは、CVPR 2024で発表された「Real-Time DEtection TRansformer」として、従来のYOLOと比較しても即時の物体検出精度が高く、リアルタイムなアプリケーションへの適用が期待されます。

RT-DETRの基となる研究論文については、すでにこちらの記事で詳しく解説しており、今回ご紹介するGitHubリポジトリはその論文のPyTorch実装として公開されています。これにより、論文で提案された先進的なアルゴリズムを実際に試すことができます。

このツールは、物体検出の領域において新たなスタンダードとなる可能性を秘めており、特に実用的な能力を求める開発者や研究者にとって、非常に重要なリソースとなるでしょう。RT-DETRの技術的背景や使用方法について詳しく解説することで、OSSの利点を最大限に活用し、物体検出のプロジェクトにおける生産性を高める手助けとなることを目指しています。

リンク:https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch


本コンテンツは、弊社AI開発ツール「IXV」を用いたOSSツール紹介です。情報の正確性には努めておりますが、内容に誤りが含まれる可能性がございますのでご了承ください。

1. RT-DETRの機能

RT-DETRは、リアルタイムオブジェクト検出のためのディープラーニングモデルであり、DETR(Detection Transformer)アーキテクチャを基にしています。このツールは、YOLO系のモデルと比較しても優れた性能を発揮し、特にリアルタイム処理において高い精度を持っています。具体的には以下の機能があります。

  • 高精度のオブジェクト検出: COCOデータセットにおいて、様々なモデルが異なるAP(Average Precision)スコアを達成しています。
  • 複数のモデルのバリエーション: RT-DETRv2には、異なるサイズのモデル(S, M, L, X)が用意されており、用途に応じて選択可能です。
  • TensorRTとの互換性: ONNX形式でのエクスポートが可能で、TensorRTを用いたさらなる最適化が実施できます。

2. セットアップ手順

RT-DETRのセットアップは簡単で、以下の手順に従ってください。

2.1 環境の準備

  1. Python環境を用意します。推奨されるPythonのバージョンは3.8以上です。
  2. 必要なライブラリをインストールします。以下のコマンドを実行してください。
    pip install -r requirements.txt

2.2 動作環境

RT-DETRは、PyTorch 2.xおよびTorchVisionのバージョンに依存しています。以下の表を参考に、対応するバージョンを確認してください。

rtdetrtorchtorchvision
2.40.19
2.20.17
2.10.16
2.00.15

3. 簡単な使い方

RT-DETRを使用するための基本的なコマンドを以下に示します。

3.1 トレーニング

トレーニングを行うには、以下のコマンドを実行します。CUDAデバイスを指定して、マルチGPUトレーニングを行うことも可能です。

CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=9909 --nproc_per_node=4 tools/train.py -c path/to/config --use-amp --seed=0 &> log.txt 2>&1 &

3.2 テスト

トレーニング済みモデルを使用してテストを行うには、次のコマンドを使用します。

CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=9909 --nproc_per_node=4 tools/train.py -c path/to/config -r path/to/checkpoint --test-only

3.3 エクスポート

ONNX形式へのエクスポートは、以下のコマンドで実行できます。

python tools/export_onnx.py -c path/to/config -r path/to/checkpoint --check

さらに、TensorRTフォーマットへのエクスポートは次のように行います。

python tools/export_trt.py -i path/to/onnxfile

3.4 推論

推論を行う際は、以下のコマンドを使用します。ONNX、TensorRT、PyTorchのいずれかに対応しています。

python references/deploy/rtdetrv2_onnxruntime.py --onnx-file=model.onnx --im-file=xxxx
python references/deploy/rtdetrv2_tensorrt.py --trt-file=model.trt --im-file=xxxx
python references/deploy/rtdetrv2_torch.py -c path/to/config -r path/to/checkpoint --im-file=xxx --device=cuda:0

結論

RT-DETRは、リアルタイムオブジェクト検出において優れたパフォーマンスを誇るOSSツールです。セットアップが簡単でありながら、複数のモデル選択肢やTensorRTとの連携など、柔軟な運用が可能です。特に、精度と速度の両立を求めるプロジェクトにおいて、RT-DETRは非常に有用な選択肢となるでしょう。興味のある方は、ぜひ公式リポジトリを訪れて、詳細を確認してみてください。