孟祥周, 李映君, 王桂從, 蒙天生
(濟南大學 機械工程學院,山東 濟南 250022)
隨著目標識別[1]以及計算機技術的發展,利用計算機進行生物特征識別訓練成為當前的研究熱點,并得到了快速發展。人臉識別作為生物特征識別技術的重要組成部分,相對于指紋識別、DNA 識別等其他識別技術具有可識別性強、誤識率低等優點,還具有非接觸性、自然性等特點,具有廣闊的應用前景。目前,人臉識別技術[2-3]廣泛應用于安防[4]、金融[5]和身份認證[6]等領域,為信息安全和公共安全提供了重要保障。人臉識別技術作為生物特征識別的一部分,其特點在于人臉作為人類的內在屬性存在個體的差異性和穩定性,即每個個體的人臉特征都是獨一無二的。因此,利用人臉識別的方式進行人臉特征的提取以及身份檢驗是一個十分有效的手段。
傳統的人臉識別方法包括基于幾何特征法[7]、基于特征臉[8]和基于模板匹配[9]等。這些方法通過對人臉淺層表面進行特征提取進而實現識別,但其特征提取能力較弱,只有在簡單的環境中進行識別驗證具有良好的效果,無法提取深層次的人臉特征,在出現光照、角度、表情變化等其他復雜環境情況時,識別精度及準確度會下降。近年來,隨著深度學習的發展[10],基于卷積神經網絡(Convolutional Neural Network, CNN)的人臉識別算法成為新的主流,利用神經網絡進行訓練可以使算法具備更強的表征學習能力,并且從大量的數據中學習到更多的特征信息,能夠在不同光照、姿態和表情等因素下學習到人臉特征,因此對于不同場景下的人臉識別具有更強的穩定性。
在利用深度學習進行人臉識別訓練時,主要通過隱藏層對圖像特征進行提取與處理,自動學習到更復雜、更高級的圖像特征,這些特征與傳統方法所獲取的特征相比具有更強的表達能力。Schroff 等[11]使用Facenet 模型來實現從人臉圖像到歐幾里得空間的映射,并利用分布方法訓練模型,使用三元組損失來提高模型性能,但該方法采用的數據集不具備普遍性,難以反映真實情況下人臉的多樣性和復雜性。薛繼偉、孫宇銳等[12]提出了采用ArcFace 算法進行人臉識別的方法,并針對照片尺寸、人臉位置等方面不一致的情況進行相關研究,改善了人臉位置等造成的影響,但同時對圖像要求較高,需要進行精確的預處理,并且對噪聲數據敏感,局限性較大。在針對孿生神經網絡[13]進行人臉識別方面,Mathi 等[14]提出利用孿生神經網絡和MTCNN 算法結合的方式實現不同場景下的人臉識別,其準確率可以達到90%,但由于訓練時采用自制的數據集,多以印度地區的人臉為主。Koch 等[15]提出利用孿生神經網絡進行單次學習任務,通過使用全局仿射變換處理圖像對來訓練驗證識別任務,并指出一次面部識別可以評估學習的特征在數據集和任務中的能力。Song 等[16]設計了一個基于局部二進制模式(Local Binary Pattern, LBP)和頻率特征感知的孿生神經網絡,利用LBP 算法來消除光照對圖像的影響,適用于非限制條件下的小規模數據集的人臉識別,該算法在單一場景中的應用效果較好,但是不適合多場景的情況。
綜上所述,基于深度學習的人臉識別訓練多采用歐美人臉數據集,較少使用亞洲人臉數據集進行訓練與測試。不同人種的人臉特征存在較大差異,這些面部特征差異對最終的訓練結果會造成巨大的影響。為了針對亞洲人的人臉特征進行有效的訓練與識別,本文采用中國科學院發布的CASIA-FaceV5 亞洲人臉數據集。為了解決當存在光照、表情、姿態等干擾時,人臉識別過程較為困難,識別精度低等問題,通過融合孿生神經網絡與VGG-BN 網絡結構,實現對樣本的特征提取,加快模型的訓練速度。針對特征提取能力有限、泛化能力較弱的情況,在VGG-BN 網絡結構的基礎上引入卷積塊注意力模塊(Convolutional Block Attention Module, CBAM),通過強調通道和空間信息的方式,增強對目標區域的注意力和對圖像中細節信息的提取,并通過調整特征圖中的權重信息,增強特征的穩定性和區分度,提高模型的性能。
Siamese 神經網絡又叫孿生神經網絡,是一種用于比較相似度或距離的神經網絡模型,由一對相同結構、共享權值w和偏置值b的網絡模型組成。其具體工作方式是輸入兩張不同的樣本圖片,輸出高維度空間表征,并比較兩張輸出特征的相似度。該網絡最早由Bromley 等[17]在1993 年提出用于簽名識別任務,驗證原簽名和現簽名是否相同,但是受限于當時硬件技術的限制,計算成本高,無法獲得廣泛應用,因此在很長一段時間內的發展是停滯的。直到深度學習技術的誕生,計算機性能逐漸增強及神經網絡快速發展,孿生神經網絡在人臉識別、文本匹配和目標跟蹤等領域得到了廣泛的應用。
孿生神經網絡突出的特點就是可以根據不同的使用場景選擇使用權重共享或不共享的兩個子網絡,以及不同的距離度量和損失函數。該網絡還可以進行小樣本學習,適用于樣本量較少的情況,具備較高的容錯識別能力,因此,可以用于對容錯流程要求嚴格的人臉識別問題。作為一種特殊結構的網絡,孿生神經網絡能夠與其他神經網絡相結合,以適應不同的任務場景,如在結合卷積神經網絡實現兩個圖像相似度的比較中,可以利用卷積神經網絡的高效性、可擴展性等進一步提高識別的準確性和穩定性。
如圖1 所示,孿生神經網絡中輸入圖片為X1,X2,兩幅圖分別經過一個特征提取網絡形成特征向量GW(X1),GW(X2),該特征向量通過共享權重的方式進行特征提取,可以有效地增加模型的可解釋性,并保證特征向量GW(X1),GW(X2)具有相同的特征提取能力,更加準確地表示兩個輸入樣本之間的差異或相似度。采用歐氏距離這種距離度量的方式獲取兩個特征向量之間的差異,得到的映射函數如下:

