劉 建,韓樹人,陳慧麗,王星怡
(江西理工大學 電氣工程與自動化學院,江西 贛州,341000)
新型冠狀病毒非常迅猛地在全球蔓延開,保持一定的社交距離成為了每個人都必須要做到的事。在公共場所使用儲物柜時就必須要減少人與人之間面對面的交流,否則極有可能在無形之中傳播了新冠病毒。
當今社會萬物互聯的趨勢勢不可擋,物聯網技術在交通、醫療、工業、農業等領域不斷爆發出新的突破,伴隨著5G技術的愈發成熟,更是在一定程度上推動物聯網技術的快速發展。人臉識別技術現在也被廣泛的應用在各種領域,不僅安全系數很高,而且使用過程中不需要用戶做額外的提前準備。
基于此,本文提出一種基于OneNET平臺和OpenMV[1]的無接觸智能儲物柜。用戶在公共場合使用無接觸智能儲物柜的過程中可以極大地避免人與人的接觸,而是通過人臉識別自行進行開柜關柜操作。不同于市面上常見的自助儲物柜,無接觸智能儲物柜通過人臉信息存取物,還可以避免使用一些條形碼、二維碼等開鎖憑證,解決了開鎖憑證丟失導致取物麻煩的問題。
本系統在使用時,只需要用戶將臉部置于攝像頭前面,系統在檢測到該人臉信息并沒有存過物品后就會進行人臉信息的采集,隨后打開一個未被使用的空柜子。若系統內原來就存在該人臉信息時就會打開與之對應的柜子,供用戶取物并刪除此人臉信息。
系統總體結構如圖1所示。

圖1 系統總體結構
本設計將STM32F103作為控制中心,通過OpenMV4對人臉數據進行采集,然后進行識別并比對[2]。如果人臉信息比對成功,則開啟對應的存儲柜,讓用戶取出自己的物品;若人臉信息比對不成功,則對人臉信息進行登記,并開啟一個空的存儲柜,讓用戶存放物品。再通過無線傳輸模塊ESP8266[3]將存儲柜的狀態和用戶信息上傳到OneNET服務器,使微信小程序和View2.0可視化界面中的信息同時更新[4]。管理員能通過微信小程序以及View2.0可視化界面看到存儲柜的存儲信息,同時也可以給系統下發命令,讓柜門打開以及刪除柜子的用戶信息。
本系統使用的主控芯片是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 硬件設計框圖
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 人臉識別匹配流程
感知層采用的是OpenMV4 H7視覺模塊。通過該模塊對人臉數據進行采集,利用LBP、Haar-Like算法對人臉特征進行提取。然后與已存儲的人臉信息的特征值進行對比,并作出判斷,再將信息傳遞給核心控制板。
存取物操作流程圖如圖5所示。

圖5 存取物操作流程
網絡層借助了OneNET的云服務器[9]及ESP8266 WiFi模塊,在OneNET控制臺建立本次系統用到的產品和設備。整個系統與服務器端信息傳遞與同步就是依賴于ESP8266模塊。
每次柜子的狀態發生變化時,主控板都會通過ESP8266模塊上傳一次新的柜子狀態數據至OneNET云服務器的數據點,以供之后的客戶端獲取到實時的柜子開關信息。并且每過30 s,主控板都會給服務器發送1次心跳報文[10],以告知服務器本設備還在線,服務器就不會將設備踢下線;如果3次發送心跳報文失敗,主控板就會立即初始化ESP8266模塊,重新連接服務器。
ESP8266模塊的初始化及上傳數據流程如圖6、圖7所示。

圖6 ESP8266初始化流程

圖7 ESP8266與服務器通信流程
為滿足系統需要,設計了微信小程序以及View2.0客戶端頁面來進行儲物柜的控制。這樣用戶不僅能夠看到當前儲物柜的狀態,也可以通過客戶端來實現對每個儲物柜的控制。微信小程序及View2.0界面分別如圖8、圖9所示。

圖8 微信小程序界面展示
在進行測試之前,需要確保系統的各個部分能否正常是工作,以及當前測試環境下的網絡是否正常。在測試過程中,首先需要讓整個系統在設定好的網絡環境下初始化,ESP8266自動連接上網絡并連接上服務器,同時攝像頭初始化完成。此時就能夠在攝像頭前進行人臉信息的比對存儲,完成存取物的操作。初始化完畢之后就能在微信小程序端使用OonNET服務器的設備號以及通過API-Key進行登陸操作,登陸完成后即可使用微信小程序對儲物柜進行開關控制。View2.0平臺并未設計登錄操作,當設備處于正常工作狀態時,打開網頁即可進行設備的控制。

圖9 View2.0界面展示
經過多次的系統測試,對人臉識別、存物取物、客戶端控制情況的次數進行了統計,得到系統測試結果見表1所列。測試結果表明,本文系統狀況良好,運行穩定。

表1 系統測試結果
經過了長時間的系統調試及測試,得出系統能夠穩定、良好地運行,人臉識別、柜門控制以及實時的情況展示都基本達到了設計的需求。在系統的運行過程中,核心板、ESP8266模塊和攝像頭模塊也都處在正常的工作狀態。如果后續還有在客戶端上獲取柜子使用者的信息以及歷史記錄的需要,都可以在后續的客戶端開發上完成。