Python调用百度AI实现颜值评分功能

目录
  • 一、调用百度接口进行人脸属性识别
  • 二、根据年龄和性别对颜值进行评价
  • 三、批量识别人脸属性
  • 四、自定义窗口语音播报颜值得分
  • 五、明星颜值评价

一、调用百度接口进行人脸属性识别

安装好baidu-aip模块,获取了百度AI接口密钥后,即可调用百度接口进行人脸属性识别了。首先以杨紫的图片为例进行年龄、性别、颜值的识别。

具体python代码如下:‍

import os
import base64
from aip import AipFace

os.chdir(r'F:\公众号\28.人脸识别')
#设置图片存放的路径

pictureName = '1_yz.jpg'
def get_picture_content(pictureName):
    with open(pictureName, 'rb') as fp:
        content = base64.b64encode(fp.read())
        return content.decode('utf-8')
#定义读取图片的函数

APP_ID = 'XXX'
API_KEY = 'XXXXXXXX'
SECRET_KEY = 'XXXXXXXXXXXX'
#百度账号和密钥

options = {}
imageType = 'BASE64'
options["face_field"] = "age, gender, beauty"
aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)
result = aipFace.detect(get_picture_content(pictureName), imageType, options)
print(result)

注: 其中os.chdir中的内容应该替换成你存储图片的地址,APP_ID、API_KEY、SECRET_KEY应该替换成你获取的百度密钥。

得到结果如下:

其中,age对应的值为年龄,gender对应的值为性别,beauty对应的值为颜值分。为进一步规范输出成标准格式,通过如下代码进行规范化:

import pandas as pd

face_character = pd.DataFrame({"age":[result['result']['face_list'][0]['age']], "gender":[result['result']['face_list'][0]['gender']['type']], "beauty":[result['result']['face_list'][0]['beauty']] })

得到结果如下:

可以发现杨紫的颜值得分还是很高的图片,后续文章也会对其它一些明星进行测试。

二、根据年龄和性别对颜值进行评价

根据性别和颜值分,对识别结果进行评价,具体代码如下:

if face_character['beauty'][0]>80:
    if face_character['gender'][0] == 'female':
        print("小姐姐颜值爆表")
    else:
        print("小哥哥颜值爆表")
elif face_character['beauty'][0]>70:
    if face_character['gender'][0] == 'female':
        print("小姐姐天生美颜")
    else:
        print("小哥哥天生美颜")
elif face_character['beauty'][0]>60:
    if face_character['gender'][0] == 'female':
        print("小姐姐颜值尚可")
    else:
        print("小哥哥颜值尚可")
elif face_character['beauty'][0]>40:
    if face_character['gender'][0] == 'female':
        print("小姐姐先天不够,后天来凑")
    else:
        print("小哥哥先天不够,后天来凑")
else:
    if face_character['gender'][0] == 'female':
        print("小姐姐洗洗睡吧")
    else:
        print("小哥哥洗洗睡吧")

得到结果:

三、批量识别人脸属性

假设文件夹中有数张人脸图片,想批量对这批图片进行颜值打分,可执行如下代码:

import os
import re
import time
import base64
from aip import AipFace

os.chdir(r'F:\公众号\28.人脸识别')
#设置图片存放的路径

pictureName = '6_brzp.jpg'
def get_picture_content(pictureName):
    with open(pictureName, 'rb') as fp:
        content = base64.b64encode(fp.read())
        return content.decode()
#定义读取图片的函数

APP_ID = 'XXX'
API_KEY = 'XXXXXXXX'
SECRET_KEY = 'XXXXXXXXXXXX'
#百度账号和密钥

options = {}
imageType = 'BASE64'
options["face_field"] = "beauty"
options["max_face_num"] = 2
aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)

root_path = r'F:\公众号\28.人脸识别'
list = os.listdir(root_path)
# 列出文件夹下所有的目录与文件

for i in range(0, len(list)):
    time.sleep(1)
    path = os.path.join(root_path, list[i])
    if os.path.isfile(path):
        result = aipFace.detect(get_picture_content(path), imageType, options)
        print(list[i] + ' 评分为:' + str(result['result']['face_list'][0]['beauty']))
#显示出所有图片的颜值得分

得到结果:

可以发现杨紫的那张照片颜值分很高,有八十几分。为了更好的用户体验,我们设置一个窗口,显示评价照片并语音播报颜值得分。 

四、自定义窗口语音播报颜值得分

