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中的控制流语句的知识点
Apr 14 Python
python 实现对文件夹内的文件排序编号
Apr 12 Python
python利用微信公众号实现报警功能
Jun 10 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
Python 实现文件读写、坐标寻址、查找替换功能
Sep 11 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
linux 下selenium chrome使用详解
Apr 02 Python
一文读懂Python 枚举
Aug 25 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
详解运行Python的神器Jupyter Notebook
Jun 03 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
用PHP和ACCESS写聊天室(一)
2006/10/09 PHP
php 无极分类(递归)实现代码
2010/01/05 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
java解析json方法总结
2019/05/16 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
jquery简单体验
2007/01/10 Javascript
jQuery autocomplete插件修改
2009/04/17 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
vue内置指令详解
2018/04/03 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
Python列表切片用法示例
2017/04/19 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
悦木之源美国官网:Origins美国
2016/08/01 全球购物
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
应届毕业生求职信范文分享
2013/12/26 职场文书
说明书怎么写
2014/05/06 职场文书
无工作证明怎么写
2015/06/15 职场文书
javascript对象3个属性特征
2021/11/17 Javascript
java代码实现空间切割
2022/01/18 Java/Android