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

简介: 【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()
    to
    global img
    file_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 = img
            self.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.SK
            response = 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_data
        def 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_token
            response = 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()

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

相关文章
|
7月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
1130 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
7月前
|
机器学习/深度学习 数据采集 算法
基于mediapipe深度学习的运动人体姿态提取系统python源码
本内容介绍了基于Mediapipe的人体姿态提取算法。包含算法运行效果图、软件版本说明、核心代码及详细理论解析。Mediapipe通过预训练模型检测人体关键点,并利用部分亲和场(PAFs)构建姿态骨架,具有模块化架构,支持高效灵活的数据处理流程。
|
7月前
|
算法 API 数据库
生鲜电商技术实践:基于保质期API的自动下架系统保障食品安全
基于保质期提醒API与自动化工作流,实现生鲜商品临期智能预警与自动下架。通过设定差异化预警阈值(如蔬菜2天、冷冻品7天),每日扫描数据库并触发下架指令,确保食品安全合规,降低损耗与客诉,提升运营效率。
471 0
|
7月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
8月前
|
机器学习/深度学习 人工智能 供应链
淘宝API智能补货系统:库存周转率提升50%的奥秘
在电商竞争激烈的当下,库存管理效率决定企业成败。淘宝API智能补货系统融合人工智能与淘宝开放接口,实现库存自动化管理,大幅提升库存周转率,降低运营成本,助力企业实现高效、智能、精益的供应链管理。
481 0
|
8月前
|
监控 安全 API
京东 API 接口:打造高效京东店铺订单处理系统
在电商竞争激烈的环境下,京东店铺需提升订单处理效率以优化用户体验与收益。本文介绍如何利用京东开放平台的API接口,构建高效订单处理系统,涵盖订单查询、库存同步、物流跟踪等功能,助力商家实现自动化管理,显著提升运营效率与客户满意度。
484 0
|
8月前
|
并行计算 算法 Java
Python3解释器深度解析与实战教程:从源码到性能优化的全路径探索
Python解释器不止CPython,还包括PyPy、MicroPython、GraalVM等,各具特色,适用于不同场景。本文深入解析Python解释器的工作原理、内存管理机制、GIL限制及其优化策略,并介绍性能调优工具链及未来发展方向,助力开发者提升Python应用性能。
493 0
|
8月前
|
JSON API 数据库
手机空号检测API:接口技术详解
介绍号码有效性检测技术,涵盖空号识别原理、高并发架构设计及Python集成示例,助力企业提升电销、风控等场景的运营效率,降低无效号码带来的资源浪费。
1285 0
|
9月前
|
机器学习/深度学习 JSON 监控
拼多多API库存预警系统:避免缺货损失千万!
在电商运营中,缺货可能导致订单流失与经济损失,拼多多推出的API库存预警系统可实时监控库存,及时预警,降低缺货风险。系统支持多语言集成,商家可快速构建自动化监控与补货流程,提升供应链效率,保障销售连续性。
711 0
|
机器学习/深度学习 监控 算法
m基于深度学习网络的活体人脸和视频人脸识别系统matlab仿真,带GUI界面
m基于深度学习网络的活体人脸和视频人脸识别系统matlab仿真,带GUI界面
452 0

热门文章

最新文章

推荐镜像

更多
下一篇
开通oss服务