王 奇,雷 航,王旭鵬
(電子科技大學 信息與軟件工程學院,成都 610054)
人臉驗證是計算機視覺的重要組成部分,其目標是基于一對一的比較,即判斷輸入的一組人臉圖像是否屬于同一對象[1]。近幾年來,該技術取得了突破性進展,也被廣泛應用于生活中各個領域。然而,大多數相關研究是基于普通RGB圖像,而普通的數碼相機很難在光照條件惡劣的情況下獲取有效的圖片信息[2],且大多數的方法均采用正面人臉信息作為輸入,而如何在頭部姿態干擾下進行有效的人臉驗證依然是該領域研究的重點[3]。
目前,廣泛應用的人臉驗證方法主要采用RGB 彩色圖像。隨著深度學習方法的深入研究,人臉驗證的準確性有了顯著提高,且大多數的方法在LFW 數據集[4]上的準確率超過了人類。其中,Schroff 等[5]構建了新的網絡FaceNet,該網絡將成對的圖像作為輸入,并引入三元組損失計算圖像之間的差異。Yang 等[6]將人臉圖像及其標簽用在一個分類框架中學習鑒別識別特征,然后Chen 等[7]直接利用這種分類信息計算一對圖像的相似度來判定該對圖像是否屬于同一組對象。Huang 等[8]將一種基于學習聚類的邊緣局部嵌入法和k-最近聚類算法相結合用于人臉識別和人臉屬性預測,該方法在識別方面的性能有了顯著提升。為解決低分辨率圖像的人臉驗證問題,Jiao 等[9]設計了一種雙域自適應結構來提高圖像質量,并提出了一種端到端低分辨率人臉翻譯與驗證框架,該框架在提高人臉圖像生成質量的同時也提高人臉驗證的精度。
隨著深度相機的普及,低成本、高質量和隨時可用的深度設備開始應用于各種計算機視覺任務[10]。深度圖也被稱為距離圖像和2.5D 圖像,其每個像素點代表設備到對應目標點的距離。與普通RGB 圖像相比,深度圖主要有兩個優勢:第一個是對光線變化的可靠性,基于紅外的成像原理使其圖像質量不受光照條件影響,這種優勢可使它應用于一些特殊的應用場景,如夜間駕駛。第二個優勢是可以利用深度數據處理檢測任務中的目標尺寸問題[11]。
盡管缺乏大規模深度數據集,深度圖憑借其對光照的穩定性也被應用于處理人臉驗證問題。Kim 等[12]提出了一種遷移學習的方法,即在利用2D 圖像訓練一個卷積神經網絡(Convolutional Neural Network,CNN)模型,再通過對模型參數的調整,應用到深度圖上測試。Borghi 等[13]構建了JanusNet,該網絡由深度、RGB 圖像組成混合孿生網絡。在訓練階段,混合網絡通過RGB 和深度特征進行互補學習,在測試階段僅依靠深度特征進行測試。隨后Borghi 等[3]又利用兩個完全相同的全卷積網絡構建一個孿生網絡,該網絡僅依靠深度圖進行訓練和測試,依然取得了非常好的效果。
為應對光照變化以及頭部姿態對人臉特征的影響,本文僅利用深度圖作為輸入,基于兩個共享權重的卷積神經網絡提出了一個新的深度學習框架L2-Siamese。該方法的主要思想是通過兩個卷積神經網絡分別提取一對圖像的特征,并分析特征的L2 范數與頭部姿態的聯系,再將不同姿態的特征固定在一個半徑為α的超球后,計算該對圖像間的相似度,并通過全連接層將相似度映射為(0,1)的概率,設定閾值判斷該組圖像是否屬于同一對象。
孿生神經網絡最早由Bromley 等[14]提出并應用于簽名驗證。如圖1 所示,該網絡結構由一組平行網絡組成,各網絡輸入層(Input layer)分別接受不同的輸入,并通過隱藏層(Hidden layer)提取特征,末端由一個能量函數(Energy function)連接,該函數可根據任務需求計算特征間的某些指標。該對網絡之間的參數相互綁定,因此在訓練過程中,權重共享保證了兩個極其相似的圖像不會被各自的網絡映射到特征空間中非常不同的位置,且能自然排列出兩個輸入之間的相似度。

