在微软服务器中申请了人脸识别API后会得到两个key,随便使用其中一个即可
上传图像文件大小小于等于于4MB
subscription_key='77c80281372a4d75852905b3f0d72b71'
uri_base = 'https://api.cognitive.azure.cn'
#识别脸
def selectLocalFace(imagesUrl):
try:
Request='POST'
#Content_Type1传递类型
Content_Type1='application/octet-stream'
headers = {
'Content-Type': Content_Type1,
'Ocp-Apim-Subscription-Key': subscription_key,
}
#设定是否返回FaceID
returnFaceId='true'
#设定是否返回详细的面部细节位置信息(包括鼻子、眼睛、嘴等)
returnFaceLandmarks='false'
#设定进行面部智能分析
#可选:age, gender, smile intensity, facial hair, head pose, glasses, emotion, hair, makeup, occlusion, accessories, blur, exposure and noise
returnFaceAttributes='age,gender,facialHair,glasses,hair'
params = { 'returnFaceId': returnFaceId,
'returnFaceLandmarks': returnFaceLandmarks,
'returnFaceAttributes':returnFaceAttributes,}
#上传本地图片
f=open(imagesUrl,"rb")
body = {'url': imagesUrl}
response = requests.request(Request, uri_base + '/face/v1.0/detect', json=body, data=f, headers=headers, params=params)
print ('Response:')
parsed = json.loads(response.text)
print(parsed)
facenums=0;
faceAll=[]
#提取出faceId和人脸的矩形框定位
for a in parsed:
for b in a:
if b=="faceId":
faceId=a[b]
print(faceId)
if b=="faceRectangle":
top=a[b]["top"]
left=a[b]["left"]
width=a[b]["width"]
height=a[b]["height"]
if b=="faceAttributes":
gender=a[b]["gender"]
age=a[b]["age"]
imagesFace=[faceId,left,top,width,height,gender,age]
faceAll.append(imagesFace)
print(faceAll)
return faceAll
except Exception as e:
print("Error")
print(e)
return -1