コンピュータビジョンで物体検出や追跡を行う場合、当然のことながら学習データというのをある程度用意しなくてはいけません。具体例としてはOpenCVのHaarClassifierCascadeで物体検出するための検出器を訓練するとき、訓練画像をたくさん集めて、その対象となる物体がその画像のどこにあるのかを記述したテキストファイルを作らなくちゃいけません。
詳しくは、ここら辺を参考にしてください。
http://gihyo.jp/dev/feature/01/opencv/0004
また、作った物体検出器やトラッキング用プログラムが正しく位置を検出しているかを評価するために、あらかじめ正解データというのを作っておいてそれに対して評価をする必要があります。この正解データというのがやっぱり画像を集めて、それに対してその物体の位置というのをいちいち人間が手動で調べて、なんらかの外部ファイルとしてその座標や大きさを保存してやる必要があります。
で、まさにOpenCVのHaarClassifierCascadeのトレーニングで使う、createsamplesやhaartrainingというプログラム用にObjectMarkerというツールが下のサイトで提供されてます。
http://opencv.willowgarage.com/wiki/ObjectDetection
このツールは画像に対してマウスでドラッグして四角形を描くと、その四角形の座標とサイズをテキストに書き出してくれます。テキストの出力フォーマットはそのままcreatesamplesに使うことが可能です。
具体的には、
こんな感じで四角形を描くと
こういうフォーマットでテキストファイルへ吐き出してくれます。
で、ちょっと色々と要請があって僕の方でこのObjectMarkerをカスタマイズしました。
主な変更点は
- メニューの日本語化
- configファイルを導入して、画像フォルダを自由に選択できるようにした
- 1つ前のフレームでつけた四角形を現フレームで呼び出せるようにした
- MarkerCheckerという、つけたマーカーの位置を確認するためのツールを作った
といった感じです。
もしかしたら他の研究者の方のお役に立つかなと思って公開します。
Windows用のバイナリコードはこちら、ソースコードはこちらです。
質問があったらメール下さい。
(2014/08/29追記)
最新版をGitHubに上げました。
https://github.com/takmin/ObjectMarker