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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
Python读取文件内容的三种常用方式及效率比较
Oct 07 Python
Python使用pandas对数据进行差分运算的方法
Dec 22 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
python 调试冷知识(小结)
Nov 11 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
使用Python实现牛顿法求极值
Feb 10 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
python实现A*寻路算法
Jun 13 Python
深入浅析Django MTV模式
Sep 04 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
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
PHP 查找字符串常用函数介绍
2012/06/07 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
Python类的动态修改的实例方法
2017/03/24 Python
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
python接入支付宝的实例操作
2020/07/20 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
大专应届生个人的自我评价
2013/11/21 职场文书
小学生新年寄语
2014/04/03 职场文书
优秀护士演讲稿
2014/04/30 职场文书
小学教师师德承诺书
2014/05/23 职场文书
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
Ajax实现三级联动效果
2021/10/05 Javascript
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js