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 相关文章推荐
在Django中创建第一个静态视图
Jul 15 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 Python
python获取指定字符串中重复模式最高的字符串方法
Jun 29 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
新手学python应该下哪个版本
Jun 11 Python
Django后端分离 使用element-ui文件上传方式
Jul 12 Python
Python3如何使用tabulate打印数据
Sep 25 Python
Spy++的使用方法及下载教程
Jan 29 Python
Python 里最强的地图绘制神器
Mar 01 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/10/09 PHP
php中iconv函数使用方法
2008/05/24 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
PDO实现学生管理系统
2020/03/21 PHP
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
Python中数字以及算数运算符的相关使用
2015/10/12 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
python中的闭包函数
2018/02/09 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python批量处理txt文件的实例代码
2020/01/13 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
Yahoo-PHP面试题4
2012/05/05 面试题
致长跑运动员加油稿
2014/02/20 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
新闻人物通讯稿
2014/10/09 职场文书
优质服务标语口号
2015/12/26 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
numpy数据类型dtype转换实现
2021/04/24 Python
python自然语言处理之字典树知识总结
2021/04/25 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python