预计在不久后的将来,人脸识别和身份认证技术将在我们的日常生活中扮演一个非常重要的角色。这项技术为我们开辟了一个全新的世界,它几乎适用于我们生活的方方面面。面部识别/身份认证的使用案例包括安全系统、认证系统、个性化智能家居和家庭护理助理等。
我们将搭建什么?
本教程将帮助你建立一个可以训练 HARASCALDES 模型的树莓派,该模型可用于检测已识别的/未识别过的人,使用监控摄像头进行实时监控,并利用物联网 JumpWay 来发送传感和警告消息,进而允许你的设备利用其他物联网 JumpWay 网与其他设备进行通信。
本教程将利用 TechBubble Technologies 物联网 JumpWay Python MQTT 库进行通信,利用 OpenCV 实现计算机视觉,在本地端口上建造移动 Web 流和安全的 NGNX 服务器,以便可以安全地从外部访问视频流。 这个例子是我们最初的 TASS 版本,因为我们的进步依靠了很多更先进的计算机视觉库和框架,所以我们决定将代码进行开源。
Python 版本
软件要求
硬件要求
准备工作
物联网 JumpWay 开发者程序文档 准备你的树莓派 设置区域名字 & 树莓派的 SSL 在你的树莓派上配置 OpenCV 在你的树莓派上配置 Linux 驱动 在树莓派上为 Linux 驱动安装 用 IPTables 确保树莓派的安全
准备你的树莓派
复制 Repo
- git clone https://github.com/TechBubbleTechnologies/IoT-JumpWay-RPI-Examples.git
复制代码
安装要求接下来,你需要将计算机视觉库导航到目录并按照要求进行安装,如果你已经将库复制到你的主目录上,那么这一部分的命令如下: - cd IoT-JumpWay-RPI-Examples/Computer-Vision/Python
- pip install --upgrade pip
- pip install -r requirements.txt
复制代码
安装 OpenCV
安装 Linux 驱动
这里有一些修改,在驱动安装教程的第 9 部分中,它告诉你如何修改媒体的保存目录,在本教程中,你应该将这些设置更改为: - /home/YOURUSERNAME/IoT-JumpWay-RPI-Examples/Computer-Vision/Python/media
复制代码不要忘记注意第 10 部分中关于关闭图像保存来节省磁盘空间的问题。
设置域名和 SSL
- /etc/nginx/key.key
- /etc/nginx/csr.csr
复制代码
一旦你从证书颁发机构收到你的签名 crt.crt 和 ca.crt 文件,你需要将它们上传到: - /etc/nginx/ca.crt
- /etc/nginx/crt.crt
复制代码
为 Linux 驱动安装安全的 NGINX 服务器
用 IPTables 保证树莓派的安全
视频流如果你遵循了以上步骤,如果它们还没有运行,你需要按照下面的步骤操作。 - sudo service motion start
- 或
- sudo /etc/init.d/motion start
- 启动 NGINX
- sudo service nginx start
- 或
- sudo /etc/init.d/nginx start
复制代码
重要的是:这种流式传输是一个新的特性,我们仍然在消除一些扭结,如果你想让 OpenCV 直接访问网络摄像头,而不需要驱动/NGNIX 流,那么在 TASS.py 重取消注释 43 行,注释 44 行和 45 行。
连接证书和传感设置
检索你的连接证书并用新的连接证书和相机 ID 设置更新配置文件 JSON 文件(你需要在创建它之后进入设备页面以获得正确的摄像头 ID)。
- "IoTJumpWaySettings": {
- "SystemLocation": 0,
- "SystemZone": 0,
- "SystemDeviceID": 0,
- "SystemDeviceName" : "Your Device Name",
- "SystemCameraID":0
- }
- "IoTJumpWayMQTTSettings": {
- "username": "Your MQTT Username",
- "password": "Your MQTT Password"
- }
复制代码
训练你的数据现在基本构架已经搭建好,是时候用你自己的照片训练你的模型了。当你下载这个 RPO 时,在那个被处理的文件夹中已经有一个经过训练的模型和被处理的图像,但是这个模型不会识别你。你需要选择自己在不同的位置和灯光下的照片。你训练模型的照片越多,它就越精确,如果你的设备没有识别你,你只需要用更多的图像来训练它。
你可以添加你喜欢的图片(这取决于你的树莓派 3 可用的空间),有很多像你这样人。为了将训练数据导航到训练文件夹中并创建目录,目录应该是一个数字,而且不是那个已处理文件夹中的数字。
一旦你建立了图像的文件夹,进入 Tas.Py 文件改变第 34 行(self.train = 0)为 self.train = 1,并启动程序。程序将循环检测你的图像,如果它检测到脸部,它将以模型所需的格式重新创建一个图像,将其保存到匹配文件夹处理后的目录中中,并删除原始图像以节省空间。如果它没有检测到面部,它将简单地删除原始图像,因为它是无效的面部识别。
一旦处理阶段完成,你的新模型将自动开始训练,训练完成后,它将自动运行主面部识别程序。把你的脸放在你连接的摄像头前面,看着程序的输出你是谁。
注意:从处理目录中删除 read me 文件。
执行程序
- sudo python/python3 TASS.py
复制代码
自主物联网通信
在“设备编辑”页面上,向下滚动到“执行器/传感器”下的“创建规则”部分。你可以在这里利用下拉菜单创建规则,允许你的设备发电子邮件给你,或者在状态更新、传感器数据和警告的情况下自主地与其网络上的其他设备进行通信。
查看数据
当你在运行物联网 JumpWay 树莓派计算机视觉实例遇到困难时请保持一种释然,当你遇到麻烦时你也可以在提问区寻求帮助。
物联网 JumpWay 树莓派实例贡献者
|