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实现的多线程端口扫描功能示例
Jan 21 Python
Python 备份程序代码实现
Mar 06 Python
python 接收处理外带的参数方法
Dec 03 Python
Django框架实现分页显示内容的方法详解
May 10 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
Django框架教程之中间件MiddleWare浅析
Dec 29 Python
Python使用uuid库生成唯一标识ID
Feb 12 Python
python实现图像全景拼接
Mar 27 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
深入了解python列表(LIST)
Jun 08 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
python 如何设置守护进程
Oct 29 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的中问验证码
2006/11/25 PHP
php创建、获取cookie及基础要点分析
2015/01/26 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
Python中os.path用法分析
2015/01/15 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
详解python深浅拷贝区别
2019/06/24 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
Python pandas库中的isnull()详解
2019/12/26 Python
python mock测试的示例
2020/10/19 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
用canvas显示验证码的实现
2020/04/10 HTML / CSS
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
心理健康日活动总结
2014/05/08 职场文书
派出所所长先进事迹
2014/05/19 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技