python调用百度API实现人脸识别


Posted in Python onNovember 17, 2020

1、代码

from aip import AipFace
import cv2
import time
import base64
from PIL import Image
from io import BytesIO
import pyttsx3
# """ 你的 APPID AK SK """
APP_ID = '1965####'
API_KEY = 'YXL65ekIloykyjrT4kzc####'
SECRET_KEY = 'lFiapBoZ5eBwOFyxMbiwQDmClg1u####'

client = AipFace(APP_ID, API_KEY, SECRET_KEY)

# def frame2base64(frame):
#   img = Image.fromarray(frame) #将每一帧转为Image
#   output_buffer = BytesIO() #创建一个BytesIO
#   img.save(output_buffer, format='JPEG') #写入output_buffer
#   byte_data = output_buffer.getvalue() #在内存中读取
#   image = base64.b64encode(byte_data) #转为BASE64
#   return image #转码成功 返回base64编码

def generate():
  camera = cv2.VideoCapture(0)
  engine = pyttsx3.init()
  try:
    while True:
      engine = pyttsx3.init()
      ret, img = camera.read()
      cv2.imwrite("E://Ana/face.png",img)
      cv2.imshow("调用摄像头", img)
      imageType = "BASE64"
      groupIdList = "1,2,3,4"


      """ 如果有可选参数 """
      options = {}
      options["max_face_num"] = 4
      options["match_threshold"] = 70
      options["quality_control"] = "NORMAL"
      options["liveness_control"] = "NONE"
      # options["user_id"] = "233451"
      options["max_user_num"] = 4

#       """ 带参数调用人脸搜索 """
      with open("E://Ana/face.png", 'rb') as fp:
        imageB = base64.b64encode(fp.read())
      image = str(imageB, 'utf-8')
      """ 调用人脸搜索 """
      result = client.search(image, imageType, groupIdList, options)
      engine.runAndWait()
      print(2)
      if result:
        if not result['result']:
          continue
        name = result['result']['user_list'][0]['user_id']#获取名字
        score = result['result']['user_list'][0]['score']#获取相似度
        if name == 'cgh_1':
          if score>80:
            print(score)
            print(name)
            engine.say("华来了")
        elif name == 'yjc_1':
          if score > 80:
            print(score)
            print(name)
            engine.say("杨来了")
        elif name == 'cjy_1':
          if score > 80:
            print(score)
            print(name)
            engine.say("言来了")
        elif name == 'hjy_1':
          if score > 80:
            print(score)
            print(name)
            engine.say("怡来了")
        else:
          print("匹配失败")
      else:
        continue
  except Exception as e:
    print(e)
  finally:
    # 释放资源
    engine.runAndWait()
    camera.release()
    cv2.destroyAllWindows()
 
generate()

2、实现步骤

2.1、获取百度ID和key

在百度API中可以申请到免费的API账号,每天有免费的几千次人脸识别,下图为我申请的API账号,然后在人脸库中创建需要识别的人脸就行了

python调用百度API实现人脸识别

python调用百度API实现人脸识别

2.2、创建客户端

APP_ID = '1965####'
API_KEY = 'YXL65ekIloykyjrT4kzc####'
SECRET_KEY = 'lFiapBoZ5eBwOFyxMbiwQDmClg1u####'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)

2.3、实现人脸识别

主要内容就是参数需要自己修改,然后获取视频图像,然后通过对比看一下,对比出来的名字,然后再看一下分数即可,我在里面加了一个电脑播报的,所以只要识别出来,电脑就会播报,延迟不超过以秒。

到此这篇关于python调用百度API实现人脸识别的文章就介绍到这了,更多相关python 人脸识别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 将字符串转换成字典dict
Mar 24 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
Apr 16 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
举例详解Python中循环语句的嵌套使用
May 14 Python
Python批量重命名同一文件夹下文件的方法
May 25 Python
Python 调用 Windows API COM 新法
Aug 22 Python
深入学习python多线程与GIL
Aug 26 Python
使用Python实现 学生学籍管理系统
Nov 26 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
python 三种方法实现对Excel表格的读写
Nov 19 Python
Python的Tqdm模块实现进度条配置
Feb 24 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
Nov 17 #Python
详解Pytorch显存动态分配规律探索
Nov 17 #Python
Python调用ffmpeg开源视频处理库,批量处理视频
Nov 16 #Python
python tkinter实现连连看游戏
Nov 16 #Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 #Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 #Python
python 从list中随机取值的方法
Nov 16 #Python
You might like
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
php中全局变量global的使用演示代码
2011/05/18 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
php实现网页端验证码功能
2017/07/11 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
Python深入学习之闭包
2014/08/31 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
python调用摄像头的示例代码
2020/09/28 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
班主任新年寄语
2014/04/04 职场文书
赞美老师的演讲稿
2014/05/22 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
员工工作自我评价
2014/09/26 职场文书
仓库管理员岗位职责
2015/02/03 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
同学聚会感言一句话
2015/07/30 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis