iアプリで、WebのAPIを使ってみようという試みの3発目です。


携帯で撮ったお顔の写真で、各パーツを認識する...というアプリ。

インクリメントさんのdetectFaceAPIを使わせていただきました。

自前のAPIを準備する前に、人様のAPIで実験してみようというセコい意図です。


サーバーとの通信用に、携帯の識別番号を使っています。インストール時に、そういうメッセージが出ますが、気にしないでください。

写真は、処理終了後に削除され、サーバーには何も残りません、ご安心ください。


iアプリのダウンロードはこちらです。バーコードリーダーで読み取ってください。
フルセット版
         

サブセット版
         



フルセット版の場合、古い機種などでは、CPUの処理が間に合わずにエラーになるようです。機種依存かもしれません。

で、重そうな処理をはしょったサブセット版を作ってみました。

お顔を正位置に修正する機能や保存を省きました。

なにやら、エラーが頻発する場合は、サブセット版をお試しください。

動作確認は、自前の実機でしかやっていません。もし動かなかったら......ご容赦を。


New(2010/06/23)

目の位置を修正しました。

New(2010/06/24)

顔の輪郭線を、スプラインで描画してみました。
まだ、場合によってはうまく描画できない場合があります。下記の説明をごらんください。


描画コードは埋め込みになっていますので、機種によって、表示速度に差があります。

CPUの処理速度によっては、なかなか描画されない場合もありますが、御了承ください。

New(2010/06/28)

お顔の傾きを正位置に修正する機能を付けてみました(フルセット版のみ)。


iアプリ起動後の画面



こんな画面が出ます。ソフトキーの「開始」をクリック。


フルセット版                                                 サブセット版







写真撮影ボタンをクリックして、誰かのお顔を撮影。





撮影終了後、保存すると、即画像処理に入ります。

TOP

画像処理



画像処理の開始画面です。







画像処理に失敗すると、このようなメッセージがでます。





うまく認識できると、即、画像表示されます。





各パーツの認識表示は、以下のリストから選択。


各パーツが認識できなかった場合は、普通になにも表示されません。


表示タイプは9種類。





顔の位置:写真の中の顔の位置を矩形で囲んで表示。

顔の輪郭(直線):顔とおぼしき部分を直線のポリゴンで囲みます。

顔の輪郭(曲線):顔とおぼしき部分をスプライン曲線で囲みます。

眉毛:眉毛とおぼしき部分をポリゴンで囲みます。

目:目と思われる位置を円で表示。

鼻筋:鼻筋を線で表示。

口:口を線で表示。

全部(直線):パーツを全部表示(顔の輪郭は直線)。

全部(曲線):パーツを全部表示(顔の輪郭は曲線)。



TOP

結果を表示する




もとの画像はこんな感じ。





結果はこんな感じ。




















追加

顔の輪郭をスプラインで描画します。


こんな感じ。





ただし、まだバグがあって、時々失敗します。


そういう場合は、改めて直線表示でごらんください(TT;)。


たとえば、こんな場合


例1:お顔が斜めに写っている場合








例2:お顔の付近に何か別のものが重なっている場合





このような場合、スプライン描画に失敗します。


鋭意、改善していきますので、よろしくお願いします。


ついでに、パーツの描画に番号キーを対応させました。


番号キー1:顔の位置

番号キー2:顔の輪郭(直線)

番号キー3:顔の輪郭(曲線)

番号キー4:眉毛

番号キー5:目

番号キー6:鼻筋

番号キー7:口

番号キー8:全部(直線)

番号キー9:全部(曲線)

番号キー0:写真のみ表示


追加(フルセット版のみ)

顔を正位置に修正する機能を付けてみました。


顔認識がうまくいくと、こういうボタンが出ます。





各パーツの位置を認識して、顔を正位置に傾けます。


こんな感じ。





その後、以下のようなボタンに変わりますので、再認識できます。








TOP

付録



インクリメントさんのサイトはこちら


修正予定


目の位置と表現をもう少し細かく。

顔の輪郭をスプラインかベジェ曲線で描画。

鼻筋を、もう少し鼻っぽく表現。

口を、唇も含めて表現。




TOP