圖1 孿生網絡結構Fig.1 Structure of Siamese network
根據文獻[15],本文基于一對完全相同的卷積神經網絡構建孿生網絡,為保證網絡良好的性能以及實時約束條件,本文采用一個淺層的卷積網絡架構用于特征提取[2]。如圖2所示,該網絡總共有4 個卷積層,各卷積層分別對應64、128、128、256 個卷積核,其卷積核大小分別為10×10、7×7、4 ×4、4×4。除最后一層卷積層外,各卷積層后分別對應一個2×2 的最大池化層。最終卷積層中的所有單元被平展映射成一個4 096×1 的一維特征向量。該網絡選取線性整流函數(Rectified Linear Unit,ReLU)作為激活函數。

圖2 卷積神經網絡結構Fig.2 Structure of convolutional neural network
兩個共享權重的孿生網絡通過能量函數連接,目的是讓同一對象特征度量距離越近,不同對象度量距離越遠。受Ranjan 等[16]研究特征范數與RGB 圖像質量關系的啟發,本文首先研究深度頭像與頭部姿態之間的關系,在Pandora 數據集[17]上獲取深度人臉圖像,分析不同姿態下的特征L2 范數,如圖3 所示,3 個對象分別采樣(1)(2)(3)三組不同姿態,每組姿態包含兩張相近頭部姿態信息。本文僅采用深度圖用于模型訓練與實驗測試,但由于深度圖缺乏紋理信息,為直觀展示頭部姿態信息,每組第一行為對應的灰度圖像,第二行為采樣的深度圖。

圖3 不同姿態下的深度頭像Fig.3 Depth head images with different poses
通過圖2 所示的卷積神經網絡提取每張深度圖的人臉特征,每張人臉特征被映射為4 096×1 的特征向量,并計算特征向量的L2 范數。L2 范數如表1 所示。對于同一對象,相近的頭部姿態特征有相近的L2 范數,而姿態差異越大,其L2 范數差異也越大。即不同頭部姿態特征,對應不同L2 范數,頭部姿態越接近,其特征向量的L2 范數越接近。

表1 頭部姿態與L2范數Tab.1 Head pose and L2 norm
以三維空間為例,所有具有相同L2 范數的向量(相同長度的向量),分布在一個半徑固定的球面上。同理,高維空間具有相同L2 范數的向量,分布在一個半徑固定的超球上。因此,為減小頭部姿態對頭部特征的影響,將所有姿態的頭部特征,映射在一個半徑為α的超球內,如圖4 所示。

圖4 頭部特征映射示意圖Fig.4 Schematic diagram of head feature mapping
根據式(1),將所有特征向量通過L2 范數歸一化為特征空間中的單位向量(L2 normalization layer),再如式(2)所示將所有特征固定在一個半徑為α的超球上(Scale layer)。
其中:x為卷積神經網絡提取的人臉特征向量,y為L2 歸一化后的特征向量。
這樣做有兩個優點:其一,本文通過孿生網絡來度量一組面部特征的差異,在固定半徑的超球上,可通過超球半徑α的調節,使同一對象間度量距離越近,不同對象間的度量距離越遠。其二,對同一對象而言,所有姿態的特征被映射在相同半徑的超球上,具有相同的L2 范數,能使其差異最小化,可減少頭部姿態帶來的干擾。
通過L2-normalize 層和scale 層反向傳播梯度,并使用下面給出的鏈式法則計算包含縮放參數α的梯度。
由式(3)可知,L2-normalize 層和scale 層完全可微,該模塊可用于網絡的端到端訓練。
L2-Siamese 網絡將包含完整頭部信息的一組相同尺寸并包含真實值標簽的深度圖作為輸入:若標簽為1,則該組頭部圖像屬于同一對象;若標簽為0,則該組頭部圖像不屬于同一對象。首先利用圖2 所示的一組共享權重的卷積神經網絡,分別提取特征后,再利用圖4 所示的模塊將特征向量通過L2 范數嵌入一個半徑為α的超球內,之后通過計算特征向量各單元之間的絕對值誤差(即各單元的L1 距離),獲得一個新的4 096×1 的差異向量,該向量表征了該組深度頭像之間的差異。最后通過三層包含128、32、16 個神經元的全連接層后,將該對圖像的差異向量最終映射為含一個神經元的輸出單元。完整的L2-Siamese 結構如圖5 所示。

圖5 L2-Siamese整體結構Fig.5 Overall structure of L2-Siamese
如圖5 所示,L2-Siamese 除輸出層外,所有的卷積層和全連接層采用ReLU 作為激活函數。輸出層采用Sigmoid 作為激活函數,將深度頭像間的差異映射為(0,1)的概率值。人臉驗證可視為一個分類問題,所以L2-Siamese 采用交叉熵作為損失函數:
其中:p表示真實值,q表示預測值。在超參數的選取上,batch 的大小為64,學習率為0.001,衰減率為0.99,衰減步長為500。
本章首先介紹了公用數據集Pandora[17],并在該數據集上進行了一系列的實驗,驗證L2-Siamese 的性能。
如引言所示,L2-Siamese 將圖像差異映射為(0,1)的概率,實驗第一步,通過設置不同閾值,分析不同閾值對測試結果的影響;隨后實驗并分析了不同縮放參數α對網絡性能的影響,并選取最佳結果組合與近幾年先進方法進行對比。為進一步驗證L2-Siamese 在頭部姿態干擾下的性能,本章根據頭部姿態角偏航角(yaw)、俯仰角(pitch)、側傾角(roll)對數據集進行劃分后,進行實驗分析。
Pandora 數據集[17]為頭部和肩部姿勢估計任務而創建,收集了22 名受試者(10 男12 女)的坐姿上半身圖像,每張深度圖對應一張RGB 圖像,且每張圖像對頭部中點以及頭部姿態角進行了真實值標注。共110 個序列,超過25 萬張圖像,并通過眼鏡、圍巾、手機以及各種姿態產生干擾。該數據集通過微軟Kinect One 采集。
本文根據文獻[18]中提出的方法,在已知頭部中點p={x,y}的前提下,根據式(5)計算寬度和高度分別為wp、hp頭部矩形框來采集深度頭部圖像。
其中:fx、fy為相機內部參數,分別為水平和垂直焦距;R為頭部平均寬度和高度(設為300 mm);Dp為頭部中點p={x,y}的深度值。獲取頭部圖像后,先去除背景,將深度值大于Dp+L(L=200 mm)的所有像素點置0,再將所有圖像統一尺寸為105×105。
理想狀態下,同一對象間相似度概率趨近于1,不同對象相似度概率趨近于0。受姿態、距離等因素的影響,模型無法達到最理想狀態,而閾值的選取會直接影響測試結果。本節從(0,1),每0.1 個間隔取一次閾值,在Pandora 數據集上進行測試,其結果如表2 所示。當閾值偏高或偏低時,準確率均有所下降:閾值過高,主要針對同一目標而言,受姿態變化的影響,其相似度概率值降低,達不到閾值,則會增加誤判率;當閾值設置偏低時,針對姿態特征非常接近的不同對象而言,其相似度概率偏高,容易大于所設閾值,也會增加誤判概率。L2-Siamese 閾值選定為0.6 時,準確率最高,該值對整個數據集有最佳的包容性,能最大限度地減少姿態干擾對測試結果的影響。

表2 不同概率閾值對應的準確率Tab.2 Accuracy corresponding to different threshold value
超球半徑即縮放參數α對L2-Siamese 的性能起著至關重要的作用。如式(3)所示,α可微,即可通過網絡學習獲取,但在實際應用中,相同對象不同姿態間L2 范數差異較大,不同對象相同姿態的L2 范數也存在差異,通過學習所得的α更趨近于一個包含更多樣本的L2 值[16],而該值包含的姿態非常離散,即該超球表面嵌入了更多的姿態特征,容易使α值偏大,而且會增加模型的訓練負擔,因此本文將α設置為固定值,并在Pandora 數據集上進行實驗對比,找出α最優值。實驗結果如表3 所示。為進一步驗證L2 范數和縮放參數α對網絡的影響,刪除L2-Siamese 中L2 約束層和縮放層,僅用圖2 所示的孿生網絡在相同的數據集下進行實驗對比。
根據表3 所示,縮放參數α偏小和偏大時,均會導致模型性能降低:α偏小時,超球表面積過小,所有特征分布過于密集,特征間的差異也過小,不便于特征間的區分;而α過大時,超球表面積過大,所有特征的差異均偏大,且不利于損失函數的收斂。適當選取縮放參數α,能顯著提高孿生網絡的性能,且當α=10 時,L2-Siamese 準確率最高。因此選取最優α作為L2-Siamese 的固定縮放參數,并與其他方法進行實驗對比。

表3 不同縮放參數α對應的準確率Tab.3 Accuracy corresponding to different scaling parameters α
圖6 給出了當α=10 時,在Pandora 數據集上訓練時損失函數和模型準確率的變化曲線。

圖6 損失值及模型準確率變化曲線Fig.6 Curves of loss value and accuracy
Pandora 數據集包含RGB 圖像和深度圖兩種類型的數據,深度圖的獲取不依賴于光照條件,但與RGB 圖像相比缺乏細節輪廓,為公平比較,本文與僅采用深度圖測試的方法進行對比,實驗結果如表4 所示。

