基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别)

资源:
download.csdn.net/download/weixin_53403301/43644312

之前的项目:
【最新】基于OpenCV的Python人脸识别、检测、框选(遍历目录下所有照片依次识别 视频随时标注)
blog.csdn.net/weixin_53403301/article/details/119422635

基于OpenCV-Python的树莓派人脸识别及89C52单片机控制系统设计(指定照片进行识别、遍历目录下所有照片依次识别)
blog.csdn.net/weixin_53403301/article/details/118575731

直接上代码:

# -*- coding: utf-8 -*-
"""
Created on Mon May 31 23:40:16 2021@author: ZHOU
"""#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests # 调用 requests的HTTP协议库
import os # 调用os多操作系统接口库
import base64 # 调用base64编码库
import json # 调用JavaScript Object Notation数据交换格式ACCESS_TOKEN = ''
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #去掉文件名,返回目录 # ID,KEY的配置信息
INFO_CONFIG = { 'ID': '15050553','API_KEY': 'rlRrtRL5oRdXGh71jgg1OmyN','SECRET_KEY': 'dK5TpuTAZn2nw5eVpspZLmF5Qs1Uu8A1'
}"""
若API出错 则改为:INFO_CONFIG = { 'ID': '15050553','API_KEY': 'rlRrtRL5oRdXGh71jgg1OmyN','SECRET_KEY': 'dK5TpuTAZn2nw5eVpspZLmF5Qs1Uu8A1'
}或:INFO_CONFIG = { 'ID': '15788358','API_KEY': 'ohtGa5yYoQEZ8Try8lnL99UK','SECRET_KEY': 'qaDjyuXkf5MZ28g5C8pwFngDZenhswC3'
}"""# URL配置
URL_LIST_URL = {# ACCESS_TOKEN_URL用于获取ACCESS_TOKEN, POST请求,#  grant_type必须参数,固定为client_credentials,client_id必须参数,应用的API Key,client_secre 必须参数,应用的Secret Key.'ACCESS_TOKEN_URL': 'https://aip.baidubce.com/oauth/2.0/token?' + 'grant_type=client_credentials&client_id={API_KEYS}&client_secret={SECRET_KEYS}&'.format(API_KEYS=INFO_CONFIG['API_KEY'], SECRET_KEYS=INFO_CONFIG['SECRET_KEY']),# 登入人脸识别机器学习库'FACE_PLATE': 'https://aip.baidubce.com/rest/2.0/face/v3/match',}class AccessTokenSuper(object):passclass AccessToken(AccessTokenSuper): # 定义登陆API大类def getToken(self):accessToken = requests.post(url=URL_LIST_URL['ACCESS_TOKEN_URL']) #登入网址accessTokenJson = accessToken.json()if dict(accessTokenJson).get('error') == 'invalid_client':return '获取accesstoken错误,请检查API_KEY,SECRET_KEY是否正确!'return accessTokenJsonACCESS_TOKEN = AccessToken().getToken()['access_token']LICENSE_PLATE_URL = URL_LIST_URL['FACE_PLATE'] + '?access_token={}'.format(ACCESS_TOKEN)class faceSuper(object):passclass face(faceSuper): # 定义图像输入大类def __init__(self, image=None, image2=None): # 定义初始化函数self.HEADER = {'Content-Type': 'application/json; charset=UTF-8',}if image is not None:     # 没有图像1imagepath = os.path.exists(image)if imagepath == True:images = imagewith open(images, 'rb') as images:img1 = base64.b64encode(images.read())else:print("图像1不存在")returnif image2 is not None:    # 没有图像2imagepath2 = os.path.exists(image2)if imagepath2 == True:images2 = image2with open(images2, 'rb') as images2:img2 = base64.b64encode(images2.read())else:print("图像2不存在")returnself.img = img1self.imgs = img2self.IMAGE_CONFIG1 = {"image": str(img1, 'utf-8'), "image_type": "BASE64"}self.IMAGE_CONFIG2 = {"image": str(img2, 'utf-8'), "image_type": "BASE64"}self.IMAGE_CONFIG = json.dumps([self.IMAGE_CONFIG1, self.IMAGE_CONFIG2])def postface(self):  # 定义从服务器进行数据获取函数if (self.img==None and self.imgs==None):return '图像不存在'face = requests.post(url=LICENSE_PLATE_URL, headers=self.HEADER, data=self.IMAGE_CONFIG)# 登陆服务器获取数据return face.json()    # 输出结果def facef(FA1, FA2): # 人脸识别逻辑函数testAccessToken = AccessToken() # 获取API配置testface = face(image=FA1, image2=FA2) # 赋值给图像输入大类result_json = testface.postface()  # 从服务器获取数据result = result_json['result']['score'] #输出结果print('人脸相似度:', result)if result > 80: # 识别结果大于80则成功print("人脸匹配成功!")
#    if result < 20:
#        print("未检测到人脸!")else:print("人脸匹配失败!")return '人脸相似度:' + str(result), result # 输出字符串结果

快速版:

# -*- coding: utf-8 -*-
"""
Created on Mon May 31 23:40:16 2021@author: ZHOU
"""#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests # 调用 requests的HTTP协议库
import os # 调用os多操作系统接口库
import base64 # 调用base64编码库
import json # 调用JavaScript Object Notation数据交换格式ACCESS_TOKEN = ''
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #去掉文件名,返回目录 # ID,KEY的配置信息
INFO_CONFIG = { 'ID': '15050553','API_KEY': 'rlRrtRL5oRdXGh71jgg1OmyN','SECRET_KEY': 'dK5TpuTAZn2nw5eVpspZLmF5Qs1Uu8A1'
}"""
若API出错 则改为:INFO_CONFIG = { 'ID': '15050553','API_KEY': 'rlRrtRL5oRdXGh71jgg1OmyN','SECRET_KEY': 'dK5TpuTAZn2nw5eVpspZLmF5Qs1Uu8A1'
}或:INFO_CONFIG = { 'ID': '15788358','API_KEY': 'ohtGa5yYoQEZ8Try8lnL99UK','SECRET_KEY': 'qaDjyuXkf5MZ28g5C8pwFngDZenhswC3'
}"""# URL配置
URL_LIST_URL = {# ACCESS_TOKEN_URL用于获取ACCESS_TOKEN, POST请求,#  grant_type必须参数,固定为client_credentials,client_id必须参数,应用的API Key,client_secre 必须参数,应用的Secret Key.'ACCESS_TOKEN_URL': 'https://aip.baidubce.com/oauth/2.0/token?' + 'grant_type=client_credentials&client_id={API_KEYS}&client_secret={SECRET_KEYS}&'.format(API_KEYS=INFO_CONFIG['API_KEY'], SECRET_KEYS=INFO_CONFIG['SECRET_KEY']),# 登入人脸识别机器学习库'FACE_PLATE': 'https://aip.baidubce.com/rest/2.0/face/v3/match',}class AccessTokenSuper(object):passclass AccessToken(AccessTokenSuper): # 定义登陆API大类def getToken(self):accessToken = requests.post(url=URL_LIST_URL['ACCESS_TOKEN_URL']) #登入网址accessTokenJson = accessToken.json()if dict(accessTokenJson).get('error') == 'invalid_client':return '获取accesstoken错误,请检查API_KEY,SECRET_KEY是否正确!'return accessTokenJsonACCESS_TOKEN = AccessToken().getToken()['access_token']LICENSE_PLATE_URL = URL_LIST_URL['FACE_PLATE'] + '?access_token={}'.format(ACCESS_TOKEN)class faceSuper(object):passclass face(faceSuper): # 定义图像输入大类def __init__(self, image=None, image2=None): # 定义初始化函数self.HEADER = {'Content-Type': 'application/json; charset=UTF-8',}if image is not None:     # 没有图像1imagepath = os.path.exists(image)if imagepath == True:images = imagewith open(images, 'rb') as images:img1 = base64.b64encode(images.read())else:print("图像1不存在")returnif image2 is not None:    # 没有图像2imagepath2 = os.path.exists(image2)if imagepath2 == True:images2 = image2with open(images2, 'rb') as images2:img2 = base64.b64encode(images2.read())else:print("图像2不存在")returnself.img = img1self.imgs = img2self.IMAGE_CONFIG1 = {"image": str(img1, 'utf-8'), "image_type": "BASE64"}self.IMAGE_CONFIG2 = {"image": str(img2, 'utf-8'), "image_type": "BASE64"}self.IMAGE_CONFIG = json.dumps([self.IMAGE_CONFIG1, self.IMAGE_CONFIG2])def postface(self):  # 定义从服务器进行数据获取函数if (self.img==None and self.imgs==None):return '图像不存在'face = requests.post(url=LICENSE_PLATE_URL, headers=self.HEADER, data=self.IMAGE_CONFIG)# 登陆服务器获取数据return face.json()    # 输出结果def facef(FA1, FA2): # 人脸识别逻辑函数testAccessToken = AccessToken() # 获取API配置testface = face(image=FA1, image2=FA2) # 赋值给图像输入大类result_json = testface.postface()  # 从服务器获取数据result = result_json['result']['score'] #输出结果print('人脸相似度:', result)
#    if result > 80: # 识别结果大于80则成功
#        print("人脸匹配成功!")
#    if result < 20:
#        print("未检测到人脸!")
#    else:
#        print("人脸匹配失败!")return '人脸相似度:' + str(result), result # 输出字符串结果

py打包

Pyinstaller打包exe(包括打包资源文件 绝不出错版)

依赖包及其对应的版本号

PyQt5 5.10.1
PyQt5-Qt5 5.15.2
PyQt5-sip 12.9.0

pyinstaller 4.5.1
pyinstaller-hooks-contrib 2021.3

Pyinstaller -F setup.py 打包exe

Pyinstaller -F -w setup.py 不带控制台的打包

Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包

打包exe参数说明:

-F:打包后只生成单个exe格式文件;

-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;

-c:默认选项,使用控制台(就是类似cmd的黑框);

-w:不使用控制台;

-p:添加搜索路径,让其找到对应的库;

-i:改变生成程序的icon图标。

如果要打包资源文件
则需要对代码中的路径进行转换处理
另外要注意的是 如果要打包资源文件 则py程序里面的路径要从./xxx/yy换成xxx/yy 并且进行路径转换
但如果不打包资源文件的话 最好路径还是用作./xxx/yy 并且不进行路径转换

def get_resource_path(relative_path):if hasattr(sys, '_MEIPASS'):return os.path.join(sys._MEIPASS, relative_path)return os.path.join(os.path.abspath("."), relative_path)

而后再spec文件中的datas部分加入目录
如:

a = Analysis(['cxk.py'],pathex=['D:\\Python Test\\cxk'],binaries=[],datas=[('root','root')],hiddenimports=[],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)

而后直接Pyinstaller -F setup.spec即可

如果打包的文件过大则更改spec文件中的excludes 把不需要的库写进去(但是已经在环境中安装了的)就行

这些不要了的库在上一次编译时的shell里面输出
比如:


然后用pyinstaller --clean -F 某某.spec

基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别)相关推荐

  1. 宠物识别api接口全开放:狗脸识别、猫脸识别、鼻纹识别、品种识别、相似度比对、图片质量检测

    依据宠物识别的各类应用场景,悦保科技全面升级宠物AI识别的API接口服务,为用户提供更全面.更具针对性的接口选择,满足宠物身份建档.品种信息鉴别.个体身份比对等需求,推动宠物产业链的智能化升级. 宠物 ...

  2. 【百度智能云】教程:连接百度ai开放平台api接口并完成语音识别的任务

    前言与介绍 本文章介绍了如何在Pycharm上用python语言简单的对连接百度ai开放平台的语音识别功能api端口的调用,并在代码里实现了现录音识别内容. 平台与相关工具 windows10.Pyc ...

  3. Python利用百度AI平台实现人脸识别

    前言 百度AI平台提供的接口十分丰富,对于做项目来说,百度是一个很好的开放平台.本文利用百度提供的接口来实现人脸识别,而且可以无限制调用.博客参考人脸识别-Python-SDK 安装 pip inst ...

  4. Python调用百度人脸识别API接口检测颜值

    我们今天使用Python发送网络请求到百度人脸识别API接口. 我们需要requests模块,它需要安装,代码是 pip3 install requests 注意:不好意思各位,我的配额没了!如需使用 ...

  5. python实现文本审核_百度AI文本审核API使用说明

    虽然,虽然,虽然,今天: 百度发布了2019年第一季度未经审计的财务报告.本季度百度营收241亿元人民币(约合35.9亿美元),同比增长15%,移除业务拆分收入影响,同比增长21%.低于市场预期242 ...

  6. 小福利,通过python利用百度ai实现图片识别

    大家好,我是天空之城,今天给大家带来小福利,通过python利用百度ai实现图片识别.有兴趣加qq群,纯学习,1098016198. 至于api接口的APP_ID ,API_KEY ,SECRECT_ ...

  7. Python——调用百度AI实现图片上文字识别

    Python--调用百度AI实现图片上文字识别 简介 步骤 安装百度AI库 注册百度AI开放平台 调用glob库 调用AipOcr库识别文字 可能会遇到的问题 批量操作 简介 Python免费调用百度 ...

  8. Python用百度AI识别车牌号教程(超详细)

    Python用百度AI识别车牌号教程 创建API接口 用浏览器打开http://ai.baidu.com/ 点击右上角的"控制台" 登录账号(没有就注册一个) 点击 产品服务> ...

  9. python 人脸比对,python 使用百度AI接口进行人脸对比的步骤

    1. 注册百度云账号 注册百度智能云,提交申请. 创建应用获取AppID,API Key,Secret Key. 2. 安装baidu python api 人脸对比 API 文档 pip insta ...

最新文章

  1. 一站式学习Wireshark(三):应用Wireshark IO图形工具分析数据流 | 快课网
  2. 【Python3_基础系列_009】Python3-条件语句-If
  3. Docker安装及基本使用
  4. python函数—— .items()
  5. Oracle 11.2.0.4下载地址
  6. spring-注入array集合
  7. WPF中的动画——(一)基本概念
  8. Python爬虫基础:验证码的爬取和识别详解
  9. Matplolib subplot 子图控制
  10. eclips断点调试
  11. 【图像评价】基于matlab图像去雾质量评价【含Matlab源码 066期】
  12. no matter相关
  13. python与CAD——磨平了棱角的多边形
  14. 以平静的心接受与自己意愿相违背的事
  15. C语言字母的组合,C语言求字母的全部组合
  16. 大数据、人工智能、VR、Docker、前端,双11技术视频、讲义、文章一键get
  17. Qsetting本地缓存PC端数据
  18. B. Frog Traveler(cf)bfs
  19. 如何查看斐讯路由器的版本
  20. win10家庭版如何安装Windows Sandbox

热门文章

  1. 夏惊鸣:2017,战略转型的新路径
  2. android ui设计与开发工具,Android用户体验与UI设计
  3. html中的开启礼盒的代码,CSS3 蛋糕+生日礼盒打开动效
  4. leafnotification_Notification Service
  5. 什么是 ArrayList
  6. 体育教学与计算机技术的结合点,【大学教育论文】虚拟现实技术在高校体育教育的应用(共2757字)...
  7. html css 边框不显示,css怎么设置不显示下边框?
  8. 贵有恒,若事事勤思善问,何患不一日千里?--惭愧
  9. 如何在官网上下载Java JDK的历史版本
  10. js拦截弹窗广告原理及方法