【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)

需要源码请点赞关注收藏后评论区留下QQ~~~

本系统根据已有的模型上改写,添加了在给照片打分的同时可以显示照片,这样显得更加直观和真实

一、百度API文档

如需要请自行前往官网查询文档相关内容

百度API官网

部分内容如下

接口能力

  • 人脸检测:检测图片中的人脸并标记出位置信息。
  • 人脸关键点:展示人脸的核心关键点信息,及150个关键点信息。
  • 人脸属性值:展示人脸属性信息,如年龄、性别等。
  • 人脸质量信息:返回人脸各部分的遮挡、光照、模糊、完整度、置信度等信息。
  • 业务应用

    典型应用场景:如人脸属性分析基于人脸关键点的加工分析人脸营销活动等。

    说明:检测响应速度,与图片中人脸数量相关,人脸数量较多时响应时间会有些许延长。

    质量检测

    如果需要判断一张图片中的人脸,是否符合后续识别或者对比的条件,可以使用此接口,在请求时在face_field参数中请求quality。基于返回结果quality中,以下字段及对应阈值,进行质量检测的判断,以保证人脸质量符合后续业务操作要求。

    指标字段与解释推荐数值界限
    遮挡范围occlusion,取值范围[0~1],0为无遮挡,1是完全遮挡
    含有多个具体子字段,表示脸部多个部位
    通常用作判断头发、墨镜、口罩等遮挡
    left_eye : 0.6, #左眼被遮挡的阈值
    right_eye : 0.6, #右眼被遮挡的阈值
    nose : 0.7, #鼻子被遮挡的阈值
    mouth : 0.7, #嘴巴被遮挡的阈值
    left_cheek : 0.8, #左脸颊被遮挡的阈值
    right_cheek : 0.8, #右脸颊被遮挡的阈值
    chin_contour : 0.6, #下巴被遮挡阈值
    模糊度范围blur,取值范围[0~1],0是最清晰,1是最模糊小于0.7
    光照范围illumination,取值范围[0~255]
    脸部光照的灰度值,0表示光照不好
    以及对应客户端SDK中,YUV的Y分量
    大于40
    姿态角度Pitch:三维旋转之俯仰角度[-90(上), 90(下)]
    Roll:平面内旋转角[-180(逆时针), 180(顺时针)]
    Yaw:三维旋转之左右旋转角[-90(左), 90(右)]
    分别小于20度
    人脸完整度completeness(0或1),0为人脸溢出图像边界,
    1为人脸都在图像边界内
    视业务逻辑判断
    人脸大小人脸部分的大小
    建议长宽像素值范围:80*80~200*200
    人脸部分不小于100*100像素

二、结果展示

世界杯正在如火如荼的进行中 让我们看看球星C罗的颜值打分评价

可见系统里可以测出人物的相当多特征,包括年龄 性别 种族 表情等等

别惊讶 在AI的认知里 57.28分已经不低了

 再让我们看看下一张照片的评分

篮球传奇巨星科比呢 看看他的评价 可见对于种族的判断还是十分准确

 在看一看著名港星的 也是经典梗的出处   评分暂且不论 对于种族的判断依然准确

 三、代码

部分代码如下

全部源码请点赞关注收藏后评论区留下QQ~~~

