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