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)

python人脸对比的更多相关文章

  1. 基于node.js人脸识别之人脸对比

    基于node.js人脸识别之人脸对比 Node.js简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O ...

  2. python编辑器对比和推荐

    python编辑器对比和推荐   我先给一个初步的表格吧,大家如果有什么意见,或有补充,欢迎提出.有些我没有用过,先不写了.以下是我使用过的python IDE: 除了PythonWin, Visua ...

  3. python性能对比

    python性能对比之items #1 #-*- coding:utf8-*- import datetime road_nodes = {} for i in range(5000000): roa ...

  4. 关于dlib人脸对比,人脸识别

    人脸检测 人脸特征点提取 人脸对比,等于两张人脸对比,识别 封装的所有识别函数,直接看下面调用就好了. # coding:utf-8 ''' 本本次封装,我主要是做两张人脸对比. 就只人脸识别部分,简 ...

  5. python3 百度AI-v3之 人脸对比 & 人脸检测 & 在线活体检测 接口

    #!/usr/bin/python3 # 百度人脸对比 & 人脸检测api-v3 import sys, tkinter.messagebox, ast import ssl, json,re ...

  6. python人脸识别

    需要掌握知识python,opencv和机器学习一类的基础 过一段时间代码上传github,本人菜j一个,虽然是我自己谢的,也有好多不懂,或者我这就是错误方向 链接:https://pan.baidu ...

  7. 【python人脸识别】使用opencv识别图片中的人脸

    概述: OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库 为什么有OpenCV? 计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种: 1.研究 ...

  8. ruby和Python简单对比

    前不久学了ruby,发现ruby和Python非常像,于是自个测试对比了下,测完了才知道网上有现成的……下面是测试结果   序列(包括列表和元组等)有分片的特点:可能会比较方便的提取其中特定元素,暂时 ...

  9. OpenCV + Python 人脸检测

    必备知识 Haar-like opencv api 读取图片 灰度转换 画图 显示图像 获取人脸识别训练数据 探测人脸 处理人脸探测的结果 实例 图片素材 人脸检测代码 人脸检测结果 总结 下午的时候 ...

随机推荐

  1. STM32F030 启用内部晶振并配置系统时钟为48M

    在文件 system_stm32f0xx.c 里的函数 static void SetSysClock(void) { if (HSEStatus == (uint32_t)0x01) // 存在外部 ...

  2. PTA喊山

    喊山 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的.原来它是彝族 ...

  3. Jmeter_正则表达式提取器_提取单组数据

    1.用处:提取登录信息/获取session或者token数值 2.举例:获取登录结果的获取:msg":"登录成功" 这个数据 3.HTTP->后置处理器->正 ...

  4. 写作环境搭建(git+github+markdown+jekyll)

    转载自: https://site.douban.com/196781/widget/notes/12161495/note/264946576/ 2013-03-04 19:33:10   --- ...

  5. Hadoop重新格式namenode后无法启动datanode的问题

    这个很简单的哇~ 格式化namenode之后就会给namenode的ClusterId重新生成,导致与datanode中的ClusterId不一致而无法启动datanode 解决方法: 进入hadoo ...

  6. 喵星之旅-狂奔的兔子-redis安装

    一.前置条件 服务器版本CentOS-8-x86_64-1905-dvd1,在此版本上安装最新版redis.centos7以上版本都可以,不建议6以前的版本. 二.下载redis,并上传到服务器 登录 ...

  7. traceback说明

    一:traceback说明 该模块提供了一个标准接口来提取,格式化和打印Python程序的堆栈跟踪.它完全模仿Python解释器在打印堆栈跟踪时的行为.当您想要在程序控制下打印堆栈跟踪时,这很有用. ...

  8. windows下如何快速删除大文件

    rmdir  磁盘:\文件夹的名字  /s /q; eg:rmdir E:\vue_workspace\KB\day08    /s/q /S 表示除目录本身外,还将删除指定目录下的所有子目录和文件. ...

  9. springmvc项目的搭建

    springmvc替代servlet的工作 Servlet - Springmvc        jsp ->Servlet (Springmvc)->Jsp springmvc配置文件 ...

  10. [ DLPytorch ] 文本预处理&语言模型&循环神经网络基础

    文本预处理 实现步骤(处理语言模型数据集距离) 文本预处理的实现步骤 读入文本:读入zip / txt 等数据集 with zipfile.ZipFile('./jaychou_lyrics.txt. ...