Face API Sample
face api는 인물 분석을 통해서 다양한 정보를 제공해 줍니다. Azure Portal에서 Face API를 먼저 생성하고 접속에 필요한 URL과 subscription key를 가져와서 보여 줍니다.
관련된 라이브러리를 가져옵니다. request는 웹 통신을 위해서 가져오고 BytesIO, Image는 이미지를 처리하기 위해서 사용하고 있습니다. ImageDraw, ImageFont는 이미지 위에 선을 긋거나 글씨를 넣기 위해서 사용됩니다.import requests from io import BytesIO from PIL import Image, ImageDraw, ImageFont
Subscription Key와 서비스의 주소를 설정합니다.
subscription_key = 'cfed609ad3ef4031bb274bb3e808e302' faceDetection_url = 'https://facedetect00.cognitiveservices.azure.com/face/v1.0/detect'
분석에 사용할 이미지를 확인합니다.
image_url = 'https://postfiles.pstatic.net/MjAyMjAzMTZfMjYw/MDAxNjQ3NDI0NjAzMTI4.jkRx9E9M5NhkB_hXtyvigkoSi_4dPkDue4CCDaNIs34g.svQPjz1ycyUYZUHYWl7k18bktxkzs7GAVySx-78diRUg.JPEG.newwave1014/Screenshot_20220316-185156_Instagram.jpg?type=w966' img = Image.open(BytesIO(requests.get(image_url).content)) img
headers = {'Ocp-Apim-Subscription-Key': subscription_key} params = { 'returnFaceID':'true', 'returnFaceAttributes': 'age,gender' } data={'url':image_url}
서비스를 호출해서 결과를 확인합니다.
response = requests.post(faceDetection_url, headers=headers, params=params, json=data) faces = response.json() faces
draw = ImageDraw.Draw(img) for face in faces: rect=face['faceRectangle'] top=rect['top'] left=rect['left'] width=rect['width'] height=rect['height'] draw.rectangle(((left,top),(left+width,top+height)),outline='red') face_info = face['faceAttributes'] age = face_info['age'] gender = face_info['gender'] result = 'gender:'+gender+' Age:'+ str(age) draw.text((left,top),result,fill='blue') img