百度云人脸识别API人脸库管理
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人脸库管理的更多相关文章
- 百度云人脸识别API人脸对比
from urllib import request import base64 import requests import re import json import urllib import ...
- 转《trackingjs+websocket+百度人脸识别API,实现人脸签到》流程
先用websocket与后台建立通讯:用trackingjs在页面调用电脑摄像头,监听人脸,发现有人脸进入屏幕了,就把图片转成base64字符串,通过websocket发送到后端:后端拿到图片,调用百 ...
- trackingjs+websocket+百度人脸识别API,实现人脸签到
在公司做了个年会的签到.抽奖系统.用java web做的,用公司的办公app扫二维码码即可签到,扫完码就在大屏幕上显示这个人的照片.之后领导让我改得高大上一点,用人脸识别来签到,就把扫二维码的步骤改成 ...
- 免费人脸识别APi
今天对应一些免费的人脸识别的api 做了一下简单的对比,觉得百度开发出来的人脸识别接口还是最符合的我的要求,简单易用,容易上手. 据说百度的一些门禁也使用上了人脸识别的功能了,功能很强大,而且能识别出 ...
- 某简单易懂的人脸识别 API 的开发环境搭建和简易教程
最近接了个人脸识别相关的项目,是基于某个非常简单易懂的人脸识别 API:face_recognition 做的.这个库接口非常傻瓜,很适合新手上手,而且可以研究其源码来学习 dlib 这个拥有更加灵活 ...
- 微信公众平台消息接口开发(24)图片识别之人脸识别API
微信公众平台开发模式 微信 公众平台 消息接口 开发模式 企业微信公众平台 图片识别 人脸识别 API 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/archi ...
- 基于node.js人脸识别之人脸对比
基于node.js人脸识别之人脸对比 Node.js简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O ...
- java 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对
java人脸识别 虹软ArcFace 2.0,java SDK使用.人脸识别-抽取人脸特征并做比对 虹软产品地址:http://ai.arcsoft.com.cn/product/arcface.ht ...
- Android利用百度云来识别身份证及各种证件的信息
上一篇中我已经介绍过了ocr,及google出来的tess-two的使用. 接下来我来介绍一个更方便的身份证识别系统,当然它本身也是利用ocr来识别文字的,不过它处理的更好,可以为我们提供更快,更准确 ...
随机推荐
- LOJ2687 BOI2013Vim 题解
题目链接 这里只写个摘要,具体的可以看 神仙Itst的博客 大概是每相邻两个位置之间的线段要么被覆盖一次,要么被覆盖三次,然后DP,如下图: 代码: #include<bits/stdc++.h ...
- 近年NOI题目总结
NOI2015D1T1 题目大意:$T$ 组数据.在一个程序中有无数个变量 $x_i$.现在有 $n$ 条限制,形如 $x_i=x_j$ 或者 $x_i\ne x_j$.(对于每个限制 $i,j$ 给 ...
- 洛谷P1578 奶牛牧场(悬线法思想)
题目 悬线法的思想--即扫描线的思想,每个矩阵必定是由两个障碍来构成左右边界或者上下边界. 如果此两个障碍组成了左右边界,枚举这两个障碍中途更新这两个障碍之间的矩阵上下边界,并且更新最大值. 考虑如何 ...
- xcode: {} 花括号缩进一个空格
if (jsonDict.HasParseError()) { //前面总是有一个空格 CCLOG("GetParseError %d\n",jsonDict.GetParseEr ...
- 小端存储转大端存储 & 大端存储转小端存储
1.socket编程常用的相关函数:htons.htonl.ntohs.ntohl h:host n:network s:string l:long 2.基本数据类型,2字节,4字 ...
- Makefile文件基本格式
以下是Makefile的基本模板 #指定编译器CC = g++#指定编译参数CFLAGS = -std=c++11 #指定头文件路径,此处用于指定非标准库的头文件路径INC = -I./ -I /us ...
- elasticsearch 分片的创建 集群重启分片运作
2016年11月12日ENGINEERING Every shard deserves a home 作者 Joshua Backing Share Here are some great slide ...
- 一道经典的Java面试题:equals ,== 和hashcode()的区别
一句话区别:==比较的是内存地址,equals比较的是值内容 结论: 从以下三点展开: 基本数据类型.字符串.对象 对于基本数据类型:只有==,没有equals. 对于字符串:==比较的是内存地址,e ...
- selenium爬虫入门(selenium+Java+chrome)
selenium是一个开源的测试化框架,可以直接在浏览器中运行,就像用户直接操作浏览器一样,十分方便.它支持主流的浏览器:chrome,Firefox,IE等,同时它可以使用Java,python,J ...
- 【转】JavaScript 高性能数组去重
原文地址:https://www.cnblogs.com/wisewrong/p/9642264.html 一.测试模版 数组去重是一个老生常谈的问题,网上流传着有各种各样的解法 为了测试这些解法的性 ...