2021/06/19SHAREツイートシェアはてブGoogle+PocketLINEこんばんはエンジニアの眠れない夜です。アノテーションとは、あるデータに対して関連する情報(メタデータ)を注釈として付与することをいいます。物体検出ではこのアノテーションを教師データとして利用します。アノテーションを作成できるアプリケーションはたくさんあります。その中でも今回はVoTTというアノテーションツールの紹介です。この記事の設定例は「【物体検出】keras-yolo3の学習方法」で利用できるものにしています。Tool)というアプリケーションがおすすめです。このアプリケーションはマイクロソフトによって開発されています。個人的にはマクロソフトってWindowsとオフィスソフトのイメージしか無かったのですが、最近は多岐にわたって活躍しているので少しイメージが変わってきました。その他、エディターだとVSCodeがマイクロソフトらしからぬ使いやすいソフトになっています。MSクラウドのAzureはGoogleCloudと並ぶほどのシェアを持っています。Skypeは10年経って劣化しただけの気がしますが...それはさておき、VoTTの話に戻しましょう。VoTTがおすすめできる理由は下記の3つです。事前に学習したモデルに予測をさせてアノテーションができるマルチプラットフォームで利用できるのはアノテーションを他の人にお願いする時に非常に重宝します。事前に学習したモデルを使って予測させられるのもいいですね!他のソフトにはあまり無い機能です。学習済みのモデルがどんなところで正しく検出できていないかのデバッグにも使えます。VoTTをダウンロードVoTTのダウンロードはこちらからできます。Windowsなら.exeファイルをダウンロードしてください。VoTTの使い方VoTTの使い方を最低限必要なところだけ紹介していきます。データソースの設定アプリケーションを開くとデータソースの設定をします。どこから画像ファイルを読み込むの?ってことですね。ここではローカル環境のフォルダ設定方法です。画面左のタブのプラグマークを選択すると下記のような画面に変わります。画像ファイルのフォルダを選択(keras-yolo3のresize_imageを選択)します。最後に保存すれば完了です。続いてプロジェクトを作成します。Projectを選択します。設定画面が表示されます。上から順番にプロジェクトの表示名(item)データソース(resize_image)書き出し先(resize_image)ここでは面倒なのでデータソースと書き出し先は先程設定したフォルダresize_imageにしました。他の項目は後からでも設定できるので今は触らなくても大丈夫です。設定ができたら保存します。作成された物体検出の予測モデルを使ってアノテーションファイルの作成をサポートしてくれる機能です。SSD」というのが使えます。このCocoというのがマイクロソフトが公開しているやつですね。COCOで予測したモデルのタグを設定してくれます。タグに無いオブジェクトはunknownというタグが自動でつけられます。今回は邪魔なので無効にしています。念の為、「有効」にしておきます。設定ができたら保存します。画面左の右上に矢印が伸びているアイコンをクリックするとこんな画面に変わります。VOC」という形式を選択しています。タグが選択されているものだけ書き出しという設定です。トレーニングとテストファイルの割合です。サインされていないものを書き出しは「無効」にします。設定ができたら保存します。最後のUnssignedというのが何を指しているのかいまいちよく分かりませんが「無効」で学習は成功しました。この他にもいろんな書き出し設定があるのであなたが利用したい物体検出のモデルにあった設定を探してみてください。画面左のホームアイコンの下にあるタブを開くとこのようにソースディレクトリにある画像の一覧とアノテーションを付ける画面が表示されます。右上のTAGSの+ボタンをクリックすると新しいタグを追加できます。ここではitemという名前をつけました。それから対象の物体を囲ってあげて、☒が表示されている状態でitemのタグをクリックするとアノテーションされている部分の色が変わります。アノテーションを選択他状態でタグをクリックしているのに反応しないパターンがあります。その時はアノテーションしているエリアを2回クリックした後にタグをクリックすると正常にタグが付けられます。こんな感じでアノテーションしていきます。(動画撮影時のタグはdogです)学習済みモデルを使った予測メニューにあるこのボタンをクリックすると学習済みモデルを使って予測されたアノテーションが表示されます。現在のモデルで検出できていないのはどんな物体か、どんなところが弱いのかなどデバッグにも使えるし、大量の画像をアノテーションする時に事前に予測しているので早くアノテーションを付けることができます。(間違っているところだけを修正すればいいということです。約15秒/枚1クラスだけだったのでこれで済みましたが10クラスあると40時間かかりますね。8時間労働で5日分です(笑)保存と書き出し時代を感じる左側のフロッピーのボタンで保存。右側の矢印のボタンで書き出しを行います。保存ボタンを押さずに書き出しを押すと画面上ではSuccess!!と表示されますが、ファイルは書き出されません。書き出す前は保存ボタンを押してから書き出しましょう。Errorと表示されて書き出しがうまく行かないことがあります。5秒間隔くらいで何度も書き出しボタンを押すと数回でうまく書き出しができることがあります。書き出されたファイルはプロジェクトの設定で書き出し設定したフォルダに保存されます。今回の場合はresize_imageというフォルダにタグ名-PascalVOC-exportが作成されます。フォルダの中身は以下のとおりです。まとめざっくりでしたがVoTTの使い方の紹介でした。細かい使い方や便利なショートカットキーの使い方などを知りたい方は公式ドキュメントを確認してください。VoTTを使ってYOLOの独自学習モデルを作りたい方はこちらの記事をご覧ください。現在は『アイデアをカタチにする』ことが仕事です。VoTTの使い方は、こちらを参考にした。コメントデータの処理方法の詳細はこちらをご覧ください。独立(7年目)現在は『アイデアをカタチにする』ことが仕事です。【Python】機械学習で文章を自動生成する方法おすすめ便利ツール2行でできる物体検出(YOLOv3)物体検出APIが使えるようになります。初心者でも物体検出の独自モデルを作成できます。flask-uwsgi-nginxで簡単API作成Flaskを使ったAPIを簡単に作成できます。Docker-Django-HTTPSDjangoを無料でHTTPS化でデプロイできます。Nginx,uWSGIも設定済み。Docker-Selenium-GridDockerを使ってSeleniumをすぐに使い始められます。Selenium-with-DjangoSeleniumでスクレイピングした内容をDjangoと簡単に連携させられます。APIGmailAPIをすぐに使い始められます。サイト内検索サイト内の記事に含まれるキーワードで柔軟な検索ができます。