import tkinter as tk
from tkinter import filedialog, ttk
import base64
import json
import requests
from PIL import  Image,ImageTk
win = tk.Tk()
win.title("颜值检测")
#root=tk.Tk()
#root.title("展示图片")
photo=None
img=None
# 打开文件对话框
def getfile():file_path = filedialog.askopenfilename()toglobal imgfile_path = filedialog.askopenfilename()fpath.set(file_path)img=Image.open(file_path)photo=ImageTk.PhotoImage(img)imglabel=tk.Label(win,image=photo)imglabel.grid(row=0,column=0,columnspan=3)def face_baidu():class BaiduPicIndentify:def __init__(self, img):self.AK = "juqVLsljMBigcM4soXoVmMGr"self.SK = "g5EgLoGOxEs3jogREqGVWUYl1e5tLkUL"self.img_src = imgself.headers = {"Content-Type": "application/json; charset=UTF-8"}def get_accessToken(self):host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + self.AK + '&client_secret=' + self.SKresponse = requests.get(host, headers=self.headers)json_result = json.loads(response.text)return json_result['access_token']def img_to_BASE64(slef, path):with open(path, 'rb') as f:base64_data = base64.b64encode(f.read())return base64_datadef detect_face(self):# 人脸检测与属性分析img_BASE64 = self.img_to_BASE64(self.img_src)request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"post_data = {"image": img_BASE64,"image_type": "BASE64","face_field": "gender,age,beauty,gender,race,expression","face_type": "LIVE"}access_token = self.get_accessToken()request_url = request_url + "?access_token=" + access_tokenresponse = requests.post(url=request_url, data=post_data, headers=self.headers)json_result = json.loads(response.text)if json_result['error_msg'] != 'pic not has face':t1 = tk.Label(win, text=json_result['result']['face_num']).grid(row=4, column=1)t2 = tk.Label(win, text=json_result['result']['face_list'][0]['age']).grid(row=5, column=1)t3 = tk.Label(win, text=json_result['result']['face_list'][0]['beauty']).grid(row=6, column=1)t4 = tk.Label(win, text=json_result['result']['face_list'][0]['gender']['type']).grid(row=7, column=1)t5 = tk.Label(win, text=json_result['result']['face_list'][0]['race']['type']).grid(row=8, column=1)t6 = tk.Label(win, text=json_result['result']['face_list'][0]['expression']['type']).grid(row=9,column=1)if __name__ == '__main__':img_src = fpath.get()baiduDetect = BaiduPicIndentify(img_src)baiduDetect.detect_face()#win = tk.Tk()
#win.title("颜值检测")
win.geometry("400x200")
fpath = tk.StringVar()
#ttk.Button(root,text='show',command=show).grid(row=1,column=1)
#root.mainloop()
l = tk.Label(win, text='颜值检测系统-由百度AI提供', bg='brown', font='黑体,20,bold', fg='white')
l.grid(row=1, column=0)
command=show()).grid(row=2,column=1)
ttk.Entry(win, textvariable=fpath).grid(row=2, column=1)l1 = tk.Label(win, text='人脸数:')
l1.grid(row=4, column=0)
l2 = tk.Label(win, text='人物年龄:')
l2.grid(row=5, column=0)
l3 = tk.Label(win, text='人物颜值评分:')
l3.grid(row=6, column=0)
l4物表情:')
l6.grid(row=9, column=0)b = tk.Button(win, text="点我检测", width=15, height=2, command=face_baidu)
b.grid(row=10, column=0)win.mainloop()

创作不易 觉得有帮助请点赞关注收藏~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/54498.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python神经网络:女生颜值打分器(一)

python讨论qq群:996113038 导语: 前几天写了一个批量下载“小姐姐”图片的爬虫,阅读量还挺高的。本来想多写一些这种类型的文章。毕竟学程序的男生比较多,都喜欢看与妹子相关的文章,但想着,这是一个技术类的…

python调用百度人脸识别对美女进行颜值打分

调用百度人脸识别 一、注册百度api 先百度开发者开发平台注册应用https://ai.baidu.com/tech/face/detect 1、创建应用 2、管理应用 APP_ID, API_KEY, SECRET_KEY都会用到 安装使用Python SDK 二、使用Python SDK 1、安装SDK pip install baidu-aip2、新建一个AipFace&a…

陪玩MM千千万,谁是你的NO.1?使用Python获取陪玩照片进行颜值检测打分

陪玩MM千千万,谁是你的NO.1?使用Python获取陪玩照片进行颜值检测打分 序言工欲善其事,必先利其器1、数据来源分析2、实现步骤3、环境与模块 代码展示 序言 哈喽好兄弟们~ 咱们这几年玩过游戏的,基本都知道陪玩吧! 漂…

Python简单实现人脸识别检测, 对某平台美女主播照片进行评分排名

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 开发环境: Python 3.8 Pycharm 2021.2 模块使用: 第三方模块 requests >>> pip install requests tqdm >>> pip install tqdm 简单实现进度条效果 自带模块 os base64 采集代码 导入模块 # 数…

颜值大比拼,用数据告诉你中国哪里美女多?

这个被叫做”颜值调查”的互联网实验于4月29日晚上8点正式开放,截止5月4日24点,共有619位志愿者参与了活动,其中,地址和照片有效信息2413条。 从参与时间上看,29号晚上的短短4个小时以内,参与人数达到峰值的…

吃饱了撑的用python做一个颜值检测 并对美女排名❤

嗨害大家好鸭!我是小熊猫🖤! 今天hin闲~ 要闲出P来了💨 然后花了那么二、四、六、叭!分钟~ 做了一个小小的颜值检测~ 目录(可点击自己想去的地方哦~😋) 开发环境: Python 3.8Pycharm 2021.2 …

