2011年1月30日日曜日

OpenCV:Eclipse/CDTとOpenCV2.2による画像認識

OpenCV2.2Eclipse/CDTを使ってOpenCVで学ぶ画像認識を再現しています。今回は 第4回 オブジェクト検出器の作成方法 をやってみました。

まずソースコードなどのデータData.zipをここに書いてあるリンクからダウンロードして展開します。次いで第4回の3ページにあるようにOpenCVのツールとdllを展開したディレクトリ(Dataの下にさらにDataというディレクトリがあると思います。ここです。)にコピーします。OpenCV2.2では少し名前が変わっているのでOpenCVのインストールディレクトリのbinディレクトリから下記をコピーしました。(もしかしたらdllはこの4つ全部いらないのかも知れません。)

opencv_createsamplesd.exe
opencv_haartrainingd.exe
libopencv_core220d.dll
libopencv_highgui220d.dll
libopencv_imgproc220d.dll
libopencv_objdetect220d.dll

で、まず createsamples.exe の代わりに opencv_createsamplesd.exe を使ってここと引数は同じにして実行します。これで学習用の正解画像が1枚のサンプル画像からいろいろ向きを変えるなどしてたくさん生成されたわけです。

次に出来た正解画像と最初から用意されていたNG画像を使って学習を行います。haartraining.exe の代わりに opencv_haartrainingd.exe を使い、引数は同じにして実行します。僕のPCでは3時間以上かかって学習が終わりました(^^;

で、その結果はここほどの結果は出ず、例の2では一番右のロゴしか認識されませんでした(^^; OpenCV2.2のツールが以前のツールと変わっているのでしょうか?

ということで認識率は悪いですが、とりあえず学習したモデルを自分で作ることは出来ました。後は学習画像をどう集めるか? 学習時のパラメータの設定をどうするか? などを試行錯誤して認識率を高めるのでしょうね。

0 件のコメント: