概要説明
DETR (DEtection TRansformer) は、物体検出(object detection)タスクにおける新しいアプローチとして、2020年に Facebook AI(現 Meta AI)によって発表されたアルゴリズムです。
DETR は、従来の物体検出モデルとは異なり、トランスフォーマーベースのアーキテクチャを使用することで、検出と分類のプロセスを大幅に簡素化しています。
論文:https://arxiv.org/pdf/2005.12872
DETR の特徴
Transformer Architecture
自然言語処理で成果を挙げたTransformerを画像処理に応用しています。
入力画像をエンコーダーで特徴量に変換し、トランスフォーマーデコーダーが物体の位置(bbox)とClass labelを予測できます。
End-to-endのアプローチ
従来の物体検出では、アンカー生成や後処理(NMS: Non-Maximum Suppression)などの手作業のステップが必要でしたが、DETR ではこれらが不要となります。
これにより、シンプルで効率的な学習が可能になっています。
マルチタスク(物体検出と分類を同時に実行)
DETR は、画像中の物体の位置を検出し、それらを分類するプロセスを統一されたフレームワーク内で行います。
環境の準備
DETR を動かすには、Python と PyTorch の環境が必要です。以下の手順で準備を進めます。
Python 環境の作成
1 | # 仮想環境の作成(例: conda) |
1 | コードをコピーする |
DETRインストール
早速、Git clone を実行して、確認しましょう。
1 | git clone https://github.com/facebookresearch/detr.git |
DETR を使用した推論
それでは、COCO データセットを使用した事前学習済みモデルで物体検出を行います。
detr_inference.py ファイルを作成して推論コードを準備します。
1 |
|
保存して実行します。
1 | python detr_inference.py |
DETRのTraining
1 | python -m torch.distributed.launch --nproc_per_node=1 --use_env main.py --coco_path /workspaces/bev-playground/dataset/coco |