CVATでAI自動追跡を使ったアノテーション完全ガイド
はじめに
コンピュータビジョンのプロジェクトで動画の物体追跡アノテーションを行う際,手動でのフレーム毎のアノテーションは非常に時間がかかります.CVAT(Computer Vision Annotation Tool)にAI自動追跡機能を組み込むことで,この作業を大幅に効率化できます.
本記事では,CVATにTransTトラッカーを導入し,AI補助による半自動アノテーションを実現する手順を詳しく解説します.
前提条件
- Docker,Docker Composeがインストールされていること
- Windowsユーザーの場合は,WSL2の利用を推奨
手順
1. CVATリポジトリの取得
まず,CVATの公式リポジトリから指定バージョンをクローンします.
git clone https://github.com/cvat-ai/cvat -b v2.12.1 --depth 1
cd cvat
2. Nuclioコマンドラインツールの導入
サーバーレス機能を管理するためのNuclioツールをインストールします.
# Nuclioバイナリをダウンロード
curl -LO https://github.com/nuclio/nuclio/releases/download/1.11.24/nuctl-1.11.24-linux-amd64
# 実行権限を付与
chmod +x nuctl-1.11.24-linux-amd64
# システムパスに移動
sudo mv nuctl-1.11.24-linux-amd64 /usr/local/bin/nuctl
3. サーバーレス機能付きでCVAT起動
通常のCVATに加えて,サーバーレス機能も同時に起動します.
docker-compose -f docker-compose.yml \
-f components/serverless/docker-compose.serverless.yml up -d
起動完了後,http://localhost:8080
でCVATにアクセス可能になります.
4. TransTトラッカーモジュールの追加
AI物体追跡機能として,高精度なTransTトラッカーをデプロイします.
./serverless/deploy_gpu.sh serverless/pytorch/dschoerk/transt/nuclio
デプロイが成功すると,CVATのUI上で自動追跡機能が利用可能になります.
5. 自動物体追跡の使用方法
- CVATでプロジェクトを作成し,動画をアップロード
- ジョブを開いて,左側のツールパネルから「AI Tools」を選択
- 追跡したい物体の初期フレームでバウンディングボックスを描画
- 「Track」ボタンをクリックして自動追跡を開始
システムが自動的に後続フレームでの物体位置とサイズを予測し,バウンディングボックスを調整していきます.
ただ,オクルージョンが発生する箇所では手動修正が必要になることが多いです.
とはいえ,かなり作業量は減るので楽になります.
トラブルシューティング
エラー: "Tracker initialization error"
以下のようなエラーが発生することがあります:
Tracker initialization error
HTTPConnectionPool(host='host.docker.internal', port=65227): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7b3b33a69d20>: Failed to establish a new connection: [Errno 111] Connection refused'))
解決方法:
-
実行中のコンテナのポート番号を確認
docker ps | grep nuclio-nuclio-pth-dschoerk-transt
-
serverless/pytorch/dschoerk/transt/nuclio/function-gpu.yaml
を編集triggers: myHttpTrigger: port: 65224 # エラーメッセージのポート番号に合わせる
まとめ
CVATにTransTトラッカーを組み込むことで,動画アノテーション作業を大幅に効率化できます.完全な自動化は困難ですが,AI補助により人間の作業負荷を大幅に削減できます.