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 相关文章推荐
Pthon批量处理将pdb文件生成dssp文件
Jun 21 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
Python数据类型之List列表实例详解
May 08 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
Python经纬度坐标转换为距离及角度的实现
Nov 01 Python
Python基于template实现字符串替换
Nov 27 Python
python opencv实现图像配准与比较
Feb 09 Python
PyQt5 显示超清高分辨率图片的方法
Apr 11 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 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
第十四节--命名空间
2006/11/16 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
Bootstarp 基础教程之表单部分实例代码
2017/02/03 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
django 信号调度机制详解
2019/07/19 Python
python实现简单飞行棋
2020/02/06 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
教师党员承诺书
2014/03/25 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
学校党员对照检查材料
2014/08/28 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
意向协议书
2015/01/27 职场文书
2015年端午节活动总结
2015/02/11 职场文书