Cognitive Services: Face APIの顔検出をPythonで試してみた

今回は、Microsoft Cognitive Servicesの顔認識サービスであるFace APIをPythonで利用してみます。

Face APIの概要

Face APIはMicrosoft Cognitive ServicesのAPIの中でも顔の認識に特化したAPIであり、顔の検出のほか、比較や類似の顔の検索、グルーピングなど様々な機能が利用できます。
顔の情報を蓄積して、顔認証に使用することもできるため、例えばロボットが顔を見てその人の名前を答えるなど、サービスのパーソナライズが可能になります。

APIキーの取得

Face APIを利用するには、まずAzureポータルにてAPIキーを取得する必要があります。
Azureポータルにサインインしたら、サービス一覧から「Cognitive Services accounts」を選択します。

リスト左上の「+追加」をクリックすると「Create」のペインが表示されるため、下記の項目を入力、選択して「作成」をクリックします。

項目 入力
Account name 任意の名称
API type 「Face API (preview)」を選択
場所 任意のリージョンを選択(現在は「米国西部」のみ)
Pricing tier 「F0 Free」または「S0 Standard」を選択
Resource group 「新規作成」または「既存のものを使用」を選択し、リソースグループを入力
Legal terms 「I Agree」


しばらくするとFace APIの項目が追加されます。
追加された項目をクリックし、表示されるメニューから「Keys」をクリックするとAPIキーが表示されるので、「KEY1」、「KEY2」のいずれかをコピーして控えておきます。

Face APIの利用

APIキーが取得できたら、実際にPythonを使ってFace APIの顔検出機能を利用してみます。今回は簡単に、
Face APIのリファレンス
のPython 2.7サンプルを使用して、Azure Storage上にある画像ファイルの顔検出を試してみます。
下記コードの’Ocp-Apim-Subscription-Key’に取得したAPIキー、変数「image_url」に対象の画像のURLを入力します。

・Python 2.7

コードの「Request parameters」ではレスポンスの内容を設定できます。今回はすべての情報を取得するよう設定していますが、必要な情報だけに絞ることでAPIのレスポンスを速くすることもできます。

設定項目 内容
‘returnFaceId’ 24時間有効な顔のID
‘returnFaceLandmarks’ 顔の特徴点情報
‘returnFaceAttributes’ age (年齢)、gender (性別)、headPose (頭の角度)、smile (笑顔)、facialHair (ヒゲ、もみあげの有無)、glasses (メガネの有無)の取得

上記コードを実行するとレスポンスがJSON形式で出力されます。


今回は以下の写真から顔検出を行いましたが、faceLandmarksの情報を画像に当てはめてみると、確かに顔の特徴を捉えて検出できていることが分かりました。


いかがでしたか?
次回は、Face APIで取得した情報をOpenCVで画像に描き込んでみます。
次回もお楽しみに!

この記事を書いた人

azure-recipe-user