takmin / ObjectMarker

Image Annotation Tool for Object Detection and Tracking written with OpenCV

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ObjectMarker ver2.0
2014/08/28 takuya minagawa

<1. 概要>
このプログラムはGunawan Herman氏が作成したObjectMarkerに対し、カスタマイズを施したものになります。

ObjectMarkerは物体認識/検出の開発者や研究者が簡単にGround Truthデータを作成するためのツールです。検出/学習させたいオブジェクトが含まれた画像群から簡単に座標を記述したテキストファイルを作成できます。

テキストファイルは
「画像ファイル名」 「オブジェクト数」 「左上x座標」 「左上y座標」 「幅」 「高さ」...

というフォーマットで出力します。例えば(x,y,w,h)=(10,14,100,120), (141,151,100,120)オブジェクトが2つあるケースの場合

20100915-1/0000004.jpg 2 10 14 100 120 141 151 100 120

というフォーマットで出力されます。


<2. インストール>
ビルドには、boostとOpenCVが必要です。
boost
http://www.boost.org/

OpenCV
http://opencv.org/

コンパイル済みのバージョンを使用する場合は、ObjectMarker.zipを解凍してObjectMarkerを実行するだけです。
もしObjectMarkerがうまく動かない場合は、VC++2013のランタイムをインストールする必要があるかもしれません。
以下のサイトからお使いのプロセッサにあったランタイムを探し、ダウンロードとインストールをして下さい

http://www.microsoft.com/ja-jp/download/details.aspx?id=40784


Gunawan Herman氏オリジナルのObjectMarkerは以下からダウンロードできたのですが、現在はサイトが閉じられています。
http://www.cse.unsw.edu.au/~gherman/ObjectMarker.zip


<3.使い方>
起動すると指定フォルダから画像を読み込んで表示します。表示された画像に対し、マウスの左クリックで矩形を描くことができます。この矩形をここではマーカーと呼びます。
ここでつけられたマーカーの情報がファイルに保存されます。
画面上で、キーボードからキーを打ち込むことで、様々な操作を行うことができます。

以下、主なキーについて解説します。

[3.1 基本操作]
<Enter>または<Space>で現在の四角形の座標とサイズをテキストファイルに保存して、次の画像へ移ります。

<ESC>でプログラムを終了します。現在の画像に追加したマーカーは、ファイル保存されません。

<t>でヘルプを表示します。

<f>で読み込み先の画像フォルダを変更できます。

<o>で出力先のテキストファイルを変更できます。

<BackSape>でひとつ前の画像に戻ります。

<j>で好きな番号の画像へジャンプします。


[3.2 マーカーに対する操作]
マーカーの位置や形状を変更したり、削除をすることができます。
1画面に複数のマーカーがある場合は、最も新しく作成されたマーカーに対して操作を行えます。
対象となるマーカーを変更したいときは右クリックで選択できます。

<d>でつけたマーカーを一つ削除します。

<2,3,4,5,6,7,8,9>で、マーカー位置を上下左右に移動することができます。

<z,Z>でマーカーを拡大/縮小できます。

<w,W>でマーカーの横幅を拡大/縮小できます。

<h,H>でマーカーの縦幅を拡大/縮小できます。

<r>でひとつ前の画像でつけたマーカーを呼び出します。


[3.3 作業補助]

<s>画像が大きすぎて画面に表示しきれない時などに、画像の縮尺を指定することができます。

<m>マーカーのアスペクト比(縦横比)を固定することができます。

<a>マーカーのアスペクト比(横幅/縦幅)を指定します。

<O>で成形したテキストファイルを出力します。通常の出力テキストファイルには、ひたすら時系列で作業履歴(マーカー情報が)追記されていくため、過去のデータを修正した場合に、記述が重複してしまいます。このコマンドでは、これらの重複を削除して最新の情報のみを記述した形でマーカー座標を記述したテキストファイルを出力してくれます。

<c>マーカーをつけた画像領域を全て切り取って、別画像ファイルとして保存することができます。

<G>でガイドを設定することができます。ガイドは画面上の決められた座標に作業中常に表示される正方形、長方形、円、楕円のいずれかになります。例えばある決められた範囲内に対してだけマーカーをつける作業をおこないたい、なんらかの目印が画面上に欲しいなどの場合に使用します。

<g>でガイドの表示/非表示を切り替えます。

それ以外のキーについては<t>でヘルプを表示してください。


<4.設定ファイル>
編集したい画像や画像フォーマット、出力テキストファイル名はconfig.xmlでも編集できます。

以下、config.xmlの内容です。
<image_folder>
座標を記述したい画像が入っているフォルダー名

<output_file>
出力テキストファイル名

<image_folder>は編集画面上で"f"キーを、<output_file>は"o"キーを押すことでも編集可能です。

<display_scale>
表示画像の縮尺

<fix_marker_ratio>
マーカーのアスペクト比を固定するなら1、しないなら0

<aspect_ratio>
マーカーのアスペクト比(横幅/縦幅)

ObjectMarkerを起動すると、<image_folder>で記述したフォルダから画像を読み込んで表示します。この画像に対してマウスで複数の四角形をドラッグで描画することができます。


<ライセンス>
本ソフトウェアは"MIT License"で公開します。
MITライセンスについては、こちらのURL参照。

http://opensource.org/licenses/MIT

ただし、本ライブラリの開発に用いているOpenCVおよびBoostに関しては、それぞれのライブラリのライセンスに準じます。


皆川卓也(z.takmin@gmail.com)
---------------------------------------------------------------------
変更履歴:
2014/08/28 ver2.0
* リファクタリング
* 大きな画像サイズでも扱えるように画像の縮尺を指定可能に(sボタン)
* 複数マーカーがあった場合、右クリックで選択可能に
* マーカー領域を切り取って画像を保存する機能を追加(cボタン)

2010/10/23 ver1.5.1
* 入力ガイド機能実装(gおよびGボタン)

2010/10/22 ver1.5
* MarkerCheckerの機能をObjectMarkerへ統合
* アノテーションファイルの重複部分を削除し、成形する機能の追加(Oボタン)
* 今までは後方の画像ファイルへのみジャンプ可能だったものを、前後好きな画像へジャンプできるよう変更(jボタン)
* 「ひとつ前の画像へ戻る」機能を追加(バックスペースボタン)

2010/09/30 ver1.0
* メニューの日本語化
* configファイルを導入して、画像フォルダを自由に選択できるようにした
* 1つ前のフレームでつけた四角形を現フレームで呼び出せるようにした
* MarkerCheckerという、つけたマーカーの位置を確認するためのツールを作った

About

Image Annotation Tool for Object Detection and Tracking written with OpenCV


Languages

Language:C++ 100.0%