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查找第k小元素代码分享
Dec 18 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
python新式类和经典类的区别实例分析
Mar 23 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 Python
解决python3.6用cx_Oracle库连接Oracle的问题
Dec 07 Python
Python基础知识学习之类的继承
May 31 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 array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
twig里使用js变量的方法
2016/02/05 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
Python实现直播推流效果
2019/11/26 Python
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
拔河比赛队名及霸气口号
2015/12/24 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
vue实力踩坑之push当前页无效
2022/04/10 Vue.js
nginx配置指令之server_name的具体使用
2022/08/14 Servers