羅 平,虞俊鋒,邱富康
(杭州電子科技大學(xué)自動化學(xué)院,杭州 310018)
新型冠狀病毒肺炎疫情自爆發(fā)以來,嚴重影響了人們的生產(chǎn)、生活,對人們的生命健康安全造成了巨大的威脅,2020 年1 月,此次疫情已經(jīng)被世界衛(wèi)生組織確認為世界關(guān)注的突發(fā)公共衛(wèi)生事件[1]。
在實驗室等小型半封閉式場所中,對出入人員的管理采用磁卡感應(yīng)、數(shù)字密碼、指紋識別[2]等方式,人與物體之間的直接接觸為病毒的傳播提供了途徑。采用人臉識別[3-5]等非接觸式的門禁管理系統(tǒng)是切斷病毒傳播途徑的有效方式之一。本文提出基于Jetson Nano的智能門禁系統(tǒng)設(shè)計方案。
對已知用戶進行人臉圖像采集,并錄入人臉信息庫。當(dāng)用戶訪問時,攝像頭捕捉到含有人臉的圖像,提取人臉的特征并在人臉庫中匹配,若匹配結(jié)果小于閾值,則可以確定用戶的身份;身份確定后即可進行口罩佩戴檢測,若檢測為正確佩戴則自動解鎖;若在人臉識別、口罩檢測過程中多次失敗,則語音提示并將圖像以郵件附件的形式發(fā)送至管理員信箱。利用搭建好的Web頁面,實現(xiàn)遠程監(jiān)控、對話、控制功能。
根據(jù)系統(tǒng)工作流程,門禁系統(tǒng)主要包含采集、圖像處理、通信、移動控制和執(zhí)行單元5 個部分,系統(tǒng)的組成框圖如圖1 所示。
圖1 系統(tǒng)組成框圖
Jetson Nano是一款開源硬件,與現(xiàn)階段常用的樹莓派主板有良好的兼容性。考慮到Jetson Nano 具有圖像處理能力強、功耗低、性價比高等特點,將其作為門禁系統(tǒng)與開發(fā)的核心硬件平臺。
圖像采集單元采用IMX219 攝像頭與免驅(qū)USB攝像頭。IMX219 攝像頭具有800 萬像素、77°視場角,分辨率最高可達3280 ×2464,可為人臉識別、口罩檢測提供高質(zhì)量圖像。遠程監(jiān)控所需的圖像質(zhì)量相對較低,采用免驅(qū)USB 攝像頭即可。IMX219 攝像頭通過排線連接Jetson Nano 的CSI 接口,利用OpenCV 程序[6]對兩個攝像頭進行調(diào)試。
無線網(wǎng)卡采用8265AC 網(wǎng)卡芯片,支持4.2 版本藍牙,同時支持2.4G 和5G 雙頻WiFi,傳輸速度最高可達867Mb/s。系統(tǒng)通過連接網(wǎng)絡(luò)可以直接獲取互聯(lián)網(wǎng)資源、訪問郵箱服務(wù)器,當(dāng)系統(tǒng)與客戶端保持在同一局域網(wǎng)之下,系統(tǒng)可獲取客戶端發(fā)出的控制指令,客戶端可接收并呈現(xiàn)遠程監(jiān)控畫面。
電控鎖利用電磁感應(yīng)原理,通過控制Jetson Nano的GPIO引腳高低電平,實現(xiàn)鎖舌的縮回與彈出。除電動控制外,考慮到停電等特殊情況,還應(yīng)具備手動解鎖功能。采用USB免驅(qū)動揚聲器,調(diào)用語音模塊程序?qū)崿F(xiàn)語音提示功能。
語音提示的關(guān)鍵是將輸入的文本內(nèi)容轉(zhuǎn)化為音頻文件播放輸出,在文字轉(zhuǎn)語音的實現(xiàn)過程中,通過調(diào)用智能云語音合成[7]提供的SDK將文字轉(zhuǎn)換為音頻,并將該音頻寫入本地文件中,播放該文件,實現(xiàn)語音提示功能。
一個完整的人臉識別過程可大致可分為特征提取和人臉匹配兩個過程。
(1)特征提取。特征提取采用Dlib 工具包實現(xiàn),該工具包提供人臉關(guān)鍵點文件shape_predictor_68_face_landmarks.dat 和人臉特征向量文件dlib_face_recognition_resnet_model_v1.dat。其中,人臉關(guān)鍵點模型文件是在iBUG 300-W 人臉數(shù)據(jù)集[8]中訓(xùn)練得到的,該數(shù)據(jù)集共有人臉圖像600 幀,每幀圖像中都已標(biāo)注好包括五官、輪廓在內(nèi)的68 個關(guān)鍵點,利用該模型文件,可以對任意一幀人臉圖像進行人臉關(guān)鍵點的定位。人臉特征向量模型的作用在于將獲取的68 個關(guān)鍵點信息映射到128 維度的向量中,用來標(biāo)識一幀人臉圖像,以便用于后續(xù)人臉間的匹配。
該模型的主體結(jié)構(gòu)為ResNet34 殘差網(wǎng)絡(luò)[9-10],殘差網(wǎng)絡(luò)相比于一般的卷積網(wǎng)絡(luò),最大的不同在于引入一條分支,將輸入信息由淺層傳遞至網(wǎng)絡(luò)的深層中,極大程度地防止信息的丟失,使得網(wǎng)絡(luò)深度的加深也不會導(dǎo)致性能的退化。殘差塊的結(jié)構(gòu)如圖2 所示。
圖2 殘差塊結(jié)構(gòu)
基于殘差塊的思想,每兩層卷積層中引入一條分支,最終ResNet34 殘差網(wǎng)絡(luò)的結(jié)構(gòu)圖如圖3 所示。
圖3 殘差網(wǎng)絡(luò)結(jié)構(gòu)
在Resnet34 的最后一層,擁有1 000 個神經(jīng)元,在這1 000 個神經(jīng)元之后再追加一個128 維的全連接層即可達到使用Resnet將目標(biāo)人臉圖像的68 個關(guān)鍵點信息映射到一個128 維特征向量的目的。
(2)人臉匹配。對人臉信息庫中的第k幀人臉圖像提取68 個面部特征關(guān)鍵點,經(jīng)34 層殘差網(wǎng)絡(luò)映射計算后獲得128 維的特征向量Ak=[ak1,ak2,…,ak128]。同理對一幀未知身份的人臉圖像提取面部特征點,經(jīng)計算后獲得特征向量B =[b1,b2,…,b128]。用向量Ak、B之間的歐幾里得距離
表征兩幀人臉圖像的近似程度,dk越小表示兩幀人臉圖像越接近。
將向量B與人臉信息庫中的n幀人臉圖像所對應(yīng)的向量分別求取歐幾里得距離,得到n維近似度向量D =[d1,d2,…,dn]。取其中的最小值dmin,若dmin小于閾值,則人臉匹配成功。
(1)前向傳播。采用YOLOv3 目標(biāo)檢測算法[11-12]對口罩的佩帶情況進行檢測。以檢測大目標(biāo)物體為例,將一幀輸入的圖像平均分成13 ×13 個像素塊,利用全卷積網(wǎng)絡(luò)提取每一個像素塊內(nèi)所有像素值之間的抽象特征。全卷積網(wǎng)絡(luò)結(jié)構(gòu)的輸入、輸出映射關(guān)系如圖4 所示。
圖4 全卷積網(wǎng)絡(luò)結(jié)構(gòu)的輸入、輸出映射關(guān)系
需提取的特征信息為置信度、預(yù)測框位置和所屬類別概率。其中,置信度信息包含了該像素塊內(nèi)是否含有物體以及以該像素塊所繪制的預(yù)測框與真實框之間的交并比,即預(yù)測框與真實框之間的接近程度;預(yù)測框的位置信息包含中點在像素塊內(nèi)的坐標(biāo)x,y以及預(yù)測框的寬高w,h。輸入與輸出的映射關(guān)系如圖5所示。
圖5 預(yù)測框與真實框的輸入、輸出映射關(guān)系圖
(2)反向傳播。初始化模型參數(shù),取一幀標(biāo)注好的圖像,輸入到全卷積網(wǎng)絡(luò),經(jīng)模型計算后輸出大小為13 ×13 ×3 ×(5 +3)的預(yù)測矩陣,根據(jù)預(yù)測矩陣與真實矩陣計算損失值,利用梯度下降算法[13]對模型參數(shù)進行優(yōu)化,使得總損失值最小,即預(yù)測圖像與真實圖像之間最為接近。
模型的損失函數(shù)
Web頁面采用輕量級的網(wǎng)頁開發(fā)框架Flask[14]進行設(shè)計與開發(fā),進入控制主界面必須確保硬件平臺Jetson Nano通過雙頻無線網(wǎng)卡連接上的局域網(wǎng)與手機移動端的局域網(wǎng)保持一致。根據(jù)IP地址,按照指定格式輸入網(wǎng)址即可進入主界面。Web 控制端的主界面如圖6 所示。
圖6 Web控制端主界面
(1)遠程監(jiān)控。利用Flask 搭建的流媒體服務(wù)器,是調(diào)用免驅(qū)動USB 攝像頭獲取一幀一幀的圖片,利用生成器對圖片數(shù)據(jù)進行迭代,實現(xiàn)實時更新并返回給客戶端,客戶端瀏覽器接收到的是一個Multipart應(yīng)答,每一個應(yīng)答中包含了許多獨立數(shù)據(jù),每一個數(shù)據(jù)塊都含有自己的數(shù)據(jù)標(biāo)簽,瀏覽器在處理這種Multipart類型時,會按照數(shù)據(jù)標(biāo)簽,將當(dāng)前的數(shù)據(jù)替換之前的數(shù)據(jù),實現(xiàn)遠程監(jiān)控的功能。
(2)遠程對話。與服務(wù)器進行交互的方法有Post、Get等,在文本框內(nèi)輸入指定內(nèi)容,當(dāng)按下發(fā)送按鈕時,會向服務(wù)器發(fā)送一個Post 請求,提交定義好的數(shù)據(jù)標(biāo)簽和數(shù)據(jù)內(nèi)容,一旦接收到Post 請求,服務(wù)器就會執(zhí)行Get操作,獲取指定數(shù)據(jù)標(biāo)簽的數(shù)據(jù)內(nèi)容,并調(diào)用語音模塊利用揚聲器播放指定內(nèi)容的語音,實現(xiàn)遠程對話功能。
(3)遠程解鎖。實現(xiàn)遠程解鎖功能同樣應(yīng)用到Post、Get方法,當(dāng)按下解鎖按鈕,服務(wù)器獲取該指令后即可解鎖??紤]到安全問題,采用數(shù)據(jù)加密標(biāo)準(zhǔn)算法[15]對該解鎖指令進行加密。獲取按下解鎖按鈕時的時間,解鎖指令由該時間信息組成,經(jīng)加密處理后形成一串字符碼發(fā)送給Jetson Nano,將解密后獲取的時間與現(xiàn)在時間作比較,若在指定時間范圍內(nèi)則表示指令正確,可以解鎖。
將以上程序部署到Jetson Nano 中,需配置好程序運行所需的相關(guān)環(huán)境。在人臉識別程序中,除了安裝Numpy、Matplotlib 等Python 拓展程序庫外,最重要的是安裝開啟GPU加速版本的Dlib。利用pip工具直接安裝的Dlib庫默認是不使用GPU的,在使用深度神經(jīng)網(wǎng)絡(luò)進行人臉識別過程中,需利用Cmake 這個跨平臺的編譯工具,從源碼上對Dlib-GPU 版本進行編譯安裝。在口罩檢測程序中,需安裝Pytorch這一支持機器學(xué)習(xí)算法的程序庫。
當(dāng)Jetson Nano成功配置好程序運行所需的環(huán)境后,打開IMX219 攝像頭對視頻流數(shù)據(jù)進行逐幀的人臉識別。獲取一幀圖像進行識別的結(jié)果如圖7 所示。
圖7 人臉識別結(jié)果
分別計算圖7 中左右兩幀人臉與人臉信息庫中5幀同一個體不同角度圖像的近似度向量Dleft、Dright。由于左側(cè)的人臉圖像并不在人臉信息庫中,因此Dleft中每一個元素的值都大于閾值。而庫中已預(yù)先存有右側(cè)人員的人臉,所以Dright中每一個元素都低于閾值,取元素中最低的值對應(yīng)的圖片,即可確定身份。
找10 名實驗者做3 輪實驗,每人共計被檢測5次,一輪共計識別50 人次。其中識別結(jié)果與實際不符視作識別失敗,時間超過10 s視作識別超時。實驗結(jié)果見表1。
表1 人臉識別實驗結(jié)果
由表1 可見,智能門禁系統(tǒng)的人臉識別方法能對不同角度和個體的人臉有效的提取面部信息特征,部署在Jetson Nano上的識別速率基本能達到平均F/s,識別成功率達到95%以上。
在口罩檢測實驗中,加載已經(jīng)訓(xùn)練好的模型,打開IMX219 攝像頭,分別對正確佩戴口罩、錯誤佩戴口罩和未佩戴口罩這3 類情況進行試驗。其中為了加大識別難度,加入了用手遮擋面部這種情況,并將其顯示為未佩戴口罩這一類。得到檢測結(jié)果如圖8~11 所示。
圖8 正確佩戴口罩檢測結(jié)果
圖9 錯誤佩戴口罩檢測結(jié)果
圖10 未佩戴口罩檢測結(jié)果
圖11 用手遮擋面部檢測結(jié)果
找10 名實驗者進行口罩佩戴情況檢測實驗,做5輪實驗,每人共計被檢測8 次,即正確佩戴口罩、錯誤佩戴口罩、未佩戴口罩、用手遮擋4 種情況各2 次,一輪共計識別80 人次。其中識別結(jié)果與實際不符視作識別失敗,時間超過10 s視作識別超時。最終實驗結(jié)果見表2。表2 結(jié)果表明,采用YOLOv3 目標(biāo)檢測算法對口罩進行檢測,部署在Jetson Nano上的識別速率達到平均25 F/s,識別成功率達到95%以上。
表2 口罩檢測實驗結(jié)果
在Web端遠程控制實驗中,當(dāng)?shù)卿浀骄W(wǎng)頁主界面后,Jetson Nano會立即調(diào)用USB 攝像頭,獲取實時畫面更新到網(wǎng)頁客戶端中;當(dāng)文本框中輸入指定內(nèi)容,點擊發(fā)送按鈕后,Jetson Nano調(diào)用語音模塊程序,將文字內(nèi)容轉(zhuǎn)換為音頻文件,利用揚聲器播放語音提示;當(dāng)按下解鎖按鈕后,Jetson Nano引腳立即變?yōu)楦唠娖?,電控鎖通電使得鎖舌縮回,實現(xiàn)解鎖。
當(dāng)訪客的身份得以核實,且正確佩戴口罩,則可以解鎖通行,并通過微信提示的方式告知管理員;當(dāng)未知訪客的身份無法確認,則將拍照圖像和提醒通過郵件形式通知管理員。
本文提供了一種基于Jetson Nano 的智能門禁系統(tǒng)方案,具備人臉識別、口罩檢測、遠程控制等非接觸式功能,利用IMX219 攝像頭、人臉識別算法實現(xiàn)人臉的判別;利用IMX219 攝像頭、目標(biāo)檢測算法實現(xiàn)口罩佩戴情況的檢測;利用雙頻無線網(wǎng)卡、USB 攝像頭、揚聲器等實現(xiàn)基于網(wǎng)頁客戶端的遠程控制。
在智能化、實用性、性能等方面上,明顯優(yōu)于現(xiàn)階段常見的以普通單片機為開發(fā)平臺的門禁系統(tǒng)。在疫情的特殊時期,該方案具有一定的應(yīng)用價值,后續(xù)將從功能拓展、降低成本等方面進一步優(yōu)化該系統(tǒng)。