リアルタイム物体検出フレームワーク「DEIMv2」を動かす

初めに

画像や動画の物体検出にはYoloがよく使われますが、他の選択肢を知ったので触ってみます。
今回触ってみるDEIMv2(DETR with Improved Matching v2) は、DINOv3の特徴を活用したリアルタイム物体検出フレームワークです。

DINOv3とは

DINOv3 とは、Metaが開発したVision 基盤モデルです

DEIMv2とは

DEIMv2は 内部の処理(モデル)に DINO v3を使ったリアルタイム物体検出フレームワークです

YOLOとの比較

精度重視、研究用途の場合はDEIMv2を選択肢となりそうです

開発環境

環境構築

環境の作成します

uv venv --python 3.11
source .venv/bin/activate

依存関係のインストールをします

uv pip install torch torchvision

# DEIMv2の依存関係
uv pip install PyYAML tensorboard scipy calflops transformers
uv pip install "faster-coco-eval>=1.6.7"

# モデルダウンロード用
uv pip install gdown

# 推論用(画像・動画処理)
uv pip install opencv-python pillow

モデルをダウンロードします(手動でも問題ないです)。今回は一番精度の良いものを使います

gdown "https://drive.google.com/uc?id=1pTiQaBGt8hwtO0mbYlJ8nE-HGztGafS7" -O deimv2_x.pth

実行

今回はサンプルの画像と動画を実行します

  • 画像で推論
python tools/inference/torch_inf.py \
    -c configs/deimv2/deimv2_dinov3_x_coco.yml \
    -r deimv2_x.pth \
    -i sample.jpg \
    -d cpu

  • 動画で推論
python tools/inference/torch_inf.py \
    -c configs/deimv2/deimv2_dinov3_x_coco.yml \
    -r deimv2_x.pth \
    -i your_video.mp4 \
    -d cpu