Edited at

アノテーションツール(正解入力ツール)が進化している。 2

アノテーションについて調べてみるから、アノテーションツールの記事を独立させました。


Image annotation tool in OpenCV

YouTube Image annotation tool in OpenCV(python)

https://github.com/opencv/opencv/tree/master/apps/annotation

https://github.com/opencv/opencv/blob/master/apps/annotation/opencv_annotation.cpp

上記のソースコードを読むかぎり、PASCAL VOC のXMLフォーマットやjsonフォーマットではなく、スペース区切りテキストとして保存するものです。

ですから、アノテーションツールのサンプルとしてみれば良さそうです。

機械学習の中で使われる標準的なデータ形式をサポートしているものを最初から使えば十分でしょう。



Computer Vision Annotation Tool (CVAT)

OpenCVがCVATというアノテーションツールを配布している。

Youtube CVAT 0.2.0 - annotation mode

アノテーションは、長方形で指定する場合と、折れ線で領域を指定するのを選べます。

従来の検出では、対象物と背景とをまとめて長方形で領域指定していましたが、それだとどこまでが、対象物なのかを指定できていません。このモードでは、折れ線で領域を指定することで、対象物を指定することができます。

CVAT 0.2.0 - interpolation mode

動画に対してアノテーションする際に、全部のフレームに正解枠をつけるの大変です。このツールでは、あるフレームで正解枠をつけたら、数フレーム後の画像で正解枠を移動してつけます。それをさらに数フレーム後の画像で正解枠を移動してつけます。それらを繰り返します。そうすると、そのあとで、一連のフレームに対して、正解枠の補間をしてくれるとのことです。

こういった作業を、対象のオブジェクトごとに繰り返します。そうすることで、正解枠のアノテーションの作業を楽にする。

CVAT 0.2.0 - attribute mode

年齢、性別、メガネの有無などを画像にアノテーションをつけることができます。

CVAT 0.2.0 - segmentation mode

アノテーションをセグメンテーションでつけることができるモードです。セグメンテーションとは、領域をpixel単位に指定するやり方です。空・森林・道路・芝生・建築物を指定することができます。


最近にアノテーションでは、

セマンティックセグメンテーションのアノテーションになってきています。

セマンティックセグメンテーションのアノテーションツールlabelme


VoTT(Visual Object Tagging Tool)の紹介記事

Githubによれば、出力データ形式は以下のものがサポートされている。


Exporting tags and assets to Custom Vision Service CNTK , Tensorflow (PascalVOC) or YOLO format for training an object detection model.


Camshift tracking algorithm. を使って追跡をするので、追跡した結果の枠を修正すれば済むのが利点です。


VoTTの利用記事


- VoTTでラベル付けしたJSONをAWS SageMaker用に変換する