ishigenの技術ブログ

卓球×テクノロジー、機械学習

VOTTを使ってみる

今回はVOTTを使ってアノテーションしてみます。方法についてはgithubのページにも記載があります。ここでは簡単な手順と実際に動かしみて感じたことを書きます。

以下のソースからご自身のマシンに対応するファイルをダウンロードして、解凍すると使えるはずです。

github.com

起動後の画面からyoutubeっぽいマークのアイコンを選び、動画ファイルを選択すると動画のアノテーションになります。注意して頂きたいのは、この時点でファイル名に空白があったり、全角文字が含まれていると、学習するときに面倒なことになる可能性もあるので、変更しておくことをお勧めします。

f:id:ishigentech:20181006190338p:plain

開くとこんな画面になります。今回は下記画像の設定で行います。

f:id:ishigentech:20181004204303p:plain

設定項目は以下の通りです。

  • Frame Extraction Rate

アノテーションを行うfpsを指定します
1だと1フレームずつアノテーションになります

  • Region Type

ボックスの種類を選択します

  • Suggested Region Method

次のフレームのボックスをどうするかの設定です

  • Labels* (Comma Seperated)

カンマ区切りで付与したいラベルをすべて入力します


ここからはドラッグアンドドロップで枠を作成し、ラベルを選択します。数千とかやってると地獄の作業です。

f:id:ishigentech:20181004204323p:plain

私の環境だと次のフレームに移動すると、ボックスが少しずつずれます。そのような場合は画像のサイズにウィンドウを合わせると、若干改善されます。

作りたいフレーム分だけ作業が終わったら、
Object DettectionのExport Tagsを選択します。
すると下記の画面が表示されます。

f:id:ishigentech:20181004205223p:plain

今回はこの画面の設定で出力します。量が多いとそれなりに時間がかかります。

f:id:ishigentech:20181004210121p:plain

出力されるディレクトリ構成はこうなります。設定ファイルとdataディレクトリがあって、dataディレクトリの中にクラス名とパスが記載されたファイルができます。そしてobjディレクトリにフレームごとに画像化したものと、フレームごとのボックスの位置とクラス名が記述されたファイルが出力されます。ファイル名は0埋めしてほしいところでした。

クラス名とボックスの位置が記載されたtxtファイルはYOLOのフォーマットである

クラス番号 x中心座標 y中心座標 幅 高さ
ボックスの数だけ記載

このようなファイル形式で出力されます。

モデルによってはこのまま学習させることもできます。

VOTTを紹介している記事があまりなかったため、書いてみました。次はこのデータを使って学習させてみたいと思います。