使用百度AI的人脸识别库,做出的调用示例,其中filePath是图片的路径,可以自行传入一张图片,进行识别。
下载baidu-aip
这个库,可以直接使用pip下载:pip install baidu-aip
,也可以在PyCharm等开发工具中下载。
然后运行下列代码即可。
# -*- coding: UTF-8 -*-
from aip import AipFace
# 定义常量
APP_ID = '9851066'
API_KEY = 'LUGBatgyRGoerR9FZbV4SQYk'
SECRET_KEY = 'fB2MNz1c2UHLTximFlC4laXPg7CVfyjV'
# 初始化AipFace对象
aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)
# 读取图片
filePath = "WechatIMG1.jpeg"
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
# 定义参数变量
options = {
'max_face_num': 1,
'face_fields': "age,beauty,expression,faceshape",
}
# 调用人脸属性检测接口
result = aipFace.detect(get_file_content(filePath),options)
print(result)
print(type(result))
打印的结果为:
{u'log_id': 2255889215, u'result_num': 1, u'result': [{u'rotation_angle': 6, u'beauty': 28.799362182617, u'expression_probablity': 0.99804097414017, u'yaw': -5.4949622154236, u'faceshape': [{u'type': u'square', u'probability': 0.31499627232552}, {u'type': u'triangle', u'probability': 0.3255407512188}, {u'type': u'oval', u'probability': 0.0088512497022748}, {u'type': u'heart', u'probability': 4.0362348954659e-05}, {u'type': u'round', u'probability': 0.35057136416435}], u'age': 44.135261535645, u'location': {u'width': 93, u'top': 55, u'height': 70, u'left': 105}, u'pitch': -7.6499571800232, u'expression': 0, u'roll': 5.7176289558411, u'face_probability': 1}]}
人脸检测 请求参数详情
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
face_fields | string | 包括age、beauty、expression、faceshape、gender、glasses、landmark、race、qualities信息,逗号分隔,默认只返回人脸框、概率和旋转角度。 | 否 |
max_face_num | number | 最多处理人脸数目,默认值1 | 是 |
image | string | 图像数据 | 是 |
参数 | 类型 | 是否一定输出 | 描述 |
---|---|---|---|
log_id | number | 是 | 日志id |
result_num | number | 是 | 人脸数目 |
result | array | 是 | 人脸属性对象的集合 |
+age | number | 否 | 年龄。face_fields包含age时返回 |
+beauty | number | 否 | 美丑打分,范围0-1,越大表示越美。face_fields包含beauty时返回 |
+location | array | 是 | 人脸在图片中的位置 |
++left | number | 是 | 人脸区域离左边界的距离 |
++top | number | 是 | 人脸区域离上边界的距离 |
++width | number | 是 | 人脸区域的宽度 |
++height | number | 是 | 人脸区域的高度 |
+face_probability | number | 是 | 人脸置信度,范围0-1 |
+rotation_angle | number | 是 | 人脸框相对于竖直方向的顺时针旋转角,[-180,180] |
+yaw | number | 是 | 三维旋转之左右旋转角[-90(左), 90(右)] |
+pitch | number | 是 | 三维旋转之俯仰角度[-90(上), 90(下)] |
+roll | number | 是 | 平面内旋转角[-180(逆时针), 180(顺时针)] |
+expression | number | 否 | 表情,0,不笑;1,微笑;2,大笑。face_fields包含expression时返回 |
+expression_probability | number | 否 | 表情置信度,范围0~1。face_fields包含expression时返回 |
+faceshape | array | 否 | 脸型置信度。face_fields包含faceshape时返回 |
++type | string | 是 | 脸型:square/triangle/oval/heart/round |
++probability | number | 是 | 置信度:0~1 |
+gender | string | 否 | male、female。face_fields包含gender时返回 |
+gender_probability | number | 否 | 性别置信度,范围0~1。face_fields包含gender时返回 |
+glasses | number | 否 | 是否带眼镜,0-无眼镜,1-普通眼镜,2-墨镜。face_fields包含glasses时返回 |
+glasses_probability | number | 否 | 眼镜置信度,范围0~1。face_fields包含glasses时返回 |
+landmark | array | 否 | 4个关键点位置,左眼中心、右眼中心、鼻尖、嘴中心。face_fields包含landmark时返回 |
++x | number | 否 | x坐标 |
++y | number | 否 | y坐标 |
+landmark72 | array | 否 | 72个特征点位置,示例图 。face_fields包含landmark时返回 |
++x | number | 否 | x坐标 |
++y | number | 否 | y坐标 |
+race | string | 否 | yellow、white、black、arabs。face_fields包含race时返回 |
+race_probability | number | 否 | 人种置信度,范围0~1。face_fields包含race时返回 |
+qualities | array | 否 | 人脸质量信息。face_fields包含qualities时返回 |
++occlusion | array | 是 | 人脸各部分遮挡的概率, [0, 1] (待上线) |
+++left_eye | number | 是 | 左眼 |
+++right_eye | number | 是 | 右眼 |
+++nose | number | 是 | 鼻子 |
+++mouth | number | 是 | 嘴 |
+++left_cheek | number | 是 | 左脸颊 |
+++right_cheek | number | 是 | 右脸颊 |
+++chin | number | 是 | 下巴 |
++type | array | 是 | 真实人脸/卡通人脸置信度 |
+++human | number | 是 | 真实人脸置信度,[0, 1] |
+++cartoon | number | 是 | 卡通人脸置信度,[0, 1] |