简单人脸识别的实现(基于Python与百度API接口)

基于Python并调用百度云API接口的简单人脸识别对比的实现

你好!这里是一篇关于“简单人脸识别对比的实现”的文章,也是我在学校程序设计课程上的一个小项目,是用Python来进行实现的,并调用了百度智能云的人脸识别API。希望能够帮到你吖!

注册百度智能云账号并申请人脸识别API

简单的人脸识别,当然需要“外部势力”的支持,这里我们选择百度爸爸家的产品,人脸识别以及对比的核心代码,交给百度实现:

  1. 注册百度智能云账号。链接: 百度智能云登录百度智能云登陆页面
  2. 登陆后为此界面,点击产品服务在这里插入图片描述
  3. 相继选择产品服务人工智能人脸识别在这里插入图片描述
  4. 选择创建应用在这里插入图片描述
    5.填写应用名称、选择应用类型接口选择就默认就好,填写应用描述 ,创建完毕后查看应用详情在这里插入图片描述在这里插入图片描述在这里插入图片描述
  5. 得到应用所需的API KeySecret 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 KeySecret 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账户
完整代码链接在这里!

如果你觉得能够帮到你的话,求求大噶停留一秒钟给个赞吧!个赞吧!赞吧!吧!在这里插入图片描述

  • 16
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值