趙 洋,許 軍,靳永強,王藝鋼,梁迎春
(1.沈陽化工大學 計算機科學與技術學院,遼寧 沈陽 110142;2.遼寧省化工過程工業(yè)智能化技術重點實驗室,遼寧 沈陽 110142)
隨著科學技術的飛速發(fā)展,人臉識別技術廣泛應用于安防、商業(yè)和金融等領域。人臉識別系統(tǒng)會受到很多非法用戶的欺詐性攻擊。人臉的活體檢測是提高其安全性的一種有效手段,主要作用是區(qū)分真實人臉與人臉圖像,從而提高系統(tǒng)的安全性。文獻[1]提出了一種基于顏色紋理馬爾可夫特征和支持向量機遞歸特征消除的方法,通過判斷真實人臉和欺詐人臉之間的像素差異來區(qū)分是否是真實人臉。該方法雖然容易實現(xiàn),成本較低,但是準確率不理想。文獻[2]中提出了一種動作活體的檢測方法,該方法通過眼睛睜開與否和嘴巴張開與否的動態(tài)來判斷是否為活體,能達到很高的識別率,但需要用戶的高度配合,對用戶不太友好,實效性較差。文獻[3]中提出了一種基于熱紅外成像的方法判斷真實圖像和面具圖像的熱紅外圖差異,利用真實人臉與偽造人臉在熱紅外圖上的差異來區(qū)分是否為真實人臉,但該方法并不適宜當下大規(guī)模應用。
卷積神經網(wǎng)絡(Convolutional Neural Networks,CNN)的出現(xiàn),使圖像的特征提取效率顯著提高,不僅能得到圖像深度層次的語義信息,還能提高模型的泛化能力。文獻[4]中提出一種基于深度神經網(wǎng)絡(Deep Neural Network,DNN)學習特征進行活體檢測的方法,該方法雖然在識別效果方面表現(xiàn)優(yōu)異,但是面對圖像連續(xù)幀之間的空間變化,識別效果卻不盡如人意。文獻[5]中提出了基于MobileNetV2[6]輕量化的人臉識別方法。首先對人臉的LBP,RGB,HSV圖分別進行特征提取,將提取到的特征圖連接在一起繼續(xù)提取特征,最后進行識別。該方法可移植性比較理想,但是不能應對復雜的攻擊手段。文獻[7]中提出了一種基于多模型融合的可見光人臉活體檢測方法。該方法雖然取得了不錯的效果,但是對局部替換的活體檢測任務不是很友好。文獻[8]中通過塊的局部特征和顯著特征相結合的方式達到了人臉防偽的效果,但模型的泛化能力還需要進一步提高。DNN的發(fā)展使當今網(wǎng)絡能自發(fā)地提取人臉的特征信息,而引入注意力機制更能讓網(wǎng)絡聚焦于重要的信息區(qū)域,提高準確率。
針對以上問題,本文提出了一種多模態(tài)特征融合的人臉活體檢測算法。首先將人臉的RGB圖、深度圖和紅外圖分別輸入到18層殘差網(wǎng)絡(Residual Network-18,ResNet18)的前3個模塊中進行特征提?。蝗缓蠓謩e將每個模態(tài)的特征圖送到SENet(Squeeze-and-Excitation Network)中進行加權求和,在通道維度上對圖像進行拼接;最后將3個模態(tài)的圖像一起送入特征提取網(wǎng)絡進行特征匹配,得到判別結果。采用3個模態(tài)圖像的原因是:因為活體人臉的反射機制不同,紅外圖能夠很輕松地區(qū)分出真實人臉和偽造人臉的差異;深度圖通過人臉的3D數(shù)據(jù),能避免2D媒介的假臉攻擊,提高系統(tǒng)的安全性。通過引入注意力機制,表征于局部信息,找到最需要、最有用的信息,能夠提高模型的準確率。
CNN的出現(xiàn)極大地提高了圖像在特征提取方面的性能。它主要通過對圖像的層層表達,獲得圖像更深層次的語義信息。淺層的卷積層在特征提取的過程中只會提取到圖像的一些邊、角和顏色等信息。深層的卷積層能更容易地提取到語義信息?;铙w人臉和攻擊性人臉會在攝像頭捕捉的時候因為反射光的不同顯現(xiàn)差異。CNN通過對提取到的特征之間的差異判斷是真實人臉還是偽造人臉。本文主要采用神經網(wǎng)絡并行的方式,將3種模態(tài)的圖像分別輸入網(wǎng)絡進行特征提取,得到更加豐富的人臉特征,對提取到的3個模態(tài)上的特征進行融合,然后將融合后的特征圖送入網(wǎng)絡得到語義特征,最后通過決策層進行分類鑒別。人臉識別流程如圖1所示。
圖1 人臉識別流程Fig.1 Face recognition flow
圖1中,人臉檢測是在圖像或視頻中確定人臉的位置;圖像預處理是系統(tǒng)對獲得的受到各種條件或外部環(huán)境干擾的人臉圖片進行去噪、修正和過濾等處理;活體檢測是檢測人臉是否為真實人臉;特征提取是將人臉的信息進行數(shù)字化,然后通過轉化成特征向量的形式對人臉進行表征[9];人臉識別是對提取到的人臉特征信息進行劃分,判斷屬于數(shù)據(jù)庫中的哪一類別。
通常情況下,特征的豐富程度是通過堆疊層的數(shù)量(深度)來實現(xiàn)的,但并不是網(wǎng)絡層數(shù)越多精度越高,而是呈先上升后逐漸降低的趨勢,所以并非所有的特征提取任務都適用較深的網(wǎng)絡結構。殘差網(wǎng)絡結構于2015年被提出,并且在ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)分類任務中取得了第一名的優(yōu)異成績[10]。ResNet18網(wǎng)絡結構如表1所示。
表1 ResNet18網(wǎng)絡結構Tab.1 ResNet18 network structure
由表1可以看出,ResNet18由res1,res2,res3,res4,res5和全連接層組成。其中res1中卷積核大小為7×7,通道數(shù)(卷積核個數(shù))為64。res2,res3,res4,res5每部分都由2個塊組成,每個塊執(zhí)行2次相同的卷積。塊內是殘差的形式,如圖2所示。
圖2 殘差結構Fig.2 Residual structure
圖2顯示的殘差結構[11]分別由F(X)部分和X恒等映射部分組成,F(xiàn)(X)由2個卷積層構成,每個卷積層后面都緊跟批量歸一化(Batch Normalization,BN)和ReLU激活函數(shù),既加快了模型的收斂速度,又增強了非線性的能力。F(X)將在模型反向傳播的過程中學習更新。如果殘差趨向于0,那么模型在前向傳播的過程中會更傾向于恒等映射X。
在獲取人臉圖像的過程中,攝像頭的像素、背景的復雜程度和光照強度[12]等因素可能會影響整個人臉識別的結果。為了增強系統(tǒng)的魯棒性,提高模型的準確率,本文需要對圖像進行增強[13]。首先要確定人臉位置,通過攝像頭獲取到視頻中的單幀圖像,利用圖像處理庫(Opencv)中Haar級聯(lián)方法對人臉進行定位,然后通過仿射變換矩陣實現(xiàn)對人臉的對齊。仿射變換矩陣如下:
(1)
式中,X′和Y′為矯正后的像素位置;θ為旋轉的角度;a,b為水平位移和垂直位移;x和y為原圖片的像素位置。通過計算左、右眼中心坐標,求得雙眼的傾斜夾角θ,通過逆時針旋轉θ°獲得對齊后的人臉。人臉校正的過程如圖3所示。
圖3 人臉校正Fig.3 Face correction
殘差網(wǎng)絡主要解決了隨著網(wǎng)絡層數(shù)的增加,精度丟失的問題。然而,在采用多模態(tài)進行訓練時,每張模態(tài)的圖片對檢測結果同等重要,而且模型在檢測的過程中應該傾向于學習對檢測結果重要的特征。如圖4所示,本文在ResNet18的基礎上,主要做了以下2個方面的改進:
圖4 優(yōu)化的網(wǎng)絡結構Fig.4 Optimized network structure
① 采用網(wǎng)絡并行的方式對3個模態(tài)的圖像進行特征提取,一能保證它們對模型同等的重要性并且保持特征之間的獨立性;二能提高模型的訓練速度。
② 在網(wǎng)絡并行模塊之后,加入了基于通道注意力機制的特征融合。每個特征圖對模型學習的幫助程度不同,添加了通道注意力機制后能夠更容易地學習重要的特征,提高識別的準確率。
由圖4可以看出,3個模態(tài)圖像分別經過res1,res2,res3網(wǎng)絡提取特征,然后基于注意力機制進行特征融合,送入到res4,res5繼續(xù)進行特征提取,最后經過自適應的平均池化層和全連接層進行決策分類。
2.2.1 并行層結構
ResNet18網(wǎng)絡結構中,采用res1,res2,res3這3個網(wǎng)絡模塊先進行特征提取,如圖5所示。
圖5 并行層中的殘差網(wǎng)絡結構Fig.5 Residual network structure in parallel layer
2.2.2 基于注意力機制的特征融合
SENet是一個輕量化的網(wǎng)絡[14],并且很容易和別的網(wǎng)絡模型結合在一起使用,如圖6所示。該網(wǎng)絡首先將提取后的特征圖經過全局平均池化操作獲得一個1×1×C(特征圖通道數(shù))的向量。然后經過2次卷積學習得到權重,對權重進行Softmax歸一化,既保證了權重大小都為正,又保證了權重都在0~1,權重之和為1。最后將操作生成的權重與原始的特征層相乘,加權到原有的通道上,對原始的特征進行重標定[15]。權重在模型的反向傳播中進行訓練更新。重要的信息分配的權重大,次要的信息分配的權重小,這樣就能得到一個對人臉活體檢測貢獻度不同的特征層。重要的特征對結果的影響會更大,模型也會更偏向學習這些重要的信息。
圖6 SENet 網(wǎng)絡結構Fig.6 SENet network structure
實驗環(huán)境為Windows 10操作系統(tǒng),CPU型號為Intel Core i5-10200H,8 GB內存,GPU型號為NVIDIA GeForce RTX 2060顯卡,6 GB顯存,編程框架為Pytorch 1.7.0,編程軟件為Pycharm。
在實驗的過程中迭代次數(shù)為90,批量處理圖片的大小(Batch size)為16,采用的優(yōu)化器為隨機梯度下降(Stochastic Gradient Descent,SGD)。學習率采用余弦退火函數(shù)[16],函數(shù)的表達式如下:
(2)
式中,T為總迭代次數(shù);M為保存模型次數(shù);T/M為一個周期的長度(以迭代次數(shù)step來算);t為當前迭代次數(shù);ɑ0為初始學習率;ɑ(t)為當前學習率。從式(2)可以看出,雖然余弦函數(shù)是周期函數(shù),但是只用到了[cos(0),cos(π)]區(qū)間內的值,而該區(qū)間周期性重復的操作由mod函數(shù)實現(xiàn)。由式(2)計算出的學習率范圍為[ɑ0,0],即每個周期內學習率從ɑ0衰減到0。
公開的數(shù)據(jù)集中大部分是RGB人臉圖像,這種圖像很容易受到攻擊,從而影響模型識別的精度。本文選用多模態(tài)的人臉活體檢測數(shù)據(jù)庫CASIA-SURF作為數(shù)據(jù)集。數(shù)據(jù)集中含有RGB圖、深度圖、紅外圖3個模態(tài),有1 000個類別,共492 522張人臉。整個數(shù)據(jù)集中有6種攻擊手段,分別是去除眼睛區(qū)域的展平打印圖片和彎曲打印圖片;去除鼻子區(qū)域的展平打印圖片和彎曲打印圖片;去除嘴巴區(qū)域的展平打印圖片和彎曲打印圖片。數(shù)據(jù)集按照7∶2∶1的比例分成訓練集、測試集和驗證集[17]。
實驗中采用平均分類錯誤率(Average Classification Error Rate,ACER)和準確率(Accuracy,ACC)作為實驗結果的評估指標,平均分類錯誤率越小、準確率越高表示算法的性能越好。平均分類錯誤率是指攻擊分類錯誤率(Attack Presentation Classification Error Rate,APCER )和正常分類錯誤率(Normal Presentation Classification Error Rate,NPCER)的均值[18]。計算方式如下:
(3)
(4)
(5)
(6)
式中,TP為活體人臉判定為活體人臉的數(shù)量;TN為非活體人臉判定為非活體人臉的數(shù)量;FP為非活體人臉判斷為活體人臉的數(shù)量;FN為活體人臉判斷為非活體的人臉數(shù)量。
3.4.1 基于注意力機制的特征融合實驗
在CASIA-SURF數(shù)據(jù)集上將基于注意力機制的特征融合和融合特征拼接(Concatenated Features)進行比較,實驗結果如表2所示。
表2 不同融合方法的實驗對比Tab.2 Experimental comparison of different fusion methods
從表2可以看出,基于注意力機制的特征融合方式在模型迭代90次后ACER為0.001,ACC為0.999。相比較普通的特征融合方式,本文提出的算法在平均錯誤率上減少了0.015,在準確率上提高了0.001。實驗表明,基于注意力機制的特征融合方式在CASIA-SURF數(shù)據(jù)集上得到了不錯的提升。
3.4.2 不同模態(tài)融合對比實驗
為了驗證不同模態(tài)融合對實驗結果的影響,本文分別在RGB單模態(tài)、RGB+Depth雙模態(tài)、RGB+IR雙模態(tài)和RGB+IR+Depths三模態(tài)上進行了實驗。實驗結果如表3所示。
表3 不同模態(tài)融合對比實驗Tab.3 Comparison experiment of different mode fusion
由表3可以看出,RGB+IR和RGB+Depth雙模態(tài)圖像與RGB單模態(tài)圖像相比,ACER分別減少了0.126和0.135;ACC分別提高了0.031和0.043。RGB+IR+Depth三模態(tài)和RGB單模態(tài)相比平均錯誤率減少了0.136,準確率提高了0.043;與RGB+Depth雙模態(tài)相比,在準確率相同的前提下,平均錯誤率減少了0.001。雖然紅外圖像對模型性能的提升較小,但紅外圖像具有光照不變性,同時可以在夜間進行識別。實驗表明,多模態(tài)融合的方式能很好地提高模型的準確率,降低模型的分類錯誤率。
3.4.3 不同CNN在數(shù)據(jù)集上的對比實驗
為了驗證模型的泛化能力,本文在CASIA-SURF數(shù)據(jù)集上對不同的CNN模型進行了人臉活體檢測實驗[19-22]。實驗結果如表4所示。
表4 不同CNN在數(shù)據(jù)集上的對比實驗Tab.4 Comparative experiments of different CNN on datasets
由表4可以看出,本文算法相比較其他的算法在平均錯誤率和準確率上都得到了有效的改進,證明了本文方法的優(yōu)越性。多模態(tài)特征融合的方法提取到的特征更加豐富,模型的魯棒性更加出色。
3.4.4 與其他活體人臉檢測算法的對比實驗
為了驗證本文算法的優(yōu)越性,本文與其他活體檢測算法進行了對比,實驗結果如表5所示。
表5 與其他活體人臉檢測算法的對比實驗Tab.5 Comparison experiment with other face anti-spoofing algorithms
由表5可以看出,文獻[23]中的方法通過近紅外圖像的特征進行人臉活體檢測,ACC為98.5%。文獻[24]中的方法通過紅外人臉中的紋理差異進行人臉活體檢測,ACC為96.7%。文獻[25]中的方法通過頭部姿態(tài)和面部表情融合的方式進行人臉活體檢測,ACC為96.7%。本文多模態(tài)特征融合的方法比以上3個文獻分別提高了1.4%,3.2%和3.2%。結果表明,本文提出的算法優(yōu)于其他活體人臉檢測算法。
針對人臉的欺騙性攻擊,本文提出了一種多模態(tài)特征融合的人臉活體檢測算法。該方法使用多模態(tài)的方式,每個模態(tài)特征提取采用相互并行的方式,加強了圖像的表征能力,減少了模型的訓練時間;為了提高預測結果的準確率,加快模型的收斂,使用通道注意力機制的方式對模型進行融合,在數(shù)據(jù)集CASIA-SURF上取得了優(yōu)異的成績。
本文以ResNet18網(wǎng)絡為基礎模型,實現(xiàn)了人臉的活體檢測,然而,隨著攻擊方式、外部環(huán)境的變化,提取的特征可能會發(fā)生變化從而造成誤判。因此,如何提高準確率,避免特征突變對識別結果帶來影響,是以后重點研究的問題。