西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

人臉識別軟件

最新版
  • 人臉識別軟件最新版
  • 軟件大小:52.6M
  • 更新時間:2019-10-08 12:05
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費軟件 / 瀏覽輔助
  • 軟件等級:3級
  • 應(yīng)用平臺:WinAll
  • 官方網(wǎng)站:暫無
  • 應(yīng)用備案:
好評:50%
壞評:50%

軟件介紹

人臉識別軟件是一款使用百度人臉識別接口做的有個簡單的人臉識別工具(接口識別不準(zhǔn),僅限于娛樂),學(xué)習(xí)PyQt5做的一個人臉識別的小工具,使用百度的免費人臉識別接口,識別不是很準(zhǔn)確,僅限學(xué)習(xí)娛樂。

調(diào)用說明

在百度AI開放平臺使用百度的人臉識別能力,只需要三個核心步驟即可操作完成:

獲取接口權(quán)限

準(zhǔn)備接口調(diào)用工具

進(jìn)行接口調(diào)用,全部流程走通只需要十分鐘時間。

人臉識別接口

百度在線人臉識別API簡單實現(xiàn)教程

1.申請百度人臉識別應(yīng)用

首先需要在百度智能云平臺登錄

https://console.bce.baidu.com/ai/?_=1558444274128&fromai=1#/ai/face/overview/index

登陸后創(chuàng)建應(yīng)用,創(chuàng)建的應(yīng)用是人臉識別的,默認(rèn)已幫你勾選上了相關(guān)功能。

創(chuàng)建應(yīng)用后,點擊管理應(yīng)用,你就可以獲取API Key和Secret Key

2.獲取token

現(xiàn)在就可以編寫代碼調(diào)用在線的人臉檢測API了

首先是獲取token,用于校驗,代碼如下,注意換成自己申請的API Key和Secret Key

def getToken():

global token

# client_id 為官網(wǎng)獲取的AK, client_secret 為官網(wǎng)獲取的SK

host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的API Key&client_secret=你的Secret Key'

request = urllib2.Request(host)

request.add_header('Content-Type', 'application/json; charset=UTF-8')

response = urllib2.urlopen(request)

content = response.read()

if (content):

token=json.loads(content)['access_token']

3.圖片的base64編碼

上傳的用于檢測的圖片需經(jīng)過Base64編碼。需要注意的是,圖片的base64編碼是不包含圖片頭的,代碼如下:

def imgToBase64(imgPath):

with open(imgPath, "rb") as f:  # 轉(zhuǎn)為二進(jìn)制格式

base64_data = base64.b64encode(f.read())  # 使用base64進(jìn)行加密

return base64_data

4.人臉識別

最后就是調(diào)用接口進(jìn)行人臉識別了

def faceDetect(imgBase64):

'''

人臉檢測與屬性分析

'''

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

request_url = request_url + "?access_token=" + token

request = urllib2.Request(request_url)

request.add_header('Content-Type', 'application/json')

data = {"image": imgBase64, "image_type": "BASE64","face_field":"age,beauty,expression,face_shape,gender"}

response = urllib2.urlopen(request, urllib.urlencode(data))

content = response.read()

if content:

return content

這個函數(shù)中輸入的是圖片的base64編碼,請求的參數(shù)中比較重要的是那個face_field,默認(rèn)只返回人臉框的位置、概率和旋轉(zhuǎn)角度,age(年齡預(yù)測),beauty(顏值打分),expression(表情)等更多屬性,需要在這個參數(shù)中添加,具體的請參考官方說明文檔:http://ai.baidu.com/docs#/Face-Detect-V3/top

5.結(jié)果繪制與可視化

人臉識別最后返回的是json數(shù)據(jù),但我們往往需要畫個框框,把人臉框出來,同時把一些預(yù)測的屬性也標(biāo)注上,這個代碼我已經(jīng)附在最后面了。

最終實現(xiàn)的效果如下:


6.實現(xiàn)的完整源代碼

下面我附上實現(xiàn)這些功能的完整代碼:

#coding:utf-8

import urllib,urllib2, sys

import ssl

import json

import base64

import cv2

global token

def getToken():

global token

# client_id 為官網(wǎng)獲取的AK, client_secret 為官網(wǎng)獲取的SK

host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的API Key&client_secret=你的Secret Key'

request = urllib2.Request(host)

request.add_header('Content-Type', 'application/json; charset=UTF-8')

response = urllib2.urlopen(request)

content = response.read()

if (content):

token=json.loads(content)['access_token']

def faceDetect(imgBase64):

'''

人臉檢測與屬性分析

'''

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

request_url = request_url + "?access_token=" + token

request = urllib2.Request(request_url)

request.add_header('Content-Type', 'application/json')

data = {"image": imgBase64, "image_type": "BASE64","face_field":"age,beauty,expression,face_shape,gender"}

response = urllib2.urlopen(request, urllib.urlencode(data))

content = response.read()

if content:

return content

def imgToBase64(imgPath):

with open(imgPath, "rb") as f:  # 轉(zhuǎn)為二進(jìn)制格式

base64_data = base64.b64encode(f.read())  # 使用base64進(jìn)行加密

return base64_data

if __name__=="__main__":

getToken()

imgPath=r"C:\Users\lee\Pictures\lena.jpg"

result=json.loads(faceDetect(imgToBase64(imgPath)))['result']

face_list=result['face_list'][0]

location=face_list['location']

age=face_list['age']

beauty=face_list['beauty']

expression=face_list['expression']['type']

gender=face_list['gender']['type']

img = cv2.imread(imgPath, cv2.IMREAD_COLOR)

leftTopX=int(location['left'])

leftTopY=int(location['top'])

rightBottomX=int(leftTopX+int(location['width']))

rightBottomY = int(leftTopY + int(location['height']))

cv2.rectangle(img, (leftTopX, leftTopY), (rightBottomX, rightBottomY), (0, 255, 0), 2)

font = cv2.FONT_HERSHEY_SIMPLEX

# 第一個坐標(biāo)表示起始位置

cv2.putText(img,"age:"+str(age),(0, 20),font, 0.5, (200, 255, 255), 1)

cv2.putText(img, "gender:" + gender.encode("utf-8"), (0, 40), font, 0.5, (200, 255, 255), 1)

cv2.putText(img, "beauty:" + str(beauty), (0, 60), font, 0.5, (200, 255, 255), 1)

cv2.putText(img, "expression:" + str(expression), (0, 80), font, 0.5, (200, 255, 255), 1)

cv2.imshow('image', img)

cv2.waitKey(0)

print("end")

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字?jǐn)?shù): 0/500

TOP
軟件下載