張 浩,陳亞南,楊 璐,許麗娜,郝凡昌
(山東建筑大學 計算機科學與技術學院,山東 濟南 250101)
掌紋身份鑒別是生物特征識別領域中一個重要的研究問題,在網絡空間安全、刑事偵查、司法鑒定等領域有重要的應用價值。相比其他生物特征,掌紋擁有更大的面積以及更為豐富的紋理信息,具有采集成本低廉、用戶易于接受、安全穩定性高等優點[1]。掌紋識別的現有研究主要基于手掌上三類紋線:乳突紋、屈肌線和皺褶。如圖1所示,乳突紋又被稱為脊谷紋線或脊線,通常是平行結構的曲線,脊線的終端點、分叉點等特殊細節結構被稱為細節點,掌紋刑偵專家手工進行掌紋識別時,主要把掌紋脊線作為特征的基礎生理信息[2-3]。掌紋脊線距離是掌紋脊線的重要紋理屬性之一[4],其定義為沿著垂直于脊線的方向連接相鄰兩條平行脊線中心的線段長度。掌紋平均脊線距離(下文簡稱脊線距離)是指一定區域內多對脊線間距離的平均值,在某些掌紋識別算法[4-6]與圖像質量評估方法[7]中常作為一個重要參數被進行參考。因此,精準地測量掌紋脊線距離對掌紋身份鑒別領域的研究具有重要意義[7]。

圖1 掌紋圖像塊及相關概念示例
已有的脊線距離的測量方法主要分為兩類:頻域方法與空域方法。在空域方法中,Zhang等人[8]提出了一種基于脊線搜索與統計窗口的估計方法,在空間域上進行指紋脊線距離的計算。空域方法常應用于指紋脊線距離估計,由于掌紋面積大、皺褶多等特點很少應用于掌紋脊線距離估計,而當前掌紋識別相關工作中多以頻域方法進行脊線距離估計。在頻域方法中,Jain等人[2]通過離散傅里葉變換與區域生長算法選取頻域中合適的強正弦波,通過該正弦波的參數計算掌紋塊中的脊線周期,脊線周期的倒數即為脊線距離,并將其作為掌紋匹配中的重要參數。在此基礎上,任春曉等人[9]設計了一種指紋圖像脊線距離估計算法,通過使用傅里葉變換、平均信息熵和加權歐氏距離等方法計算脊線距離。Hao等人[7]采用頻域方法對掌紋圖像塊進行脊線距離估計,并設計環形掩膜來確定頻域內亮峰搜索范圍,減少計算與干擾信息,同時將脊線距離作為掌紋質量評估中的重要指標進行參考。但是,常用的頻域方法中的區域生長算法需要相對完整的掌紋圖像來進行局部領域間脊線距離信息的校正,對掌紋圖像的質量要求高,且用于單獨較小掌紋塊的測量效果并不佳。而頻域方法中對掌紋圖像塊脊線距離估計,并未充分使用圖像頻域中的相位角等信息,脊線距離估計的精度還需進一步提高。
近些年來,隨著深度學習技術的發展,在掌紋識別中越來越多的研究關注到基于深度學習方法從數據中學習掌紋特征。Zhong等人[10]基于深度哈希網絡與生物特征圖匹配方法,提出了一種融合掌紋和手背靜脈的多生物特征算法。2021年,吳碧巧等人[11]提出基于遷移學習的網絡模型,實現端到端的高分辨率掌紋圖像識別。Liu等人[12]基于注意力的生成對抗網絡提出了掌紋方向場恢復模型,使用注意力模塊引導網絡關注修復區域。在已有研究中,深度學習技術的應用對解決上述掌紋識別與特征提取問題起到了很好的效果。
但現有相關研究并未關注到使用深度學習技術進行脊線距離估計。VGG(Visual Geometry Group)[13]網絡作為深度學習中一種經典卷積神經網絡,其模型結構簡單,可應用性強,網絡識別效果明顯,綜合性能優于一般的典型網絡,初步研究發現該網絡對于輸入尺寸較小的掌紋圖像塊的處理仍存在網絡退化、梯度消失及網絡所學習特征不佳等問題。因此,該文引入殘差結構與注意力機制,有效解決了上述問題,并對掌紋圖像紋理特征中的關鍵信息進行提取,在提高模型學習能力的同時避免梯度消失。將手工標注獲取的脊線距離值按一定值域劃分后作為輸入掌紋圖像塊的類別進行識別,并以VGG16網絡為基礎,提出了一種基于注意力機制與殘差結構的脊線距離估計網絡。另外,針對手工標注數據集中掌紋圖像塊脊線距離類別存在的分布不均衡問題,采用數據增強方法削弱類別分布間的不平衡,并設計樣本不均衡損失函數,來增強網絡對樣本數目較少類別的關注,提高模型的泛化能力與識別精度。
卷積神經網絡是深度學習算法中一個重要組成部分,一般由若干個卷積層、池化層和全連接層組成。其中,卷積層用于圖像特征的提取,池化層用于對卷積層提取的特征進行抽樣,全連接層用于將卷積網絡提取的特征連接起來,最后通過多分類器輸出對圖像的分類預測。VGG是一種經典卷積神經網絡,相比AlexNet[14]模型在圖像分類任務上取得了更好的效果,VGG模型使用3×3大小的小尺寸卷積核和2×2大小的池化層構造深度更深的卷積神經網絡,其網絡結構設計方法為構建深度卷積神經網絡提供了方向。一方面,通過3×3小卷積核的堆疊使用來獲取更大的感受野,減少網絡參數,且在文中工作中較大感受野的選取,可以考察到多對相鄰脊線間的距離信息,從而使模型關注的信息更加全面。另一方面,卷積層中ReLU激活函數與全連接層中Dropout函數的使用增加了網絡中的非線性映射,增強網絡的泛化能力,從而能夠關注解決脊線分叉、渦形變化等多種局部細微變化帶來的差異問題。
VGG16模型由13層卷積和3層全連接層組成,模型結構簡單、可應用性強,但是對于輸入尺寸較小且結構簡單的掌紋圖像塊,網絡退化現象仍比較明顯,考慮到殘差網絡對于解決網絡退化與梯度消失問題具有不錯的效果,對此以VGG16網絡為基礎引入恰當的殘差結構來改善上述問題,同時亦改進保持了網絡的輕量化。
為使模型更加有效地關注到脊線結構信息,并對掌紋脊線距離進行更加精準的測量估計,該文在模型設計中引入注意力機制。計算機視覺中的注意力機制借鑒了人類視覺的注意力思維方式,學習獲取重點關注的目標,從而在大量無關背景區域中篩選出具有重要價值信息的目標區域,幫助人類更加高效地處理視覺信息[15]。注意力機制的核心思想為基于原有數據中內容的關聯性來突出數據中的重要特征,常見的注意力機制有通道注意力、空間注意力、多階注意力等。在實現上,注意力機制通過神經網絡的學習生成與輸入特征通道或空間維度大小相同的掩碼矩陣,以此表示輸入特征所需網絡關注的得分,兩者對應維度相乘后輸入特征中更重要的信息將獲得更大權重,來提高網絡對輸入特征中重要區域關注程度。CBAM(Convolutional Block Attention Module)注意力機制[16]由通道注意力機制與空間注意力機制串聯而成,總體結構如圖2所示。