表4 不同方法的人臉驗證的實驗結果在Pandora數據集上的比較Tab.4 Comparison of experimental results of different methods on Pandora dataset
在相同的實驗環境下,與近年來最先進的方法進行對比。本文與文獻[13]在卷積層提取特征后均采用了全連接層結構,但相較于后者,本文采用了4 096 個神經元,更寬的維度提升了模型的學習能力,同時也大量增加了網絡的訓練參數,對模型效率造成一定的影響。本文與文獻[3]方法均直接采用深度圖進行訓練和測試,后者僅采用了全卷積的網絡結構,該結構網絡參數更少,運行速度更快。為兼顧在實際應用中的運行效率,L2-Siamese 采用了淺層網絡結構,相較于文獻[3,13]中方法,運行速度偏低,但能滿足多數任務的實時性需求。其準確率相較于當前最好的方法提升了4.6 個百分點,準確率明顯高于競爭對手。
為進一步驗證L2-Siamese 在頭部姿態干擾下的預測性能,根據文獻[3,13]的方法,將Pandora 數據集按如下方式進行劃分:
其中:ρ、θ、σ為均為歐拉角,分別代表頭部姿態的偏航角(yaw)、俯仰角(pitch)、側傾角(roll)。其示例如圖7 所示。其中圖7(a)為圖A1分組示例,所有姿態角均在10°以內,姿態干擾最小;圖7(b)為A2分組示例,存在大于10°的姿態角,頭部姿態對模型有較小的姿態干擾;圖7(c)為A3分組的示例,三個姿態角都大于10°,頭部姿態對模型的干擾最大。

圖7 數據集分組示例Fig.7 Examples of dataset grouping
Pandora 數據集根據頭部姿態分組后,按文獻[3,13]中方式進行交叉訓練、測試,準確率結果如表5 所示。由表5 可知,當訓練數據采用A1序列時,訓練樣本受頭部姿態干擾最小,所有方法均取得較好測試結果,其中L2-Siamese 取得90%準確率高出文獻[3]方法4 個百分點;當測試數據采用A3序列時,樣本受姿態干擾越大時,所有方法準確率都有所下降,其中文獻[13]準確率下降最快,而L2-Siamese 準確率下降最慢,相較于其他方法,L2-Siamese 在姿態干擾下有更好的穩定性。
當訓練數據采用A2序列時,所有樣本均受到小的姿態干擾。結果顯示,小幅度姿態干擾下的樣本有助于提升模型的泛化能力,L2-Siamese 同樣取得較好測試結果,L2-Siamese對小幅度姿態保持穩定。
當采用A3序列訓練模型時,樣本受姿態影響最大,文獻[13]方法已無法應對較大姿態的干擾。而L2-Siamese 與文獻[3]方法相比,各測試序列準確率均高于文獻[3]方法,即使在姿態干擾最大的A3測試序列下,準確率高出該方法6個百分點。
當采用{A1,A2}訓練序列時,更廣泛的訓練樣本使L2-Siamese 取得最佳測試結果。如表5 所示,所有訓練測試序列下,L2-Siamese 準確率均高于其他方法。

表5 按姿態劃分Pandora數據集后不同方法的實驗結果準確率對比Tab.5 Accuracy comparison of experimental results of different methods after grouping Pandora dataset according to poses
L2-Siamese 僅采用深度圖進行訓練測試,選擇更寬的全連接層,并引入L2 模塊及縮放參數對特征進行約束,大量的訓練參數增加了模型的學習能力,提升了模型的預測性能,使L2-Siamese 能對小的姿態干擾保持穩定,也能在大的姿態干擾下有較好的性能。
為了解決在光照以及頭部姿態干擾下的人臉驗證問題,本文提出L2-Siamese 網絡,該網絡直接處理深度圖,并通過孿生神經網絡提取特征,以及二范數和縮放參數約束特征后,計算圖像之間的差異。在公共數據集Pandora 上進行實驗對比,在姿態干擾下L2-Siamese 準確率明顯高于其他方法。由于深度圖對光線變化的穩定性,該模型可被應用于光照條件差的場景,如夜間駕駛等。但同時,L2-Siamese 依靠大量的訓練參數提升模型的學習能力,對模型的速度造成影響。在較大姿態干擾下,其準確率依然有很大的提升空間。
未來我們將對網絡進一步優化,提升網絡效率,同時研究算法,進一步提升在姿態干擾下的準確率。