基于Python并调用百度云API接口的简单人脸识别对比的实现
你好!这里是一篇关于“简单人脸识别对比的实现”的文章,也是我在学校程序设计课程上的一个小项目,是用Python来进行实现的,并调用了百度智能云的人脸识别API。希望能够帮到你吖!
注册百度智能云账号并申请人脸识别API
简单的人脸识别,当然需要“外部势力”的支持,这里我们选择百度爸爸家的产品,人脸识别以及对比的核心代码,交给百度实现:
-
注册
百度智能云
账号。链接:
百度智能云登录
-
登陆后为此界面,点击
产品服务
。
-
相继选择
产品服务
、
人工智能
、
人脸识别
。
-
选择
创建应用
。
5.填写
应用名称
、选择
应用类型
,
接口选择
就默认就好,填写
应用描述
,创建完毕后查看
应用详情
。
-
得到应用所需的
API Key
、
Secret Key
以及
人脸对比的请求地址
,把这些记下来,代码里会用到。
代码解读部分
获取API
client_id = 'API Key'
client_secret = 'Secret Key' #Please replace when using
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s'%(client_id,client_secret)
将
API Key
与
Secret Key
替换为刚刚在申请API接口时得到的东西。
response=requests.get(host)
access_token=eval(response.text)['access_token']
request_url='https://aip.baidubce.com/rest/2.0/face/v3/match'
API = request_url + "?access_token=" + access_token
向服务器申请
access_token
,并拼接至
request_url
,request_url即为申请API接口时得到的
人脸对比请求地址
。
图片编码
f=open(r'%s' % img1,'rb')
pic1=base64.b64encode(f.read())
f.close()
f=open(r'%s' % img2,'rb')
pic2=base64.b64encode(f.read())
f.close()
params=json.dumps([
{"image":str(pic1,"utf-8"),"image_type":'BASE64',"face_type":"LIVE"},
{"image":str(pic2,"utf-8"),"image_type":'BASE64',"face_type":"IDCARD"}])
对两张待对比的照片进行
Base64编码
,可参见人脸识别
API接口
的
使用文档
图片对比
API=Get_API()
params=Image_coding(img1,img2)
content=requests.post(API,params).text
score=eval(content)['result']['score']
if score>=60:
print('二人相似度得分为 %s, 是同一人的可能性极大'%str(score))
else:
print('二人相似度得分为 %s, 不是同一人的可能性极大'%str(score))
先运行上面的两个函数,然后用
API
与
图片信息
向服务器请求数据,得到返回值后提取出
score
即为百分制的对比得分。然后设置一个
阈值
,输出结果。
运行结果
在
根目录
放两张照片,运行程序!(我放了自拍和
刘亦菲
的照片)
我跟茜茜的相似度为
0
,心寒了(大哭,哇————!)。
代码完整版
此处献上完整版的代码链接,大家可以移步我的
Github账户
!
完整代码链接在这里!
如果你觉得能够帮到你的话,求求大噶停留一秒钟给个赞吧!个赞吧!赞吧!吧!