前言

树莓派配置OpenCV,配置起来有点繁琐且耗时,调用百度智能云的人脸识别API是一个很好的解决方案

接上摄像头的树莓派.png

一、申请AppID、API Key和Secret Key

1.1 创建应用

在百度智能云人脸识别项目中创建应用,

创建应用.png

1.2 下载SDK

创建完毕后,下载SDK文档,因为是在树莓派中运行,所以选中python HTTP SDK下载到本地。

下载SDK.png

1.3 记录AppID

查看应用详情,记录下AppID、API Key和Secret Key,在后面的代码中会用到。

找到AppID.png

1.4 在人脸库管理中添加人脸数据

在人脸库管理中新建用户组,再从用户组中新建人脸id和照片;

添加用户组.png

添加要识别的人脸照片.png

二、项目部署

2.1 sdk传输至树莓派上

把下载好的SDK压缩包解压,可以通过ftp或者smb的方式,

如何使用smb,请见我的另一篇文章树莓派安装Samba服务把文件传输到到树莓派你想放的目录下,然后cd进入该目录;

2.2 安装pip以及setuptools

如果你的树莓派以及安装好了这两款软件,直接跳至2.3,如果还没,可以按一下步骤安装这两款重要的软件;

2.2.1 安装setuptools

到官网(https://pypi.org/project/setuptools/)

a)下载 setuptools 安装包

wget https://files.pythonhosted.org/packages/37/1b/b25507861991beeade31473868463dad0e58b1978c209de27384ae541b0b/setuptools-40.6.3.zip

b)解压缩

unzip setuptools-40.6.3.zip

c)安装

cd setuptools-40.6.3

sudo python setup.py build

sudo python setup.py install

2.2.2 安装pip

a)下载

到官网(https://pypi.org/project/pip/)下载pip安装包

wget https://files.pythonhosted.org/packages/45/ae/8a0ad77defb7cc903f09e551d88b443304a9bd6e6f124e75c0fbbf6de8f7/pip-18.1.tar.gz

2)解压

tar zxvf pip-18.0.tar.gz

3)安装

cd ../pip-18.0/

sudo python3 setup.py install

2.3 安装人脸识别SDK

当你的树莓派装好pip以及setuptools之后,进入到树莓派的SDK目录下,执行一下命令:

sudo pip install baidu-aip //安装百度AI模块

显示如下界面百度AI模块就成功了:

图片.png

再继续安装当前的API,

sudo python3 setup.py install

三、测试人脸识别是否成功

以上我们就把树莓派的人脸识别基础环境配置好了,现在我们测试一下系统是否能够正常运行

可以直接在sdk文件夹aip-python-sdk-2.2.15里创建一个测试文件test.py,

from aip import AipFace

from picamera import PiCamera

import urllib.request

import RPi.GPIO as GPIO

import base64

import time

#百度人脸识别API账号信息

APP_ID = '18333248'

API_KEY = 'HrfpWmTASGVQTGQ2UQO29IGY'

SECRET_KEY ='7x8m9vuKWH5XeVV8GeLkly8OkqUpzfPz'

client = AipFace(APP_ID, API_KEY, SECRET_KEY)#创建一个客户端用以访问百度云

#图像编码方式

IMAGE_TYPE='BASE64'

camera = PiCamera()#定义一个摄像头对象

#用户组

GROUP = 'yusheng01'

#照相函数

def getimage():

camera.resolution = (1024,768)#摄像界面为1024*768

camera.start_preview()#开始摄像

time.sleep(2)

camera.capture('faceimage.jpg')#拍照并保存

time.sleep(2)

#对图片的格式进行转换

def transimage():

f = open('faceimage.jpg','rb')

img = base64.b64encode(f.read())

return img

#上传到百度api进行人脸检测

def go_api(image):

result = client.search(str(image, 'utf-8'), IMAGE_TYPE, GROUP);#在百度云人脸库中寻找有没有匹配的人脸

if result['error_msg'] == 'SUCCESS':#如果成功了

name = result['result']['user_list'][0]['user_id']#获取名字

score = result['result']['user_list'][0]['score']#获取相似度

if score > 80:#如果相似度大于80

if name == 'yusheng_02':

print("欢迎%s !" % name)

time.sleep(3)

if name == 'xiaoming':

print("欢迎%s !" % name)

time.sleep(3)

if name == "xiaoyu":

print("欢迎%s !" % name)

else:

print("对不起,我不认识你!")

name = 'Unknow'

return 0

curren_time = time.asctime(time.localtime(time.time()))#获取当前时间

#将人员出入的记录保存到Log.txt中

f = open('Log.txt','a')

f.write("Person: " + name + " " + "Time:" + str(curren_time)+'\n')

f.close()

return 1

if result['error_msg'] == 'pic not has face':

print('检测不到人脸')

time.sleep(2)

return 0

else:

print(result['error_code']+' ' + result['error_code'])

return 0

#主函数

if __name__ == '__main__':

while True:

print('准备')

if True:

getimage()#拍照

img = transimage()#转换照片格式

res = go_api(img)#将转换了格式的图片上传到百度云

