I am Charmie

メモとログ

CVAT: a free image/video annotation tool

CVATで画像のアノテーションをしてみた.

  • UIがまぁまぁ使いやすい
  • 既存モデルを使った自動アノテーションは一部動いた
    • 既存モデルの読み込み?(CVAT上で選択できる)は成功
    • モデルによってエラーを吐く
種類 モデル 状態
Interactor DEXTR ok
Interactor SAM building 終わらず
Detector YOLOv5 読み込めるけど,使うとエラー
Detector Mask RCNN 読み込めるけど,使うとエラー
Tracker SiamMask ok

インストール

  • dockerを使う
  • この手順に従えば問題なくCVATを使える(はず)
    • DLモデルを使った自動アノテーションやActive Learningはここに従えばOKっぽい
    • 手順3で up -d --build にすると,コンテナを強制ビルドするから, up -d でいいんじゃないかと思うけど,どうなんだろう?
# 手順1. dockerのインストール
sudo apt-get update
sudo apt-get --no-install-recommends install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
sudo apt-get update
sudo apt-get --no-install-recommends install -y \
  docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 手順2. cvatのレポジトリのコピー
git clone https://github.com/opencv/cvat
cd cvat

# 手順3. コンテナの作成・起動
docker compose -f docker-compose.yml -f docker-compose.dev.yml -f components/serverless/docker-compose.serverless.yml up -d --build

既存モデルの利用

  • CVAT上でモデルが表示されて,Magic wandツールでモデルを選択できるようになった
  • tracker, detectorを選択すると,モデルの初期化エラーとかが表示される
    • モデルによってエラーが異なる
    • DEXTRはエラーなく使える
  • Nuclio command line tool (nuctl)を使う
  • builtin DL modesは CVATROOT/serverless に保存されている
    • 例: YOLOv5: CVATROOT/serverless/pytorch/ultralytics/yolov5/nuclio/
    • 例: DEXTR: CVATROOT/serverless/openvino/dextr/nuclio/

nuctlのインストール

# (オプション)既存コンテナの削除
docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml down

# 手順1 nuctlのバイナリのダウンロード
wget https://github.com/nuclio/nuclio/releases/download/<version>/nuctl-<version>-linux-amd64

# 手順2 ダウンロードしたバイナリをOSにコピー
sudo chmod +x nuctl-<version>-linux-amd64
sudo ln -sf $(pwd)/nuctl-<version>-linux-amd64 /usr/local/bin/nuctl
  • versionの確認は CVATROOT/components/serverless/docker-compose.serverless.yml を参照
    • 以下の内容であれば,バージョンは1.8.14
services:
  nuclio:
    container_name: nuclio
    image: quay.io/nuclio/dashboard:1.8.14-amd64
    restart: always

既存モデルの利用

  • 既存モデルを使用する前に,あらかじめdocker composeでCVATのコンテナを起動させておく
# 手順1 nuclio dashboard内でプロジェクトを作成
nuctl create project cvat

# 手順2 既存モデルのダウンロード
## 手順2.1 DEXTRを使う例
nuctl deploy --project-name cvat \
  --path serverless/openvino/dextr/nuclio \
  --volume `pwd`/serverless/common:/opt/nuclio/common \
  --platform local

## 手順2.2 YOLOv3を使う例
nuctl deploy --project-name cvat \
  --path serverless/openvino/omz/public/yolo-v3-tf/nuclio \
  --volume `pwd`/serverless/common:/opt/nuclio/common \
  --platform local