圖1 孿生神經網絡結構示意圖Fig.1 Structure diagram of Siamese network
映射函數EW主要是計算兩個特征向量的差異,可以通過兩向量之差的模長判斷。EW越接近1,兩者相似度越高,越符合要求。
VGG 網絡[18]作為卷積神經網絡在目標檢測等計算機視覺中的重要模型,是在AlexNet 網絡結構的基礎上改進的,具體是采用3×3 的卷積核代替大卷積核,如5×5,7×7 的卷積核。這種采用小卷積核代替的方式會使網絡深度增加,通過重復的使用卷積核和池化層能夠消除影響,有效地提取圖像特征,并在ImageNet 數據集上實驗證明了優越性。
VGG11 網絡結構就是在VGG16 網絡的基礎上,通過改變模型的深度和寬度提出的一種網絡模型結構,在具有較淺的深度同時也具有很強的表達能力和特征提取能力。本文提出的VGG11_BN 網絡結構是在VGG11 網絡模型結構的基礎上添加了批量歸一化(Batch Normalization, BN)層。BN 層是Google[19]提出來的一個結構,主要用于解決梯度消失問題及加速模型的收斂速度等。BN 層將輸入數據進行歸一化的總公式如下:
式中:y?代表卷積層中輸出y的估計值,γ,β表示可學習的參數量。最終輸出為:
式中:μy,σy代表BN 層的均值,ω是權重參數,b是偏置參數,ε是一個正數。
通過這一系列的操作實現歸一化的過程,使激活函數的輸入分布更加穩定,加速網絡的收斂。采用的激活函數為Relu 激活函數,如下:
式中x為來自于BN 層的輸出。
VGG11_BN 網絡的結構示意圖如圖2所示。