if(res == 1):#是人脸库中的人

print("开门")

else:

print("关门")

print('稍等三秒进入下一个')

time.sleep(3)

当你把py文件保存到树莓派中,

图片.png

可直接通过Tonny打开它,而且可以直接运行该程序,

图片.png

四、最后

通过控制台打印输出,我们模拟了真实情况,已经可以知道现在树莓派的人脸识别已经能正常工作了。下一步我们将把人脸识别成功后,把print语句换成其它的的操作语句,做一个人脸识别控制舵机开门的小项目,跳转到我的下一篇文章:树莓派人脸识别实际应用:智能门禁

树莓派人脸识别python_树莓派调用百度人脸识别API实现人脸识别相关推荐

  1. 调用百度AI平台API进行文字识别和图片识别

    写在前面 这应该是本年度的最后一篇技术博客了,今年在CSDN上总共发表了20篇博客,除掉几篇LeetCode的博客,都是个人工作的总结,总体来说,收获不少,随手记录的习惯也养成了.希望来年持之以恒. ...

  2. 【python】调用百度智能云API实现手写文字识别

    注:本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明 文章目录 调用百度智能云API实现python识别手写文字 一.准备工具 电脑端准备: 1.pytho ...

  3. 使用百度云接口API和人脸库完成本地合影图片的多人脸识别--V3版接口Python语言

    百度接口人脸检测,识别率很高,而且操作简单.网上百度还未见到借助百度云接口API和人脸库完成本地合影图片的多人脸识别,本人编写的代码可以实现,但觉得不够简洁,代码数还可以精减,欢迎交流. 1.准备工作 ...

  4. Python——调用百度AI实现图片上文字识别

    Python--调用百度AI实现图片上文字识别 简介 步骤 安装百度AI库 注册百度AI开放平台 调用glob库 调用AipOcr库识别文字 可能会遇到的问题 批量操作 简介 Python免费调用百度 ...

  5. 调用百度ai接口实现图片文字识别详解

    调用百度ai接口实现图片文字识别详解 首先先介绍一下这篇博文是干嘛的,为了不浪费大家时间.公司最近和短视频公司合作,需要监控app的截图上的文字是否符合规范,也就是确保其没有违规的文字.到网上找了一些 ...

  6. 【应用】Python调用百度AI实现图片上表格识别

    [应用]Python调用百度AI实现图片上表格识别 简介 步骤 安装百度AI库 注册百度AI开放平台 调用AipOcr库识别表格文字 可能遇到的问题 批量操作 简介 Python免费调用百度AI实现图 ...

  7. 调用百度智能云API,实现身份证智能识别并转语音 | Python

    一.百度云新建应用.获取权限和额度 1. 登录百度智能云,产品服务-->人工智能-->图像识别 2. 应用列表-->创建应用,用于身份证照的信息识别 3. 应用创建完成,得到APP_ ...

  8. python 百度识图_python如何调用百度识图api

    一.先去百度识别官网注册开通服务且获得ak和sk 二.代码模板 import cv2 import base64 import requests import numpy as np import t ...

  9. python识图 web_python如何调用百度识图api

    一.先去百度识别官网注册开通服务且获得ak和sk 链接:https://cloud.baidu.com/doc/Reference/s/9jwvz2egb 二.代码模板 import cv2 impo ...

  10. python调用百度api判断两张图片是否相同_python如何调用百度识图api

    一.先去百度识别官网注册开通服务且获得ak和sk 二.代码模板 import cv2 import base64 import requests import numpy as np import t ...

最新文章

  1. MySQL基础:数据类型
  2. CSV XLS文件区别
  3. 基于深度学习的Person Re-ID(综述)
  4. python操作excel-python操作excel(内附python教程分享)
  5. java中map转为json数据_Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回...
  6. python数据类型之元组类型
  7. LeetCode 79. Word Search
  8. 计算机如何添加管理员权限,电脑使用代码如何添加管理员权限
  9. 【CV学习4】OpenCV-Python: SIFT Demo one
  10. Java回文数.如12321,123454321(5个数)
  11. div 位于屏幕正中间_折叠屏已经不新鲜了,明天你可能会用上“伸缩屏幕”!...
  12. windows防护之(一)屏蔽危险端口
  13. fread函数和fwrite函数用法
  14. 道法演讲之马云从事教育
  15. 从java9共享内存加载modules说起
  16. Tableau文件管理
  17. antd table自适应(横向滚动条)
  18. 模型实践| CLIP 模型
  19. visual studio community 2019安装
  20. 简易手写输入法软件的编写

热门文章

  1. linux如何卸载lftp,linux lftp命令 详解
  2. 关机计算机专业,电脑关机后自动重启怎么回事
  3. 判断对象是否是空对象
  4. RPA手把手——项目需求客户要求把表格数据下载时,备份到数据库
  5. 配置NVIDIA Jetson AGX Xavier
  6. CIFilter的种类
  7. 起底地推之殇,探其如何重生?
  8. xshell绝佳配色方案
  9. 电容三点式振荡电路-2
  10. 2021年中国餐厨垃圾产量、厨余垃圾处理器及发展趋势分析[图]