圖2 CBAM注意力機制總體結構
通道注意力機制模塊如圖3所示,具體實現過程為:將C×H×W大小的輸入特征圖經全局平均池化和全局最大池化分別生成兩個C×1×1大小的特征圖GAP與GMP,經過兩層共享權值的神經網絡,為了減少網絡參數,第一層神經元個數為C/r,r為縮減比率,在文中方法中r設置為16,激活函數為ReLU,第二層神經元個數為C,由此得到兩組C×1×1大小的中間特征圖GAP'與GMP';兩組特征圖在對應維度相加后,經過Sigmoid激活函數得到通道注意力特征圖;而后,將通道注意力特征圖和輸入特征圖進行乘法操作,由此對輸入特征圖進行注意力疊加,生成空間注意力機制模塊需要的輸入特征。

圖3 通道注意力模塊結構
空間注意力機制模塊如圖4所示,具體實現過程為:將上一模塊輸出的特征圖作為輸入特征圖,并在通道層次上進行全局平均池化和全局最大池化生成兩個1×H×W大小的特征圖GAP與GMP,并將其拼接為2×H×W大小的特征圖,以此共享同一網絡;而后,經過一層7×7卷積操作,降維為1×H×W大小,再經過Sigmoid激活函數得到空間注意力特征圖;最后,將空間注意力特征圖和輸入特征圖進行乘法操作,得到最終經先后疊加通道注意力與空間注意力的輸出特征圖。