为了更清晰地评价人的颜值,把图片和结果用tkinter库和语音播放库包装起来,效果会更好。具体代码如下:

import os
import re
import time
import base64
import pandas as pd
import tkinter as tk
from aip import AipFace
from tkinter import filedialog

root = tk.Tk()
root.withdraw()
Folderpath = filedialog.askdirectory(title = '请选择图片存放的文件夹')
picturePath = filedialog.askopenfilename(title = '请选择要进行颜值评价的图片')
root.destroy()
os.chdir(Folderpath)
#设置图片存放的路径

def get_picture_content(picturePath):
    with open(picturePath, 'rb') as fp:
        content = base64.b64encode(fp.read())
        return content.decode()
#定义读取图片的函数

APP_ID = 'XXX'
API_KEY = 'XXXXXXXX'
SECRET_KEY = 'XXXXXXXXXXXX'
#百度账号和密钥

options = {}
options["max_face_num"] = 2
options["face_field"] = "gender"
aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)
imageType = 'BASE64'
result = aipFace.detect(get_picture_content(picturePath), imageType, options)
gender = result['result']['face_list'][0]['gender']['type']
options["face_field"] = "age"
time.sleep(1)
result = aipFace.detect(get_picture_content(picturePath), imageType, options)
age = result['result']['face_list'][0]['age']
options["face_field"] = "beauty"
time.sleep(2)
result = aipFace.detect(get_picture_content(picturePath), imageType, options)
beauty = result['result']['face_list'][0]['beauty']
#获取年龄、性别、颜值信息

face_character = pd.DataFrame({"age":age, "gender":gender, "beauty":beauty},index = ['value'])
if face_character['beauty'][0]>80:
    if face_character['gender'][0] == 'female':
        str_list = "小姐姐芳龄:"+ str(age) + ",颜值爆表"+ ',最终颜值得分为:'+str(beauty)
    else:
        str_list = "小哥哥贵庚:"+ str(age) + ",颜值爆表"+ ',最终颜值得分为:'+str(beauty)
elif face_character['beauty'][0]>70:
    if face_character['gender'][0] == 'female':
        str_list = "小姐姐芳龄:"+ str(age) + ",天生美颜"+ ',最终颜值得分为:'+str(beauty)
    else:
        str_list = "小哥哥贵庚:"+ str(age) + ",天生美颜"+ ',最终颜值得分为:'+str(beauty)
elif face_character['beauty'][0]>50:
    if face_character['gender'][0] == 'female':
        str_list = "小姐姐芳龄:"+ str(age) + ",颜值尚可"+ ',最终颜值得分为:'+str(beauty)
    else:
        str_list = "小哥哥贵庚:"+ str(age) + ",颜值尚可"+ ',最终颜值得分为:'+str(beauty)
elif face_character['beauty'][0]>30:
    if face_character['gender'][0] == 'female':
        str_list = "小姐姐芳龄:"+ str(age) + ",先天不够,后天来凑"+ ',最终颜值得分为:'+str(beauty)
    else:
        str_list = "小哥哥贵庚:"+ str(age) + ",先天不够,后天来凑" + ',最终颜值得分为:'+str(beauty)
else:
    if face_character['gender'][0] == 'female':
        str_list = "小姐姐芳龄:"+ str(age) + ",早点洗洗睡吧"+ ',最终颜值得分为:'+str(beauty)
    else:
        str_list = "小哥哥贵庚:"+ str(age) + ",早点洗洗睡吧"+ ',最终颜值得分为:'+str(beauty)
#颜值定义

from tkinter import *
from PIL import Image, ImageTk
from win32com.client import Dispatch
#导入包

speaker = Dispatch("SAPI.SpVoice")
def roll_call():
    speaker.Speak(str_list)
#控制播放语音

os.chdir(Folderpath)
#设置文件路径

root = Tk()
root.title("颜值测试小程序")
root.iconbitmap("pikaqiu2.ico")
#设置窗口

image = Image.open(picturePath)
#加载图片

root.geometry("400x300")
#根据图片大小设置窗口大小

img_pic = ImageTk.PhotoImage(image)
label = Label(root, image=img_pic)
label.pack()

b2 = tk.Button(root, bg='lightyellow', text='颜值评价', font=("KaiTi", 8), width=8, height=2, command=roll_call)
b2.place(x=0, y=0)

root.mainloop()

五、明星颜值评价

最后我们来看下明星的颜值评分吧。

1 刘亦菲

颜值评价结果:

'小姐姐芳龄:21,颜值尚可,最终颜值得分为:64.19'

对于这个结果,我也比较吃惊,所以颜值得分大家当成娱乐就好图片。

2 贾玲

颜值评价结果:

'小姐姐芳龄:37,先天不够,后天来凑,最终颜值得分为:30.67'

颜值得分仅供参考,请勿当真。我的有些照片测出来也是三十多分,可能跟背景、光线、表情都有一定的关系,大家当成娱乐就好。

3 肖战

颜值评价结果:

'小哥哥贵庚:23,颜值尚可,最终颜值得分为:63.9'

颜值得分仅供参考,请勿当真图片,认为我的代码有问题的可以自行下载图片和代码进行尝试。

4 宋小宝

颜值评价结果:

'小哥哥贵庚:40,先天不够,后天来凑,最终颜值得分为:45.18'

颜值得分仅供参考,请勿当真。从上面的颜值得分可以发现,普遍颜值得分较低,八十多分的已经算高分了,也算是为杨紫的颜值正名了吧。至此,调用百度接口颜值识别已讲解完毕,感兴趣的朋友自己实现一遍吧。 

以上就是Python调用百度AI实现颜值评分功能的详细内容,更多关于Python 颜值评分的资料请关注我们其它相关文章!

(0)

