post Image
Annotationツール比較

Annotationツール

SSDやYOLOなど種々の物体検出のアルゴリズムがありますが、それらを自分の関心のある問題に適用しようと思うと、問題に合わせた教師データにより学習する必要があります。そして、そのためには教師データを用意する必要があるわけですが、それを行うAnnotationツールはというと、
List of manual image annotation tools – Wikipedia
たくさんあります。どれがいいのだろう、、と思い、いくつか実際に試してみました。

まず、それぞれのツールのgithubレポジトリで、スターの数、コミット数、最新コミット日時等を見て、以下をピックアップしました。

  1. tzutalin/labelImg: LabelImg is a graphical image annotation tool and label object bounding boxes in images

    • ★ 3825, Watch 208, Fork 1438 (as of 2018/7/4)
    • 292 commits, last commit on 2018/6/15.
  2. Labelbox/Labelbox: The most versatile data labeling platform for training expert AI.

    • ★ 461, Watch 25, Fork 73 (as of 2018/7/4)
    • 571 commits, last commit on 2018/6/28.
  3. Microsoft/VoTT: Visual Object Tagging Tool: An electron app for building end to end Object Detection Models from Images and Videos.

    • ★ 527, Watch 46, Fork 122 (as of 2018/7/4)
    • 410 commits, last commit on 2018/5/17.
  4. annotorious/annotorious: Image Annotation for the Web – Annotorious Core Library

    • ★ 471, Watch 48, Fork 127 (as of 2018/7/4)
    • 589 commits, last commit on 2018/5/14.
  5. Visual Geometry Group / via · GitLab
    • ★ 29 (as of 2018/7/4)
    • 478 commits, last commit on 2018/6/15.
  6. virajmavani/semi-auto-image-annotation-tool: Anno-Mage: A Semi Automatic Image Annotation Tool which helps you in annotating images by suggesting you annotations for 80 object classes using a pre-trained model (上記のリストにはないけど、見かけて気になったので)

    • ★ 166, Watch 9, Fork 29 (as of 2018/7/4)
    • 42 commits, last commit on 2018/6/15.

比較

主に、主観に基づく比較です。

1. labelImg

  • アプリタイプ: コマンド起動またはDesktopアプリ
  • LICENSE: MIT
  • 入力フォーマット: ローカルファイル
  • 出力フォーマット: PascalVOC及びYOLOフォーマット
  • コメント: アイコン付きアプリにするために、少し戸惑った。

    pyenv uninstall 3.6.5
    env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.6.5
    pip install virtualenv
    
  • UI所感: 過不足のない感じで使いやすい。矩形領域選択時に出る補助線が良い。画像端まで選択すると、truncatedフィールドを1にしてくれる。クラスのインクリメンタルサーチもできて便利。ショートカットキーも便利。
    スクリーンショット 2018-07-05 0.44.48.png

2. Labelbox

  • アプリタイプ: Webサービス
  • LICENSE: Apache-2.0
  • 入力フォーマット: ローカルファイル、クラウド(URIのリストで指定する)
  • 出力フォーマット: 独自形式。レポジトリにあるツールでPacaslVOC, COCO形式に変換できる。
  • UI所感: マテリアルデザインベース。作り込んであるけど、使いこなすには慣れが必要そうな印象。フロントエンドUIが3種類用意されていて、そのうちの1つがAnnotation用になっている。ただしポリゴンで領域を指定する形式。独自にUIを作成して追加できる。
    スクリーンショット 2018-07-03 13.28.59.png

3. VoTT

  • アプリタイプ: Electronアプリ
  • LICENSE: MIT
  • 入力フォーマット: ローカルファイル
  • 出力フォーマット: PascalVOC, YOLO
  • コメント: maxOS High Sierra上で動かしていて、はじめの方でボタンが反応しなくて進めなくなった。
  • UI所感: 進めなかったので未確認。Continueを押しても何も反応せず。
    スクリーンショット 2018-07-03 14.24.12.png

4. annotorious

  • アプリタイプ: Webアプリ
  • LINCENSE: MIT
  • 入力フォーマット: HTML内に<img>タグで指定。
  • 出力フォーマット: そのままでは出力されない。JavaScript APIで提供されているonAnnotationCreated(annotation)などで、出力処理を書く必要がありそう。
  • コメント: UIだけのようなので、画像データの供給や、出力を自分で実装しないといけない。また、プロジェクトが現在unsupportedになっている。
  • UI所感: シンプルで、編集や削除はしやすい。
    スクリーンショット 2018-07-05 0.48.13.png

5. via

  • アプリタイプ: Web
  • LICENSE: BSD 2-Clause “Simplified” License
  • 入力フォーマット: ローカルファイル、URL、URIのリストファイル。ワイルドカードで多数のローカルファイルを選択すると、読み込むまでに時間がかかった。
  • 出力フォーマット: 独自形式のJSON
  • UI所感: 必要な機能は揃っているが、使いにくさを感じた。クラスの登録が手間。領域が画像からはみ出すと選択されないため、手ではみ出さないように調整しないといけない。
    スクリーンショット 2018-07-05 0.50.35.png

6. semi-auto-image-annotation-tool

  • アプリタイプ: コマンドで起動
  • LICENSE: Apache-2.0
  • 入力フォーマット: ローカルファイル
  • 出力フォーマット: 独自形式(path, x1, y1, x2, y2,category)
  • コメント: Deep Learningでオブジェクトの推定ができる。
  • UI所感: 使いにくさを感じた。画像境界のチェックがされない。saveボタンを押すと、追記保存されるため、重複する。
    スクリーンショット 2018-07-05 0.52.43.png

まとめ

今回比較した中では、labelImgが最も良かったです:sparkles: 適度にシンプルかつ必要な機能は揃っていて、効率よくAnnotationができそうに感じました。PascalVOCで出力できるのを探していたので、その点でも良いです。Webベースだと個人的にはもっと良かったです。ポリゴンでAnnotationしたい場合は向かなそうです。

その次に良さそうと思ったのはviaです。UIが微妙に使いにくく感じましたが、必要な機能は揃っている感じでした。PascalVOC等のフォーマットへは、自分で変換する処理を書かないといけなそうです。

Labelboxは、UIの独自開発も視野に入れて、ガッツリ使い込む場合には良いのかもしれないと感じました。ただその場合は、有料プランで使うことになりそうです。

以上、Annotationツールの比較でした。参考になれば幸いです。


『 機械学習 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。