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常用库推荐
Dec 04 Python
利用Python实现Windows定时关机功能
Mar 21 Python
python实现随机梯度下降(SGD)
Mar 24 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
Apr 12 Python
python调用OpenCV实现人脸识别功能
May 25 Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 Python
查看python下OpenCV版本的方法
Aug 03 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
Python如何截图保存的三种方法(小结)
Sep 01 Python
python实现图像高斯金字塔的示例代码
Dec 11 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 07 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安装全攻略:APACHE
2006/10/09 PHP
PHP源码之explode使用说明
2011/08/05 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
php图片缩放实现方法
2014/02/20 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
使用Angular 6创建各种动画效果的方法
2018/10/10 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
python的mysqldb安装步骤详解
2017/08/14 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
python如何实时获取tcpdump输出
2020/09/16 Python
历史系毕业生自荐信
2013/10/28 职场文书
临床医学应届生求职信
2013/11/06 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
大型会议策划方案
2014/05/17 职场文书
领导班子整改措施
2014/10/24 职场文书
2015年双拥工作总结
2015/04/08 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby