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

简单人脸识别的实现

  • 基于Python并调用百度云API接口的简单人脸识别对比的实现
    • 注册百度智能云账号并申请人脸识别API
    • 代码解读部分
      • 获取API
      • 图片编码
      • 图片对比
      • 运行结果
    • 代码完整版

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

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

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

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

  1. 注册百度智能云账号。链接: 百度智能云登录简单人脸识别的实现(基于Python与百度API接口)_第1张图片
  2. 登陆后为此界面,点击产品服务简单人脸识别的实现(基于Python与百度API接口)_第2张图片
  3. 相继选择产品服务人工智能人脸识别简单人脸识别的实现(基于Python与百度API接口)_第3张图片
  4. 选择创建应用简单人脸识别的实现(基于Python与百度API接口)_第4张图片
    5.填写应用名称、选择应用类型接口选择就默认就好,填写应用描述 ,创建完毕后查看应用详情简单人脸识别的实现(基于Python与百度API接口)_第5张图片简单人脸识别的实现(基于Python与百度API接口)_第6张图片简单人脸识别的实现(基于Python与百度API接口)_第7张图片
  5. 得到应用所需的API KeySecret Key以及人脸对比的请求地址,把这些记下来,代码里会用到。简单人脸识别的实现(基于Python与百度API接口)_第8张图片

代码解读部分

获取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即为百分制的对比得分。然后设置一个阈值,输出结果。

运行结果

根目录放两张照片,运行程序!(我放了自拍和刘亦菲的照片)简单人脸识别的实现(基于Python与百度API接口)_第9张图片
我跟茜茜的相似度为0,心寒了(大哭,哇————!)。

代码完整版

此处献上完整版的代码链接,大家可以移步我的Github账户
完整代码链接在这里!

如果你觉得能够帮到你的话,求求大噶停留一秒钟给个赞吧!个赞吧!赞吧!吧!简单人脸识别的实现(基于Python与百度API接口)_第10张图片

你可能感兴趣的:(简单人脸识别的实现(基于Python与百度API接口))