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

  • Post author:
  • Post category:python




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

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



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

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

  1. 注册

    百度智能云

    账号。链接:

    百度智能云登录

    百度智能云登陆页面
  2. 登陆后为此界面,点击

    产品服务


    在这里插入图片描述
  3. 相继选择

    产品服务



    人工智能



    人脸识别


    在这里插入图片描述
  4. 选择

    创建应用


    在这里插入图片描述

    5.填写

    应用名称

    、选择

    应用类型



    接口选择

    就默认就好,填写

    应用描述

    ,创建完毕后查看

    应用详情


    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  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账户




完整代码链接在这里!


如果你觉得能够帮到你的话,求求大噶停留一秒钟给个赞吧!个赞吧!赞吧!吧!

在这里插入图片描述



版权声明:本文为weixin_43805744原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。