厙向陽,劉 巧,葉 鷗
西安科技大學 計算機科學與技術學院,西安 710054
身份認證是人們日常生活中經常面對的一個問題,在國家安全、公安司法、電子商務等方面都具有十分廣泛的應用。人臉作為人的內在屬性,具有很強的自身穩定性和個體差異性。因此,利用人臉特征進行身份驗證是最直接的手段[1]。傳統的人臉驗證與識別方法包括幾何特征法、模板匹配法、統計分析法等,在非限制條件下取得了一些很好的成果,但是由于易受到圖像光照差異、尺度變化及表情的影響,在現實場景中識別準確率較低。近幾年,隨著Hinton等人掀起深度學習[2](Deep Learning)的研究熱潮,卷積神經網絡(Convolutional Neural Network,CNN)在人臉認證和識別[3-4]領域中得到了廣泛的研究與發展。卷積神經網絡可以自主學習提取出人臉的隱性特征。大部分基于深度學習的人臉認證算法是將人臉認證歸結為一個人臉識別問題來處理,其認證過程需先確定測試人臉的身份信息,再根據身份信息判斷兩張人臉是否來自同一人,該類算法的典型代表有DeepFace[5]算法、DeepID[6-7]系列算法、FaceNet[8]算法等。但由于這些方法在訓練階段需要大量帶有身份標記的訓練樣本進行監督學習,因此增加了額外標記數據的成本,且在認證階段,需先確定人臉樣本的身份信息才能判斷樣本類別,使人臉認證過程變得復雜。針對以上問題,本文提出了融合LeNet-5和Siamese神經網絡模型的人臉驗證算法,通過直接度量兩張人臉的相似性,判斷兩張人臉是否為同一人。算法在Siamese神經網絡框架下,構建雙分支卷積神經網絡,并對雙分支網絡結構進行改進,利用改進后的雙分支卷積神經網絡進行特征提取,通過測量人臉特征間的相似性,判斷兩張人臉是否是同一人。
卷積神經網絡最早是由Fukushima[9]提出的,一個完整的卷積神經網絡模型的結構分為:輸入層、卷積層、池化層、全連接層和輸出層,如圖1所示。

圖1 卷積神經網絡結構圖
(1)輸入層。一般為若干張M×N大小的圖像。
(2)卷積層。輸入層的下一層為卷積層,通過若干個卷積核進行卷積運算。卷積核重復作用于整個輸入區域的每個感受野,卷積后的結果就構成了輸入圖像的特征圖(Feature Map)。令Hi表示第i層卷積輸出的特征圖,那么卷積公式表示如下:

其中,Wi表示第i層的卷積核權重矩陣,當i=1時,Hi-1表示輸入的圖像;bi為卷積核對應的偏置值;表示卷積運算;f(?)表示激活函數。
(3)池化層。卷積層的下一層為池化層,它的主要作用是對卷積層輸出的特征圖進行尺度縮小,是一種非線性的下采樣方法。
(4)全連接層。靠近網絡輸出層之前,一般有多個連續的全連接層,這些全連接層構成了一個淺層的神經網絡,起到了一個分類器的作用。全連接層對經過卷積、池化操作后的特征進行回歸或分類處理,映射到樣本標記空間。
(5)輸出層。在人臉識別領域常用softmax分類器進行分類。softmax是一個多分類器,特征向量輸入到softmax分類器中,會輸出當前樣本x屬于第i類的概率值。設給定h(x,yi)為x屬于第i類的原始度量,則softmax公式如下:

其中,P(y=i|x)表示樣本x屬于第i類的概率。
Siamese網絡又稱孿生網絡[10],主要思想是通過卷積神經網絡對樣本進行非線性轉化,將樣本從原始的數據空間映射到低維度易區分的目標空間,在目標空間中對數據向量進行相似度判斷,辨別兩個樣本是否屬于一類。
Siamese網絡是一種雙分支網絡,網絡有兩個結構相同且權值共享的子網絡。將樣本x1、x2同時輸入到這兩個子網絡中,通過子網絡映射轉換到向量空間,輸出特征向量Gw(x1)和Gw(x2),計算Gw(x1)和Gw(x2)之間的距離得到相似性度量Dw,通過判別相似性度量Dw大小達到分類的目的。Siamese網絡結構圖如圖2所示。

圖2 Siamese網絡結構圖
Siamese網絡對成對樣本進行訓練,獲得一組參數,使得當x1、x2來自同一類別時,相似性度量Dw為一個較小的值;當x1、x2來自不同類別時,相似性度量Dw為一個較大的值。Dw計算公式如下:

其中,Gw(x1)、Gw(x2)為x1、x2的特征向量。
首先將人臉數據集進行匹配,處理為成對的數據樣本。然后將成對樣本輸入到融合網絡模型中,利用雙分支LeNet-5卷積神經網絡進行特征提取。卷積網絡將樣本從原始空間映射到容易進行相似性度量的低維度目標空間中,在目標空間中通過使用Contrastive Loss函數對融合網絡進行訓練,最后通過測量樣本相似性,判斷兩張人臉樣本是否來自同一人。融合LeNet-5和Siamese卷積神經網絡的模型流程圖如圖3所示。

