python+opencv+百度智能云 人脸识别——人脸相似度对比

一.设计流程
1.导入模块

from aip import AipFace
import base64
import matplotlib.pyplot as plt

Aipface模块:调用百度AipFace做人脸检测
base64模块:对图片数据进行base64格式转码
plt模块:“plt”的设计是为了在不了解python的情况下使用matplotlib轻松绘制科学图形。当前实现将使用json配置文件。

2.网页请求

""" 你的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)

这块直接调用AipFace()函数,直接获取网络应答。
(本次所用结构与前两次不太一样,但是思路都一样
如果想用获取access_token的方法,可以参考其他文章:
视频人脸锁定、人脸融合、人数识别+标记)

3.解析网络回执

pic1 = "T.jpg"
pic2 = "Y.jpg"
client = get_client(APP_ID, API_KEY, SECRET_KEY)
result = client.match([
    {
        'image': str(base64.b64encode(open(pic1, 'rb').read()), 'utf-8'),
        'image_type': 'BASE64',
    },
    {
        'image': str(base64.b64encode(open(pic2, 'rb').read()), 'utf-8'),
        'image_type': 'BASE64',
    }
])
print(result)

if result['error_msg'] == 'SUCCESS':
    score = result['result']['score']
    print('两张图片相似度:', score)
else:
    print('错误信息:', result['error_msg'])

pc1 = plt.imread(pic1)
pc2 = plt.imread(pic2)
plt.imshow(pc1)
plt.show()
plt.imshow(pc2)
plt.show()

二.结果测试
python+opencv+百度智能云 人脸识别——人脸相似度对比_第1张图片

三.总结

你可能感兴趣的:(python学习,人脸识别,python,opencv,人工智能,机器学习)