1.使用前需要做使用百度AI開放平臺的人臉識別接口的準備工作。
2.百度AI開放平臺的人臉識別接口
能力介紹
接口能力
- 人臉檢測:檢測圖片中的人臉並標記出位置信息;
- 人臉關鍵點:展示人臉的核心關鍵點信息,及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像素 |
3.獲取access_token
對於HTTP API調用者,百度AIP開放平臺使用OAuth2.0授權調用開放API,調用API時必須在URL中帶上access_token參數,獲取Access Token的流程如下:
向授權服務地址https://aip.baidubce.com/oauth/2.0/token
發送請求(推薦使用POST),並在URL中帶上以下參數:
- grant_type: 必須參數,固定爲
client_credentials
; - client_id: 必須參數,應用的
API Key
; - client_secret: 必須參數,應用的
Secret Key
;
其中API Key和Secret Key可在應用列表中查看:
代碼如下:
# encoding:utf-8
import requests
# client_id 爲官網獲取的AK, client_secret 爲官網獲取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官網獲取的AK】&client_secret=【官網獲取的SK】'
response = requests.get(host)
if response:
print(response.json())
服務器返回的JSON文本參數如下:
- access_token: 要獲取的Access Token;
- expires_in: Access Token的有效期(秒爲單位,一般爲1個月);
- 其他參數忽略,暫時不用;
例如:
{
"refresh_token": "25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798284651.282335-8574074",
"expires_in": 2592000,
"scope": "public wise_adapt",
"session_key": "9mzdDZXu3dENdFZQurfg0Vz8slgSgvvOAUebNFzyzcpQ5EnbxbF+hfG9DQkpUVQdh4p6HbQcAiz5RmuBAja1JJGgIdJI",
"access_token": "24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-8574074",
"session_secret": "dfac94a3489fe9fca7c3221cbf7525ff"
}
若請求錯誤,服務器將返回的JSON文本包含以下參數:
- error: 錯誤碼;關於錯誤碼的詳細信息請參考下方鑑權認證錯誤碼。
- error_description: 錯誤描述信息,幫助理解和解決發生的錯誤。
例如認證失敗返回:
{
"error": "invalid_client",
"error_description": "unknown client id"
}
鑑權認證錯誤碼
error | error_description | 解釋 |
---|---|---|
invalid_client | unknown client id | API Key不正確 |
invalid_client | Client authentication failed | Secret Key不正確 |