python調用百度人臉識別:來一次顏值評分

前言

在某公衆號上偶然看到一篇文章 調用百度ai進行顏值打分給班級女生打分,還挺好玩的,遂也來試試給周圍認識的女性打打分~

內容

打開百度ai人臉識別-點擊立即使用-登錄百度帳號
新建一個應用-獲取key
在這裏插入圖片描述
來到幫助手冊
找到換取token的網址,將其寫出函數形式

def gettoken():
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=***********&client_secret=**********'
    response = requests.get(host)
    if response:
        return response.json()['access_token']

主體調用函數:

import requests

'''
人臉檢測與屬性分析
'''

request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"

params = "{\"image\":\"027d8308a2ec665acb1bdf63e513bcb9\",\"image_type\":\"FACE_TOKEN\",\"face_field\":\"faceshape,facetype\"}"
access_token = '[調用鑑權接口獲取的token]'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/json'}
response = requests.post(request_url, data=params, headers=headers)
if response:
    print (response.json())

這是官方源代碼,稍作修改讓他可以顯示我當前打分的照片成績就夠了,其他的參數暫時不需要
,照片的質量清晰度,人物角度都影響評分標準

import requests
import base64
import matplotlib.pyplot as plt # plt 用於顯示圖片
import matplotlib.image as mpimg # mpimg 用於讀取圖片
'''
換取token
'''
def gettoken():
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=***********&client_secret=**********'
    response = requests.get(host)
    if response:
        return response.json()['access_token']
'''
人臉檢測與屬性分析
'''
def getscore(url):
    f=open(url,'rb')#二進制讀寫,轉換base64
    base64_data = base64.b64encode(f.read())
    request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"
    params = {
        "image":base64_data,
        "image_type":"BASE64",
        "face_field":"beauty"
    }
    request_url = request_url + "?access_token=" + gettoken()
    headers = {'content-type': 'application/json'}
    response = requests.post(request_url, data=params, headers=headers)
    if response:
        print ("經過AI大數據評分您的顏值分數爲:",response.json()['result']['face_list'][0]['beauty'])
        print('百度人工智能技術支持')
        lena = mpimg.imread(url) 
        plt.imshow(lena) 
        plt.axis('off')
        plt.show()

通過matplotlib進行圖片的顯示,圖片百度要求是base64
下面直接調用getscore(url)就可以了
url是放置圖片的路徑

試一試

想放幾張周圍認識的人的照片呢,一想還是算了,我怕被砍……
找個明星試試吧~
在這裏插入圖片描述
迪麗熱巴,就是不一般~
再來一個:
在這裏插入圖片描述
……
在這裏插入圖片描述
我認爲最後一個是最漂亮的…………
男性也可以:
在這裏插入圖片描述
還有一張照片評分,得分不高,不放這裏了,我怕放出來我和百度第二天都沒有了……

最後

偷偷的來爲身邊的人打一次分吧~
當然,分值僅供參考,切勿用於攀比,我們每個人都是獨一無二的。

最最後

30歲之前的相貌是父母給的,30歲之後的相貌則是自己養的
腹有詩書氣自華

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章