Help us understand the problem. What is going on with this article?

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

注意!

この文章はアノテーションツールについて調査中の人が書いています。

あなたが行おうとする機械学習ライブラリは、ライブラリごとに入力のアノテーションのデータのフォーマットが異なります.
はじめからそのフォーマットで出力してくれるツールを使うのがよいと思います。

「アノテーションツール(正解入力ツール)が進化している。 2」の記事を、この記事に連結しました。

比較

tool YOLO SSD dlib
Format YOLO PASCAL VOC Format (XML)
imglab o
labelImg o o
BBox-Label-Tool 変換ツール使用

オブジェクト検出器を作るときは、正解データを入力する作業がある。そういった作業をアノテーションと呼ばれている。

昔のアノテーションの状況

この作業が実に面倒だった。

  • マウスで領域の指定をして結果を保存するツールを部署ごとに自作していた。
  • 入力結果を保存するファイル形式が標準化されていない。
  • ツールの中で途中で作業の打ち切りや再開が難しい。
  • 入力作業中に間違えたときの取り消し、やり直しがきかない。
  • 最終結果ファイルが意図した内容になっているのかの確認がむずかしい。

dlibのアノテーションツール imgLab

そのような状況が変わっていることをdlibのオブジェクト検出器の学習用のツールで実感した。

dib/tools/imgLab https://github.com/davisking/dlib/tree/master/tools/imglab

  • dlibの中でオブジェクト検出器の学習用に必要なアノテーションツールが提供されている。
  • dlibのオブジェクト検出器の学習に使えるファイル構造としてxmlを標準化している。
  • そのアノテーションツールでは、作業をするファイルを任意の場所から選べる。
  • また、間違えた部分があったときに、エディタでそのXMLファイルを修正がしやすい。
  • 結果のXMLファイルを表示させると、画像にアノテーションされた矩形が表示される。
    • XMLファイルに画像自体とその上に矩形を表示させる枠組みとしてimage_metadata_stylesheet.xslが用意されている。

その実際の使い勝手は、dlibでのsimple_object_detectorの学習手順を示している次の記事が参考になるだろう。

HOG特徴とSVMによる物体検出

imglabを使ってよいと思った点

  • XMLファイルに書き込んだ結果を元にしたオブジェクトの枠を ブラウザ上で表示できる。
  • この枠を重ね書きした画像をファイルとして一時的に作成する必要がない。
  • このため、ディスクスペースを無駄に使うことがない。
  • また、ファイルがあれば整合性がとれているのかバージョン管理などの問題を生じるが、その都度XMLファイルから読み込んで枠を表示させるのだから、そのような問題を生じない。

検出結果の表示にしても同じようにXMLファイルで結果を表示すれば、
検出結果をXMLファイルでだけ保存すればよく、検出結果を重ね書きした画像ファイルを別途保存する必要がなくなる。

アノテーションツールにほしいこと

  • ツールの動作時の入力画像が表示画面よりも大きい時にストレスなく入力できること。
  • アノテーション済みの結果を修正しやすこと。
  • 操作性が簡単であること。
  • ツールの再配布が簡単であること。
  • OSの種類によらず使いやすいこと。
  • 動画中のオブジェクトのアノテーションが楽であること

labelImg

labelImg https://github.com/tzutalin/labelImg

qiita labelImgとChainerCVを使ってアノテーション作業を楽にする

Yolo学習用データセットの作成ツール:labelImg

labelImg – 🤘画像の注釈ツール

LabelImg - GUIで写真をラベリング

物体検出用の画像アノテーション正解データ生成に便利なツール

labelImg · PyPI

https://github.com/tzutalin/ImageNet_Utils

これも labelImg.py というツール。

labelImg のインストールに失敗する場合
docker を利用するとよいようだ。

BBox-Label-Tool

BBox-Label-Tool https://github.com/puzzledqs/BBox-Label-Tool

YOLO-VOCでのカスタムオブジェクトの作成の仕方

ご注文はYOLOですか!?(Windows10でYOLOを学習して動かすまで)

BBoX-Label-ToolをPython3で使用する

OpenCV にあるopencv_annotation

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

VoTT: Visual Object Tagging Tool 1.5

動画にアノテーションをつけられるのはよい点です。
Camshift tracking algorithm を使って次のフレームの枠を描画してくれるので、それを使って初期値として、枠を修正しない、修正するを選べます。

VoTTのバージョンは、VoTT 1.03ならば、追跡後の枠位置がほぼ妥当なものになっています。
1.5.0のバージョンでは、残念なことに、枠位置が不自然に系統的にずれています。

ビルド済みのバイナリファイルをgithubのリリース
から、各種OS用がダウンロードできます。

次の記事は、VoTTのGithubに書いてあるREADME.mdを書いてある内容を日本語で読みやすく書いてあります。

その次の記事は、VoTTを使ってタグ付けをして、SSDを使ってオブジェクト検出をしている例です。SSDは以下のリポジトリを用いています。アノテーション作業から、実際の検出の実装・利用までの手順を理解するのに役に立つ記事です。

$ git clone https://github.com/karaage0703/ssd_keras

その他のアノテーションツール

以下のツールがあるが使ったことがないので、コメントができない。

sloth https://github.com/cvhciKIT/sloth
LEAR
labelMe http://labelme.csail.mit.edu/Release3.0/

qiita Annotationツール比較

qiita 物体認識用データセット作成支援ツール(Faster R-CNNとかSSDとか)

目位置の入力ツール Eye-Picker

Windows 版のexe もある。
https://github.com/bolme/pyvision/wiki/Eye-Picker

(Non)verbal Annotator
https://github.com/hcmlab/nova


顔の正解データの与え方にしても最近は変わってきている。
それによって、必要なアノテーションツールや評価用の集計プログラムも変わってきている。

Here, each face is denoted by:
<major_axis_radius minor_axis_radius angle center_x center_y 1>.

http://vis-www.cs.umass.edu/fddb/README.txt


注意

機械学習の時代は、手動のアノテーション時代ではなく、機械学習によって機械学習を強化する時代になっている。

SlideShare SSII2018TS: 大規模深層学習
⼤規模深層学習 〜分散学習の基礎、動向、実例〜 株式会社デンソーアイティーラボラトリ 佐藤 育郎
p.13 - p.26 の部分で、どのように学習データを作成しているのかが述べられている。

アノテーションツール(正解入力ツール)が進化している。 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用に変換する



github.com/AlexeyAB/Yolo_mark
https://github.com/AlexeyAB/Yolo_mark

nonbiri15
Python, scikit-learn, OpenCV使いです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした