APP下载

基于OneNET和OpenMV的无接触智能储物柜设计

2021-10-27韩树人陈慧丽王星怡

物联网技术 2021年10期
关键词:储物柜人脸识别人脸

刘 建,韩树人,陈慧丽,王星怡

(江西理工大学 电气工程与自动化学院,江西 赣州,341000)

0 引 言

新型冠状病毒非常迅猛地在全球蔓延开,保持一定的社交距离成为了每个人都必须要做到的事。在公共场所使用储物柜时就必须要减少人与人之间面对面的交流,否则极有可能在无形之中传播了新冠病毒。

当今社会万物互联的趋势势不可挡,物联网技术在交通、医疗、工业、农业等领域不断爆发出新的突破,伴随着5G技术的愈发成熟,更是在一定程度上推动物联网技术的快速发展。人脸识别技术现在也被广泛的应用在各种领域,不仅安全系数很高,而且使用过程中不需要用户做额外的提前准备。

基于此,本文提出一种基于OneNET平台和OpenMV[1]的无接触智能储物柜。用户在公共场合使用无接触智能储物柜的过程中可以极大地避免人与人的接触,而是通过人脸识别自行进行开柜关柜操作。不同于市面上常见的自助储物柜,无接触智能储物柜通过人脸信息存取物,还可以避免使用一些条形码、二维码等开锁凭证,解决了开锁凭证丢失导致取物麻烦的问题。

1 智能储物柜系统总体设计方案

本系统在使用时,只需要用户将脸部置于摄像头前面,系统在检测到该人脸信息并没有存过物品后就会进行人脸信息的采集,随后打开一个未被使用的空柜子。若系统内原来就存在该人脸信息时就会打开与之对应的柜子,供用户取物并删除此人脸信息。

系统总体结构如图1所示。

图1 系统总体结构

本设计将STM32F103作为控制中心,通过OpenMV4对人脸数据进行采集,然后进行识别并比对[2]。如果人脸信息比对成功,则开启对应的存储柜,让用户取出自己的物品;若人脸信息比对不成功,则对人脸信息进行登记,并开启一个空的存储柜,让用户存放物品。再通过无线传输模块ESP8266[3]将存储柜的状态和用户信息上传到OneNET服务器,使微信小程序和View2.0可视化界面中的信息同时更新[4]。管理员能通过微信小程序以及View2.0可视化界面看到存储柜的存储信息,同时也可以给系统下发命令,让柜门打开以及删除柜子的用户信息。

2 硬件设计

本系统使用的主控芯片是STM32F103ZET6[5-6],它是基于高性能 ARM®CortexTM-M3的32位RISC内核处理器。该单片机处理速度较快,功能较多,能够简化电路,为设计提供了极大的方便,增加了系统的稳定性,故选用它作为本系统的控制器模块。主控板的程序通过Keil5软件平台进行编写和烧入。

摄像头模块选用的是OpenMV4 H7,通过摄像头对人脸数据进行采集,再利用智能算法对采集的数据进行分析处理。OpenMV4 H7可支持外部拓展SD卡,进而增加存储空间的大小,保存更多的人脸信息。摄像头模块的程序在OpenMVIDE软件平台进行编写[7]。

网络模块选用的是ESP8266,该模块体积小巧,可以通过连接WiFi,然后以MQTT协议接入选用的OneNET云平台,从而实现信息的传递和同步。

电控锁模块选用的是以继电器接通、断开电源而实现开关锁的普通电控锁,持续通电0~5 ms就可实现开锁,并且通过信号反馈线可将电控锁当前的状态传输给STM32。具体硬件设计框图如图2所示。

图2 硬件设计框图

3 人脸识别算法

Haar-Like特征[8]是机器视觉领域常用的特征描述算子,能够很好地反映出图像灰度变化的特征。除此之外还有两种基于灰度图的算法:SURF和广义Hough变换。与Haar-Like算法相比较,广义Hough变换比较适用于人整体的检测,而Haar-Like算法比较倾向于人脸检测,SURF则比Haar更加复杂。使用较为简单的Haar-Like特征可以很好得提高人脸检测速度,并且OpenMV已经有现成的Haar-Like训练库,于是本设计便选择Haar-like算法进行人脸的识别捕捉。

