APIキーが取得できたら、実際にPythonを使って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の情報を画像に当てはめてみると、確かに顔の特徴を捉えて検出できていることが分かりました。
次回は、Face APIで取得した情報をOpenCVで画像に描き込んでみます。
次回もお楽しみに!