圖3 算法流程框架圖
3.2.1 融合神經網絡特征提取
融合神經網絡模型使用雙分支LeNet-5卷積神經網絡進行特征提取,具體特征提取過程如下。
令M×N表示輸入圖像的大小,s表示步長,k×k表示卷積核大小。融合神經網絡模型采用pad為1的零填充(zero padding)方式,對輸入圖片的邊緣使用零值進行填充,填充后的圖像大小為(M+2×p)×(N+2×p)。設窗口矩陣Xij表示當前卷積滑動窗口內的所有像素,Yij表示Xij經過卷積運算后的特征值。則融合神經網絡中兩個子網絡的卷積操作過程如圖4所示。
圖中融合神經網絡中兩個子網絡的卷積核權重矩陣W和偏置值b相同。特征值Yij的具體計算公式如下:

其中,f(?)表示激活函數,融合神經網絡模型采用修正線性單元(Rectified Linear Unit,ReLU)作為激活函數,計算公式如下:

在卷積操作完成后,將得到的特征圖輸入到池化層。常見的兩種池化方法有最大值池化(max-pooling)和平均值池化(average-pooling)。融合神經網絡采用最大池化的方法對特征圖進行池化操作,池化操作過程如圖5所示。

圖5 融合神經網絡池化操作
圖片經過卷積、池化后得到一系列特征矩陣。在全連接層,對兩張圖片的特征矩陣進行整合得到兩組特征向量 Fleft、Fright。

其中,Ni表示第i層全連接神經元的個數。融合神經網絡的兩個子網絡各有兩個全連接層。
融合神經網絡還采用了Dropout技術[11]預防網絡過擬合,每次迭代以0.5的概率隨機讓網絡中某些隱藏節點暫時被刪除,在反向傳播階段,讓這些隱藏節點的權值不更新,提高模型的泛化能力。

圖4 融合神經網絡卷積操作
3.2.2 融合神經網絡的損失函數
融合卷積網絡模型沒有采用Softmax分類器進行分類,而是使用Contrastive Loss函數[12]指導訓練網絡模型。雙分支卷積神經網絡對人臉樣本進行非線性轉化,將數據集從原始空間分布轉換為另一種空間分布,在新空間中Contrastive Loss函數通過減小同類樣本距離、增大不同類樣本距離,指導網絡模型進行訓練。設輸入樣本為(x1,x2),若x1、x2來自同一類,標簽Y為1;否則,標簽Y為0。Dw表示樣本(x1,x2)之間的歐式距離。Contrastive Loss函數的表達式如下:其中,超參數m(margin)為距離閾值,當Y=0時對整個網絡起作用。

