使用python实现简单的人脸识别,可以估算颜值嗷

人脸识别

文章目录

    • 实现思路
        • 一、提供识别图片
        • 二、在百度AI创建一个人脸识别应用
        • 三、识别代码
        • 四、运行结果
        • 五、补充

实现思路

一、提供识别图片

我是把需要的图片放到了 D:/人脸识别 中,并且把图片命名为 0.jpg

识别图片如下:

使用python实现简单的人脸识别,可以估算颜值嗷_第1张图片

二、在百度AI创建一个人脸识别应用

1、百度搜索,“百度AI”,进入官网,点击右上角控制台,扫码登录。
2、登录之后,找到人脸识别
使用python实现简单的人脸识别,可以估算颜值嗷_第2张图片
3、创建应用,创建成功,点击管理应用,会得到三个值
在这里插入图片描述

三、识别代码

from aip import AipFace
from PIL import Image, ImageDraw, ImageFont
import base64
# 在百度AI里面新建的应用的 APP_ID API_KEY SECRET_KEY
APP_ID = '你的APP_ID值'
API_KEY = '你的API_KEY值'
SECRET_KEY = '你的SECRET_KEY值'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)
# 调用人脸检测接口并进行人脸检测
image = str(base64.b64encode(open('D:/人脸识别/0.jpg', 'rb').read()), 'utf-8')
imageType = "BASE64"
options = dict()
options["face_field"] = "age,beauty,gender,expression,face_shape"  # 包括很多内容,例如这里的年龄,颜值,性别,表情
options["max_face_num"] = 1  # 最多可识别人脸数量,默认值为1,最大值为10
options["face_type"] = "LIVE"  # 人脸的类型,默认为“LIVE”,即生活照
options["liveness_control"] = "NONE"
a = client.detect(image, imageType, options)
# 输出检测结果
print('总共检测了', a['result']['face_num'], '个人脸')   # 这部分可以看一下官方文档的返回实例,就懂了
print('人物的年龄:', a['result']['face_list'][0]['age'])
print('人物的颜值:', a['result']['face_list'][0]['beauty'])
print('人物的表情:', a['result']['face_list'][0]['expression']['type'])
print('人物的性别:', a['result']['face_list'][0]['gender']['type'])
print('人物的脸型:', a['result']['face_list'][0]['face_shape']['type'])
# 打开检测的图像
im = Image.open("D:/人脸识别/0.jpg")  # image.open需要精确到图片的位置,而不是图片文件夹的位置
# 在图像上绘制信息,矩形,文本信息
my_draw = ImageDraw.Draw(im)
x1 = a['result']['face_list'][0]['location']['left']
y1 = a['result']['face_list'][0]['location']['top']
x2 = a['result']['face_list'][0]['location']['left']+a['result']['face_list'][0]['location']['width']
y2 = a['result']['face_list'][0]['location']['top']+a['result']['face_list'][0]['location']['height']
my_draw.rectangle([x1, y1, x2, y2], outline='blue', width=3)
# 在图像上输出文本
my_text = ImageFont.truetype('C:/Windows/Fonts/simfang.ttf', 25)  # 字体所在的文件路径(这里是仿宋),字体大小
text1 = '年龄:'+str(a['result']['face_list'][0]['age'])
my_draw.text((x2+180, y1), text1, fill='black', font=my_text)
text2 = '性别:'+str(a['result']['face_list'][0]['gender']['type'])
my_draw.text((x2+180, y1+120), text2, fill='black', font=my_text)
text3 = '脸型:'+a['result']['face_list'][0]['face_shape']['type']
my_draw.text((x2+180, y1+80), text3, fill='black', font=my_text)
text4 = '表情:'+str(a['result']['face_list'][0]['expression']['type'])
my_draw.text((x2+180, y1+160), text4, fill='black', font=my_text)
text5 = '颜值:'+str(a['result']['face_list'][0]['beauty'])
my_draw.text((x2+180, y1+40), text5, fill='black', font=my_text)
# 显示并保存结果
im.show()
im.save("D:/人脸识别/result.jpg")

更多详情可以参考官方文档,官方文档传送门

四、运行结果

使用python实现简单的人脸识别,可以估算颜值嗷_第3张图片

五、补充

1、本例中的识别每次只能识别一张人脸,即,一张图中有多张人脸时,只会识别一张。
2、颜值,表情的数据会随着照片的清晰度而发生变化,例如,同一个人,拍摄的角度和距离会影响这些数据。

你可能感兴趣的