一.安裝人臉識別 Python SDK
首先在當前的python環境中使用pip install baidu-aip安裝人臉識別 Python SDK。
二.算法思路
1.首先通過python SDK中的AipFace類獲取一個客戶端對象。
from aip import AipFace
""" 你的APPID,API_KEY和SECRET_KEY """
APP_ID = '你的APP_ID'
API_KEY = '你的API_KEY'
SECRET_KEY = '你的SECRET_KEY'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)
2.通過獲取的客戶端對象client進行操作。
(1)當前代碼所在目錄有兩張jpg圖片如下
(2)通過客戶端的match方法進行對比操作,觀察打印出的result值
result = client.match([
{
'image': str(base64.b64encode(open('liu.jpg', 'rb').read()), 'utf-8'),
'image_type': 'BASE64',
},
{
'image': str(base64.b64encode(open('liu1.jpg', 'rb').read()), 'utf-8'),
'image_type': 'BASE64',
}
])
print(result)
"""
{
'error_code': 0,
'error_msg': 'SUCCESS',
'log_id': 9405352011017,
'timestamp': 1592828860,
'cached': 0,
'result': {
'score': 94.24956512,
'face_list': [
{
'face_token': '37829d5d5ab0e810173cff9d8e78a4db'
},
{
'face_token': '85b64922c3f2d5fc7aedfbae67c6f37e'
}
]
}
}
"""
(3)發現result爲一個json類型的數據,可以通過字典方式進行獲取。如:先通過result['error_msg']判斷是否對比成功,成功則輸出result['result']['score']爲對比完的相似度分數;否則打印出錯誤信息。
if result['error_msg'] == 'SUCCESS':
score = result['result']['score']
print(score)
三.完整代碼
# encoding:utf-8
from aip import AipFace
import base64
""" 你的APPID,API_KEY和SECRET_KEY """
APP_ID = '你的APP_ID'
API_KEY = '你的API_KEY'
SECRET_KEY = '你的SECRET_KEY'
# 封裝成函數,返回獲取的client對象
def get_client(APP_ID, API_KEY, SECRET_KEY):
"""
返回client對象
:param APP_ID:
:param API_KEY:
:param SECRET_KEY:
:return:
"""
return AipFace(APP_ID, API_KEY, SECRET_KEY)
client = get_client(APP_ID, API_KEY, SECRET_KEY)
result = client.match([
{
'image': str(base64.b64encode(open('liu.jpg', 'rb').read()), 'utf-8'),
'image_type': 'BASE64',
},
{
'image': str(base64.b64encode(open('liu1.jpg', 'rb').read()), 'utf-8'),
'image_type': 'BASE64',
}
])
if result['error_msg'] == 'SUCCESS':
score = result['result']['score']
print(score)
else:
print('錯誤信息:', result['error_msg'])
四.運行效果