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. ES-windows版本设置远程访问

    1,官网下载 2,下载完解压 3,修改配置文件 elasticsearch.yml network.host: 0.0.0.0http.port: 9200transport.host: localh ...

  2. Ubuntu 安装 uWSGI

    uWSGI官方网址: https://pypi.org/project/uWSGI/ 使用如下命令安装: pip install uWSGI 报如下错: Collecting uWSGI Using ...

  3. socket实现简单的FTP

    一.开发环境 server端:centos 7  python-3.6.2 客户端:Windows 7 python-3.6.2 pycharm-2018 程序目的:1.学习使用socketserve ...

  4. Follow somebody

    networkersdiary A personnel blog with Network Engineering articles https://networkersdiary.com/cisco ...

  5. 【原】jenkins知识点_凭据(一)

    一:凭据 1.目的: 与第三方网站或应用程序进行交互,如代码仓库.云存储系统和服务等 2.操作路径: Jenkins-凭据-系统-全局凭据 3.权限 Jenkins 中保存的凭证可以用于: 任何适用于 ...

  6. lora

    Lora:特点 距离远,功耗低,不用sim卡和流量,秒级实时性,每秒几十kbps. 阿里与lora: 之前LoRa芯片只有Semtech一家企业掌握着LoRa芯片命脉,人们担心LoRa芯片不够丰富不能 ...

  7. MySQL忘记密码如何重置

    一]进入服务器下,我用的是centos版本 vim /etc/my.cnf 1 vim[二]找到mysqld的部分然后在下面添加上一句代码,意思是跳过密码直接进入,然后保存退出 skip-grant- ...

  8. 「AHOI2014/JSOI2014」骑士游戏

    「AHOI2014/JSOI2014」骑士游戏 传送门 考虑 \(\text{DP}\). 设 \(dp_i\) 表示灭种(雾)一只编号为 \(i\) 的怪物的代价. 那么转移显然是: \[dp_i ...

  9. 看完这篇微服务架构设计思想,90%的Java程序员都收藏了

    本博客强烈推荐: Java电子书高清PDF集合免费下载 https://www.cnblogs.com/yuxiang1/p/12099324.html 微服务 软件架构是一个包含各种组织的系统组织, ...

  10. leetcode刷题-- 5. 动态规划

    动态规划思路 参考 状态转移方程: 明确「状态」-> 定义dp数组/函数的含义 -> 明确「选择」-> 明确 base case 试题 53最大子序和 题目描述 53 给定一个整数数 ...