使用python实现简单的人脸识别,可以估算颜值嗷
【摘要】
人脸识别
文章目录
实现思路一、提供识别图片二、在百度AI创建一个人脸识别应用三、识别代码四、运行结果五、补充
实现思路
一、提供识别图片
我是把需要的图片放到了 D:...
人脸识别
实现思路
一、提供识别图片
我是把需要的图片放到了 D:/人脸识别 中,并且把图片命名为 0.jpg。
识别图片如下:
二、在百度AI创建一个人脸识别应用
1、百度搜索,“百度AI”,进入官网,点击右上角控制台,扫码登录。
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")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
更多详情可以参考官方文档,官方文档传送门
四、运行结果
五、补充
1、本例中的识别每次只能识别一张人脸,即,一张图中有多张人脸时,只会识别一张。
2、颜值,表情的数据会随着照片的清晰度而发生变化,例如,同一个人,拍摄的角度和距离会影响这些数据。
文章来源: luckystar.blog.csdn.net,作者:爱打瞌睡的CV君,版权归原作者所有,如需转载,请联系作者。
原文链接:luckystar.blog.csdn.net/article/details/113977796
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)