相关推荐

  • python实战练习之最新男女颜值打分小系统

    导语​ ​ 哈喽!我是木木子,今天又想我了嘛? 之前不是出过一期Python美颜相机嘛?不知道你们还记得不?这一期的话话题还是围绕上期关于颜值方面来走. 还是原来的配方,还是原来的味道. 偶尔有女生或者说男生都有过这样的经历,偶然照镜子的时候觉得自己美.帅到爆炸.[小编打死不会承认的.jpg] ​ 但打开无美颜的前置摄像头无滤镜,或者看到真正的漂亮小姐姐,又会感慨自己怎么能这么丑! ​ 颜值打分其实是个很有争议,并且人人都感兴趣的话题,那么今天木木子就带着Python颜值打分神器走来了! 如果满

  • 用python写个颜值评分器筛选最美主播

    目录 前言 一.核心功能设计 获取主播直播封面图 主播颜值评分 二.实现步骤 1. 获取主播名称和照片 2. 主播颜值评分 前言 晚上回家闲来无事,想打开某直播平台,看看小姐姐直播.看着一个个多才多艺的小姐姐,眼花缭乱,好难抉择.究竟看哪个小姐姐直播好呢? 今天我们就一起来做个颜值评分器,爬取小姐姐们的直播照片,对每位小姐姐的颜值进行打分排序,选出最靓的star. 一.核心功能设计 总体来说,我们需要做的是获取直播颜值区的主播小姐姐的正在直播的全部主播名称和封面图并保存下来,用百度AI提供的人脸

  • 使用python实现男神女神颜值打分系统(推荐)

    先给大家展示效果图,感觉不错,请参考实现代码. 具体代码如下所示: #!/usr/bin/env python # -*- coding:utf-8 -*- """ pip install pillow pip install baidu-aip pip install tkinter """ import PIL import time import base64 import tkinter as tk from PIL import Ima

  • Python实现对照片中的人脸进行颜值预测

    一.所需工具 **Python版本:**3.5.4(64bit) 二.相关模块 opencv_python模块 sklearn模块 numpy模块 dlib模块 一些Python自带的模块. 三.环境搭建 (1)安装相应版本的Python并添加到环境变量中: (2)pip安装相关模块中提到的模块. 例如: 若pip安装报错,请自行到: http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载pip安装报错模块的whl文件,并使用: pip install whl

  • Python调用百度AI实现颜值评分功能

    目录 一.调用百度接口进行人脸属性识别 二.根据年龄和性别对颜值进行评价 三.批量识别人脸属性 四.自定义窗口语音播报颜值得分 五.明星颜值评价 一.调用百度接口进行人脸属性识别 安装好baidu-aip模块,获取了百度AI接口密钥后,即可调用百度接口进行人脸属性识别了.首先以杨紫的图片为例进行年龄.性别.颜值的识别. 具体python代码如下:‍ import os import base64 from aip import AipFace os.chdir(r'F:\公众号\28.人脸识别'

  • Python调用百度AI实现图片上表格识别功能

    目录 简介 步骤 安装百度AI库 注册百度AI开放平台 调用AipOcr库识别表格文字 可能遇到的问题 批量操作 总结 简介 Python免费调用百度AI实现图片上面的表格识别 步骤 安装百度AI库 !pip install baidu-aip 注册百度AI开放平台 先注册百度AI,获得ID和密钥.注册方法可参考:注册方法 只需走到 "1.6 获取密钥" 即可.然后记录下自己的APP_ID.API_KEY.SECRET_KEY,就可以开始了. 调用AipOcr库识别表格文字 from

  • Python调用百度AI实现图片上文字识别功能实例

    目录 简介 步骤 安装百度AI库 注册百度AI开放平台 调用glob库 调用AipOcr库识别文字 可能会遇到的问题 批量操作 总结 简介 Python免费调用百度AI实现图片上面的文字识别 步骤 安装百度AI库 !pip install baidu-aip 注册百度AI开放平台 先注册百度AI,获得ID和密钥.注册方法可参考:注册方法 只需走到 "1.6 获取密钥" 即可.然后记录下自己的APP_ID.API_KEY.SECRET_KEY,就可以开始了. 调用glob库 glob库用

  • Python调用百度AI实现身份证识别

    目录 一.安装baidu-aip模块 二.获取百度AI接口密钥 三.调用百度接口识别身份证 一.安装baidu-aip模块 按win+R打开cmd,在里面输入 pip3 install baidu-aip 若出现如下界面,即成功安装了baidu-aip模块: 如果想快速了解识别营业执照代码原理,可以跳过第二部分,先看第三部分的内容. 二.获取百度AI接口密钥 在应用python识别身份证的过程中,有三行代码使用了百度AI接口密钥,故先阐述如何获得该密钥.首先,进入如下百度AI官方网站:https

  • python调用百度AI接口实现人流量统计

    百度AI接口的调用方法不必多介绍. 官网地址 人流量统计 新建AipBodyAnalysis from aip import AipBodyAnalysis """ 你的 APPID AK SK """ APP_ID = '你的 App ID' API_KEY = '你的 Api Key' SECRET_KEY = '你的 Secret Key' client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_K

  • Python调用百度AI实现人像分割详解

    目录 一.原始视频截图 二.提取人像 三.和背景图合并 四.合成视频 一.原始视频截图 import cv2 cap=cv2.VideoCapture(r"[小仙若]shake it !冬日也要活力满满! (P1. shake it).mp4") ret,frame=cap.read() i =0 timeF=3 j=0 num=0 while 1: i=i+1 if (i%timeF==0): j=j+1 cv2.imwrite("./pictures/"+str

  • python利用百度AI实现文字识别功能

    本文为大家分享了python实现文字识别功能大全,供大家参考,具体内容如下 1.通用文字识别 # -*- coding: UTF-8 -*- from aip import AipOcr # 定义常量 APP_ID = '11352343' API_KEY = 'Nd5Z1NkGoLDvHwBnD2bFLpCE' SECRET_KEY = 'A9FsnnPj1Ys2Gof70SNgYo23hKOIK8Os' # 初始化AipFace对象 aipOcr = AipOcr(APP_ID, API_K

  • Python3调用百度AI识别图片中的文字功能示例【测试可用】

    本文实例讲述了Python3调用百度AI识别图片中的文字功能.分享给大家供大家参考,具体如下: 首先pip install命令安装baidu-aip模块,如下图所示(这里使用pip3 install baidu-aip命令): 编辑Python代码时注意,需要首先引入AipOcr和re两个模块,即: from aip import AipOcr import re 示例代码如下: from aip import AipOcr import re APP_ID='***' API_KEY='***

  • Django调用百度AI接口实现人脸注册登录代码实例

    面部识别----考勤打卡.注册登录.面部支付等等...感觉很高大上,又很方便,下面用python中的框架--django完成一个注册登录的功能,调用百度AI的接口,面部识别在网上也有好多教程,可以自己建模,训练模型,但是这都需要大量的数据去提高模型的准确度,我们直接用了百度AI的接口,十分的快捷.高效.准确,下来码一下代码啦!! 首先需要在百度AI官网注册一个应用,免费,并提供强大的人脸库. 1.注册表单 <div class="tab-content"> <div

  • Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '******' API_KEY = '************' SECRET_KEY = '**************' 下面就是百度API包的安装,在终端cmd输入如下语句直接pip方式安装,注意是 baidu-api 哦! pip install --user baidu-aip 接下来上py

随机推荐