OpenCVで学ぶ画像認識

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

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

学習用正解ファイルの作成

1枚の画像から大量の正解画像を作成するために,OpenCVでは"createsamples"というツールが用意されています。このツールを使って,ある一枚の正解画像から,ランダムに回転させたり,色を変えたり,任意の背景にオブジェクトを置くなどの処理を行った学習画像を作成することができます。

まず,OpenCVインストールディレクトリのbinの下にある以下のファイルを作業用ディレクトリへコピーして下さい。

  • createsamples.exe
  • haartraining.exe
  • cv100.dll
  • cxcore100.dll
  • libguide40.dll
  • highgui100.dll

次に,コマンドプロンプトを立ち上げて,作業用ディレクトリに移動し,以下のコマンドを実行します。

> > createsamples.exe -img gihyo_logo.png -vec pos_gihyo.vec -num 4000 -bgcolor 255 -w 44 -h 18 -show

createsamples.exeが1枚の正解画像から,たくさんの学習用サンプルを作るためのコマンドです。以下の各オプションを使っています。

-img

学習の元画像を示します。

1枚の画像からではなく,集めたたくさんの学習画像から学習用正解ファイルを生成する場合,-imgの引数を-infoに変えて正解画像リストファイルを指定します。

-vec

出力ファイル名です。学習用画像データは全てこの1つのファイルにまとめられます。

-num

作成する学習サンプル画像の数です。ここでは4000を指定しました。

-bgcolor

背景色を示します。ただし単純にグレースケール画像の0から255までの濃度であらわします。この例ですと背景色は白なので255を指定します。

-bg

この例ではロゴの背景は一様である場合がほとんどなので使用していませんが,もし検出したいオブジェクトが,複雑な背景の中にある場合が予想されるなら,このオプションで前節で作成した非オブジェクト画像リストを記したテキストファイルを指定します。

-w

学習サンプル画像の横幅(ピクセル)を指定します。ここでは元画像の1/4のピクセルサイズを指定しました。

-h

学習サンプル画像の縦幅(ピクセル)を指定します。学習サンプル画像では,元の画像を回転させたものが生成されるため,その遊びを持たせるために元画像の1/2のサイズを指定しました。

-show

このオプションを指定すると,実際にどのようなサンプル画像が生成されたかを見ることができます。Windowが開いたらスペースキーを押すことで,次のサンプル画像を見ることができます。画像の閲覧をやめる場合はESCキーを押すか,ウィンドウを閉じてください。
事前にどのような画像が生成されるかを見ることで,その他のオプションのパラメータを最適化することをお勧めします。

他にも様々なオプションが用意されてますが,詳細はマニュアルを見て,対象に合わせてそれらのオプションを調整して下さい。

これで,正解ファイルが作成できました。いよいよ次は学習に映ります。

オブジェクトの学習

オブジェクトの学習には,"haartraining"というツールを使用します。なお,以下の作業を行った際に,突然PCが落ちるなど,うまくいかない場合があるかもしれませんが,その際はソースからhaartrainingを再コンパイルするようにして下さい。

学習を行うにはコマンドプロンプトから,次のように実行します。

> > haartraining.exe -data gihyo_logo -vec pos_gihyo.vec -bg NG.txt -npos 4000 -nneg 1685  -w 44 -h 18 -mode ALL
-data

出力したい学習結果xmlファイル名です。同名の作業用フォルダが自動的に作成されます。

-vec

学習サンプルデータを指定します。

-bg

非オブジェクト画像リストを記したテキストファイルを指定します。

-npos, -nneg

それぞれ学習させる正解画像,非正解画像の枚数を指定します。

-w, -h

createsamplesで指定したものをそのまま使用して下さい。

-mode

使用するオブジェクト検出特徴の種類を指定します(第3回参照)。ここでは全ての種類の特徴を用いています。

これにより学習がスタートします。このコマンドを実行すると,最終的にgihyo.xmlというxmlファイルが生成されます。これが,オブジェクトパターンを表したデータになります。

著者プロフィール

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

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

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

コメント

コメントの記入