圖4 空間注意力模塊結構
與其他注意力機制相比,CBAM注意力機制同時疊加了通道注意力與空間注意力兩種不同機制,所生成的注意力特征內容更加豐富,使得原有通道間的信息交互與空間內的信息交互聯系更加密切。同時,兩種注意力機制均通過使用全局平均池化和全局最大池化操作來分別生成輸入特征的全局和局部信息,以此在各注意力機制內同時關注輸入特征的局部與全局特征生成注意力網絡掩碼,使得網絡參考信息的范圍更全面。對于主要由線條構成的掌紋圖像塊,CBAM注意力機制可使模型更加有效地關注到其結構信息,從而對掌紋脊線距離進行更加精準的測量估計,由此選取該注意力機制對模型進行改進。
該文將裁剪后的64×64像素大小的掌紋圖像塊作為輸入,可更精細化計算原掌紋圖像的脊線距離分布,且對該尺寸的掌紋圖像塊進行標注,標注準確性高。由于輸入圖像尺寸較小,選用VGG16網絡作為基礎網絡具有更好的適用性。對網絡有機加入CBAM注意力模塊,可提高網絡對特征空間中重要紋理特征的關注程度,且能夠增強網絡中間層的特征表達,提高網絡的學習能力。同時,為有效避免模型存在的梯度消失問題,對網絡改進添加殘差結構與批量歸一化(BN)層。設計實現兩種殘差子模塊,如圖5所示。由于CBAM模塊中空間注意力機制使用7×7大小的卷積核來提取空間內多條脊線間的局部相關性,因此嵌入CBAM的殘差子模塊應用于網絡前端,使模型著重關注輸入圖像塊中的關鍵紋理特征,而普通殘差子模塊應用于網絡后端,且在同一子模塊內卷積層的輸出通道數設置相同。

圖5 Residual-CBAM-Block注意力殘差模塊與普通Residual-Block殘差模塊
引入殘差機制與注意力模塊的VGG16網絡結構如圖6所示,網絡流程如下:首先,為拓展網絡輸入通道信息及增加初始卷積計算,將輸入的掌紋灰度圖像塊預處理為3通道,且經實驗驗證圖像通道設置為3,網絡性能更佳。而后,輸入圖像經過2次嵌入CBAM的殘差模塊,并且每次輸出進行最大池化操作,再經過3次普通殘差模塊,同樣每次輸出進行最大池化操作,此時輸出特征圖大小為512×2×2。而后,將上述輸出特征圖輸入通道注意力模塊(CAM)計算疊加其通道注意力,特征圖展平后輸入全連接層模塊,經過2層全連接層FC-2048輸出特征。最后,經過類別輸出全連接層FC與Softmax輸出對各個類別的預測概率。

圖6 引入殘差機制與CBAM注意力模塊的Vgg16-CBAM-Residual網絡
在深度學習中,若訓練數據不均衡,會使模型更偏向于數目較多的樣本,而數量較少的樣本類別得不到有效的關注,從而影響模型的泛化能力與識別精度。因此,只有訓練數據分布均衡,才能避免訓練模型產生嚴重的偏向性,以此加強模型泛化能力與識別精度。所用的數據集是隨機選取手工標注,而手掌各局部區域的脊線距離值多分布于9至12像素間[7],如圖7所示,標注數據集合由此存在類別分布不均衡問題。

圖7 標注數據集脊線距離值分布
通過數據增強與設置樣本不均衡下的分類損失函數來解決標注數據集中存在的分布不均衡問題。在后文中,將具體介紹通過增廣類別與數據增廣來增強及均衡化訓練數據。在損失函數設置上,圖像識別中常用多分類交叉熵損失函數,公式如下:
(1)
其中,N為樣本數目,M為類別數目,yic為符號函數,若樣本i的真實類別為c,取1,否則取0,pic為觀測樣本i屬于c的預測概率。
類別分布的不平衡可歸結為難易樣本分布的不平衡[17],為使模型更加關注難分樣本,相對減少關注易分樣本,對此將交叉熵損失函數修改設置為:
(2)
但是由于標注誤差與樣本中離群點的存在,導致上述目標函數會使模型過于關注極難分樣本,影響模型泛化能力。而難易樣本分布的不平衡可進一步歸結為梯度分布的不平衡[18],梯度分布計算公式如下:
(3)
其中,
(4)
(5)

