Python での Face API の使用開始チュートリアルGetting Started with Face API in Python Tutorial

このチュートリアルでは、Python SDK から Face API を呼び出して画像内の人の顔を検出する方法を説明します。In this tutorial, you will learn to invoke the Face API via the Python SDK to detect human faces in an image.

前提条件Prerequisites

このチュートリアルを使用するには、次の作業が必要となります。To use the tutorial, you will need to do the following:

  • Python 2.7 以降または Python 3.5 以降をインストールします。Install either Python 2.7+ or Python 3.5+.
  • pip をインストールします。Install pip.
  • 次のようにして Face API 用に Python SDK をインストールします。Install the Python SDK for the Face API as follows:
pip install cognitive_face
  • Microsoft Cognitive Services のサブスクリプション キーを入手します。Obtain a subscription key for Microsoft Cognitive Services. このチュートリアルでは、プライマリ キーまたはセカンダリ キーのどちらでも使用できます。You can use either your primary or your secondary key in this tutorial. (Face API を使用するには、有効なサブスクリプション キーが必要であることに注意してください。)(Note that to use any Face API, you must have a valid subscription key.)

画像内の顔を検出するDetect a Face in an Image

import cognitive_face as CF

KEY = '<Subscription Key>'  # Replace with a valid subscription key (keeping the quotes in place).
CF.Key.set(KEY)

BASE_URL = 'https://westus.api.cognitive.microsoft.com/face/v1.0/'  # Replace with your regional Base URL
CF.BaseUrl.set(BASE_URL)

# You can use this example JPG or replace the URL below with your own URL to a JPEG image.
img_url = 'https://raw.githubusercontent.com/Microsoft/Cognitive-Face-Windows/master/Data/detection1.jpg'
faces = CF.face.detect(img_url)
print(faces)

結果の例を次に示します。Below is an example result. これは、検出された顔の list です。It's a list of detected faces. リスト内の各項目は dict インスタンスであり、faceId は検出された顔の一意 ID、faceRectangle は検出された顔の位置の記述です。Each item in the list is a dict instance where faceId is a unique ID for the detected face and faceRectangle describes the position of the detected face. 顔 ID の有効期間は 24 時間です。A face ID expires in 24 hours.

[{u'faceId': u'68a0f8cf-9dba-4a25-afb3-f9cdf57cca51', u'faceRectangle': {u'width': 89, u'top': 66, u'height': 89, u'left': 446}}]

顔の周囲に四角形を描画するDraw rectangles around the faces

前のコマンドで受け取った json 座標を使うと、画像に四角形を描画して、各顔を視覚的に表すことができます。Using the json coordinates that you received from the previous command, you can draw rectangles on the image to visually represent each face. PIL イメージング モジュールを使うには、pip install Pillow を行う必要があります。You will need to pip install Pillow to use the PIL imaging module. ファイルの先頭に、次を追加します。At the top of the file, add the following:

import requests
from io import BytesIO
from PIL import Image, ImageDraw

次に、スクリプトの print(faces) の後に次を追加します。Then, after print(faces), include the following in your script:

#Convert width height to a point in a rectangle
def getRectangle(faceDictionary):
    rect = faceDictionary['faceRectangle']
    left = rect['left']
    top = rect['top']
    bottom = left + rect['height']
    right = top + rect['width']
    return ((left, top), (bottom, right))

#Download the image from the url
response = requests.get(img_url)
img = Image.open(BytesIO(response.content))

#For each face returned use the face rectangle and draw a red box.
draw = ImageDraw.Draw(img)
for face in faces:
    draw.rectangle(getRectangle(face), outline='red')

#Display the image in the users default image browser.
img.show()

さらに探索するFurther Exploration

Face API をさらに調べることができるように、このチュートリアルでは GUI のサンプルを提供します。To help you further explore the Face API, this tutorial provides a GUI sample. これを実行するには、wxPython をインストールした後、次のコマンドを実行します。To run it, first install wxPython then run the commands below.

git clone https://github.com/Microsoft/Cognitive-Face-Python.git
cd Cognitive-Face-Python
python sample

まとめSummary

このチュートリアルでは、Python SDK の呼び出しから Face API を使用する基本プロセスについて説明しました。In this tutorial, you have learned the basic process for using the Face API via invoking the Python SDK. API についてさらに詳しくは、ハウツー記事と API リファレンスをご覧ください。For more information on API details, please refer to the How-To and API Reference.