盧 嫚,鄧浩敏
(西安工程大學 電子信息學院,西安 710048)
隨著人工智能的興起及其技術上的進步,越來越多的人工智能產(chǎn)品被用于行業(yè)服務中,其中人工智能中的一個分支人臉識別已融入我們的生活,為我們的生活安全提供一定的保障,如手機的人臉識別、車站的人臉識別身份驗證及校園的門禁系統(tǒng)、打卡系統(tǒng)等[1]。人臉識別之所以被如此廣泛使用,是因為與其他身份識別(如虹膜識別技術、指紋識別技術[2-3])相比較,它具有自然性、非強制性和非接觸性等優(yōu)勢,人臉識別技術可通過視頻監(jiān)控設備更加直觀、便捷地檢驗人員身份信息,具有簡潔、高效、經(jīng)濟以及可拓展等特點,可應用于安全驗證、視頻監(jiān)控、人員控制等諸多方面[4]。
本文基于深度學習模型MTCNN 及MobileFaceNet模型,對人臉識別系統(tǒng)展開設計。利用MTCNN 模型進行人臉檢測及圖像提取,采用MobileFaceNet 模型進行人臉特征提取,并通過構建本地人臉特征庫,完成對人臉圖像識別。MobileFaceNet 人臉識別算法同樣在移動及嵌入式等設備上識別精度較高,同時使用到的活體檢測技術量級小,能夠滿足本次設計需要。
圖像卷積即由卷積核在原始待處理圖像上按行列實現(xiàn)滑動遍歷,將對應元素進行相乘再加和的操作,得到的值即為對應位置的卷積值。所有像素遍歷結(jié)束后所得結(jié)果即可構成一幅圖像。不同的卷積核卷積效果不同,可用于圖像濾波、梯度運算等方面。
神經(jīng)網(wǎng)絡屬于層級結(jié)構模型,可用于處理圖像數(shù)據(jù)。基本框架包括:數(shù)據(jù)輸入層、卷積計算層、池化層、全連接層、輸出層,其中卷積計算層為核心部分。卷積神經(jīng)網(wǎng)絡的輸出一般需經(jīng)過卷積操作、池化操作及非線性激活函數(shù)映射等結(jié)構處理[5]。
池化用于縮小輸入圖像,降低所得特征平面的數(shù)據(jù)量,保留核心信息,獲取更為抽象的特征,防止過擬合。4×4 矩陣進行最大池化操作得到2×2 矩陣的結(jié)果,激活函數(shù)將非線性引入神經(jīng)網(wǎng)絡,變換空間,解決線性不可解的問題[6]。
深度可分離卷積由MobileNet V1[7]網(wǎng)絡模型提出,重要核心部分為將卷積拆分為Depthwise 和Pointwise。標準卷積參數(shù)數(shù)量為DK×DK×M×N,卷積核尺寸為DK×DK×M,共有N 個卷積核,每個進行Dw×Dh次運算,故標準卷積的計算量P1為
深度可分離卷積的計算量包括兩部分:深度卷積、逐點卷積。深度可分離卷積的參數(shù)量為DK×DK×M+1×1×M×N。深度卷積的卷積核尺寸為DK×DK×M,進行Dw×Dh次的乘加運算。逐點卷積的卷積核尺寸為1×1×M,共有N 個,進行Dw×Dh次的乘加運算。深度可分離卷積的計算量P2為
參數(shù)數(shù)量及乘加操作的運算量下降倍數(shù)P3為
由式(3)可得,深度可分離卷積與標準卷積相比,參數(shù)數(shù)量、計算量均大幅降低,模型的運算效率得到提升。但其只能工作于低維度,最終的卷積效果不佳。
使用邊框回歸能夠獲取目標在原始圖像中的位置信息,其數(shù)據(jù)集為{(Pi,Gi)}i=1,…,N,其中,代表第i 個帶預測的候選目標檢測框,Gi=(Gxi,Gyi,Gwi,Ghi),代表i 個真實目標檢測框。Pi中的Pxi為候選框中心點在原始圖像的x 坐標,Pyi為候選框中心點在原始圖像的y 坐標,Pwi為候選框長度,Phi為候選框?qū)挾?。Gi中的參數(shù)含義同理。
邊框回歸任務為利用某種映射關系,使候選目標框的映射目標框無限接近真實目標框,即給定一組候選目標框P=(Px,Py,Pw,Ph),找尋一個映射關系f,使邊框回歸示意圖如圖1所示。
圖1 邊框回歸示意圖Fig.1 Schematic diagram of border regression
圖中虛線框P、黑實線框G、長虛線框G^分別代表候選目標框、真實目標框、算法預測目標框。
人臉檢測第一步是在待測圖像中按照從左至右、從上至下的順序選取不同尺寸大小的矩形區(qū)域。第二步對矩形區(qū)域進行特征提取,提取到的特征用計算機表示即為特征向量,是用于分類的依據(jù)。第三步是使用訓練好的人臉分類器對上一步提取的特征向量進行分類,一般為0 和1,每個編碼對應一個類別,0 對應非人臉窗口,1 對應人臉窗口。人臉檢測的流程步驟如圖2所示。
圖2 人臉檢測流程Fig.2 Flow chart of face detection
本設計使用MTCNN 多任務卷積神經(jīng)網(wǎng)絡算法實現(xiàn)人臉檢測[8-9],能夠同時完成人臉區(qū)域檢測、人臉面部特征點檢測,是一種性能較好、速度快、精度高的檢測方法,故應用較廣泛。
MTCNN 架構可分為三級:P-Net 層、R-Net 層、O-Net 層[10-11]。MTCNN 訓練過程中利用三項任務對檢測器訓練:人臉/非人臉檢測、邊框回歸、人臉面部特征點位置。訓練內(nèi)容具體如下:
(1)人臉檢測分類:學習目標制定為二分類問題,對每個樣本xi使用交叉熵損失函數(shù)為
式中:pi代表神經(jīng)網(wǎng)絡預測樣本;xi為人臉部分的概率,代表ground-truth,∈{0,1}。
(2)邊框回歸:預測每個候選框與其最近的ground-truth 之間的偏差值。學習目標制定為回歸問題,損失函數(shù)使用平方差損失函數(shù)為
(3)人臉面部特征點坐標:與式(5)中邊框回歸類似,損失函數(shù)為平方差損失函數(shù)為
(4)多源訓練:每個卷積神經(jīng)網(wǎng)絡任務不同,使學習過程中存在不同類型的訓練數(shù)據(jù)集,可分為人臉、非人臉、部分對齊人臉。在訓練某個特定任務時,其他任務損失值應該為零,因此綜合全部任務的損失函數(shù)為
式中:N 代表訓練樣本數(shù)量;αj代表不同的網(wǎng)絡結(jié)構的損失函數(shù)所占權重不同。在P-Net 層和R-Net 層中,參數(shù)設置為αdet=1,αbox=0.5,αlandmark=0.5,而O-Net層最終需輸出面部特征點,參數(shù)設置為αdet=1,αbox=0.5,αlandmark=1,以便得到更準確的人臉特征點坐標;βij∈{0,1}是樣本類型指示器。此時能夠使用隨機梯度下降對CNN 進行訓練。
(5)在線挖掘困難樣本:與傳統(tǒng)方式相比,MTCNN需要在原始分類器訓練完成后挖掘困難樣本,實現(xiàn)在線操作。根據(jù)前向傳播階段中樣本的損失值排序,將每一批樣本的前70%作為困難樣本,在反向傳播階段中,只計算困難樣本的梯度。在訓練模型時,僅考慮困難樣本,進行有效訓練,而忽略對提高性能作用較小的簡單樣本,從而提高人臉檢測準確率。實驗證明這種方式相對手動選擇困難樣本而言性能更佳。
由于MTCNN 同時執(zhí)行人臉檢測和對齊任務,故使用4 種類型的數(shù)據(jù)進行訓練:①Negatives:IoU(Intersection-over-Union)比率小于等于0.3 的區(qū)域;②Positives:IoU 比率大于0.65 的區(qū)域;③Part faces:IoU 比率在0.4~0.65 的區(qū)域;④Landmark faces:含有標記5 個面部特征點的區(qū)域[12]。Negatives 數(shù)據(jù)和Positives 數(shù)據(jù)用以人臉分類,二者間所存在的跨度,更容易使模型收斂。Positives 數(shù)據(jù)和part faces 數(shù)據(jù)實現(xiàn)候選框回歸,二者都包含人臉部分,能夠完成回歸。Landmark faces 數(shù)據(jù)用以面部特征點定位。
本設計使用的MobileFaceNet 是MobileNetV2的改進版本,其保留了MobileNetV2 的升維、降維層及激活函數(shù),在全連接層前引入可分離卷積,提取到的特征更具有全局性及泛化性。主要改進內(nèi)容包括以下幾部分:
(1)MobileFaceNet 使用全局深化卷積層代替全局平均池化層,對同一張照片的不同像素點使用不同的權重,提高網(wǎng)絡表現(xiàn)力。全局深化卷積層為分層的卷積層,內(nèi)核大小與輸入大小相等。全局分層卷積層的輸出計算為
式中:F 是大小為W×H×M 的輸入特征圖;K 是大小為W×H×M 的深度卷積核;G 是大小為1×1×M 的輸出;G 中的通道m(xù)th只有一個元素Gm;(i,j)表示F和K 中的空間位置;m 表示通道索引。全局深度卷積的計算成本為W×H×M。
(2)用PReLU 代替ReLU 函數(shù),其在人臉驗證方面比ReLU 效果略佳。
ReLU 函數(shù)為
PReLU 函數(shù)為
PReLU 為ReLU 的改進型,在ReLU 的基礎上增加極少量的參數(shù),只增加少許網(wǎng)絡的計算量及過擬合危險性,但在負數(shù)區(qū)域表現(xiàn)效果更好。Mobile-FaceNet 算法流程如圖3所示。
圖3 人臉識別算法流程Fig.3 Algorithm flow chart of face recognition
活體檢測技術用來判別采集設備所采集的人臉是否為真實人臉,靜默活體檢測則是在被測者無感的情況下直接進行活體校驗,不需要被測者完成指定動作。
本設計采用基于傅里葉頻譜圖輔助監(jiān)督的靜默活體檢測方法的活體檢測算法?;铙w檢測技術在應用時,首先在采集到的視頻中捕獲RGB 單幀人臉圖像,對圖像中是否存在人臉區(qū)域進行判斷,完成人臉檢測。若存在人臉則進行活體檢測,與活體檢測閾值相比較進行判斷,大于輸出顯示真實人臉,小于則輸出顯示虛假人臉?;铙w檢測應用流程如圖4所示。
圖4 活體檢測應用流程Fig.4 Flow chart of liveness detection application
首先對未錄入用戶進行檢測識別,成功檢測到人臉區(qū)域并輸出5 個面部特征點,如圖5所示。結(jié)果顯示“Stranger”,人臉識別分數(shù)此時顯示為-0.0092,表示與數(shù)據(jù)庫中人臉對比失敗,沒有識別到相應的目標用戶。
圖5 未錄入用戶測試結(jié)果Fig.5 Test results of unregistered users
當未錄入用戶面部存在小范圍遮擋物時檢測,能檢測到人臉區(qū)域,如圖6所示。結(jié)果顯示“Stranger”,對未錄入用戶無法識別。人臉識別分數(shù)為0.0055,同樣表示與數(shù)據(jù)庫中人臉對比未成功。但當遮擋范圍包含3 個及3 個以上面部特征點時無法檢測到人臉。
圖6 未錄入用戶存在遮擋物測試結(jié)果Fig.6 Results of unregistered user tests with occluders
首先設置為人臉錄入模式,采集待測用戶人臉數(shù)據(jù),再設置為檢測模式,對已錄入用戶進行人臉檢測、識別,結(jié)果如圖7所示。
圖7 已錄入用戶測試結(jié)果Fig.7 Test results of entered users
成功識別到人臉目標,顯示正確用戶名“DHM”。人臉識別分數(shù)為0.8077,高于設置閾值0.4,表示與數(shù)據(jù)庫中人臉數(shù)據(jù)對比成功。
首先使用電子屏幕展示照片進行測試,結(jié)果如圖8所示。成功識別目標對象,識別到虛假人臉,在屏幕上顯示用戶名及“Fake face”,結(jié)果判斷為虛假人臉。可見活體檢測置信度數(shù)據(jù)為0,表示該檢測目標對象為非活體,人臉識別分數(shù)為0.7539,與數(shù)據(jù)庫中的人物對比成功,輸出用戶名。
圖8 電子屏幕照片識別結(jié)果Fig.8 Recognition results of electronic screen photos
使用真實移動人臉測試,系統(tǒng)能夠準確檢測到攝像頭所采集區(qū)域移動的人臉目標,結(jié)果如圖9所示。顯示用戶名及“True face”,成功識別真實人臉?;铙w檢測置信度數(shù)據(jù)為0.9983,大于活體檢測閾值0.89,判斷為真實人臉并輸出結(jié)果。
圖9 移動人臉識別結(jié)果Fig.9 Recognition results of moving faces
真實人臉佩戴口罩進行檢測,面部有小范圍遮擋物,即遮擋2 個及2 個以下的面部特征點時可識別出人臉目標,并成功判斷為活體,如圖10所示。
圖10 移動人臉存在遮擋識別結(jié)果Fig.10 Recognition results of moving faces with occlusion
本文設計了人臉檢測識別系統(tǒng),并實現(xiàn)活體檢測功能,人臉檢測模塊使用MTCNN 算法,將待測圖像經(jīng)P-Net、R-Net、O-Net 層層處理,輸出人臉候選框及面部特征關鍵點坐標,人臉識別模塊使用MobileFaceNet 算法,根據(jù)MTCNN 輸出的人臉面部特征點進行識別判斷,活體檢測模塊基于小視科技的靜默活體檢測項目完成,對紙質(zhì)照片及3D 模型等虛假人臉能夠進行檢測,判斷是否為真實的人臉。本設計將人臉檢測跟蹤、人臉識別和活體檢測三部分結(jié)合起來,可應用于門禁系統(tǒng)、簽到打卡系統(tǒng)等方面,能有效防止不法分子進行的活體檢測攻擊。實驗證明,系統(tǒng)誤檢率較低,符合設計要求。