OpenCVで学ぶ画像認識

第4回 オブジェクト検出器の作成方法

この記事を読むのに必要な時間:およそ 4 分

例として,下の図のようなディレクトリに非正解画像が入っている時,非正解画像のリストファイルは以下のような形式で書かれたテキストファイルになります。

図3 ディレクトリ構造例

図3 ディレクトリ構造例

非正解画像リストファイル(NG.txt)の例

NG\image_0001.jpg
NG\image_0002.jpg
NG\image_0003.jpg
NG\image_0004.jpg
NG\image_0005.jpg

一行一行に,作業ディレクトリからの画像ファイルへの相対パスが記述してあります。

同様の要領で,正解画像のリストファイルを作成します。ただし,ロゴ等の1枚の画像からツールで複数の正解画像を作成したい場合は,リストファイルの作成は必要ありません。

正解画像リストファイル(OK.txt)の例

OK\image_0001.jpg 1  120 100 45 45
OK\image_0002.jpg 2  100 200 50 50   50 30 25 25 
OK\image_0003.jpg 1  40 55 60 60
OK\image_0004.jpg 1  104 98 40 40
OK\image_0005.jpg 2  62 70 50 50   120 162 30 30

非正解画像のリストと違うのは,相対パスのファイル名の後に,数字が並んでいることです。

これは,画像中のオブジェクトの位置を表しています。OpenCVのオブジェクト検出では,検出窓で画像中をスキャンして,その窓の中にオブジェクトがあるかどうかを判定していくアルゴリズムで,学習もまたこの窓の単位で行われます第3回参照⁠⁠。そのため,学習の際には正確なオブジェクトの位置をプログラムに教えてやる必要があります。

ファイル名の後ろにある数字は,その画像中に何個オブジェクトが含まれているかを示しています。その後,4つの数字がオブジェクトの座標を表し,最初の2つがオブジェクトを囲む矩形の左上の座標値(x,y),次の二つがそれぞれ幅と高さを表します。

図4 オブジェクトの座標値

図4 オブジェクトの座標値

では,次に収集した画像とリストファイルを用いて,学習用の正解ファイルを作成します。

著者プロフィール

皆川卓也(みながわたくや)

ジェイマジック株式会社のラボに所属する傍ら,慶応義塾大学の博士課程でコンピュータビジョンを研究する社会人ドクター。画像認識とIT技術を融合して新しいソリューションを開発することを生業とする自称テクニカル・ソリューション・アーキテクト。ジェイマジックでは、「顔ちぇき!~誰に似てる?~™」や「SAYL™」のシステムの立ち上げに携わる。

ジェイマジック
URLhttp://www.j-magic.co.jp/
慶応大学 斎藤英雄研究室
URLhttp://www.hvrl.ics.keio.ac.jp/