利用百度AI进行人脸识别,可自动识别出年龄、性别等信息,准确率非常高。运行程序前请安装需要的模块
import base64
from aip import AipFace
import cv2
# 配置百度aip参数
APP_ID = '19484855'
API_KEY = 'V2mDOleCsk3yEE6P5MgVwSjI'
SECRET_KEY = 'RbRMAuPmz8QpDweikrbpfGQjXUm7HiCD'
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)
# #从文件读取图像并转为灰度图像
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()