こんばんはエンジニアの眠れない夜です。
アノテーションとは、あるデータに対して関連する情報(メタデータ)を注釈として付与することをいいます。
物体検出ではこのアノテーションを教師データとして利用します。アノテーションを作成できるアプリケーションはたくさんあります。
その中でも今回はVoTTというアノテーションツールの紹介です。
この記事の設定例は「【物体検出】keras-yolo3の学習方法」で利用できるものにしています。
アノテーションツールVoTT(Visual Object Tagging Tool)とは
VoTT(Visual Object Tagging Tool)というアプリケーションがおすすめです。
このアプリケーションはマイクロソフトによって開発されています。
個人的にはマクロソフトってWindowsとオフィスソフトのイメージしか無かったのですが、最近は多岐にわたって活躍しているので少しイメージが変わってきました。
物体検出の分野ではMicrosoft COCOが有名です。その他、エディターだとVSCodeがマイクロソフトらしからぬ使いやすいソフトになっています。MSクラウドのAzureはGoogleCloudと並ぶほどのシェアを持っています。Skypeは10年経って劣化しただけの気がしますが…
それはさておき、VoTTの話に戻しましょう。
VoTTがおすすめできる理由は下記の3つです。
- Windows・Mac・Linuxで使える
- 書き出せるアノテーションファイルの形式が豊富
- 事前に学習したモデルに予測をさせてアノテーションができる
マルチプラットフォームで利用できるのはアノテーションを他の人にお願いする時に非常に重宝します。
事前に学習したモデルを使って予測させられるのもいいですね!他のソフトにはあまり無い機能です。
学習済みのモデルがどんなところで正しく検出できていないかのデバッグにも使えます。
VoTTをダウンロード
VoTTのダウンロードはこちらからできます。
Macなら.dmg
Windowsなら.exe
ファイルをダウンロードしてください。
VoTTの使い方
VoTTの使い方を最低限必要なところだけ紹介していきます。
データソースの設定
アプリケーションを開くとデータソースの設定をします。
どこから画像ファイルを読み込むの?ってことですね。
ここではローカル環境のフォルダ設定方法です。
画面左のタブのプラグマークを選択すると下記のような画面に変わります。
上から順番に
- データソース名を入力(ここではresize_image )
- ローカルファイルシステムを選択
- 画像ファイルのフォルダを選択(keras-yolo3のresize_imageを選択)
します。最後に保存すれば完了です。
プロジェクトを作成
続いてプロジェクトを作成します。
画面左のホームのタブをクリクするとこの画面が表示されるのでNew Projectを選択します。
設定画面が表示されます。
上から順番に
- プロジェクトの表示名(item)
- データソース(resize_image)
- 書き出し先(resize_image)
ここでは面倒なのでデータソースと書き出し先は先程設定したフォルダresize_image
にしました。
他の項目は後からでも設定できるので今は触らなくても大丈夫です。
設定ができたら保存します。
学習済みモデルを使った予測設定
予め作成された物体検出の予測モデルを使ってアノテーションファイルの作成をサポートしてくれる機能です。
デフォルトでは「Pre-traind Coco SSD」というのが使えます。このCocoというのがマイクロソフトが公開しているやつですね。
Predict Tag はCOCOで予測したモデルのタグを設定してくれます。もともとのタグに無いオブジェクトはunknownというタグが自動でつけられます。
今回は邪魔なので無効にしています。
Auto Detect 物体を四角で囲ってくれる機能だと思うのですが、チェックを外しても囲ってくれていた気が… 念の為、「有効」にしておきます。
設定ができたら保存します。
VoTTの書き出し設定
画面左の右上に矢印が伸びているアイコンをクリックするとこんな画面に変わります。
上から順番に
- YOLO v3で使える「Pascal VOC」という形式を選択しています。
- タグが選択されているものだけ書き出しという設定です。
- トレーニングとテストファイルの割合です。
- サインされていないものを書き出しは「無効」にします。
設定ができたら保存します。
※ 最後のUnssignedというのが何を指しているのかいまいちよく分かりませんが「無効」で学習は成功しました。
この他にもいろんな書き出し設定があるのであなたが利用したい物体検出のモデルにあった設定を探してみてください。
アノテーションを設定
画面左のホームアイコンの下にあるタブを開くとこのようにソースディレクトリにある画像の一覧とアノテーションを付ける画面が表示されます。
右上のTAGSの+ボタンをクリックすると新しいタグを追加できます。
ここではitemという名前をつけました。
それから対象の物体を囲ってあげて、☒が表示されている状態でitemのタグをクリックするとアノテーションされている部分の色が変わります。
※ アノテーションを選択他状態でタグをクリックしているのに反応しないパターンがあります。その時はアノテーションしているエリアを2回クリックした後にタグをクリックすると正常にタグが付けられます。
こんな感じでアノテーションしていきます。(動画撮影時のタグはdogです)
学習済みモデルを使った予測
メニューにあるこのボタンをクリックすると学習済みモデルを使って予測されたアノテーションが表示されます。
現在のモデルで検出できていないのはどんな物体か、どんなところが弱いのかなどデバッグにも使えるし、大量の画像をアノテーションする時に事前に予測しているので早くアノテーションを付けることができます。(間違っているところだけを修正すればいいということです。)
1枚1ラベルで1000枚作成するのに私は4時間かかりました… (-_-)
- 250枚/時
- 約4枚/分
- 約15秒/枚
1クラスだけだったのでこれで済みましたが10クラスあると40時間かかりますね。
8時間労働で5日分です(笑)
保存と書き出し
時代を感じる左側のフロッピーのボタンで保存。
右側の矢印のボタンで書き出しを行います。
※ 保存ボタンを押さずに書き出しを押すと画面上ではSuccess!!と表示されますが、ファイルは書き出されません。書き出す前は保存ボタンを押してから書き出しましょう。
Unknown Errorと表示されて書き出しがうまく行かないことがあります。5秒間隔くらいで何度も書き出しボタンを押すと数回でうまく書き出しができることがあります。
書き出されたファイルはプロジェクトの設定で書き出し設定したフォルダに保存されます。
今回の場合はresize_image
というフォルダにタグ名-PascalVOC-export
が作成されます。
フォルダの中身は以下のとおりです。
まとめ
ざっくりでしたがVoTTの使い方の紹介でした。
細かい使い方や便利なショートカットキーの使い方などを知りたい方は公式ドキュメントを確認してください。
VoTTを使ってYOLOの独自学習モデルを作りたい方はこちらの記事をご覧ください。
[…] 【物体検出】アノテーションツールVOTTの使い方 […]
[…] 【物体検出】アノテーションツールVoTTの使い方 […]
[…] 【物体検出】アノテーションツールVoTTの使い方 […]
[…] VoTTの使い方は、こちらを参考にした。 […]