使用百度AI接口進行人臉對比(Python SDK V3版本實現)

一.安裝人臉識別 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'])

四.運行效果

 

 

 

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