(6)
通俗來講,GD(g)即是以梯度g為中心,寬度為ε區域內的樣本密度。
設置梯度劃分范圍后,由統計的初始樣本預測概率值所在梯度分布,得知易分樣本與難分樣本所在梯度模長較大,而使模型更加關注兩者之間的普通樣本,可更有效地提升模型的泛化能力,對此該文改進的目標函數公式如下:
(7)
該目標函數融合了兩種樣本不均衡損失函數思想,使得樣本所在的梯度密度在模型訓練前期起主導作用,使模型更加關注普通樣本,并避免對過難樣本的關注。而在訓練后期,隨著模型精度的提高,樣本梯度gi普遍減小,樣本梯度密度更加集中,梯度密度無法發揮有效的作用,而此時L_Focali中設置的難易權重可相對更有效地發揮作用。在文中工作中,目標函數的設置可使模型在訓練過程中更加關注樣本數目較少的類別,同時更加關注普通樣本的識別正確率,減少樣本類別不均衡對模型訓練的影響。
該文使用的掌紋圖像來自兩個包含全掌紋和現場掌紋的開放數據庫,即現場掌紋識別數據庫(LPIDB v1.0)[19]和清華大學高分辨率掌紋數據庫(THU-HRPD)[4-5]。LPIDB v1.0包含兩種模式的掌紋圖像。一種模式包括在受控環境中直接從物體掃描出的完整掌印,而另一種模式包括用黑色粉末和膠帶從模擬的無法控制的犯罪現場所提取的現場掌紋。該數據庫圖像來自51個人的102個不同手掌的102個全掌紋和380個現場掌紋數據。LPIDB v1.0圖像均為8位灰度圖像,分辨率為500 DPI(Dots Per Inch),其中,全掌紋圖像的大小約為2 000×2 000像素,而現場掌紋圖像大小的范圍在大約150×200像素到2 000×800像素之間。THU-HRPD圖像數據由商用掌紋掃描儀拍攝采集,包含來自80個人的160個不同手掌,每個手掌對應有8幅全掌紋圖像,實驗數據僅從中取一幅圖像,所有圖像均來自非重復手掌。THU-HRPD的160幅圖像中,均為500 DPI,大小為2 040×2 040像素,其中,有24幅是JPG格式的RGB彩色圖像,其余是位深度為8的JPG格式的灰度圖像。
該文選取上述數據庫中的圖像來標注創建掌紋脊線距離數據集,具體實現過程為:將掌紋圖像裁剪為64×64大小的非重疊圖像塊,作為待標注數據集,并從中隨機選取圖像清晰且來自盡量多不同手掌、不同區域的圖像塊進行手工標注。如圖8所示,標注采用選取平行線條標點并計算兩點間距離方式,以像素為單位計算脊線距離。在掌紋圖像塊內取不同區域的多對脊線進行標注計算,取平均值的整數表示該圖像塊的平均脊線距離,并將其寫入圖像塊的文件名中作為標簽使用。

圖8 掌紋脊線距離標注過程效果
該文標注圖像數量為651幅,并將上述手工標注計算的脊線距離值作為圖像的樣本類別。由于部分類別圖像數目太少、類別分布不平衡、標注存在誤差等情況,原標注類別間存在一定的重疊部分且即便是專家手工標注也不易設定嚴格的界限,以此采用增廣類別的方式改善類別分布,將脊線距離為6、7像素合并為“7像素鄰域”類別,脊線距離為9、10、11像素合并為“10像素鄰域”類別,脊線距離為12、13像素合并為“12像素鄰域”類別,脊線距離為14、15、16像素合并為“14像素鄰域”類別,類別數目縮小為5個。增廣類別后,為確保樣本類別分布均衡,依據類別內所含的樣本數目,通過高斯濾波、中值濾波及添加噪聲等方式進行不同程度的數據增廣,對樣本數目少的類別進行最大程度的數據增廣,樣本數目相對多的類別只選取添加噪聲的方式進行數據增廣或不進行數據增廣。數據增廣后的數據集包含1 441幅圖像,且極大改善了原始標注數據中樣本分布不均衡問題,如圖9所示。

