吳碧巧,王天一
(貴州大學大數(shù)據(jù)與信息工程學院,貴州 貴陽 550025)
生物特征識別越來越成為一種流行且重要的身份鑒別方式,同指紋,虹膜一樣,掌紋也是生物特征識別中重要的一員。高分辨率掌紋特指清晰度在 300 dpi 以上的掌紋圖像,其圖像大,包含有豐富的信息可以用于身份鑒定,目前多應用在刑偵領域和法律層面。
目前,主要采用對脊線、褶皺線、不同的脊線分布形成的細節(jié)特征點等特征進行細節(jié)特征點提取、掌紋匹配的方法來對高分辨率掌紋進行識別和匹配。文獻[2]和文獻[3]都是針對褶皺進行檢測,其中文獻[2]采用二階高斯濾波器對褶皺進行檢測,文獻[3]融合了動態(tài)交叉模板方法和方向濾波方法。文獻[4]提出了一種基于區(qū)域融合的匹配策略,使用主要折痕特征分割的區(qū)域進行高分辨率掌紋識別。文獻[5]對掌紋匹配設計了基于細節(jié)簇和細節(jié)匹配傳播的粗略匹配策略,識別準確度為79.4%。傳統(tǒng)的高分辨率掌紋識別方法依賴于預先設計的人工特征來訓練分類器,這種方法在很大程度上依賴于設計者設計特征的能力,并且由于高分辨率的掌紋圖像部分區(qū)域圖像質(zhì)量較差,存在著掌紋圖像殘缺不全的情況,對細節(jié)點的提取和掌紋的正確匹配造成很大困難。
深度學習能夠?qū)崿F(xiàn)端到端的深度神經(jīng)模型自動提取特征和分類,免除了繁雜的特征提取算法和掌紋匹配過程,且具有很好的可移植性。膠囊網(wǎng)絡是一種使用動態(tài)路由算法的新型卷積神經(jīng)網(wǎng)絡,使用向量神經(jīng)元解決了標量神經(jīng)元對特征的空間方位不敏感以及物體旋轉(zhuǎn)變形后無法識別的問題。本文以膠囊算法為基礎對膠囊網(wǎng)絡進行改進,提出一種擁有深度特征提取網(wǎng)絡和注意力機制的雙重增強型膠囊網(wǎng)絡。
由于膠囊網(wǎng)絡的計算量很大,特別是其重構(gòu)部分是三個全連接層有大量的參數(shù)計算量,本文選擇去掉重構(gòu)網(wǎng)絡,犧牲一點精度來換取模型體量的精簡和運算速度的提升;采用超深度小卷積神經(jīng)網(wǎng)路來優(yōu)化特征提取部分和進行下采樣操作,為膠囊算法的輸入提供高質(zhì)量的輸入膠囊和減小膠囊算法的參數(shù)量;注意力算法可以關(guān)注到掌紋識別中具有很好區(qū)分性的特征,在提取特征的卷積神經(jīng)網(wǎng)路中加入通道注意力算法能夠增加重要特征的權(quán)重,進一步提高網(wǎng)絡在高分辨率掌紋圖像上的識別精度。
膠囊網(wǎng)絡是一個非常淺的卷積神經(jīng)網(wǎng)絡,主要包括輸入層、卷積層、主膠囊層,數(shù)字膠囊層和重構(gòu)層,其核心為由主膠囊層到數(shù)字膠囊層的動態(tài)路由算法,該算法將標量神經(jīng)元轉(zhuǎn)換為向量神經(jīng)元對圖像進行特征提取和分類操作。
圖1 膠囊網(wǎng)絡模型
圖1為不包括重構(gòu)網(wǎng)絡的膠囊網(wǎng)絡模型,在下文中直接稱為膠囊網(wǎng)絡。第一個卷積層采用9×9×256的卷積核,步長為1。從卷積層到主膠囊層采用9×9(×8)×32的卷積核,步長為2。數(shù)字膠囊層的輸出為16×10的向量矩陣,其中,包含10個標準膠囊向量(10個類別),每個膠囊的特征維數(shù)為16。對每個膠囊向量進行L2范數(shù)計算得到輸出(10×1),對輸出求最大值的索引值即為輸入圖像的類別。膠囊網(wǎng)絡的損失函數(shù)為間隔損失函數(shù),公式如下:
(1)
其中,是分類類別,是分類的指示函數(shù)(存在為1,不存在為0);為上界,用于懲罰假陽性,即預測類存在但真實不存在;為下界,用于懲罰假陰性,即預測類不存在但真實存在;是比例系數(shù),用于調(diào)整兩者比重??偟膿p失是各個樣例損失之和,在本論文中=09,=01,=05。
重構(gòu)網(wǎng)絡為三層全連接網(wǎng)絡,輸入為16個神經(jīng)元,中間兩層的神經(jīng)元個數(shù)為512和1024,最后一層的神經(jīng)元為784(28×28)個,即輸入圖像的大小。前兩層使用relu激活函數(shù),最后一層使用sigmoid函數(shù),重構(gòu)損失函數(shù)為重建圖像與輸入圖像的平方差之和。
動態(tài)路由算法是由向量到向量,一個向量也就是一個膠囊。要得到向量,首先將主膠囊層的6×6(×8)×32的特征圖轉(zhuǎn)換為1152×8的特征矩陣,表示有1152個特征維度為8的膠囊。
圖2 動態(tài)路由算法
圖2為動態(tài)路由算法的示意圖,圖中以輸入兩個膠囊輸出三個膠囊為例。輸入向量與變換矩陣相乘得到預測向量,其中變換矩陣為參數(shù),通過學習得到。耦合系數(shù)通過權(quán)重應用函數(shù)得到,使得=1且均為非負數(shù)。表示表示第個低級膠囊到第個高級膠囊的連接權(quán)重,設置初始為0。與對應相乘再相加得到,將通過函數(shù)即可得到輸出向量,。根據(jù)公式=+*更新權(quán)重,然后重復這個過程。函數(shù)的表達式如下
(2)
式子=+*是動態(tài)路由算法的核心,確定低層膠囊和高層膠囊的相關(guān)性,越相關(guān)的通過迭代算法是它們更加相關(guān),不相關(guān)的讓它們的相關(guān)性越差。如圖3所示,與1最高,則它們的向量點積最大,使得下一次的計算更加相關(guān)1。
圖3 路由算法概念圖
本文提出的注意力膠囊網(wǎng)絡如圖4所示,輸入圖像經(jīng)過圖像預處理后為(510×510×1),經(jīng)過一個深度卷積網(wǎng)絡提取特征,然后引入通道注意力,用來給不同的特征分配不同的權(quán)重。主膠囊層的卷積核為(5×5×256),s=2,主膠囊層將標量神經(jīng)元轉(zhuǎn)換為向量神經(jīng)元,最后在數(shù)字膠囊層應用路由算法得到(16×160)的向量矩陣,其中,包含160個膠囊向量(160個類別),每個膠囊的特征維數(shù)為16。對每個膠囊進行L2范數(shù)計算得到輸出(160×1),對輸出求最大值的索引值即為輸入圖像的類別。
圖4 注意力膠囊網(wǎng)絡模型
更深的卷積網(wǎng)絡可以提取到更高級的特征,從而得到更優(yōu)質(zhì)的膠囊。VGG網(wǎng)絡在卷積層使用小卷積核(3×3)來減少參數(shù),增加網(wǎng)絡層數(shù)來獲取與大卷積核相同的感受野,整個網(wǎng)絡不僅提高了運算速度,圖像識別的效果也顯著提升。本文基于VGG網(wǎng)絡提出三種深度卷積網(wǎng)絡用于路由算法前提取更高級的掌紋圖像特征。3種深度卷積網(wǎng)絡如圖5所示。考慮到深度卷積網(wǎng)絡的輸出特征圖大小不能過大,否則會在主膠囊層生成過多的膠囊,特征冗余的同時給路由算法帶來大量的計算成本,造成過擬合甚至計算機無法正常工作;另外,由于高分辨率掌紋數(shù)據(jù)集的訓練數(shù)據(jù)少,不宜加過多的卷積層,會造成無法訓練的情況,故,只提出了三種很相近的三種深度卷積網(wǎng)絡,未使用池化層,而是選擇步長為2的卷積層來進行下采樣操作。結(jié)構(gòu)a和結(jié)構(gòu)b的區(qū)別只在最后一個卷積層是否進行步長為2的下采樣,結(jié)構(gòu)c和結(jié)構(gòu)a、b的區(qū)別在于少了一個卷積層。
圖5 三種深度卷積網(wǎng)絡
視覺注意力機制基于人眼看到物體時的信息處理過程,在觀察一個物體時,人眼和大腦會自動給重要的特征更多的注意力,對于不同的物體,注意力的中心區(qū)域也會發(fā)生變化。神經(jīng)網(wǎng)絡可以很好的查找出圖像中所有的特征點,但沒法去區(qū)分那些特征點是更重要的,需要給予更多關(guān)注和權(quán)重的,因此注意力機制就是給神經(jīng)網(wǎng)絡一組權(quán)重,可以從眾多的特征中選擇出重要特征賦予更多權(quán)重并抑制不重要的特征。
路由算法不僅會學習到特征是什么,還會學習到特征之間的位置關(guān)系,對特征的空間方位具有感知力,所以注意力膠囊網(wǎng)絡模型中只在用到了通道注意力,即特征是什么。本文的通道注意力模塊是采用的CBAM中的注意力模塊,其公式如下:
()=((())+((()))
(3)
圖6 通道注意力模塊
所有實驗均在Ubuntu18.04.4LTS 操作系統(tǒng)上進行,采用TensorFlow深度學習框架,i7-9700 處理器,RTX 2080Ti顯卡,32GB 內(nèi)存。損失函數(shù)默認使用margin Loss,m=0.9,m=0.1,λ=0.5,Adam優(yōu)化器,路由算法迭代3次,Batch Size為2。
實驗使用清華大學自動化學院采集的THU 高分辨率掌紋數(shù)據(jù)庫。數(shù)據(jù)庫中總共包含了 一共160個不同手掌的1280 張高分辨率掌紋圖像,每個手掌有8 張圖像。每一張高分辨率掌紋圖像的分辨率都是 500 ppi,大小2040×2040 像素,大部分的掌紋圖像都是灰度圖像,但有少數(shù)掌紋圖像是彩色圖像。處理數(shù)據(jù)時,將所有的高分辨率掌紋圖像都讀取為灰度圖像。
實驗將數(shù)據(jù)集中每一類掌紋圖像的第1、2、3、4、6、8張圖像,即160×6張掌紋圖像作為訓練樣本;把其余的 160×2 張掌紋圖像作為測試樣本。數(shù)據(jù)集里本來的高分辨率掌紋圖像大小為2040×2040 像素,為了減小運算量提高運算速度,對數(shù)據(jù)集進行降采樣預處理,處理后的掌紋圖片大小為510×510像素。圖7中顯示了一張來自 THU 數(shù)據(jù)庫中的掌紋圖像樣例。
圖7 高分辨率掌紋圖像
表1為無重構(gòu)網(wǎng)絡的三種特征提取模型下的高分辨率掌紋圖像識別率。由表可知,結(jié)構(gòu)a的訓練時間大約只有另外兩種結(jié)構(gòu)的三分之一,這是因為結(jié)構(gòu)a的輸出特征圖只有另外兩種結(jié)構(gòu)的一半,在主膠囊層形成的膠囊數(shù)量只有它們的四分之一,整個模型的的計算成本主要集中在路由算法。結(jié)構(gòu)b在最后一個卷積層步長為1,增大了學習難度和復雜度,識別效果略低于結(jié)構(gòu)a。結(jié)構(gòu)c直接減少一個卷積層,也就減少了一個卷積層的參數(shù)量,直接使用路由算法進行學習分類能得到更好的識別效果,可以看出,對于小數(shù)據(jù)集,膠囊網(wǎng)絡識別效果明顯優(yōu)于卷積網(wǎng)絡。
表1 三種卷積網(wǎng)絡識別率對比
由表可知,結(jié)構(gòu)c的特征提取模型的識別率明顯由于另外兩種特征提取模型,因此在后面的注意力膠囊算法中采用結(jié)構(gòu)c的特征提取模型。另外,在結(jié)構(gòu)下c,加上三層的全連接重構(gòu)網(wǎng)絡之后,識別率為84.06%,重構(gòu)網(wǎng)絡的參數(shù)量為
16×512+512×1024+1024×(510×510×1)=266,874,880
在增加計算成本之后,識別率只增加了0.93%,因此選擇以較小的識別精度來換取模型的精簡和訓練速度。
圖8 為加入通道注意力模塊的膠囊網(wǎng)絡測試結(jié)果,橫坐標為訓練次數(shù),縱坐標分別為準確率和損失值。網(wǎng)絡在第23個epoch得到最好的測試準確率88.13%,損失值為0.07。
圖8 注意力膠囊網(wǎng)絡測試結(jié)果
表2為注意力膠囊網(wǎng)路和基礎膠囊網(wǎng)路、VGG16的實驗結(jié)果對比圖,可以看到,加了通道注意力的膠囊網(wǎng)絡識別準確率提升了5%,訓練時間只增加了0.33s;相對于VGG16網(wǎng)絡,準確率高了16.26%,訓練時間少2.57s。
表2 各算法在測試集上的測試結(jié)果
本文通過對膠囊網(wǎng)絡進行改進算法,首先,選擇去掉重構(gòu)網(wǎng)絡,精簡網(wǎng)絡模型提升運算速度;采用超深度小卷積神經(jīng)網(wǎng)路來優(yōu)化特征提取部分的同時設置步長為2進行下采樣操作,為膠囊算法的輸入提供高質(zhì)量的輸入膠囊和減小膠囊算法的參數(shù)量;加入通道注意力能夠挑選出重要特征并增加重要特征的權(quán)重,進一步提高網(wǎng)絡在高分辨率掌紋圖像上的識別精度。實驗證明,注意力膠囊網(wǎng)絡在識別精度優(yōu)于沒有注意力模塊的膠囊網(wǎng)絡。