别在看不起女程序媛了,一个高颜值女程序媛的日常

「 女程序媛崛起 」 今天这篇文,意义特殊,是我的一个迷妹程序媛-祈澈姑娘写的,她发给我后,我看了通篇,感觉写的很真实,而且又是记录女程序媛的日常,比较少见,所以我很有兴趣&#xf…

Python实现人脸识别检测,对主播进行颜值排行

前言 嗨嗨,我亲爱的家人们 今天来整点不一样的,嘿嘿 用Python简单实现对人脸识别的检测,对某平台主播照片进行评分排名 应该对女主播这个词不陌生吧,怎么说应该还是蛮多人看过一些女主播吧 我无聊的时候也会看看,…

我这个程序员是如何找到女朋友的

估计这是一篇虐狗的文章了!!请捂好小心脏 昨天刚好是恋爱一周年,那就写写我是如何脱单的故事了。 其实没啥好写的,毕竟我去年6月份换了家公司上班,好像还没过试用期吧。突然邻座的邻座的邻座的UI设计师就在某天加了我…

天天new对象的程序员,居然能找到女朋友?还能教你追女生?

江湖上有种谣言说:程序员不解风情,一天到晚只知道打代码...... 但是程序员也是人,面对心爱之人,也会有浪漫主义的一面。在情人节送给自己的女朋友玫瑰花,对于程序员来说是不是太普通了呢?作为一名程序员&am…

程序员如何找女朋友?教你程序员找女朋友的技巧!

很多程序员都会遇到这样的一个难题,那就是自己到一定年纪了,但是找不到合适的对象,很多程序员由于工作的原因,很少更人接触交流,所以导致性格老实内向,这样的性格对于找女朋友来说是致命的。今天&#xff0…

不会聊天,怎么可能找到女朋友?

如果你的职业规划,就是往专业深度上走,成长为一名专家,如何增大职场成功的概率呢? 主观上,作为一个专家,基本功、架构能力、业务能力、工作态度非常重要: 有夯实的专业基本功架构能力强业务能力…

写周报、改代码,连续互动20轮,国产类ChatGPT新玩家「天工」来了

国内的类 ChatGPT 赛道,又来了一个重量级玩家。 4 月 17 日,新⼀代大语言模型「天工」正式开启邀请测试。该模型由昆仑万维与奇点智源联合研发,是国内首个对标 ChatGPT 的双千亿级大语言模型。 官网链接:tiangong.kunlun.com 作为…

经典中文歌曲-英文版

经典中文歌曲-英文版 15首(第一期) 青春派对是大约与小虎队、红唇族同时的台湾演唱组合,歌手资料不详 。主要作品是 经典中文歌曲的英文翻唱,大陆发行过几盘磁带,很快就消声匿迹了。这里介绍给大家 的是由华星唱片公…

ThinkPHP 提示验证码输入错误

最近遇到一个项目中用的是Thinkphp这个框架开发的,其中在登录这块有验证码这个功能,其实这个功能是TP自带的,其中主要方法是buildImageVerify,位于ThinkPHP\Extend\Library\ORG\Util\Image.class.php中。该验证码的机制就是当前台每次重新绘制…

使用图片验证码进行登录验证

需求:后端系统登录时使用图片验证码验证登录 效果: 使用 4 位数字加字母组合验证码登录,相关代码为: import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.LineCaptcha;RequestMapping("/getCode") publ…

tp5.1使用验证码类时,验证码图片不显示

一、问题描述 ​在使用 tp5.1 框架中的 验证码类 的时候,准备工作都做好了,但是验证码图片却无法显示,浏览器缓存也清掉了,电脑也重启的,图片路径也没有问题,就是不显示验证码的图片。 1)通过co…

登录界面+验证码

做一个登录界面验证码的界面 实现效果&#xff1a; 第一部分、 页面&#xff1a; <div class"container" ><h2 style"text-align:center">会员登录 </h2><br><form action"<%path %>/user/login" method"…

tp6框架使用think-captcha时验证码总是错误,调用captcha_check验证失败

tp6框架使用think-captcha时验证码总是错误&#xff0c;调用captcha_check验证失败 用session(‘captcha’)查看值是空的&#xff0c;遇到这种情况&#xff0c;解决如下&#xff1a; 1、打开app/middleware.php文件 2、将\think\middleware\SessionInit::class,注释去掉