python调用百度API实现人脸识别
作者:难赋深情 发布时间:2021-06-11 23:52:23
标签:python,人脸识别
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账号,然后在人脸库中创建需要识别的人脸就行了
2.2、创建客户端
APP_ID = '1965####'
API_KEY = 'YXL65ekIloykyjrT4kzc####'
SECRET_KEY = 'lFiapBoZ5eBwOFyxMbiwQDmClg1u####'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)
2.3、实现人脸识别
主要内容就是参数需要自己修改,然后获取视频图像,然后通过对比看一下,对比出来的名字,然后再看一下分数即可,我在里面加了一个电脑播报的,所以只要识别出来,电脑就会播报,延迟不超过以秒。
来源:https://blog.csdn.net/qq_45125250/article/details/107034691
0
投稿
猜你喜欢
- 继Go 1.18支持泛型后,Go 将在下个版本中支持pdqsort排序算法再次引起了开发者们的热切讨论。目前,Go仓库的最新commit中提
- 导语:排版是一门艺术,也是一门技巧。我们每天都能在报纸,书籍等各种媒介上看到排版,或精美,或丑陋。如何能在准确传递信息的同时,又能排出精美的
- NumPy 比一般的 Python 序列提供更多的索引方式。除了之前看到的用整数和切片的索引外,数组可以由整数数组索引、布尔索引及花式索引。
- 前言在Django应用程序中发送电子邮件最常见的用例是密码重置、帐户激活和发送与您的应用程序相关的一般通知。下面来看看详细的介绍吧。配置Dj
- 本文实例讲述了PHP实现将科学计数法转换为原始数字字符串的方法,分享给大家供大家参考。具体实现代码如下:function NumToStr(
- 我设计第一篇网页的时候,就遇到了字体的设置问题。我发现如果用软件约定的字体大小,则显示效果会很难看的。我是用FrontPage2000作网页
- 前言随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Python语言的简洁性、易读性以及可扩展性,特别是在开源工具和深度学习
- 本文实例讲述了asp.net实现图片以二进制流输出的两种方法。分享给大家供大家参考,具体如下:方法一:System.IO.MemoryStr
- 这几天正在为压缩代码的事情所困扰,大家也可以看见,我的博客顶端有两个在线的压缩工具,但在实际应用过程中,除了CSS的压缩比较满意外,JS的压
- Go语言集成开发环境之VS Code安装使用VS Code是微软开源的一款编辑器,插件系统十分的丰富。下面介绍如何用VS Code搭建go语
- 当服务器必须提供与两个或更多个网络或网络子网的连接时,典型的方案是使用多宿主计算机。此计算机通常位于外围网络(也称为 DMZ、外围安全区域或
- 使用 NetBox 可以方便的将 asp 应用编译成为独立运行的执行程序,完全摆脱 iis 的束缚,在几乎所有的 Windows
- 如何用JMail同时给多人发信?在ASP中,为什么我在Jmail收件人处指定多个收件人时,像这样:JMail.AddRecipient&nb
- 导航是网页设计的重点,我们在设计一个网站的时候,常常从导航入手,不夸张的说,导航的设计甚至决定了整个网站的风格。这就需要我们平常多留心收集优
- 代码如下: <!--[if IE 6]><script type="text/javascript"&
- 最近对微格式进行了一些学习,在学习过程中收获不少。在此分享下,欢迎交流!微型格式的优点:1,语义化的HTML和CSS类名称来标记共同内容。2
- ancestor:祖先adjacent:相邻algorithm:运算法则anonymous box:无名盒子。例: anonymous in
- 数据可视化的时候,常常需要将多个子图放在同一个画板上进行比较,python 的matplotlib包下的subplot可以帮助完成子功能。p
- 本文中的示例主要是解决在函数间不能传递多个(32个以上)参数的问题,解题的具体思路就是采用记录类型作为函数的输入和返回值,所以我们需要先定义
- 此处收集的是一些夺人心魄的创意广告牌,巧妙的构思十分值得大家观瞻.......超人归来 superman returnsNespressos