zoukankan      html  css  js  c++  java
  • python人脸对比

    import sys  
    import ssl  
    from urllib import request,parse  
     
    # client_id 为官网获取的AK, client_secret 为官网获取的SK  
    #获取token  
    def get_token():  
        client_id =API Key
        client_secret =Secret Key
        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):  
        token = get_token()  
        #人脸识别API  
        #url = 'https://aip.baidubce.com/rest/2.0/face/v2/detect?access_token='+token  
        #人脸对比API  
        url = 'https://aip.baidubce.com/rest/2.0/face/v2/match?access_token='+token  
        params = imgdata(file1path,file2path)  
        #urlencode处理需提交的数据  
        data = parse.urlencode(params).encode('utf-8')  
        req = request.Request(url,data=data)  
        req.add_header('Content-Type', 'application/x-www-form-urlencoded')  
        response = request.urlopen(req)  
        content = response.read()  
        content = bytes.decode(content)  
        content = eval(content)
        print(content)
        #获得分数  
        score = content['result'][0]['score']  
        if score>80:  
            return '照片相似度:'+str(score)+',同一个人'  
        else:  
            return '照片相似度:'+str(score)+',不是同一个人'  
     
    if __name__ == '__main__':  
        file1path = 'd:/ym1.jpg'  
        file2path = 'd:/ym2.jpg'  
        res = img(file1path,file2path)  
        print(res) 

  • 相关阅读:
    CTFHub_技能树_文件上传
    QT入门-重载的信号槽
    QT入门-自定义信号
    C++: xx does not name a type报错
    HDU1166 敌兵布阵
    洛谷P2574 XOR的艺术(线段树)
    P3373 【模板】线段树 2(板子好题)
    SP1716 GSS3
    QT入门-自定义槽函数
    Educational Codeforces Round 87 (Rated for Div. 2) D. Multiset(树状数组/好题)
  • 原文地址:https://www.cnblogs.com/chenlove/p/8996546.html
Copyright © 2011-2022 走看看