概要
物体検出モデルの学習データを作成するツール「CVAT」について、その機能であるTensorFlowモデルによるオートアノテーションと、OpenVINOのRe-IDモデルによるトラッキングデータの作成について述べる。
CVAT with TensorFLow auto annotation and OpenVINO Re-identification https://t.co/aTfJXDQy8w
— ハイパー絵に描いた餅クリエイター440 (@code_440) 2019年7月18日
あらまし
ディープ・ラーニングモデルを用いた物体検出等の精度は年々向上しており、各種アプリケーションでの利用が期待されている。
一方で、各タスクに応じてモデルの学習データを作成する必要があり人的コストを要する。
(ABEJA等の学習データの作成を行うビジネスがあるほど。)
本稿では物体検出向け学習データの作成を支援するツール「CVAT」について、その機能の一つであるTensorFlow連携によるオートアノテーションとOpenVINOのRe-IDモデルによるトラッキングデータの作成について述べる。
やること
CVATのインストールから基本的な使い方はこちらの記事に詳しい。
本稿ではオートアノテーションとRe-ID機能に焦点を当てて述べる。
環境
項目 | 内容 |
---|---|
OS | Ubuntu 16.04 64ビット |
プロセッサ | Intel Core i7-7700HQ CPU @ 2.8GHz 2.81GHz |
RAM | 16GB |
GPU | GTX1060 (6GB) |
OpenVINOの準備
こちらの事前準備にしたがって、OpenVINOツールキットをダウンロードし、
CVATのディレクトリ内にあるcomponents/openvino
に格納する。(圧縮したままで良い)
※ 現在のOpenVINOのバージョンは上記記事の内容と異なっているため、適宜選択してダウンロードする。
CVATの起動
今回はGPU(CUDA)、OpenVINO、TensorFlowを使用するため、以下のオプションを使用する。
ビルド
docker-compose -f docker-compose.yml -f components/cuda/docker-compose.cuda.yml -f components/openvino/docker-compose.openvino.yml -f components/tf_annotation/docker-compose.tf_annotation.yml build
起動
docker-compose -f docker-compose.yml -f components/cuda/docker-compose.cuda.yml -f components/openvino/docker-compose.openvino.yml -f components/tf_annotation/docker-compose.tf_annotation.yml up -d --build
CVATの利用
Chromiumブラウザでhttp://localhost:8080
にアクセスする。
本稿ではサンプルデータとしてCAVIARデータセットから動画を拝借した。
なお、CVATは画像または動画ファイルを読み込むことができ、
動画ファイルを読み込んだ場合はアノテーション結果をトラッキングデータとして保存することができる。
オートアノテーションの実行と結果
大まかな流れは動画の通り。
Create Task
からタスクを作成画面がポップアップし、タスク名とラベル等を設定、Select Files
からアノテーションしたいデータを読み込ませSubmit
。
Run TF annotation
からauto annotationが始まる。
私の環境ではGPUが貧弱なため短い動画の入力であったがそれなりに時間を要した。
auto annotation終了後、jobsのURLからjobページに移動することでアノテーションの結果を見ることができる。
アノテーションの結果を以下に示す。
見たところ高精度で人の位置に枠を付けている。
一方で、人が重なっているところでは精度が悪い。
Re-IDの実行と結果
次に、さきほどアノテーションした結果に対して、同一人物のIDをを統合するRe-IDを行う。
Open Menu
からRun ReID Merge
を実行する。
Re-IDの結果を示す。
ゆっくり歩いている人については同一の人物としてIDをが振られている。
一方で、人が重なるところや、振り向いた瞬間にIDの割り振りが変わっている。
このような誤ったアノテーションはパラメータを調整して再度Re-IDを行うか、手動で修正する必要がある。
おわりに
アノテーション作業の低減を目指し、CVATによるオートアノテーションとトラッキング紹介した。
現状では有効な場合と手作業による修正のいる場合があり、
データの状況を見て判断する必要がある。