融合網絡優化目標是最小化損失函數L(w,(Y,x1,x2))。當Y=1時 ,-Y){max ( 0 ,m-Dw)}2為 0,若 使L(w,(Y,x1,x2))最小化,則不斷縮小來自同一類樣本的Dw;當Y=0時(Dw)2為0,若使L(w,(Y,x1,x2) )最小化,則讓max(0,m-Dw)=0,即m 本文算法實驗的系統環境Linux Ubuntu16.04,編程環境為Python,采用Caffe深度學習框架。 數據集來自CMU_PIE數據庫。該數據庫包含有67個人,其中每個人都包含5種姿態變化、光照差異和部分表情變化。對該數據集進行預處理操作,將圖片進行兩兩無重復匹配生成成對樣本集,將來自同一個人的兩張圖片稱為正樣本,標簽設為1,來自不同人的兩張圖片稱為負樣本,標簽設為0。一共生成12 000對樣本集,正、負樣本各6 000對。正、負樣本如圖6中(a)、(b)所示。 圖6 正、負樣本 4.2.1 參數設置 隨機選擇10 000對樣本(正負樣本各5 000對)作為訓練集,用于模型的構建和參數的調整,剩下2 000對樣本(正負樣本各1 000對)作為測試集,用于檢驗已訓練模型的性能。對數據集進行歸一化處理,并將訓練集的圖片進行鏡面翻轉,擴充數據量。 將訓練集輸入到網絡中進行模型訓練,訓練過程所涉及的參數有:batch_size大小、學習率設置、優化方法選取、激活函數及損失函數中margin值的大小。模型參數設置如表1所示。 表1 參數設置 4.2.2 評價指標 對模型進行評估時,使用的評價指標有:ROC曲線、AUC、十折交叉驗證準確率。 ROC曲線以假陽率(FPR)為橫坐標、真陽率(TPR)為縱坐標,真陽率(TPR)、假陽率(FPR)及ACC的計算公式如下: 其中,TP(True Positive)表示正類樣本對被判定為正類;TN(True Negative)表示負類樣本對被判定為負類;FP(False Positive)表示正類樣本對被判定為負類;FN(False Negative)表示負類樣本對被判定為正類;dist.size表示距離數組的大小。 4.2.3 實驗方案 為了設計最佳LeNet-5模型結構并驗證融合網絡模型的有效性,本文采用在相同的實驗環境下,相同數據集以及相同數據量,設計如下實驗方案: 方案1分別將卷積核大小設置為3×3、7×7進行實驗,并與原LeNet-5模型[13]5×5卷積核結構進行對比。 方案2分別采用卷積層數為3、4、5層進行實驗,并與原LeNet-5模型2層卷積結構進行對比。 方案3 對原LeNet-5、Alexnet[14]、LBPH+Joint Bayesian[15]以及本文的融合LeNet-5與Siamese神經網絡模型進行人臉驗證的對比實驗,并使用評價指標對四種模型進行評估。 方案1不同卷積核大小實驗結果如圖7所示,3×3和5×5卷積核結構的訓練準確率基本相同,但3×3卷積核結構的測試準確率略高于5×5卷積核結構,7×7卷積核結構的訓練準確率和測試準確率最低。這是因為在相同卷積層數的情況下,當選擇較大的卷積核時其參數個數和計算復雜度也會隨之增加,這可能使得網絡計算性能降低。在本文實驗中3×3卷積核結構最合適。 圖7 不同卷積核大小實驗對比結果 方案2不同卷積層數實驗結果如圖8所示,3層卷積結構的訓練準確率和測試準確率最高,4層及5層卷積結構次之,原LeNet-5的2層卷積結構訓練準確率和測試準確率最低。分析方案2可知,深層的神經網絡可以學習到圖片的本質特征,但是過度加深網絡,可能會增加網絡訓練的難度,反而降低網絡性能。在本文實驗中3層卷積結構最合適。 圖8 不同卷積層數實驗對比結果 方案3根據方案1、方案2實驗結果,方案3中LeNet-5模型采用3×3的卷積核、3層卷積結構。圖9、圖10為四種模型在CUM_PIE數據集、ORL數據集上的ROC曲線圖。 AUC為ROC曲線下的面積,ROC曲線越靠近左上角,意味著在某個FPR水平下,TPR越高,AUC值越大,模型認證性能越好,其中影響模型認證性能的主要因素是模型對人臉特征的表達能力。從圖9、圖10可知,LeNet-5+Siamese網絡模型在兩個數據集上的ROC曲線最靠近左上角且AUC值最高,模型性能最好。相比于原LeNet-5模型特征提取和LBPH特征提取,本文模型對人臉圖片具有更強的特征提取能力,且相對于原LeNet-5網絡模型和Alexnet網絡模型,本文網絡模型通過使用Contrastive Loss函數減小同類樣本距離、增大不同類樣本距離,提升了模型對樣本的區分能力。 方案3四種模型在CUM_PIE數據集、ORL數據集上的AUC值和十折交叉驗證準確率,結果如表2、表3所示。 圖9 各算法在CUM_PIE數據集中ROC曲線圖 圖10 各算法在ORL數據集中ROC曲線圖 表2 模型在CUM_PIE數據集中測試結果 表3 模型在ORL數據集中測試結果 由表2、表3可知,本文模型在兩個數據集上都取得了不錯的認證結果,相比于其他三種模型,融合神經網絡模型的AUC值和準確率均為最高。相比于原LeNet-5人臉認證模型,論文改進的算法模型認證準確率有較大提升。分析方案3可知,相比于原LeNet-5算法模型與Alexnet算法模型,LeNet-5+Siamese算法模型結構簡單有效,且各層之間參數共享,使得訓練參數大大減少,提升網絡計算性能。相比于LBPH+JoinBayesian算法模型,融合神經網絡通過使用雙分支網絡提取特征,避免了繁雜的人工提取特征,泛化能力更強。另外,融合網絡在訓練階段不需要大量帶有身份標記的訓練樣本,減少了標記數據的成本。 本文提出了融合LeNet-5和Siamese神經網絡模型的人臉驗證算法,相較于大部分基于身份標記的人臉驗證算法,該算法通過直接測量兩張人臉特征間的相似性,來判斷兩張人臉是否來自同一人,既簡化了人臉認證的過程,又減少了標記數據的成本。且該算法的網絡模型采用雙分支卷積網絡結構同時進行提取特征,并使用Contrastive Loss函數對網絡進行訓練,提升融合網絡對圖片的識別、區分能力,提高了二分類人臉驗證問題的準確度。經測試,該網絡模型具有較強的泛化能力,在CUM_PIE和ORL數據集上的準確率分別達到了95.1%和90.5%。但由于實驗環境限制,該網絡模型只適用于中小型數據集,對于數量較大的數據集,網絡模型的計算效率還有待提高。未來應對大型數據集和真實環境中的數據集進行深入的研究和分析。4 算法驗證與分析
4.1 實驗環境與數據集

4.2 參數設置與實驗方案


4.3 實驗結果及分析






5 結束語