美文网首页
人脸识别(3):利用百度API用phthon程序做比对

人脸识别(3):利用百度API用phthon程序做比对

作者: 吴加明 | 来源:发表于2019-07-31 10:54 被阅读0次
    import sys
    import ssl,urllib.request
    from urllib import request,parse
     
    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    #获取token
    def get_token():
        client_id = '你的AK'
        client_secret = '你的SK'
        host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s'%(client_id,client_secret)
        req = request.Request(host)
        req.add_header('Content-Type', 'application/json; charset=UTF-8')
        response = request.urlopen(req)
        #获得请求结果
        content = response.read()
        #结果转化为字符
        content = bytes.decode(content)
        #转化为字典
        content = eval(content[:-1])
        return content['access_token']
     
     
    #转换图片
    #读取文件内容,转换为base64编码
    #二进制方式打开图文件
    def imgdata(file1path,file2path):
        import base64
        f=open(r'%s' % file1path,'rb') 
        pic1=base64.b64encode(f.read()) 
        f.close()
        f=open(r'%s' % file2path,'rb') 
        pic2=base64.b64encode(f.read())
        f.close()
        #将图片信息格式化为可提交信息,这里需要注意str参数设置
        params = {"images":str(pic1,'utf-8') + ',' + str(pic2,'utf-8')}
        return params
     
    #提交进行对比获得结果
    def img(file1path,file2path):
        request_url = "https://aip.baidubce.com/rest/2.0/face/v3/search"
        params = {"image":"http://www.whxsxsy.com/pic/1618070001.jpg","image_type":"URL","group_id_list":"student","quality_control":"LOW","liveness_control":"NORMAL"}
        data = parse.urlencode(params).encode('utf-8')
        access_token = get_token()
        request_url = request_url + "?access_token=" + access_token
        request = urllib.request.Request(request_url,data=data)
        request.add_header('Content-Type', 'application/json')
        response = urllib.request.urlopen(request)
        content = response.read()
        content = bytes.decode(content)
        content = eval(content)
        #获得分数
        # return content
        score = content['result']['user_list'][0]['score']
        # return score  
        if score>80:
            return '照片相似度:'+str(score)+',同一个人'
        else:
            return '照片相似度:'+str(score)+',不是同一个人'
     
    if __name__ == '__main__':
        file1path = 'pic/1.jpg'
        file2path = 'pic/2.jpg'
        res = img(file1path,file2path)
        print(res)
    

    运行结果:

    照片相似度:42.358661651611,不是同一个人
    

    相关文章

      网友评论

          本文标题:人脸识别(3):利用百度API用phthon程序做比对

          本文链接:https://www.haomeiwen.com/subject/rnhzrctx.html