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')

最新文章

  1. Echarts 之二——地市联动数据统计
  2. Linux 设备驱动程序 proc
  3. __thread关键字[转]
  4. OS命令注入
  5. jsp验证码点击刷新
  6. ldd查看可执行程序依赖的文件
  7. Ruby自学笔记(五)— 条件判断
  8. 最好用的mysql密码忘记的解决方法
  9. Linux上rpm方式安装JDK1.7
  10. c# 数组简述
  11. ajango--orm操作
  12. ①小姐,来桶全家桶不?(Servlet)
  13. js 毫秒转天时分秒
  14. Feign中使用hystrix
  15. explain之key_len计算
  16. java读取文件和写入文件的方式
  17. xpath是什么(入门教程)
  18. tomcat简单使用(一)
  19. 用java打暴雪星际争霸(2)——执行測试机器人
  20. Python 编码风格指南

热门文章

  1. 简单认识RTLO(Right-to-Left Override)
  2. [Gamma阶段]展示博客
  3. gcc O2优化选项对内嵌汇编以及函数递归调用的影响
  4. ASP.NET Core Windows服务开发技术实战演练
  5. Typescript 学习 - 类
  6. 快速排序详解(C语言/python)
  7. Elasticsearch Transport 模块创建及启动分析
  8. CentOS 6.x安装php 5.6和redis扩展的全过程
  9. js遍历数组和数组对象
  10. Python格式化输出——format用法示例