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使用剪切板的方法
Jun 06 Python
wxPython之解决闪烁的问题
Jan 15 Python
TensorFlow实现简单卷积神经网络
May 24 Python
对python:print打印时加u的含义详解
Dec 15 Python
python 内置模块详解
Jan 01 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
PyTorch中Tensor的拼接与拆分的实现
Aug 18 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
使用keras内置的模型进行图片预测实例
Jun 17 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 Python
python中str内置函数用法总结
Dec 27 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
ThinkPHP标签制作教程
2014/07/10 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
jQuery 动态酷效果实现总结
2009/12/27 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
Flask之flask-script模块使用
2018/07/26 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
中专生自我鉴定范文
2014/02/02 职场文书
火灾现场处置方案
2014/05/28 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript