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

APIキーが取得できたら、実際にPythonを使ってFace APIの顔検出機能を利用してみます。今回は簡単に、

Face APIのリファレンス

のPython 2.7サンプルを使用して、Azure Storage上にある画像ファイルの顔検出を試してみます。

下記コードの’Ocp-Apim-Subscription-Key’に取得したAPIキー、変数「image_url」に対象の画像のURLを入力します。

・Python 2.7

import httplib, urllib, base64
import json

Request header

headers = {

Request headers

'Content-Type': 'application/json',
'Ocp-Apim-Subscription-Key': '***{APIキー}',
}

params = urllib.urlencode({

Request parameters

'returnFaceId': 'true',
'returnFaceLandmarks': 'true',
'returnFaceAttributes': 'age,gender,smile,facialHair,headPose,glasses',
})

image_url = '{画像のURL}'

body = {

Request body

'url': image_url
}

try:
conn = httplib.HTTPSConnection('api.projectoxford.ai')
conn.request("POST", "/face/v1.0/detect?%s" % params, json.dumps(body), headers)
response = conn.getresponse()
data = json.loads(response.read())
print(json.dumps(data, indent=4))
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))

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

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

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

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

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

いかがでしたか?

次回は、Face APIで取得した情報をOpenCVで画像に描き込んでみます。

次回もお楽しみに!

この記事を書いた人

azure-recipe-user