用POSTMAN工具利用URL向百度智能云发送post请求
首先在百度云平台创建一个人脸识别的应用 获取调用接口所需的Access Token 获取Access Token
请求URL数据格式 我用的postman这款工具发送post请求来获取
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=3sR2BvWZ6Xg1VszNe6t6ej19&client_secret=G4NE4ewjZe8rCOd4xW6cCMm15m2IWZGN&
其中:
- grant_type: 必须参数,固定为client_credentials;
- client_id: 必须参数,应用的API Key;
- client_secret: 必须参数,应用的Secret Key;
服务器返回的JSON文本参数如下:
· access_token: 要获取的Access Token;
· expires_in: Access Token的有效期(秒为单位,一般为1个月);
· 其他参数忽略,暂时不用; 若请求错误,服务器将返回的JSON文本包含以下参数:
· error: 错误码;关于错误码的详细信息请参考下方鉴权认证错误码。
· error_description: 错误描述信息,帮助理解和解决发生的错误。 进行调用接口可直接复制的请求地址:“https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=【在第一步中获取的access-token】”
修改请求头(header)
Key栏输入:Content-Type
Value栏输入:application/x-www-form-urlencoded 输入请求参数(body)
先选择“x-www-form-urlencoded”,然后参考下图输入参数:
image_type=BASE64
image=图片的base64转码后的结果(此处要使用即将注册到人脸库的人脸图片),转码工具:https://tool.css-js.com/base64.html(注意:在base64转码工具中,要取消默认选项“包含头”)
group_id=gropu001(可自定义:由数字、字母、下划线组成)
user_id=0001(可自定义:由数字、字母、下划线组成)
最后点击send即可看见结果。
用python调用百度人脸识别
代码如下:
# 百度人脸识别技术
from aip import AipFace
import base64
import time
# 调用aipFace
def face_client():
appid = '25942292'
aipkey = '3sR2BvWZ6Xg1VszNe6t6ej19'
secrectkey = 'G4NE4ewjZe8rCOd4xW6cCMm15m2IWZGN'
result = AipFace(appid, aipkey, secrectkey)
return result
# 人脸识别函数
def face_match(client, im1, im2):
# 打开与读取图片
image1 = open(im1, 'rb').read()
image2 = open(im2, 'rb').read()
# 对图片进行编码,上传到云端分析
result = client.match([{'image': str(base64.b64encode(image1), 'utf-8'),
'image_type': 'BASE64'},
{'image': str(base64.b64encode(image2), 'utf-8'),
'image_type': 'BASE64'}, ])
print(result)
if result['result'] != None:
print('%s和%s' % (im1, im2) + '相似度是%.2f'
% result['result']['score'] + '%')
if result['result']['score'] >= 90:
print('%s和%s' % (im1, im2) + '相似度很高,是同一个人')
else:
print('%s和%s' % (im1, im2) + '相似度较低,无法判定是同一个人')
im1 = input('请输入第一张图片:')
im2 = input('请输入第二张图片:')
time.sleep(2)
client = face_client()
face_match(client, im1, im2)
遇到的问题:Open api qps request limit reached 在代码中添加time.sleep(2)即可 这时候我们在项目文件夹中添加两张图片,在终端上测试以下:
|