2009年6月21日日曜日

WMで顔認識その3

先週からはじめたOPenCVをWM用にビルドして顔認識を動かす試みですが、あっという間に1週間たってしまいました。OpenCVの(部分的な)移植自体は大した手間も無く出来たのですが、WMアプリとして仕上げるのにやたら時間がかかってしました。
日ごろはC#ばかり使っているのでWin32を使ってアプリを作るのは非常に骨が折れるというか、途中で気力が折れてしまいました。改めて他のアプリ作者さんには頭が下がる思いです。そんなこんなでGUIとしては完成半ばな感じですが、とりあえず終了することにしました。当初の目的は顔認識を動かすことだったので、よしとします。


そんな事より問題はGUI以前に処理時間が非常にかかるという事で、画像変換処理にだいたい1分ぐらいかかります(1分かけて顔をきちんと認識できていないときはがっかりします)。PCで動かしたことが無いので比較は出来ませんが、携帯端末の処理能力ではこんなものなのか?良く分かりません

一分もかかるなら、画像をサーバーにアップロードしてサーバーで処理させたほうが良いような(そういうサイトもあるみたい)気もします。
実用度としては、あまりなさそうですが、可能性というか、面白いと思う人は試してみてください(環境によって、ちゃんと動くかどうかも怪しいです)

動作環境
WS011SHでしかためしてません

ダウンロード
ファイル

インストール
インストーラはありません。
本体上の適当なフォルダに展開して置いてください。
OpenCVのライブラリ(*.dllファイル)を含みます。OpenCVのファイルに関してのライセンスは添付license.txtファイルに従います。このプログラムを使用することによって生じたいかなる結果にも責任は負いません。

使用方法
起動時にオプションを指定して実行します
wmsmile.exe -i 入力画像ファイル.jpg -o 出力画像ファイル.jpg -f フェイスマーク画像.jpg -m フェイスマークマスク画像.jpg -h 学習ファイル -q -s

すべてのオプションは省略できます
-i 入力画像を指定します。jpgファイルを指定できます。省略した場合は画像選択ダイアログを開きます
-o 出力画像を指定します。jpgファイルを指定できます。省略した場合は入力画像ファイルを上書きします。元のファイルは入力画像_.jpgファイルとしてバックアップします
-f フェイスマーク画像を指定します。jpgファイルを指定できます。省略した場合はface.jpgファイルを使用します
-m フェイスマークマスク画像を指定します。jpgファイルを指定できます。省略した場合はmask.jpgファイルを使用します。mask.jpgファイルが存在しない場合はフェイスマーク画像より自動生成します。(左上画素カラーを透明色とします)
-h 顔認識の基準ファイルを指定します。xmlファイルを指定できます。省略した場合はhaarcascade_frontalface_alt.xmlファイルを使用します
-q 変換後にプログラムを自動終了します
-s 出力画像のサイズを320pixelにします。していない場合は640ピクセルです

起動直後の画面:xmlファイルの読み込みに10秒くらいかかります


変換完了画面:画像を指定してから1分くらい処理に時間がかかります。処理中はUIの反応はありません


変換完了画面:もうひとつ。顔の大きさにあわせてフェイスマークのサイズもかわります


添付したフェイスマーク画像は、上で見せているものと違います(上の画像はネットから拾ったものを使ったので、添付は控えました)
適当に自分で作った画像を入れてください


Posted by Picasa

0 件のコメント: