首先認證受權:python
在開始調用任何API以前須要先進行認證受權,具體的說明請參考:json
http://ai.baidu.com/docs#/Auth/topapp
獲取Access Tokenide
向受權服務地址https://aip.baidubce.com/oauth/2.0/token發送請求(推薦使用POST),並在URL中帶上如下參數:函數
grant_type:?必須參數,固定爲client_credentials;測試
client_id:?必須參數,應用的API Key;編碼
client_secret:?必須參數,應用的Secret Key;url
例如:spa
具體代碼以下:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import urllib
import json
#client_id 爲官網獲取的AK, client_secret 爲官網獲取的SK
client_id =【百度雲應用的AK】
client_secret =【百度雲應用的SK】
#獲取token
def get_token():
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
token_content = response.read()
if token_content:
token_info = json.loads(token_content)
token_key = token_info['access_token']
return token_key
人臉情緒識別
具體說明請查閱: http://ai.baidu.com/docs#/Face-Detect-V3/top
人臉識別接口分爲V2和V3兩個版本,本文檔爲V3版本接口的說明文檔,請確認您在百度雲後臺得到的是V3版本接口權限,再來閱讀本文檔。
能力介紹
人臉檢測:檢測圖片中的人臉並標記出位置信息;
人臉關鍵點:展現人臉的核心關鍵點信息,及150個關鍵點信息。
人臉屬性值:展現人臉屬性信息,如年齡、性別等。
人臉質量信息:返回人臉各部分的遮擋、光照、模糊、完整度、置信度等信息。
業務應用
典型應用場景:如人臉屬性分析,基於人臉關鍵點的加工分析,人臉營銷活動等。
調用方式
向API服務地址使用POST發送請求,必須在URL中帶上參數access_token,可經過後臺的API Key和Secret Key生成,具體方式請參考「Access Token獲取」。
請求說明
請求體格式化:Content-Type爲application/json,經過json格式化請求體。
Base64編碼:請求的圖片需通過Base64編碼,圖片的base64編碼指將圖片數據編碼成一串字符串,使用該字符串代替圖像地址。您能夠首先獲得圖片的二進制,而後用Base64格式編碼便可。須要注意的是,圖片的base64編碼是不包含圖片頭的,如data:image/jpg;base64,
圖片格式:現支持PNG、JPG、JPEG、BMP,不支持GIF圖片
HTTP方法:POST
請求URL: https://aip.baidubce.com/rest/2.0/face/v3/detect
Python3代碼以下:
#獲取人臉情緒信息
def face_detect_emotion(url):
request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"
params = dict()
params['image'] = url
params['image_type'] = 'URL'
params['face_field'] = 'emotion'
params = json.dumps(params).encode('utf-8')
access_token=get_token()
request_url = request_url + "?access_token=" + access_token
request = urllib.request.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/json')
response = urllib.request.urlopen(request)
content = response.read()
if content:
#print (content)
content=content.decode('utf-8')
data = json.loads(content)
#print (data)
return data['result']['face_list'][0]['emotion']
else:
return ''
這個函數將根據網上圖片URL地址獲取圖片並檢測人臉的情緒。讓咱們用網上找的一張微笑的圖片進行測試:
執行代碼:
image_url='http://p0.qhimgs4.com/t0159dd32381d0c25b7.jpg'
print (face_detect_emotion(image_url))
返回:
{'type': 'happy', 'probability': 0.97}
可見檢測的仍是很準的。