文/郭向星 田斐
隨著大數據、深度學習、云計算、5G等技術的不斷完善,人臉識別精度越來越高,識別速度越來越快,從“刷臉進站”、“刷臉簽到”到“刷臉付款”,生活中的方方面面都可以看到人臉識別技術的應用。本設計創新地將人臉設別技術應用到門鎖上,設計了智能人臉識別門鎖控制系統。
智能人臉識別門鎖控制系統總體設計結構如圖1所示。

圖1:系統總體結構框圖
本設計分為兩部分,首先在PC機上訓練人臉識別模型,之后將訓練好的模型導入到樹莓派中。采集模塊采集人臉照片后,樹莓派調用訓練好的模型進行判斷,樹莓派識別成功之后向繼電器模塊發出命令,樹莓派通過控制繼電器的吸合來控制電磁鎖的開關,同時指示模塊提醒門鎖開否。
本設計采用的人臉識別模型是通過Tensorflow搭建的卷積神經網絡模型來實現的,所使用的卷積神經網絡結構主要包括:輸入層、卷積層、池化層、全連接層和輸出層,具體結構圖如圖2所示。

圖2:卷積神經網絡結構圖
(1)輸入層為訓練或者判斷輸入的人臉圖像,經過采集模塊的照片被裁剪為64×64之后輸入到輸入層中,該層的輸出為64×64大小的二維張量。
(2)卷積層就是輸入數據和卷積核進行內積運算操作的層。在該層中,輸入的張量與卷積核進行卷積運算,卷積核提取張量的特征。
(3)池化層又稱為下采樣,就是為了減少卷積層產生的特征圖的尺寸而存在的,進而降低網絡訓練參數、提高運算速度和防止過擬合。
(4)全連接層放在卷積層的末端,對神經網絡前端提取的特征通過權值矩陣重新拼接成一個新的向量,在整個卷積神經網絡中,全連接層起到分類器的作用。
(5)輸出層輸出為兩單元,使用似然函數計算每個單元的似然概率,輸出最大的概率作為判斷結果。

圖3:主程序流程圖
系統上電之后,檢測攝像頭、觸摸開關、繼電器、記錄模塊是否正常,若所有模塊均正常則讓指示燈閃爍兩次后關閉。若所有模塊均正常,則當按下觸摸開關時,樹莓派發出命令,控制指示燈閃爍三次,提示正在采集人臉照片;當采集照片之后,調用識別模型判斷是否為特定人,若識別為特定人,則樹莓派向繼電器發送指令打開電磁鎖,同時藍色LED開始閃爍,提示電磁鎖已打開,延遲30秒后關閉電磁鎖并停止閃爍指示燈,之后把識別成功的人臉照片通過記錄模塊上傳到云服務器,等待下一次判斷。若識別為非特定人則繼電器不動作,并將采集到的人臉照片上傳到服務器,指示燈閃爍兩次,等待下一次判斷。主程序流程圖如圖3所示。

圖4:總實物圖
4.2.1 指示燈程序設計
指示燈有五種工作狀態,分別是閃爍兩次、閃爍三次、一直閃爍、常亮和常滅。為了簡化程序,將點亮指示燈的操作編寫為閃爍函數,通過向函數中傳入不同的數值來表示指示燈不同的工作狀態。
4.2.2 采集照片程序設計
采集照片的程序比較簡單,只需不斷的掃描觸摸開關是否被按下,若觸摸開關按下,則樹莓派向攝像頭發送指令,采集照片保存到本地即可。
4.2.3 繼電器(電磁鎖)程序設計
電磁鎖需要12V的電源,因此通過繼電器來控制??刂评^電器的程序比較簡單,只需對繼電器的輸入端賦初值高電平即可,當需要打開電磁鎖的時候就將繼電器的輸入端賦低電平,當需要關閉電磁鎖的時候將繼電器的輸入端賦高電平。
4.2.4 記錄模塊設定云服務器的密鑰,人臉識別器識別成功之后,樹莓派發出命令,調用上傳傳片函數向云服務器上傳識別成功的照片,保存名稱格式為“success20190520131401.jpg”;當識別失敗時,保存名稱格式為“fail2019052031402.jpg”。
功能測試時,樹莓派上電之后,指示燈閃爍兩次后關閉,表明系統各個模塊正常。按下觸摸開關后,指示燈閃爍三次開始采集照片,采集照片之后等待樹莓派調用模型進行判斷,系統能正常識別特定人并且開鎖,實現了智能人臉識別門鎖控制系統的設計,系統整體圖如圖4所示。但目前本設計受到樹莓派運算速度的影響人臉識別速度較慢,在未來的設計中可嘗試使用運算速度更快的控制器來解決識別速度慢的問題。