【颜值检测神器】来,请拿出你们的绝活(这颜值,对得起观众么?)
前言
🚀 作者 :“程序員梨子”
🚀 **文章簡(jiǎn)介 **:本篇文章主要調(diào)用百度接口制作一款顏值檢測(cè)小工具啦。
🚀 **文章源碼獲取 **: 為了感謝每一個(gè)關(guān)注我的小可愛💓每篇文章的項(xiàng)目源碼都是無償分
享滴💓👇👇👇👇
點(diǎn)這里藍(lán)色這行字體自取,需要什么源碼記得說標(biāo)題名字哈!私信我也可!
🚀 歡迎小伙伴們 點(diǎn)贊👍、收藏?、留言💬
正文
為什么這年頭,大家很容易外貌焦慮?想知道真實(shí)的顏值可以打多少分嘛?
嘿嘿,今天小編就來給大家制作一款應(yīng)用百度AI的人臉識(shí)別功能的顏值檢測(cè)小腳本啦!感興趣的朋
友一起來看看效果吧~
1)效果展示
安裝好baidu-aip模塊,獲取了百度AI接口密鑰后,即可調(diào)用百度接口進(jìn)行人臉屬性識(shí)別了。
首先以劉亦菲的圖片為例進(jìn)行年齡、性別、顏值的識(shí)別。
2)源碼實(shí)現(xiàn)
import os import base64 from aip import AipFaceos.chdir(r'F:\公眾號(hào)\28.人臉識(shí)別') #設(shè)置圖片存放的路徑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') #定義讀取圖片的函數(shù)APP_ID = 'XXX' API_KEY = 'XXXXXXXX' SECRET_KEY = 'XXXXXXXXXXXX' #百度賬號(hào)和密鑰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中的內(nèi)容應(yīng)該替換成你存儲(chǔ)圖片的地址,APP_ID、API_KEY、SECRET_KEY
應(yīng)該替換成第二章末尾你獲取的百度密鑰。
得到結(jié)果如下:
其中,age對(duì)應(yīng)的值為年齡,gender對(duì)應(yīng)的值為性別,beauty對(duì)應(yīng)的值為顏值分。
為進(jìn)一步規(guī)范輸出成標(biāo)準(zhǔn)格式,通過如下代碼進(jìn)行規(guī)范化:
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']] })得到結(jié)果如下:
可以發(fā)現(xiàn)劉亦菲的顏值對(duì)于這個(gè)結(jié)果,我也比較吃驚,所以顏值得分大家當(dāng)成娛樂就好!!
優(yōu)化之后的源碼——
import os import re import time import base64 import pandas as pd import tkinter as tk from aip import AipFace from tkinter import filedialogroot = tk.Tk() root.withdraw() Folderpath = filedialog.askdirectory(title = '請(qǐng)選擇圖片存放的文件夾') picturePath = filedialog.askopenfilename(title = '請(qǐng)選擇要進(jìn)行顏值評(píng)價(jià)的圖片') root.destroy() os.chdir(Folderpath) #設(shè)置圖片存放的路徑def get_picture_content(picturePath):with open(picturePath, 'rb') as fp:content = base64.b64encode(fp.read())return content.decode() #定義讀取圖片的函數(shù)APP_ID = 'XXX' API_KEY = 'XXXXXXXX' SECRET_KEY = 'XXXXXXXXXXXX' #百度賬號(hào)和密鑰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) + ",早點(diǎn)洗洗睡吧"+ ',最終顏值得分為:'+str(beauty)else:str_list = "小哥哥貴庚:"+ str(age) + ",早點(diǎn)洗洗睡吧"+ ',最終顏值得分為:'+str(beauty) #顏值定義from tkinter import * from PIL import Image, ImageTk from win32com.client import Dispatch #導(dǎo)入包speaker = Dispatch("SAPI.SpVoice") def roll_call():speaker.Speak(str_list) #控制播放語(yǔ)音os.chdir(Folderpath) #設(shè)置文件路徑root = Tk() root.title("顏值測(cè)試小程序") root.iconbitmap("pikaqiu2.ico") #設(shè)置窗口image = Image.open(picturePath) #加載圖片root.geometry("400x300") #根據(jù)圖片大小設(shè)置窗口大小img_pic = ImageTk.PhotoImage(image) label = Label(root, image=img_pic) label.pack()b2 = tk.Button(root, bg='lightyellow', text='顏值評(píng)價(jià)', font=("KaiTi", 8), width=8, height=2, command=roll_call) b2.place(x=0, y=0)root.mainloop()明星測(cè)試——
1)賈玲
顏值評(píng)價(jià)結(jié)果:
'小姐姐芳齡:29,先天不夠,后天來湊,最終顏值得分為:30.67'顏值得分僅供參考,請(qǐng)勿當(dāng)真。
我的有些照片測(cè)出來也是三十多分,可能跟背景、光線、表情都有一定的關(guān)系,大家當(dāng)成娛樂就
好。
2)肖戰(zhàn)
顏值評(píng)價(jià)結(jié)果:
'小哥哥貴庚:23,顏值尚可,最終顏值得分為:63.9'顏值得分僅供參考,請(qǐng)勿當(dāng)真,認(rèn)為我的代碼有問題的可以自行下載圖片和代碼進(jìn)行嘗試。苦笑!
總結(jié)
顏值得分僅供參考,請(qǐng)勿當(dāng)真
從上面的顏值得分可以發(fā)現(xiàn),普遍顏值得分較低,八十多分的已經(jīng)算高分了,好啦!調(diào)用百度接口
顏值識(shí)別已講解完畢,感興趣的朋友自己實(shí)現(xiàn)一遍吧
注小編獲取更多精彩內(nèi)容!記得點(diǎn)擊傳送門哈👇
記得三連哦! 如需打包好的源碼+素材免費(fèi)分享滴!!傳送門
總結(jié)
以上是生活随笔為你收集整理的【颜值检测神器】来,请拿出你们的绝活(这颜值,对得起观众么?)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python小程序】这竟是2月14号情
- 下一篇: 【Python翻屏软件】英文1秒翻,水准