圖2 VGG11_BN 網絡結構示意圖Fig.2 VGG11_BN network structure diagram
計算機視覺中把注意力聚集在圖像的重要區域并丟棄不相關的方法稱為注意力機制,這種注意力機制能夠更快捷和高效地分析復雜場景信息,快速提取有價值的信息,摒棄無用信息。應用到計算機領域可以有效地降低計算復雜度,減少干擾,提高計算效率。
注意力機制作為一種對圖像輸入重要信息的動態選擇過程,是基于特征自適應權重實現的,在目標檢測、人臉識別、小樣本檢測等任務中發揮著重要作用。在人臉識別方面,注意力機制可以更好地處理人臉的不同部位和特征。相較于傳統的人臉識別算法使用固定的特征表示方法,注意力機制可以根據人臉的不同部位和特征自適應地計算不同輸入數據的權重,更加有效地利用輸入數據的信息,提高模型的性能和魯棒性。張晉婧等[20]提出了融合注意力機制的人臉識別算法,將注意力機制融合到facenet 人臉識別算法中,用于加強不同感受野下的特征提取,增強較為重要的特征信息,并抑制其他不重要的特征。
注意力機制通常劃分為通道注意力機制、空間注意力機制、時間注意力機制和混合注意力機制等,具體的實現方式和效果不同,其聯系如圖3所示。

圖3 注意力機制關聯圖Fig.3 Attention mechanism correlation chart
針對待識別圖像中存在一些不相關的背景噪聲等影響因素,這里選擇CBAM 進行處理,它屬于一種混合注意力機制,有助于細化特征、提高性能。CBAM 的示意圖如圖4 所示。

