少し前にHow-Old.netがバズっていましたね。
How-Old.netはProject OxfordのFaceAPIを使っているらしいです。

本日は、この Project Oxford の FaceAPI を使って顔写真から顔を認識する方法を紹介したいと思います。

subscription-keyを取得する

Azureのアカウントが必要になりますので、登録しましょう。
AzureのMarket PlaceよりFaceAPIを追加します。

face_api_on_azure

追加が完了するとsubscription-keyが取得できます。

サンプルコード(PHP)

画像のurlをGETで渡して顔認識するサンプルコードです。
FaceAPIへのリクエストにはPEARのHTTP_Request2を使ってます。
11行目のsubscription-keyは上記で取得したものに置き換えてください。

実行結果

上記のサンプルコードを実行すると下記のような形で結果が返ってきます。
http://[your_serve_address]/face_api_sample.php?url=[img_url]

faceRectangle は認識した顔の画像上の位置です。
attributes内のgenderは性別、ageは年齢ですね。

いろんな人を認識してみた

face_api_female

Photo by tommerton2010


varanasi - uttar pradesh - india

Photo by nevil zaveri


face_api_kids

Photo by ND Strupler

おわりに

ざっと見る感じ、そこそこ良い精度で認識できていそうですね。
最後の子供2人の写真は両方ともfemaleで認識されていますが…

顔認識のといえば、AlchemyAPI Face DetectionFace++が有名でしたが、
MSのAPIの登場で勢力が一変しました。

Project Oxfordは顔認識以外にも面白そうなAPIが多いので色々いじってみたいと思います。