圖9 數據增廣與類別合并后1 441幅圖像脊線距離值分布
實驗均在Python 3.6.9環境下進行編寫,實現框架采用Pytorch。實驗將數據增強后的64×64像素大小的圖像作為輸入,共1 441幅圖像。其中,1 020幅圖像作為訓練集,431幅圖像作為驗證集。網絡共迭代200輪,選用自適應矩估計(Adam)優化器,初始學習率為0.002,迭代40輪后,網絡每迭代40 輪,學習率衰減為現學習率的0.6倍,批次大小設為 128。上述常數均按照經驗值進行設定。采用準確率Accuracy作為實驗的評價指標,公式為:
(8)
其中,TP為將正樣本預測正確的數目,TN為將負樣本預測正確的數目,P為正樣本數目,N為負樣本數目。
為了驗證文中方法的效果,進行了三組實驗,分別為:傳統頻域方法對比實驗、消融對比實驗、深度學習方法對比實驗。
傳統掌紋脊線距離估計方法主要是通過在頻域中選取合適的強正弦波參數來計算局部掌紋圖像塊中的脊線距離,且傳統方法常作為輔助工作進行介紹,未進行系統性詳細研究。由此,在與傳統頻域方法對比實驗中,選取文獻[7]中最新改進的對掌紋圖像塊的脊線距離估計頻域方法進行實驗對比,結果如表1所示。結果上看,文中方法(Vgg16-CBAM-Residual)相比傳統頻域方法準確率有較大提升,表明通過文中方法能夠有效學習獲取掌紋圖像塊脊線距離特征,同時傳統頻域方法對掌紋圖像塊脊線距離的估計精確度存在一定局限性,深度學習對掌紋紋理特征的學習具有一定的應用價值。

表1 頻域方法實驗對比結果
為了驗證文中注意力機制、殘差結構以及樣本不均衡損失函數設置的有效性,進行了消融實驗。在實驗設置相同的條件下,設置三類方法:VGG16網絡加入CBAM注意力機制(Vgg16-CBAM)、VGG16網絡加入殘差結構(Vgg16-Residual)以及文中方法(Vgg16-CBAM-Residual),分別在四種不同損失函數下進行實驗對比,結果如表2所示。

表2 消融實驗對比結果
消融實驗結果顯示,文中方法將CBAM注意力機制與殘差結構同時加入網絡能夠起到更好的效果。一方面,這是因為CBAM注意力機制在網絡前端的加入增強了模型對掌紋圖像塊在通道與空間層次中關鍵紋理信息與細粒度信息的學習,同時在網絡后端的通道注意力機制進一步增強了對當前特征圖中重要通道信息的關注。另一方面,由于輸入掌紋圖像塊較小,殘差結構的加入,在增加模型網絡深度的同時,解決了梯度消失問題,同時增強了模型對掌紋圖像中脊線結構信息的學習。在損失函數設置方面,所提出的損失函數效果優于現有其他損失函數,表明提出的基于樣本難分程度與梯度密度的樣本不均衡損失函數,在模型訓練學習的不同階段,能夠更加有效地關注到少樣本類別與難分樣本,減少樣本不均衡對模型所帶來的影響。
在與不同深度學習網絡的對比實驗中,選取VGG16、Resnet-34(Residual Network)[20]、Densenet-161(Densely Connected Convolutional Networks)[21]三種經典深度學習網絡模型在相同實驗設置下進行對比,并使用以上三種網絡模型在參考文獻中的默認參數設置進行實驗。如表3所示,所提出的方法效果最佳,這進一步表明,以VGG16網絡為基礎模型進行改進添加的注意力機制與殘差結構,能夠使模型更有效地學習掌紋圖像塊中脊線距離特征信息。同時,模型所設置的樣本不均衡損失函數能更加關注到訓練過程中的難分樣本,以此提高模型的泛化力。相較于其他殘差網絡,改進的網絡模型雖參數量較多,但模型整體性能表現更好。

表3 深度學習方法實驗對比結果
該文提出了一種基于注意力機制與殘差網絡的掌紋脊線距離估計方法。該方法基于VGG16網絡進行改進,為網絡添加殘差結構與CBAM注意力機制,增強網絡對圖像紋理特征中關鍵信息的提取,提高模型學習能力,且避免梯度消失。同時,設計基于樣本難分程度與梯度密度的樣本不均衡損失函數,增強網絡對樣本數目較少類別的關注,提高模型的泛化能力與識別精度。所用數據集由手工標注完成,并采用數據增強方式削弱減少類別分布不均衡問題。在該數據集上,文中方法與其他深度學習網絡相比脊線距離估計效果更佳,與傳統頻域方法相比脊線距離估計準確率提升明顯,且對深度學習在紋理圖像特征提取方面的應用具有一定借鑒意義。文中方法在脊線距離估計精度上有提升,但數據集仍存在一定標注誤差且文中方法對脊線距離估計的細分程度還仍需提高,未來研究可更加關注掌紋圖像脊線距離標注信息的完善以及脊線距離估計精確程度的進一步提高。