2009年6月17日水曜日

WMで顔認識

画像処理ライブラリのOpenCVをWindowsMobile用ビルドして、顔認識するプログラムを作ってみました。
写真中の人物の顔を認識してフィスマークに置き換えます。いわゆる笑い男なんちゃらみたいなかんじです。
プログラム自体はWeb上にあるOpenCVのサンプルプログラムをほぼコピペしたものです。

とりあえずコマンドラインで動くものを作って、フロントエンドみたいなのを後付するかと思ってやってみたけど、アドエスで実行したら処理完了までに40秒くらいかかった。最初に顔認識の学習データ(xmlファイル)を読み込ませるのだけど、これにチョー時間かかるみたいです。

ためしに何枚か写真を変換してみたけど、子供の顔は認識に失敗することが多いみたい、帽子をかぶった顔とか、顔の大きさとかでも認識精度に影響があるのかも、あと横顔もだめだと思う



処理時間とか、実行中のメッセージが何もないとか色々問題あるので、もうちょっと手を加えたらら公開しようと思ってますが、OpenCVってバイナリ公開とかしていいのかな?

OpenCVの移植は
cv.dll と cxcore.dll と highgui.dllの一部で、WM向けに場当たり的な修正をしたのでチョイ不安あり。highguiはjpegの読み書きだけに使ってます。WMのAPIだけでjpegファイルは処理するつもりでしたが、jpegファイルの保存の仕方が分からなくってlibjpgもビルドしてhighgui経由でjpegファイルのアクセスをするようにしました。(無駄ですが)

jpegファイルはサイズが大きいと実行中にメモリエラーを起こすので、小さめにリサイズします。リサイズ処理なんかはOpenCVでサクッと記述できるので楽チンでした
Posted by Picasa

0 件のコメント: