王賽楠 楊 誠
(常州信息職業(yè)技術學院網(wǎng)絡空間安全學院 江蘇常州 213164)
社區(qū)作為承載社會人口的重要單位,安全風險尤為顯著,因此對社區(qū)實施智能化管理,確保社區(qū)安全至關重要。傳統(tǒng)社區(qū)門禁通常采用門禁卡形式,但門禁卡被業(yè)主所持,存在丟失和被復制的風險,為社區(qū)安全管理帶來一定挑戰(zhàn)。另外,業(yè)主時常忘記攜帶門禁卡,導致出行不便的同時,保衛(wèi)處難以落實進出小區(qū)人員管控。針對上述問題,本文提出了基于人臉關鍵點檢測的社區(qū)門禁系統(tǒng),不僅對社區(qū)出入口進行實時監(jiān)控,而且能智能識別陌生人和可疑人員,為社區(qū)居民提供了更安全的生活環(huán)境。該系統(tǒng)采用人臉識別方式[1],替代門禁卡識別,業(yè)主無需攜帶門禁卡,步行通過社區(qū)門禁區(qū)域即可完成來訪人員的人臉識別,并記錄來訪數(shù)據(jù),實現(xiàn)無接觸式門禁,從而方便業(yè)主出行,確保社區(qū)安全。另外,本系統(tǒng)融入人臉關鍵點檢測,確保人臉在不同角度的情況下,依然能被準確識別。
Hubel和Wiesel對貓腦視覺皮層開展研究,并首次提出了“感受野”[2]概念,該概念對卷積神經(jīng)網(wǎng)絡的出現(xiàn)起到重要啟示作用。LeCun結合反向傳播算法與權值共享策略[3],設計了首個卷積神經(jīng)網(wǎng)絡模型,并成功將其應用到美國郵局的手寫字符識別系統(tǒng)。隨后LeCun對該模型進一步修改,提出了經(jīng)典網(wǎng)絡模型LeNet-5,使得手寫字符識別率大幅提高。該模型奠定了卷積神經(jīng)網(wǎng)絡的基礎,設計了基本結構,包括輸入層、卷積層(convolutional layer)、池化層(pooling layer,也稱為取樣層)、全連接層及輸出層[4-6]。卷積層主要用于特征提取[7],池化層主要是對特征進行抽樣,全連接層是將提取特征圖連接,最后通過分類器確定分類結構。上述卷積神經(jīng)網(wǎng)絡模型雖然在手寫數(shù)字識別中取得了良好效果,但只適合做小圖片的識別,對于大規(guī)模數(shù)據(jù),識別效果不佳。
Alex等人提出了多層深度卷積神經(jīng)網(wǎng)絡模型,并在ImageNet大規(guī)模視覺識別挑戰(zhàn)競賽(ImageNet Large Scale Visual Recognition Challenge,LSVRC)中取得最佳成績。該模型采用雙GPU并行結構,提高了模型訓練速度,并提出ReLU函數(shù)[8],降低了模型復雜度。隨后,Szegedy等人提出GoogleNet結構,將CNN結構延伸超過20層[9]。He等人采用殘差網(wǎng)絡[10-12](Residual Networks,ResNet)來解決梯度消失的問題,確保底層網(wǎng)絡得到有效訓練,使得算法準確率顯著提升。上述深度卷積神經(jīng)網(wǎng)絡在圖像分類的精度上取得了巨大進步,但是在現(xiàn)實生活中,受到人臉角度的影響,模型表現(xiàn)不佳。因此,針對社區(qū)門禁場景,迫切需要能應對人臉角度問題的人臉社區(qū)門禁監(jiān)控系統(tǒng)。
功能性需求要求系統(tǒng)不僅能對社區(qū)出入口區(qū)域進行實時監(jiān)控,而且能對來訪人員的身份進行識別,并記錄來訪數(shù)據(jù),為社區(qū)居民提供更安全的生活環(huán)境,因此主要包括以下兩個方面:
1)圖像采集模塊是利用攝像頭等傳感設備采集社區(qū)業(yè)主人臉圖像,并支持活體檢測和人臉特征提取等功能,以構建社區(qū)業(yè)主人臉特征數(shù)據(jù)庫。另外,圖像采集模塊需提供交互界面,方便物業(yè)完成人臉采集。
2)智能人流統(tǒng)計模塊需要實時監(jiān)控社區(qū)門禁畫面,采集當前畫面中的人臉特征信息,并與社區(qū)業(yè)主人臉特征數(shù)據(jù)庫進行匹配,以識別人員身份。另外,該模塊支持社區(qū)人員出入數(shù)據(jù)統(tǒng)計,能以excel格式導出統(tǒng)計結果。
1)系統(tǒng)可靠性是指圖像采集模塊和智能人流統(tǒng)計模塊均能長期可靠運行,一方面人臉識別算法能可靠完成人臉識別,確保識別結果無誤;另一方面系統(tǒng)在運行中確保穩(wěn)定性,運行期間不存在任何故障。
2)系統(tǒng)高效性是指圖像采集模塊和智能人流統(tǒng)計模塊均能滿足實際使用的響應速度,一方面界面的響應時間不高于某個閾值,另一方面系統(tǒng)算法處理速度不高于某個閾值。
為搭建基于人臉關鍵點檢測的社區(qū)門禁系統(tǒng),首先利用圖像采集模塊,對業(yè)主進行人臉關鍵點采集,構建人臉特征數(shù)據(jù)庫。隨后利用智能人流監(jiān)控模塊,實時采集監(jiān)控圖像,基于人臉關鍵點矯正策略,提取當前幀的人臉特征,并與人臉特征數(shù)據(jù)庫進行比對,識別人員身份,以控制閘門的打開與閉合。另外,利用人流監(jiān)控算法,統(tǒng)計人員進出情況,并存檔到數(shù)據(jù)庫中。
3.1.1 算法設計
圖像采集模塊通過人臉關鍵點匹配算法進行人臉矯正,矯正后的圖片輸入卷積神經(jīng)網(wǎng)絡,提取深層人臉特征。然后將該特征添加到人臉特征數(shù)據(jù)庫,即可完成社區(qū)業(yè)主人臉特征的采集。
人臉特征提取過程如圖1所示,首先利用人臉檢測器獲取當前幀的人臉位置,即圖中人臉矩形框的坐標值。然后將人臉坐標參數(shù)傳入人臉關鍵點檢測器,并利用人臉關鍵點檢測算法獲取106個人臉關鍵點。隨后基于人臉關鍵點進行裁剪、旋轉(zhuǎn)、縮放等操作,將人臉進行對齊,即可得到矯正后的正面人臉。最后將對齊后的人臉圖像傳入人臉特征提取器,通過多層卷積神經(jīng)網(wǎng)絡能夠提取128維的顯著人臉特征。
圖1 人臉特征提取流程
3.1.2 界面設計
1)圖像組件:用于顯示所采集圖片,組件大小為800×600,組件左上角位置坐標是(240, 20)。
2)下拉框組件:通過下拉框選擇相應人臉圖片,讀取圖片信息并在圖像組件中進行顯示,以便后續(xù)人臉特征的提取。組件大小為200×40,組件左上角位置為(240, 640),下拉框條目包括業(yè)主人臉圖片文件夾中的所有圖片名。
3)標簽組件:根據(jù)下拉框選擇的人臉圖像進行活體檢測,并在標簽組件中輸出檢測結果。如果活體檢測為真,標簽組件顯示“該圖片中包含真人,可進行下一步操作”,同時“更新數(shù)據(jù)庫”按鈕設置為可用狀態(tài)。否則,標簽組件顯示 “該圖片中未包含真人,請換一張圖片”,同時禁用“更新數(shù)據(jù)庫”按鈕。組件大小為350×40,組件左上角位置是(470, 640),標簽字體用15號字體。
4)按鈕組件:點擊“更新數(shù)據(jù)庫”按鈕,在標簽組件中顯示當前圖片中的人數(shù),在圖像組件中繪制相應人臉框,同時更新數(shù)據(jù)庫中的人臉特征。組件大小為200×40,組件左上角位置是(840, 640),文字是“更新數(shù)據(jù)庫”。
3.2.1 算法設計
智能人流監(jiān)控模塊基于視頻流時間維度信息設計神經(jīng)網(wǎng)絡模型,檢測當前幀的人臉坐標框,不僅能夠準確定位人臉位置,而且基于人臉關鍵點能有效應對人臉角度變化問題。隨后通過特征采集算法提取當前幀的人臉特征,計算該特征與社區(qū)業(yè)主人臉庫特征的余弦相似度。選擇最大相似度,如果超過閾值,則作為識別結果。余弦相似度計算公式如下:
其中,F表示當前人臉特征向量,G表示人臉特征庫中的某一特征向量,n表示特征向量的維度。
通過上述操作,即可識別當前業(yè)主身份并確定人臉位置。然后根據(jù)人臉位置列表,完成人臉區(qū)域檢測。首先將當前監(jiān)控區(qū)域劃分為A區(qū)、B區(qū)和C區(qū),然后計算各區(qū)域與人臉框的重疊面積,通過最大重疊面積判定當前行人所處區(qū)域。
如圖2所示,利用上述模型和區(qū)域判定方法,對監(jiān)控畫面實時進行處理。然后設計合理算法,統(tǒng)計人員進出社區(qū)情況,并將結果記錄到表格中。算法設計規(guī)則是人員從A區(qū)穿越到C區(qū)視為一次進入,從C區(qū)穿越到A區(qū)視為一次離開。
圖2 社區(qū)人流監(jiān)控模塊
3.2.2 界面設計
為方便業(yè)主進出小區(qū),設計了人流監(jiān)控界面。該界面設計簡潔,實時顯示當前攝像頭采集的數(shù)據(jù)、人臉追蹤結果和行人識別結果。
界面僅包含圖像組件,組件大小為1 920×1 080,左上角位置是(0, 0),用于顯示實時監(jiān)控畫面。在監(jiān)控畫面上繪制人臉矩形框和文本字符串,具體要求如下:① 矩形框。坐標設置為當前人臉框的左上角坐標和右下角坐標,坐標值為模型檢測結果。② 文本字符串。文本內(nèi)容是人員身份信息,位置處于人臉框正上方。
硬件設備為SenseInnoKit AI 開放硬件平臺,包括邊緣計算開發(fā)板NVIDIA Jetson nano、13.3 寸(1 920×1 080)觸摸屏和開發(fā)工具(SDK)等。編程語言為Python,編程軟件為VSCode。
圖像采集模塊通過下拉框選擇待注冊的人臉圖像,所選圖像顯示在圖像組件中,同時調(diào)用活體檢測算法,并將檢測結果顯示在標簽組件中。
當采集人臉非活體時,標簽組件顯示“該圖片中未包含真人,請換一張圖片”,并且更新數(shù)據(jù)庫按鈕失效,無法進行數(shù)據(jù)庫更新。
當采集人臉是活體,標簽顯示“該圖片中包含真人,可進行下一步操作”,更新數(shù)據(jù)庫按鈕有效。
隨即點擊更新數(shù)據(jù)庫按鈕,系統(tǒng)依次調(diào)用人臉檢測器、人臉關鍵點檢測器和人臉特征提取器,完成當前人臉特征的提取,并將特征列表寫入文件。
數(shù)據(jù)庫更新完成后,標簽組件顯示“已在數(shù)據(jù)庫中添加Sandra的特征!”,并提醒用戶圖像采集操作已完成。
智能人流監(jiān)控模塊的攝像頭放置于社區(qū)進出口,能夠?qū)崟r采集監(jiān)控畫面。通過人臉關鍵點檢測來矯正人臉角度,并通過查找最大相似度識別人員身份。經(jīng)測試,算法運行幀率為15 fps,識別正確率為98.6%。用戶界面顯示當前監(jiān)控畫面,矩形框表示當前人臉位置,計算sim最大為0.8,超過閾值,因此識別人員為“sandra”,并在圖中用字符串表示。然后獲取前后幀,通過算法判定人員進出小區(qū)情況,并以規(guī)定格式記錄統(tǒng)計結果。
基于人臉關鍵點檢測的社區(qū)門禁系統(tǒng)首先采集業(yè)主的面部圖像,通過人臉檢測器、人臉關鍵點檢測器和人臉特征提取器提取人臉特征,構建完備數(shù)據(jù)庫。然后對小區(qū)門禁處實時監(jiān)控,基于人臉關鍵點矯正人臉角度,并與數(shù)據(jù)庫中的人臉比對,確定業(yè)主身份。通過上述方式實現(xiàn)了智慧門禁監(jiān)控系統(tǒng),業(yè)主無需攜帶門禁卡,通過人臉即可進出社區(qū),方便了業(yè)主出行。另外,系統(tǒng)能自動識別陌生人,防止陌生人隨意進入小區(qū),為社區(qū)居民提供了更安全的環(huán)境。