圖4 CBAM 整體示意圖Fig.4 Overall diagram of CBAM
總體運算公式如下:
式中:?表示元素級乘法,Mc(F)表示通道注意力特征圖,Ms(F)表示空間注意力特征圖。
VGG 網絡模型是當前比較優秀的圖像特征提取算法之一,廣泛應用在人臉識別領域,以及遷移學習方面。通過使用自定義全連接層和VGG11_BN 模型相拼接來修改原模型并形成新的網絡結構,具體方式是將原模型中的全連接層去掉,然后通過最大池化操作及Flatten 標準降維方法來“壓平”數據,最后利用兩個全連接層實現特征的比較與融合。在訓練過程中,還利用遷移學習的方式調用VGG11_BN 網絡的預訓練模型,該模型在訓練過程中采用ImageNet 數據集,數據種類眾多,只需要保留原來模型中的底層特征的有用信息即可,該算法在預訓練模型的基礎上進行訓練,能夠減少模型的訓練時間,加快收斂速度。
在不同的注意力機制中,通道注意力機制可以自適應地調整輸入張量的不同通道的權重,使得模型更加關注某些重要的通道,如SENet[21]注意力算法包括一個全局平均池化層和兩個全連接層。Almadan 等[22]采用SENet 注意力進行人臉識別,采用兩個全連接層可以有效地提升特征的維度,但在參數過多時會大幅度降低訓練效率。空間注意力機制可以自適應地調整輸入張量中不同位置的權重,使得模型更加關注某些重要的位置,在文本處理和圖像處理任務中的應用較為廣泛。特別在圖像處理任務中,自注意力機制可以根據圖像中每個像素點的不同特征自適應地調整每個像素點的權重,以提高模型的表現能力。但由于只能調整空間位置的權重而無法調整不同通道的權重,在處理通道特征時效果較差。因此,采用CBAM 中的空間注意力可以在空間和通道兩個維度上同時調整權重,可以適應不同的輸入數據,提高模型的性能。CBAM 通過在隱藏層的前半部分和后半部分分別添加注意力機制的方式來提高模型的性能,在前面添加注意力機制有利于減少計算量,加強特征提取能力和提高模型的表現能力;在后面添加注意力機制可以增強模型的泛化能力,優化模型結構和增強模型的穩定性。
將CBAM 混合注意力模塊和提出的VGG網絡相結合,實現對空間和通道兩個維度上權重的同時調整和模型的優化。最終經過注意力機制后的輸出為:
式中:m是一個二維特征圖,f是一個卷積層,s是一個空間注意力權重,σ是sigmoid 激活函數,y`c是通道注意力輸出。y′c的公式為:
式中:c是通道索引,i和j是空間索引,ε是一個很小的常數,MLP 是一個多層感知器,AvgPool 和MaxPool 分別代表平均池化和最大池化,σ是sigmoid 函數,Sc是通道注意力權重,μc和σc2分別是均值與方差。其具體表達式為:
式中:H,W,C分別表示特征圖的高度、寬度和通道數,Y是來自于BN 層的輸出。Y的計算公式如下:
式中:x是輸入,μ是均值,σ2是方差,?是一個很小的常數,γ和β是可學習的參數,用來調整數據的分布,輸出為特征圖y∈RH×W×C。
將修改后的VGG11_BN 網絡和孿生神經網絡融合,網絡模型的結構示意圖如圖5 所示。將該修改后的網絡結構放到特征提取部分,在這雙分支的VGG11_BN 網絡中,分別輸入一張人臉圖片,形成正樣本或負樣本,再分別進行特征提取,將樣本映射到低緯度的空間中。然后,將提取的特征向量壓平成一維向量,通過全連接層提取高級特征以更好地度量相似性,并通過相似度判定是否為同一人。

圖5 VGG11_BN 結合孿生網絡的模型結構示意圖Fig.5 Model structure diagram of VGG11_BN combined with Siamese neural network
實驗的硬件搭建平臺為Windows11 操作系統,英特爾Core i9-10900K 處理器,16 G 內存,顯卡型號為NVIDIA Quadro RTX 4000,8G 顯存;軟件平臺為Pytorch1.12.1 深度學習框架搭配Cuda11.3 高性能并行運算平臺。
采用的人臉數據集為中國科學院發布的CASIA-FaceV5 亞洲人臉數據集,該數據集的類內變化包括照明、姿勢、表情、眼鏡和成像距離等,能夠針對不同的姿態、表情變化等情況進行相關訓練。作為一個開放的亞洲人臉數據集,該數據集一共對500 個中國人進行采樣拍照,每個人有5 張不同類內變化的圖片,共2 500 張高質量的彩色圖片,每個圖片的像素都是高480、寬640,由于圖片采集的是每個人的上半身圖像,故圖片需要進行預處理。
利用PaddlePaddle(飛槳)[23]預訓練模型管理和遷移學習工具PaddleHub 進行人臉檢測以及CASIA-FaceV5 數據集的預處理,具體方式是采用 PaddleHub 中 的 ultra_light_fast_generic_face_dete-ctor_1mb_640 模型進行預處理,獲取圖片中的人臉位置,針對獲取到的數據點的位置,將圖片裁剪成224×224 的人臉圖片。該工具具有檢測速度快、精度高等優點,利用MTCNN檢測需要20 ms,而該模型只要4 ms。
模型的評價指標主要采用平均準確率(Accuracy,Acc),AUC(Area Under the Receiver Operating Characteristic Curve)和ROC(Receiver Operating Characteristic)曲線。平均準確率是指在測試集的樣本中正確分類樣本所占的比例;ROC 曲線可以反映人臉識別的整體性能,又稱為受試者工作特征曲線,主要用來評價人臉識別模型在不同閾值下的識別性能。通過ROC 曲線線形可明確看出模型性能的優劣程度,其橫軸表示假陽性率(FPR),縱軸表示真陽性率(TPR),將不同的閾值作為分界點,繪制出模型訓練后的結果在不同閾值下的性能表現,幫助更好地了解模型性能。TPR 和FPR 的計算公式如下:
式中:TP(True Positive)表示真正類;TN(True Negative)表示真負類;FP(False Positive)表示假負類;FN(False Negative)表示假正類。
平均準確率的計算公式如下:
AUC 的具體意義是指ROC 曲線圖形的下面積,用來衡量人臉識別模型的整體性能。它作為衡量指標,面積越大,性能越好。具體計算公式如下:
式中:ranki代表第i條樣本的序號,∑i∈positive代表把正樣本的序號進行相加,M,N分別是正樣本和負樣本的個數。
在進行人臉識別的訓練過程中超參數的調整對于最終的訓練結果具有舉足輕重的作用,而超參數包括學習率(learning rate)、批量大小(batch size)和激活函數等。學習率參數的設置影響著模型的收斂速度和性能,從而最終影響模型訓練的效果,因此確定學習率的范圍十分重要。根據經驗以及查閱的資料,將學習率的初始值設定為1×10-6,然后設定以1×10-8進行線性增長,記錄學習率和損失值的數據關系,繪制的曲線如圖6 所示。

圖6 損失隨學習率的變化曲線Fig.6 Loss variation curve with learning rate
分析圖6 中學習率與損失值之間的關系可知,損失值先降低然后出現振蕩。學習率的選擇范圍為損失值快速下降的區間[24],因此基于以上描述和曲線圖可確定學習率在1×10-6~1×10-5之間。
在進行網絡模型的訓練過程中,多是采用批量(Batch)訓練法,因此在訓練過程中,模型每次輸入輸出一個Batch,就要調整一次參數,其參數調整方法如下:
式中:θt+1是第t+1 次迭代后的參數值,θt是第t次迭代后的參數值,lr是學習率。動態調整學習率十分重要,選用周期性學習率(CyclicLR)調整學習率的策略,這種調度器會在訓練過程中周期性地調整學習率,從較小的值逐漸增加到較大的值,然后再逐漸降低回較小的值,從而有效地幫助模型跳出局部最優解,避免過早陷入局部最優解,提高模型的泛化能力。在CyclicLR 學習率中有3 種不同的學習率策略,包括triangular,triangular2 和exp_range 3 種學習率。將這3 種學習率分別放到模型中進行訓練,并在CASIA-FaceV5人臉數據集中進行測試,結果如圖7 所示。由圖7 可知,CyclicLR 學習率中3 種不同學習率策略對于該模型的匹配程度不一,使用triangular2 學習率的ROC 曲線的表現優于其他兩種學習率策略。

圖7 不同學習率下的ROC 曲線Fig.7 ROC curves at different learning rates
比較在不同學習率下的平均準確率、AUC和平均精度,結果如表1 所示。由表1 可知,相同的網絡模型下,3 種不同的學習率策略中triangular2 學習率策略的平均準確率,AUC 和平均精度最高,其平均準確率比triangular 學習率策略高將近4%,比exp_range 學習率策略高將近7%。

表1 本文算法中不同學習率的比較Tab.1 Comparison of different learning rates in proposed algorithm(%)
平均精度(mAP)能夠全面地評估性能,因此triangular2 學習率比exp_range 學習率高5.79%,具備更高的準確性。最終表明,CyclicLR 學習率下triangular2 策略對于網絡模型訓練具有更好的收斂性。
為了進一步證明CBAM_VGG 算法的準確性及泛化能力,更換數據集進行上述網絡模型的測試,采用由中國科學院技術研究所2003 采集創建的CAS-PEAL-R1[25]數據集。這個數據集包含姿態、表情、光照和距離等特征的變化,適應多種場景的應用。該數據庫一共采集了1 040 位志愿者,共99 594 個面部圖像,這一千多位志愿者由595 名男性和445 位女性組成,選取其中一部分面部圖像作為測試集,部分樣例如圖8 所示。

圖8 數據集樣例Fig.8 Sample from dataset
在該網絡模型結構下,為了評價各種算法與本文算法的性能差異,采用ROC 曲線評估模型性能,如圖9 所示。從圖9 可以看出,通過修改后的算法相對于傳統的融合VGG 和孿生神經網絡模型的算法具備更優的性能,意味著該模型在識別人臉時具有更高的真陽性率和更低的假陽性率,在實際檢驗時能夠更加準確地識別,減少誤判。將本文算法也與其他經典算法如LWSFLASVM[26],SRGES[27],KEHD[28],KCCA-SVM[29]及VGG+Siamese 進行比較,結果如表2 所示。

表2 不同算法的準確率比較Tab.2 Comparison of accuracy rates of different algorithms(%)

圖9 本文算法和傳統Siamese 神經網絡的比較Fig.9 Comparison between proposed algorithm and traditional Siamese neural network
由表2 可知,該算法在CAS-PEAL-R1 數據集上與其他算法相比,識別率分別提高了1.3%,6.05%,2.13%,0.8%,8.8%和6.7%,證明該算法在存在姿態、表情等變化時仍然具有較好的人臉識別效果。相較于使用SVM 的方法,雖然在識別效果上的提升不大,但是孿生神經網絡更容易改進,能夠及時融合先進算法,本文就是通過結合改進的vgg 算法進行訓練;同時在處理小規模樣本上也具有較大的優勢,能夠提供更快的收斂速度,具備更高的性能和識別能力。與其他孿生神經網絡相比,添加CBAM 注意力機制后其平均準確率得到了較大的提升。具體的測試效果樣例如圖10 所示。圖10 中,4 組測試分別是一對正樣本和負樣本,可以看出正樣本中相似度較高,負樣本中圖片的相似度就較低,實驗結果也與期望一致。

圖10 測試效果樣例Fig.10 Sample test results
為了進一步探究本文方法對模型性能產生的積極效果,在CASIA-FaceV5 和CAS-PEALR1 數據集中設計消融實驗進行對比分析。同時,為了證明融合CBAM 注意力機制模塊的有效性,分別單獨加入CBAM 模塊進行消融實驗來判斷它對模型性能的影響。實驗結果如表3所示。

表3 消融實驗結果Tab.3 Results of ablation experiment
表3 中,Base 模型表示基礎模型,未添加CBAM 注意力機制;CBAM+Base 表示在提取網絡的前端添加CBAM 注意力機制;Base+CBAM 表示在提取網絡的后端添加CBAM 注意力機制。通過分析可知,基礎模型在兩個數據集中的平均準確度最低,模型的計算量最高;當在提取網絡的前端添加CBAM 時,識別的平均正確率在CASIA-FaceV5 數據集中只提高了4.5%,但減少了整個模型的計算量;在提取網絡的后端添加CBAM 時,模型整體的計算量并沒有改變,但識別的平均準確率分別增加了8.9%,4.6%,比在前端添加CBAM 提高了將近五個百分點,提高了模型對于特征的提取能力,增強了模型的穩定性。最終,模型結構的計算量降至13.5GFLOPs,平均準確率分別提高了15.27%,6.7%。消融實驗結果表明,本文方法能夠快速有效地進行人臉識別。
本文提出了一種融合CBAM 和Siamese 神經網絡的人臉識別算法,該算法在融合VGG 和孿生神經網絡的基礎上修改了部分結構并引入CBAM 混合注意力模塊,提高了特征提取能力。相較于其他需要進行身份標記的算法,該算法通過直接測量兩張人臉特征間的相似性進行識別,既簡化了過程,又提高了效率。在此基礎上,通過判斷不同的學習率策略,選擇最佳的Radam 優化器和CyclicLR 循環學習率組合策略,其中Radam 優化器可以在進行人臉識別訓練時自適應動量機制和偏置校正,提高訓練效果。最終,該算法測試的平均準確率達到了96.67%,在CASPEAL-R1 數據集的平均準確率達到了94.3%,相比于修改前的算法提高的6.7%,并且相較于其他經典算法的表現也十分出色,能適應在數據集中因姿態、表情、光照等變化產生的影響。綜合可知,本文提出的算法具備良好的穩定性和泛化能力,在應對不同姿態、表情等變化時能夠提高識別性能,對于人臉識別的應用與研究具有重要的參考價值。