陳 震,張超才,李士林
(廈門理工學院電氣工程與自動化學院,福建 廈門361024)
人臉認證識別在身份識別應用領域隨處可見,需求量呈現上升的趨勢。傳統的人臉認證算法主要有主成分分析[1]、線性判別分析[2]、LBP[3]等。傳統人臉認證算法特征提取能力不足,在光照、角度等較差環(huán)境下,識別精度更易受影響。近年來隨著深度學習研究的興起,卷積神經網絡在圖像分類、識別等領域的研究也取得了空前的發(fā)展[4]。可利用卷積神經網絡進行特征提取,提取人臉的結構特征信息,將提取的特性信息進行對比分析,判斷是否來自同一個人,從而判斷人臉識別目的。具代表性的有DeepFace 算法、DeepⅠD 系列算法等[5]。這種人臉識別算法也存在不足之處,認證測試時,無法滿足大量新樣本進行測試,需重新訓練模型,增加了整個系統模型使用的不穩(wěn)定性。
針對以上問題,本文算法模型使用改進的Siamese 神經網絡模型,在網絡模型中添加殘差網絡的殘差結構,通過殘差結構組提取人臉圖像的特征信息,再計算兩張人臉圖片特征信息的歐式距離,并通過距離來判斷這兩張人臉是否屬于同一個人。當有新樣本認證測試時,無需重新測試模型,只需提取新樣本特征信息,將新樣本特征信息與其他模型的特征信息進行歐式距離比較,就可對新人臉樣本進行人臉認證。
卷積神經網絡是在神經網絡中加入卷積運算的神經網絡,可解決神經網絡參數過多、網絡層之間連接數過大等問題,使網絡訓練參數利用率達到最大化。卷積神經網絡一般由卷積層、池化層等組成。
卷積層可提取輸入數據的特征信息,啟發(fā)于信號與系統的卷積操作。對于二維圖像數據,卷積層通過卷積核在圖像數據上滑動,所覆蓋圖像數據與卷積核對應位置參數進行相乘再相加得出輸出數據。
池化層是通過窗口對數據進行池化操作,其目的是簡化卷積層的輸出及減少網絡參數量,增強對模型訓練的表達能力。池化操作主要為求和、求最大值、求平均值等。
Siamese 網絡也是孿生網絡[6],網絡由兩個模型結構相同的分支子網絡構成,分支子網絡訓練輸出圖像中的特征信息,再根據特征信息相比較來計算出相似度,即Siamese 是根據相似性來訓練的網絡模型。
在Siamese 網絡結構中,有兩個輸入x1、x2 和輸出D,x1、x2 分別輸送至兩個分支子網絡,通過分支子網絡輸出映射到新空間得到輸出向量Y(x1)和Y(x2),再計算輸出向量之間的差值即可得到相似性度量D。
訓練Siamese 網絡時,訓練參數為兩張輸入圖片以及標簽,通過輸入圖片類型來給定標簽值,輸入為同一類別時標簽值為1;反之為0。
在本網絡模型中,改進Siamese 網絡模型的分支子網絡卷積網絡層,采用殘差卷積神經網絡來替代普通卷積網絡。殘差結構組成的卷積神經網絡層提取人臉圖片特征信息,使其映射到容易識別相似性度量的目標空間中,在目標空間中使用對比損失函數來訓練網絡,最終通過樣本間的相似性來判別人臉樣本是否屬于同一個人。結合殘差結構和Siamese網絡的模型流程如圖1 所示。
本網絡模型的分支子網絡由殘差結構(ResNet)組成,殘差結構通過跨網絡層連接的方式來實現[7],若殘差結構輸入為x,輸出為y,則通過卷積后的輸出F(x)與輸入x的相加和作為整個結構的輸出y。

圖1 改進后的模型流程圖
分支網絡模型主要由三部分組成,第一部分是標準卷積層及池化層;第二部分是3 個殘差結構的堆疊以及最大值池化層;第三部分是全局平均池化、Dropout 層及全連接層。
網絡模型的損失函數采用對比損失函數(Contrastive Loss)來訓練網絡模型。Siamese 網絡的分支子網絡對人臉圖像數據進行特征提取,特征提取的人臉圖像數據通過該損失函數來改變特征間歐式距離,規(guī)則為減小同類樣本間距離,增大異類樣本間距離,通過改變距離來訓練網絡模型參數,達到網絡訓練目的。輸入圖像數據用(x1,x2)表示,標簽用y表示,其中若x1、x2 是同一類樣本,則標簽y的值為1,反之為0,樣本標簽間歐式距離用D表示,對比損失函數的表達式為:

在對比損失函數的表達式中,m超參數(margin)表示距離閾值,當樣本是同類樣本時對網絡起調節(jié)作用。在網絡訓練過程中,優(yōu)化目標是最小化損失函數,當y=0 時,損失函數值為,若使Loss值最小,即(m-D)<0 ,所以D要大于m的值,需增加不同樣本間的歐式距離D;當y=1 時,損失函數值為,若使Loss值最小,則需減小同樣本間的歐式距離D。通過上述表達式可知,該損失函數是通過不斷增加異類樣本間歐式距離,減小同類樣本間歐式距離,來對網絡模型進行參數訓練,提高網絡模型對人臉數據的區(qū)分能力。
本文提出的算法模型由Pytorch 框架實現,主要擴展庫有Matplotlib、torchvision 等。
本文所使用的數據集是網上公開數據集CASⅠAWebFace 人臉數據集,該數據集通過半自動的方式在互聯網上收集人臉圖像。根據本文實驗要求,在該數據集人臉數據集中選取40 份樣本,每個樣本有160 張圖片,其中120 張用于訓練模型,其余圖片做測試集使用,輸出圖片尺寸為100×100。
本文在訓練算法時參數選擇為:學習率為0.000 5;batch_size 為64;優(yōu)化方法是Adam;使用對比損失函數訓練模型參數。最后利用測試部分數據集對模型進行測試,測試指標有準確度(Acc)、AUC(ROC 曲線下的面積),ROC曲線的橫縱坐標分別用FPR(真陽率)、TPR(假陽率)表示。算法測試對比如表1 所示。

表1 算法測試對比表
由表1 可得,本文所提出算法在所選取數據集上與其他算法對比有一定的優(yōu)勢。
為了解決傳統人臉認證算法識別精度不足及受環(huán)境干擾較大等缺點,本文提出了基于Siamese 神經網絡框架的人臉認證方法。研究了殘差卷積神經網絡模型,并將其與Siamese 神經網絡模型相結合;對模型的網絡層數及卷積核大小進行調整,提高人臉認證的精度。經過測試,基于改進的Siamese 卷積神經網絡模型,存在人臉認證精度不足問題,但受實驗環(huán)境和時間等限制,該模型對大型數據集的訓練效率還有待提高,未來應進行針對大型數據集的研究和分析。