from urllib import request
import base64
import requests
import re
import json
import urllib
import os # 获取token
def get_token(client_id,client_secret):
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+ client_id + '&client_secret='+ client_secret + ''
headers = {'Content-Type': 'application/json; charset=UTF-8'}
res = requests.post(host, headers=headers)
access_token = re.findall('"access_token":"(.*?)"', res.text)[0]
return access_token # 打开文件夹,进行对比
def geturlPath(path):
dirs = os.listdir(path)
lst = []
for dir1 in dirs:
pa = path + dir1
lst.append(pa)
return lst # 打开本地图片,并转化为base64
def open_pic2base(image):
f = open(image,'rb')
img = base64.b64encode(f.read()).decode('utf-8')
return img def search(image3,client_id,client_secret,groups):
request_url = "https://aip.baidubce.com/rest/2.0/face/v3/search"
for image in image3:
a = open_pic2base(image)
params =json.dumps({"image":a,"image_type":"BASE64","group_id_list":groups})
access_token = get_token(client_id, client_secret)
request_url = request_url + "?access_token=" + access_token
params = params.encode("utf-8") request = urllib.request.Request(url=request_url, data=params) request.add_header('Content-Type', 'application/json')
response = urllib.request.urlopen(request)
content = response.read()
user = 'not find'
if content:
result = json.loads(content.decode('utf-8'))
print(result)
if result['error_code']==0:
lst = []
sets = {}
user=result['result']['user_list'][0]
group_id = user["group_id"]
user_id=user['user_id']
score = user['score']
sets["所在组为"] = group_id
sets["相似用户为"] = user_id
sets["相似得分为"] = score
lst.append(sets)
print(lst)
if score > 85:
add_face2ku = face_add(image,group_id,user_id)
else:
pass def face_add(image,group_id,user_id):
request_url = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add'
params = json.dumps({"image":open_pic2base(image),"image_type":"BASE64","group_id":group_id,"user_id":user_id})
access_token = get_token(client_id, client_secret)
request_url = request_url + "?access_token=" + access_token
params = params.encode("utf-8")
request = urllib.request.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/json')
response = urllib.request.urlopen(request)
return response if __name__ == '__main__':
client_id = '*********************'
client_secret = '*********************'
path = r'G:/images5/' image3 = geturlPath(path) # 将图片与图片库进行对比,传入指定的组
search(image3, client_id, client_secret, 'actor')

百度云人脸识别API人脸库管理的更多相关文章

  1. 百度云人脸识别API人脸对比

    from urllib import request import base64 import requests import re import json import urllib import ...

  2. 转《trackingjs+websocket+百度人脸识别API,实现人脸签到》流程

    先用websocket与后台建立通讯:用trackingjs在页面调用电脑摄像头,监听人脸,发现有人脸进入屏幕了,就把图片转成base64字符串,通过websocket发送到后端:后端拿到图片,调用百 ...

  3. trackingjs+websocket+百度人脸识别API,实现人脸签到

    在公司做了个年会的签到.抽奖系统.用java web做的,用公司的办公app扫二维码码即可签到,扫完码就在大屏幕上显示这个人的照片.之后领导让我改得高大上一点,用人脸识别来签到,就把扫二维码的步骤改成 ...

  4. 免费人脸识别APi

    今天对应一些免费的人脸识别的api 做了一下简单的对比,觉得百度开发出来的人脸识别接口还是最符合的我的要求,简单易用,容易上手. 据说百度的一些门禁也使用上了人脸识别的功能了,功能很强大,而且能识别出 ...

  5. 某简单易懂的人脸识别 API 的开发环境搭建和简易教程

    最近接了个人脸识别相关的项目,是基于某个非常简单易懂的人脸识别 API:face_recognition 做的.这个库接口非常傻瓜,很适合新手上手,而且可以研究其源码来学习 dlib 这个拥有更加灵活 ...

  6. 微信公众平台消息接口开发(24)图片识别之人脸识别API

    微信公众平台开发模式 微信 公众平台 消息接口 开发模式 企业微信公众平台 图片识别 人脸识别 API 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/archi ...

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

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

  8. java 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对

    java人脸识别 虹软ArcFace 2.0,java SDK使用.人脸识别-抽取人脸特征并做比对 虹软产品地址:http://ai.arcsoft.com.cn/product/arcface.ht ...

  9. Android利用百度云来识别身份证及各种证件的信息

    上一篇中我已经介绍过了ocr,及google出来的tess-two的使用. 接下来我来介绍一个更方便的身份证识别系统,当然它本身也是利用ocr来识别文字的,不过它处理的更好,可以为我们提供更快,更准确 ...

随机推荐

  1. sort函数实现多条件排序

    js的sort方法,我们一般传入一个回调用于单排序,也就根据某一个条件排序,那么一个场景需要多条件排序(多重排序),我们怎么处理呢? 如下例子,我们按学生的总分排序,如果总分相等,我们再按照语文成绩排 ...

  2. 【Kubernetes学习之三】Kubernetes分布式集群架构

    环境 centos 7 一.Kubernetes分布式集群架构1.Kubernetes服务注册和服务发现问题怎么解决的?每个服务分配一个不变的虚拟IP+端口, 系统env环境变量里有每个服务的服务名称 ...

  3. Java选择结构和循环结构

    1.选择结构 ①.ifif(){ } if(){}else{} if(){}else if(){}else if(){}else{} ②.switch switch (表达式) { case 常量 1 ...

  4. java的this关键字

    class point{ int x; int y; point(int x,int y){ this.x=x;//如果形参和属性名相同,为了区分开来,必须要在属性名前加this y=y;//若不加t ...

  5. Collection 接口的 toArray 方法

    Collection 接口的 toArray 方法 方法签名 Object[] toArray() 返回包含此 collection 中所有元素的数组. T[] toArray(T[] a) 返回包含 ...

  6. <!DOCTYPE html> 详解

    前段时间的.netcore web应用程序的项目里面使用Frameset与Frame时候出现了一个问题就是使用不了,今晚准备测试一个bug却得到意外收获o(∩_∩)o 哈哈, 找到了最终原因funny ...

  7. CodeForces 1228F One Node is Gone

    洛谷题目页面传送门 & CodeForces题目页面传送门 给定一棵树\(T=(V,E),|V|=2^n-2,|E|=2^n-3\),输出所有的\(x\),使得存在一棵满二叉树\(T'\),将 ...

  8. Swgger2的简单使用

    编写接口文档是一个非常枯燥的工作,我们采用Swagger2这套自动化文档工具来生成文档,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档 ...

  9. Linux环境下:vmware安装Windows报错误-无人参与应答文件包含的产品密钥无效

    最近在安装window server 2012 R2的时候,输入好密钥可以继续安装,但在后面又提示我“无人参与应答文件包含的产品密钥无效.删除无效的密钥或在无人参与应答文件中提供有效的产品密钥继续进行 ...

  10. 基于OpenGL三维软件开发

    实验原理: OpenGL在MFC下编程原理---- Windows操作系统对OpenGL的支持 在Windows下用GDI作图必须通过设备上下文(DeviceContext简写DC)调用相应的函数:用 ...