虽然是粘贴过来的,但是还是了解了一下百度的人脸识别接口,发现的问题也解决了。
https://cloud.baidu.com/doc/IMAGERECOGNITION/s/4k3bcxj1m
这个是官方文档,但是好像也不是太全,result打印出来很多都没有。
import base64
from aip import AipFace
import cv2
# 配置百度aip参数
APP_ID = 'xxx'
API_KEY = 'xxx'
SECRET_KEY = 'xxx'
a_face = AipFace(APP_ID, API_KEY, SECRET_KEY)
image_type = 'BASE64'
options = {'face_field': 'age,gender,beauty', "max_face_num": 10}
max_face_num = 10
def get_file_content(file_path):
"""获取文件内容"""
with open(file_path, 'rb') as fr:
content = base64.b64encode(fr.read())
return content.decode('utf8')
def face_score(file_path):
"""脸部识别分数"""
result = a_face.detect(get_file_content(file_path), image_type, options)
return result
# 图片地址,图片与程序同一目录下
file_path = "timg.jpg"
result = face_score(file_path)
print(result)
# #从文件读取图像并转为灰度图像
img = cv2.imread(file_path)
# 图片放文字
# 设置文件的位置、字体、颜色等参数
font = cv2.FONT_HERSHEY_DUPLEX
# font = ImageFont.truetype("simhei.ttf", 20, encoding="utf-8")
color = (0, 0, 255)
for item in result['result']['face_list']:
x = int(item['location']['left'])
y = int(item['location']['top'])
w = item['location']['width']
h = item['location']['height']
age = item['age']
beauty = item['beauty']
gender = item['gender']['type']
cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 3)
cv2.putText(img, 'age:%s' % age, (x, y + h + 10), font, 1, color, 1)
cv2.putText(img, 'beauty:%s' % beauty, (x, y + h + 30), font, 1, color, 1)
cv2.putText(img, 'gender:%s' % gender, (x, y + h + 50), font, 1, color, 1)
cv2.imshow('Image', img)
# 按任意键退出
key = cv2.waitKey()
if key == 27:
# 销毁所有窗口
cv2.destroyAllWindows()
pip install baidu-aip
pip install opencv-python
网友评论