LPB(局部二值模式)算法精准度较高,在已知的人脸识别算法中占据着非常重要的地位。LBP算法能够将图像中的微小特征更清晰地描绘出来(包括暗点、亮点、稳定区域以及边缘等),反映这些特征的分布情况有助于提高图像识别的性能。

LPB算法的计算方式如图3所示,以要计算的像素为中心提取一个九宫格,分别将中间的像素的灰度值与周围的像素的灰度值进行比较。若周围的像素对应灰度值大于中间的像素,则将该像素点的位置标记为1;反之标记为0。比较后得到的8位二进制数就是中间像素点对应的LPB值。

图3 LBP特征值计算步骤

具体的人脸识别匹配流程图如图4所示,通过使用Haar-Like算法进行人脸识别,再使用LPB算法进行预处理获得用户脸部的特征值,对特征值进行存储,下次识别到人脸时会与先前存储过的人脸信息进行比对匹配。

图4 人脸识别匹配流程

4 软件设计

4.1 感知层

感知层采用的是OpenMV4 H7视觉模块。通过该模块对人脸数据进行采集,利用LBP、Haar-Like算法对人脸特征进行提取。然后与已存储的人脸信息的特征值进行对比,并作出判断,再将信息传递给核心控制板。

存取物操作流程图如图5所示。

图5 存取物操作流程

4.2 网络层

网络层借助了OneNET的云服务器[9]及ESP8266 WiFi模块,在OneNET控制台建立本次系统用到的产品和设备。整个系统与服务器端信息传递与同步就是依赖于ESP8266模块。

每次柜子的状态发生变化时,主控板都会通过ESP8266模块上传一次新的柜子状态数据至OneNET云服务器的数据点,以供之后的客户端获取到实时的柜子开关信息。并且每过30 s,主控板都会给服务器发送1次心跳报文[10],以告知服务器本设备还在线,服务器就不会将设备踢下线;如果3次发送心跳报文失败,主控板就会立即初始化ESP8266模块,重新连接服务器。

ESP8266模块的初始化及上传数据流程如图6、图7所示。

图6 ESP8266初始化流程

图7 ESP8266与服务器通信流程

4.3 应用层

为满足系统需要,设计了微信小程序以及View2.0客户端页面来进行储物柜的控制。这样用户不仅能够看到当前储物柜的状态,也可以通过客户端来实现对每个储物柜的控制。微信小程序及View2.0界面分别如图8、图9所示。

图8 微信小程序界面展示

5 系统测试

在进行测试之前,需要确保系统的各个部分能否正常是工作,以及当前测试环境下的网络是否正常。在测试过程中,首先需要让整个系统在设定好的网络环境下初始化,ESP8266自动连接上网络并连接上服务器,同时摄像头初始化完成。此时就能够在摄像头前进行人脸信息的比对存储,完成存取物的操作。初始化完毕之后就能在微信小程序端使用OonNET服务器的设备号以及通过API-Key进行登陆操作,登陆完成后即可使用微信小程序对储物柜进行开关控制。View2.0平台并未设计登录操作,当设备处于正常工作状态时,打开网页即可进行设备的控制。

图9 View2.0界面展示

经过多次的系统测试,对人脸识别、存物取物、客户端控制情况的次数进行了统计,得到系统测试结果见表1所列。测试结果表明,本文系统状况良好,运行稳定。

表1 系统测试结果

6 结 语

经过了长时间的系统调试及测试,得出系统能够稳定、良好地运行,人脸识别、柜门控制以及实时的情况展示都基本达到了设计的需求。在系统的运行过程中,核心板、ESP8266模块和摄像头模块也都处在正常的工作状态。如果后续还有在客户端上获取柜子使用者的信息以及历史记录的需要,都可以在后续的客户端开发上完成。

猜你喜欢

储物柜人脸识别人脸
人脸识别 等
有特点的人脸
揭开人脸识别的神秘面纱
三国漫——人脸解锁
井井有型
关于在操场边建立储物柜的可行性研究
——以上海市高校为例
高效储物柜
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人
基于K-L变换和平均近邻法的人脸识别