赞
踩
首先在百度云平台创建一个人脸识别的应用
获取调用接口所需的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&
其中:
服务器返回的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即可看见结果。
代码如下:
# 百度人脸识别技术 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)即可
这时候我们在项目文件夹中添加两张图片,在终端上测试以下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。