写真でお顔を認識 ヘルプ
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