陳 放,劉曉瑞,楊明業(yè)
(1.青島大學(xué)自動化學(xué)院,山東青島 266071;2.青島大學(xué)未來研究院,山東青島 266071;3.電子科技大學(xué)機(jī)器人研究中心,成都 611731)
(?通信作者電子郵箱liuxiaorui@qdu.edu.cn)
隨著硬件計算能力的提高,基于神經(jīng)網(wǎng)絡(luò)解決人臉識別問題的方法越來越多。人臉識別技術(shù)[1-2]被廣泛地應(yīng)用于生活和工作當(dāng)中。人臉識別的任務(wù)包括兩類:一類是將給定人臉進(jìn)行分類,作為分類問題識別給定人臉的特定身份;另一類是驗證一對人臉是否具有相同的身份。本文研究內(nèi)容聚焦于融合人臉識別與活體檢測算法,針對實時人臉活體檢測與識別的問題開展研究。
目前的主流技術(shù)路線是基于神經(jīng)網(wǎng)絡(luò)的人臉驗證。深度學(xué)習(xí)時代的人臉識別有兩種思想,即度量學(xué)習(xí)[3-4]和基于邊緣的分類[5-6],而最近的一些工作包括探索更好的損失函數(shù)以及在遮擋、姿態(tài)變化下的人臉識別等,以提高人臉識別的性能。DeepID[7]利用深度卷積網(wǎng)絡(luò),聯(lián)合識別信號和驗證信號,在LFW(Labled Faces in the Wild)數(shù)據(jù)集上實現(xiàn)了99.15%的人臉驗證精度,這也是人臉識別技術(shù)首次在無約束場景下超越人類眼睛的識別能力。從這之后,人臉識別算法不斷改進(jìn),文獻(xiàn)[3]提出了一種基于三元組損失的無對齊大規(guī)模人臉圖像訓(xùn)練方法FaceNet,有效實現(xiàn)了對人臉數(shù)據(jù)的識別、驗證和聚類,該方法在LFW 和YouTubeFaces[8]數(shù)據(jù)集上達(dá)到了較高性能水平。文獻(xiàn)[7]提出了NormFace,通過對softmax 損失函數(shù)的修改,以優(yōu)化余弦相似度并重新制定度量學(xué)習(xí)。在SphereFace[9]中,提出了一種新的A-softmax(Angular softmax)損失函數(shù),并在MageFace 挑戰(zhàn)中取得了很好的效果。文獻(xiàn)[6]在SphereFace 基礎(chǔ)上提出了ArcFace,改進(jìn)了對特征向量歸一化和加性角度間隔,提高了類間可分性,加強(qiáng)類內(nèi)緊度和類間差異。文獻(xiàn)[10]提出了分配蒸餾損失函數(shù),用于提高困難樣本在一般任務(wù)上的性能。
雖然人臉識別技術(shù)在現(xiàn)實生活中已被廣泛應(yīng)用,但是其對欺詐攻擊的抗擾度仍亟待提高。通常,欺詐攻擊的方式包括照片攻擊[11-12]、視頻攻擊[13]、3D Mask 攻擊[14]和虛擬現(xiàn)實(Virtual Reality,VR)攻擊[15]。從理論上講,相機(jī)實時獲取的真實面部數(shù)據(jù)和欺詐攻擊所使用的人臉面部數(shù)據(jù)之間存在固有差異,包括圖像紋理、光譜信息、運動信息、深度信息等,這些差異在安全問題中都極具挑戰(zhàn)性。有關(guān)人臉活體檢測方面的研究主要集中在三個方面:基于手工設(shè)計特征表達(dá)的方法、基于深度學(xué)習(xí)的方法和基于融合策略的方法。文獻(xiàn)[12]提出了通過顏色紋理分析的方法進(jìn)行人臉反欺騙檢測。文獻(xiàn)[16]提出了互動式活體檢測算法,但該算法需要人機(jī)交互,對用戶并不友好。文獻(xiàn)[17]首次把人臉深度圖作為活體與非活體的判別依據(jù),但獲取深度圖需要復(fù)雜昂貴的設(shè)備。FeatherNets[18]給出了輕量化神經(jīng)網(wǎng)絡(luò)的解決方案,但仍需要大量的多態(tài)數(shù)據(jù)集,并且實時檢測需要獲取深度圖和紅外圖,計算量大。
針對欺騙攻擊,3D 人臉識別的優(yōu)勢是高識別率和高安全性,但是設(shè)備復(fù)雜昂貴,計算工作量大,需要用戶的協(xié)作。而2D 人臉識別方法采集所需硬件簡單,算法計算工作量少,用戶不需要根據(jù)活體檢測的提示作出相應(yīng)的動作。這使得2D人臉識別方法成為適用于嵌入式和移動設(shè)備生物識別的解決方案。
輕量級神經(jīng)網(wǎng)絡(luò)的出現(xiàn),在保證模型準(zhǔn)確率的同時,體積更小,速度更快。文獻(xiàn)[19]提出了SqueezeNet,在大幅降低模型參數(shù)量的前提下,最大限度地提高運算速度,它能夠在ImageNet 數(shù)據(jù)集上達(dá)到與AlexNet近似的效果,但是參數(shù)量只是AlexNet 的2%。在ImageNet 上,Xception[20]比InceptionV3的準(zhǔn)確率稍高,同時參數(shù)量有所下降,并加入類似ResNet 的殘差連接機(jī)制,顯著加快了收斂過程。MobileNetV2[21]提出了新的倒殘塊結(jié)構(gòu),可以用較少的運算量得到較高的精度。ShuffleNetV2[22]通過多種評估指標(biāo)建立新架構(gòu),并在速度和準(zhǔn)確性權(quán)衡方面稍優(yōu)于其他模型。MobileNetV3[23]利用組合互補(bǔ)搜索技術(shù)并對網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn),在ImageNet 分類實驗取得不錯的效果。
針對目前人臉活體檢測算法存在的計算量大、對用戶不友好、不易應(yīng)用于嵌入式系統(tǒng)的問題,本文提出了一種在無需用戶配合的單目攝像頭場景下實現(xiàn)活體檢測和人臉驗證的方法。該方法具有計算量低、識別率高、簡單高效、魯棒性好的特點,并可嵌入式應(yīng)用到門禁安防系統(tǒng)。
本文工作主要包含兩方面:
1)通過融合活體檢測算法和人臉識別算法設(shè)計了一種低成本且精確度可行的2D人臉反欺騙安防系統(tǒng)。
2)在CASIA-FASD(Chinese Academy of Sciences Institute of Automation-Face Anti-Spoofing Datasets)數(shù)據(jù)集以及Replay-Attack數(shù)據(jù)集上,對實時輕量級活體檢測模型[19-23]的性能進(jìn)行驗證,獲得了較好的結(jié)果。
人臉反欺騙認(rèn)證系統(tǒng)的總體架構(gòu)由三部分組成:MTCNN(Multi-Task Convolutional Neural Network)人臉檢測裁剪模塊,人臉反欺騙模塊和FaceNet 人臉認(rèn)證模塊,如圖1 所示。通過單目攝像頭提取用戶的面部信息,利用MTCNN模塊進(jìn)行人臉檢測和人臉對齊。對齊的面部信息輸入到人臉反欺騙模塊中,人臉反欺騙算法將判斷面部的真實性。判定面部信息為偽造,則面部識別結(jié)束;判定面部信息為真實時,F(xiàn)aceNet允許身份驗證成功的用戶通過安防系統(tǒng)。
文獻(xiàn)[1]提出了人臉檢測對齊算法,該算法設(shè)計了一種輕量級的卷積神經(jīng)網(wǎng)絡(luò)以確保良好的實時性能,并提出了一種在線硬樣本挖掘策略以進(jìn)一步提高性能。
MTCNN 的網(wǎng)絡(luò)結(jié)構(gòu)分為三層:P-Net(Proposal Network)、R-Net(Refine Network)、O-Net(Output Network)。圖像由三個網(wǎng)絡(luò)處理以獲取面部信息。首先,連續(xù)調(diào)整輸入圖像的大小以獲取圖像金字塔;其次,將其輸入P-Net 以獲取大量候選對象;最后,R-Net 更精確地過濾許多候選對象,并將其輸入O-Net以獲取面部坐標(biāo)的位置。
本文選擇了兩種可行的方案實現(xiàn)人臉反欺騙功能:基于色彩紋理分析方法和利用輕量級卷積神經(jīng)網(wǎng)絡(luò)的方法。所提方法可以在視頻中單獨一幀或者視頻序列上運行,因此可以實現(xiàn)實時檢測。
1.2.1 基于色彩紋理分析的人臉反欺騙
局部二值特征(Local Binary Pattern,LBP)是文獻(xiàn)[24]提出的灰度圖像局部紋理特征描述符。傳統(tǒng)的特征描述符LBP的提取方法是將原始圖像劃分為n×n個block,每個block 又劃分為a×a個cell。每個cell 的大小為3×3,通過LBP 提取每個cell 的特征。將中心像素的值作為閾值,并與中心像素點臨近的8個cell像素的值進(jìn)行比較,計算式如下:
其中:xc、yc為3×3 區(qū)域的中心點,其像素的值為ic;ip表示區(qū)域內(nèi)其他像素的值;p為第p個像素點。s(x)為符號函數(shù),定義如下:
得到各個像素點的編碼值,將其連接成一個二進(jìn)制值并轉(zhuǎn)化成一個十進(jìn)制的值,用十進(jìn)制值代替原來中心點的閾值,即LBP 描述符的值。這種方法可以生成的結(jié)果為256 種,結(jié)果過于復(fù)雜,不利于面部特征的提取。因此,文獻(xiàn)[25]提出了Uniform LBP,它優(yōu)化了傳統(tǒng)的LBP 描述符,通過過渡方法實現(xiàn)降維。從圖像帶i提取像素(x,y)的Uniform LBP 描述符編寫如下:
其中:(x,y)是鄰域的中心點;rn(n=0,1,…,P-1)為周圍鄰域點的像素值;rc為中心點的像素值;R為周圍鄰域的半徑;P為周圍鄰域點的個數(shù)。
式(3)中的U(i)定義如下:
式中的δ(x)為符號函數(shù),定義如下:
基于色彩紋理分析的人臉反欺騙方法(如圖2 所示),利用Uniform LBP 和支持向量機(jī)(Support Vector Machine,SVM),提取數(shù)據(jù)集中的人臉并裁剪為224×224的圖像,分別轉(zhuǎn)換為HSV(Hue,Saturation,Value)和YCbCr的顏色空間,提取各個顏色空間的LBP 特征直方圖,并串聯(lián)特征直方圖,在SVM中對真假人臉進(jìn)行分類。
圖1 人臉反欺騙認(rèn)證系統(tǒng)整體架構(gòu)Fig.1 Overall architecture of face anti-spoofing authentication system
圖2 人臉反欺騙過程Fig.2 Face anti-spoofing process
1.2.2 輕量級神經(jīng)網(wǎng)絡(luò)
輕量級神經(jīng)網(wǎng)絡(luò)[19-23]在保證模型準(zhǔn)確率的同時,體積更小,速度更快,能更好地應(yīng)用于實時檢測安防系統(tǒng)。本文將活體檢測定義為二分類問題,使用尺寸為224×224的面部數(shù)據(jù)集訓(xùn)練輕量級神經(jīng)網(wǎng)絡(luò),并將網(wǎng)絡(luò)結(jié)構(gòu)最后一層的線性激活函數(shù)改為Tanh 激活函數(shù)。因為多類型圖像分類與活體檢測二分類的權(quán)重著重點不同,采用適用于活體檢測的二分類模型進(jìn)行預(yù)訓(xùn)練,加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程的收斂。超參數(shù)選擇方面,Epoch 為150,Batch Size 為64,采用交叉熵?fù)p失函數(shù),優(yōu)化器選擇隨機(jī)梯度下降,權(quán)重衰減為4×10-5,Momentum 為0.9。根據(jù)上述條件對輕量級神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
1.3.1 FaceNet結(jié)構(gòu)
在FaceNet進(jìn)行人臉識別時,從網(wǎng)絡(luò)中提取一層作為輸出特征,并使用輸出特征向量訓(xùn)練分類器。FaceNet模型的結(jié)構(gòu)如圖1所示,batch處理是指輸入的人臉圖像樣本,樣本通過面部檢測并裁剪為160×160的圖像。FaceNet 的深度框架采用GoogleNet,在傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上加入了多個Inception 結(jié)構(gòu),在此基礎(chǔ)上進(jìn)行優(yōu)化,將GoogleNet 最后一層的softmax 分類器去掉,替換成一個L2 特征歸一化的嵌入層,經(jīng)過L2 的歸一化,輸出一個128 維的特征向量,并用Triplet Loss進(jìn)行優(yōu)化。
1.3.2 Triplet Loss
從包含樣本的三元組計算出三元組損失。其中,三元組由Anchor(A)、Negative(N)和Positive(P)組成。設(shè)一個樣本為A,與A 是同一類的樣本為P,與A 不同類的樣本為N,三重?fù)p失的學(xué)習(xí)過程如圖1所示。
A和P之間的歐氏距離可能非常大,而A和N之間的歐氏距離可能很小。在網(wǎng)絡(luò)學(xué)習(xí)過程中,A 和P 之間的歐氏距離將逐漸減小,而A 與N 之間的歐氏距離將逐漸增大。網(wǎng)絡(luò)將直接學(xué)習(xí)特征之間的可分離性:同一類樣本特征之間的距離應(yīng)盡可能小,而不同類樣本特征之間的距離應(yīng)盡可能大。其公式化表示如式(6)所示:
其中:f(x)∈Rd表示一張照片x嵌入到d維歐氏空間;第一項2 范數(shù)表示類內(nèi)距離,第二項2 范數(shù)表示類間的距離;α為常數(shù);+表示中括號內(nèi)的值大于零的時候,取該值為損失,小于零的時候,損失為零;M為基數(shù)。
畢業(yè)生是指在學(xué)校學(xué)習(xí)期滿,達(dá)到規(guī)定的要求,準(zhǔn)予畢業(yè)的學(xué)生。在計劃經(jīng)濟(jì)市場下,畢業(yè)生直接分配到企業(yè)就業(yè),沒有機(jī)會進(jìn)行自主選擇。現(xiàn)如今的就業(yè)環(huán)境下,畢業(yè)生在取得畢業(yè)證和學(xué)位證后,可以結(jié)合自己的興趣、性格、價值觀和所學(xué)專業(yè)知識,進(jìn)行自我推銷,從而進(jìn)入心儀的企業(yè)工作,可以將自己的所學(xué)真正應(yīng)用到生產(chǎn)實踐中,降低了跳槽的幾率,增加了畢業(yè)生自我效能感和成就感。
本章將對所提出的人臉反欺騙身份認(rèn)證系統(tǒng)方法進(jìn)行實驗評估。
為了使實驗更加客觀和公正,并重現(xiàn)結(jié)果,本文選擇了被廣泛接受的數(shù)據(jù)集CASIA-FASD[26]和Replay-Attack[27]。
2.1.1 CASIA-FASD
CASIA-FASD 數(shù)據(jù)集由600 個視頻組成,包括50 個對象,每個對象都有12個視頻,其中,3個視頻有訪問權(quán)限,9個視頻沒有訪問權(quán)限。數(shù)據(jù)集有3 種不同類型的視頻,質(zhì)量分別為低、普通、高。非法訪問視頻具有3 種不同類型的攻擊方法,包括彎曲照片攻擊、剪切照片攻擊和視頻攻擊。數(shù)據(jù)集包含訓(xùn)練數(shù)據(jù)集和開發(fā)數(shù)據(jù)集兩個部分,訓(xùn)練數(shù)據(jù)集有240 個視頻,開發(fā)數(shù)據(jù)集有360 個視頻。CASIA-FASD 數(shù)據(jù)集如圖3所示。
圖3 CASIA-FASD數(shù)據(jù)集Fig.3 CASIA-FASD datasets
活體檢測利用人臉區(qū)域的高頻信息判別人臉真假,而高頻信息高度依賴于圖像質(zhì)量。對于欺詐攻擊,例如剪切照片攻擊、視頻攻擊等復(fù)制過程中不可避免地會降低面部紋理的質(zhì)量。通過對人臉紋理信息的分析和學(xué)習(xí),可以對真假人臉進(jìn)行正確的分類。這里的紋理代表人臉圖像中的高頻細(xì)節(jié)。剪切照片攻擊是指照片的眼睛部分被切斷,攻擊者可以隱藏在后面,并通過孔顯示面部運動。在彎曲照片攻擊中,攻擊者故意彎曲完整的照片,試圖模擬面部運動。視頻攻擊是通過錄制合法用戶人像的視頻,攻擊安防系統(tǒng)。其中剪切照片和彎曲照片攻擊會受到環(huán)境光照影響;二次錄制的視頻攻擊會引入諸如模糊和混疊之類的失真。因此欺詐攻擊與真實人臉存在差異。
2.1.2 Replay-Attack 數(shù)據(jù)集
Replay-Attack 數(shù)據(jù)集包含1 200 個具有50 個對象的視頻。每個對象都有24 個視頻,其中包括4 個有訪問權(quán)限的視頻和20 個非法訪問的視頻,每個視頻大約10 s。所有視頻均在3 種不同的背景和2 種不同的照明條件下制作。數(shù)據(jù)集包含3 個部分,包括訓(xùn)練數(shù)據(jù)集、開發(fā)數(shù)據(jù)集和測試數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)集和開發(fā)數(shù)據(jù)集的數(shù)量分別為360 個視頻,測試數(shù)據(jù)集中存在480個視頻。
為了得到計算量低、識別率高、活體檢測對用戶更友好的人臉識別安防系統(tǒng),本文通過比較模型參數(shù)量大小、識別精確度、系統(tǒng)經(jīng)過整個流程處理一幀圖像所需時間,以及CPU 占用率來驗證算法的性能。
本文將實驗的重點放在驗證算法反欺騙的性能上,利用CASIA-FASD 和Replay-Attack 數(shù)據(jù)集進(jìn)行實驗,數(shù)據(jù)集如表1所示。
CASIA-FASD 和Replay-Attack 數(shù)據(jù)集包含的視頻被Opencv 讀取并保存30 幀,對得到的圖像幀通過MTCNN 人臉對齊裁剪后將圖像幀尺寸歸一化為224×224的RGB圖像。
表1 數(shù)據(jù)集CASIA-FASD和Replay-Attack說明Tab.1 Dataset description of CASIA-FASD and Replay-Attack
本文使用數(shù)據(jù)集分別進(jìn)行訓(xùn)練和測試。在定量分析時,實驗采用準(zhǔn)確率(Accuracy,Acc)、等錯誤率(Equal Error Rate,EER)、半錯誤率(Half Total Error Rate,HTER)、接收者操作特征(Receiver Operating Characteristic,ROC)曲線作為算法的評價指標(biāo)。
在定量分析人臉安防系統(tǒng)的實時性時,本文通過系統(tǒng)處理一幀圖像所需時間以及CPU占用率來驗證算法的性能。
所有實驗均已在Windows 10 中安裝了Pycharm 的計算機(jī)上完成,處理器型號為Intel Core i5-8250U@ 1.60 GHz,內(nèi)存為8 GB。本文算法基于Pytorch 1.5 和TensorFlow 1.12 深度學(xué)習(xí)框架、使用Python 3.7語言實現(xiàn)。
本章使用CASIA-FASD 和Replay-Attack 數(shù)據(jù)集對比不同算法的EER、HTER、ROC 曲線、系統(tǒng)處理一幀圖像所需時間以及CPU 占用率的實驗結(jié)果,分析算法的優(yōu)缺點并選取計算量低、識別率高、魯棒性更好的算法。
CASIA-FASD 數(shù)據(jù)集共有18 000 張圖像,其中包含低質(zhì)量、正常質(zhì)量、高質(zhì)量圖像的欺詐攻擊以及彎曲照片攻擊、剪切照片攻擊和視頻攻擊,攻擊手段豐富,數(shù)據(jù)集復(fù)雜。而Replay-Attack 數(shù)據(jù)集共有25 200 張圖像,攻擊手段為視頻攻擊,控制變量為光照,數(shù)據(jù)集攻擊手段較為單一。由圖4~5可知:在攻擊手段單一的Replay-Attack數(shù)據(jù)集上,各個算法均能很好地進(jìn)行分類;而在復(fù)雜的CASIA-FASD 數(shù)據(jù)集上,LBP 算法仍能夠保持良好的分類性能。
圖4 在CASIA-FASD數(shù)據(jù)集上活體檢測算法的ROC曲線Fig.4 ROC curves of liveness detection algorithms on CASIA-FASD dataset
輕量級神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)集規(guī)模受限制的情況下,一方面受制于模型參數(shù)較少,即使在活體檢測模型下進(jìn)行預(yù)訓(xùn)練,網(wǎng)絡(luò)收斂過程仍然較慢;另一方面,在多圖像分類下能夠取得不錯的準(zhǔn)確率,但活體檢測更關(guān)注真實人臉和欺詐人臉之間的圖像紋理、光譜信息、運動信息、深度信息等細(xì)微差別,這對輕量級神經(jīng)網(wǎng)絡(luò)在活體檢測上提出了更高的要求。
圖5 在Replay-Attack數(shù)據(jù)集上活體檢測算法ROC曲線Fig.5 ROC curves of liveness detection algorithms on Replay-Attack dataset
由表2 可知,雖然LBP 算法在EER、HTER 的實驗結(jié)果上優(yōu)于其他算法,但本文通過與傳統(tǒng)活體檢測算法做實驗對比驗證了輕量級神經(jīng)網(wǎng)絡(luò)在活體檢測中的可行性,如表3 所示,其中M??tt? 等[28]提出了MLBP(Multi-scale Local Binary Pattern)的方法,通過分析人臉照片的紋理進(jìn)行人臉反欺騙檢測。由圖4~5、表2 可知,模型參數(shù)的大小也在一定程度上影響了活體檢測的精確度。
表2 在CASIA-FASD和Replay-Attack數(shù)據(jù)集上不同算法的性能比較Tab.2 Performance comparison of different algorithms on CASIA-FASD and Replay-Attack datasets
表3 不同算法在Replay-Attack數(shù)據(jù)集上的準(zhǔn)確率和誤判率 單位:%Tab.3 True positive rate and false positive rate of different algorithms on Replay-Attack dataset unit:%
圖6~7 驗證了LBP 算法在使用LBP 進(jìn)行人臉特征分類時花費時間最少,并且CPU 占用率較低。因為LBP 對于小樣本數(shù)據(jù)具有較好的分類效果,并且有較快的計算速度。
實驗的總體結(jié)果表明,LBP 算法與FaceNet算法融合的系統(tǒng)能夠在實時檢測效率高的同時,有效地識別偽造人臉對人臉識別安防系統(tǒng)的攻擊,并且輕量級神經(jīng)網(wǎng)絡(luò)在實時活體檢測中存在可行性。
圖6 人臉活體檢測身份認(rèn)證系統(tǒng)花費時間Fig.6 Time cost of authentication system with face liveness detection
圖7 不同算法的CPU占用率Fig.7 CPU usage for different algorithms
本文提出一種融合MTCNN、人臉反欺騙算法和FaceNet算法的人臉識別安防系統(tǒng)。通過在兩個具有挑戰(zhàn)性的人臉欺騙數(shù)據(jù)集CASIA-FASD 和Replay-Attack 上進(jìn)行實驗,驗證了實時輕量級活體檢測算法的性能較好。在實驗中,基于顏色紋理的人臉反欺騙方法在實時檢測環(huán)境下具有更高精確度和魯棒性,表明了該方法的可行性。在人臉識別安防系統(tǒng)的測試過程中,數(shù)據(jù)集和實際應(yīng)用場景會影響實時檢測的穩(wěn)定性和精確度。本文工作的后續(xù)計劃是對人臉識別系統(tǒng)進(jìn)行更多的實驗,進(jìn)一步提高實時檢測的魯棒性,在融合更先進(jìn)的人臉識別算法的同時建立適用于多維應(yīng)用場景的數(shù)據(jù)集。