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获取运行目录与当前脚本目录的方法
Jun 01 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
pandas 如何分割字符的实现方法
Jul 29 Python
python 使用pdfminer3k 读取PDF文档的例子
Aug 27 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
python颜色随机生成器的实例代码
Jan 10 Python
python实现简单井字棋小游戏
Mar 05 Python
python变量的作用域是什么
May 26 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
Python3.9.1中使用match方法详解
Feb 08 Python
windows安装python超详细图文教程
May 21 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
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
PDO::commit讲解
2019/01/27 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jQuery调用WebService的实现代码
2011/06/19 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
python生成验证码图片代码分享
2016/01/28 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
pyspark 随机森林的实现
2020/04/24 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
运动会广播稿30字
2014/01/21 职场文书
陈欧的广告词
2014/03/18 职场文书
大学辅导员述职报告
2015/01/10 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android