文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.182236
中文引用格式: 余成波,熊遞恩. 基于膠囊網(wǎng)絡的指靜脈識別研究[J].電子技術應用,2018,44(10):15-18.
英文引用格式: Yu Chengbo,Xiong Dien. Research on finger vein recognition based on capsule network[J]. Application of Electronic Technique,2018,44(10):15-18.
0 引言
近幾年來,在機器學習的發(fā)展日益更新中,深度學習算法也不斷進步、更新。從2012年AlexNet[1]的誕生,一直到2017年VGG[2]、GoogleNet[3]、ResNet[4]等網(wǎng)絡的優(yōu)化、改進版的出現(xiàn),保證了深度學習算法在圖像分類的ImagNet挑戰(zhàn)賽上遠勝其他分類算法。卷積神經(jīng)網(wǎng)絡(CNN)通過卷積提取特征,從底層到高層映射,實現(xiàn)復雜函數(shù)逼近,展現(xiàn)了智能學習的能力。文獻[5]提出了采用改進的AlexNet網(wǎng)絡訓練指靜脈圖像,將3×3卷積核改為1×1并減少了特征圖數(shù)量,在循環(huán)50 000次后,識別率達到99.1%。文獻[6]采用VGG網(wǎng)絡訓練指靜脈圖像,對比了低質(zhì)、中質(zhì)、高質(zhì)圖像和16層VGG網(wǎng)絡、19層VGG網(wǎng)絡的訓練結果,其中16層VGG網(wǎng)絡的誤識率達到最低0.396(高質(zhì)圖像)。
通過標準高質(zhì)圖像的訓練,CNN適合運用于指靜脈的識別中,但是同樣存在一些實際問題。通過采集器采集到的圖像有非常大的幾率采集到淺部的指靜脈圖像,同時,在對圖像處理時是基于二維矩陣,CNN對全局指靜脈圖像學習特征時效果并不好,隱藏在表皮層靠后的靜脈不會被學習到,因此會嚴重影響到識別精確度。
如圖1所示,淺部靜脈圖像特點在于局部靜脈較細、顏色較淺、分布不均且不完整,導致這樣的原因主要是因為此靜脈比較靠后,紅外攝像頭不能清晰地穿過組織進行拍攝。然而正常圖像的靜脈粗細、顏色均勻分布明顯。
2017年12月,HINTON G E提出了CapsNets的網(wǎng)絡結構[10],并在multiMINIST上訓練精確度為99.23%,實現(xiàn)了在affinist測試集上79%的精確度,遠超CNN的66%,同時CapsNets耗時較少,為目前精確度最高的網(wǎng)絡[11]。指靜脈圖像常存在靜脈重疊,導致采集過程中常出現(xiàn)一條重疊的靜脈圖像。CNN對空間位置的學習效果不佳,所以在采集圖像時會對同一指頭采集多次,使得網(wǎng)絡盡可能學習到特征圖中每一處靜脈,而CapsNets在空間位置上對靜脈圖像的處理遠超CNN,整個學習過程中以“膠囊”的形式從底層傳遞至高層,封裝多維特征,如此可減少訓練樣本數(shù)量的同時也保留了出現(xiàn)概率少的的靜脈特征。為此本文提出了將CapsNets應用于指靜脈識別方法中。
1 CapsNets
1.1 網(wǎng)絡結構
一些主要的計算機視覺任務中都需要一個不同的CNN架構,CNN圖像分類的效果已經(jīng)得到各位研究人員的認可,但是存在以下問題:
(1)CNN要接受大量圖像的訓練,這使得在獲得訓練樣本時要消耗不少時間,但CapsNets可以使用較少的訓練數(shù)據(jù)進行訓練。
(2)CNN不能很好地處理歧義。CapsNets即使在密集的場景下,也可以表現(xiàn)出色。
(3)CNN在池化層中丟失了大量的信息。池化層取最大值保留了出現(xiàn)概率較高的特征,同時舍去了出現(xiàn)概率較少的特征,往往我們又需要這些重要的信息,這些層減少了空間分辨率,所以它們的輸出無法對輸入的小變化做出反應。當在整個網(wǎng)絡中必須保存詳細的信息時,這是一個問題。如今,解決這個問題的方法是通過在CNN周圍建立復雜的體系結構來恢復一些丟失的信息。CapsNets詳細的屬性信息在整個網(wǎng)絡中被保留下來而不是丟失后被恢復。輸入的小改動導致輸出的細微變化,信息被保留,這就是所謂的等變性。因此,CapsNets可以在不同的視覺任務中使用相同的簡單一致的架構。
(4)CNN需要額外的組件來自動識別一個部件屬于哪個對象。CapsNets可以為其提供部件的層次結構。
CapsNet是一個非常淺的網(wǎng)絡,加上卷積層和全連接層一共3層。CNN在抽取低級特征上表現(xiàn)非常優(yōu)秀,相反CapsNets是用來表征某個物體的“實例”,所以它更加適合于去表征高級的實例。所以在CapsNets中的底層加入傳統(tǒng)CNN的卷積層做底層的特征抽取。
如圖2所示,從低級特征到 Primary Capsule,第二卷積層的維度是6×6×8×32,用32個步長為2的9×9×256的濾波器做了8次卷積操作,在CNN中維度為6×6×1×32的層里有6×6×32元素,每個元素是一個標量,在Capsule中,維度為6×6×8×32的層里有6×6×32元素,每個元素是一個 1×8的向量,主要儲存低級別特征的向量。
從Primary Capsule到Digit Capsule,PrimaryCaps和DigitCaps是全連接的,但不是像傳統(tǒng)CNN標量和標量相連,此全鏈接層是向量與向量相連,動態(tài)路由算法迭代3次計算cij輸出584個vj。
Digit Capsule到最終輸出,它的長度表示其表征的內(nèi)容出現(xiàn)的概率,所以在做分類時,取輸出向量的 L2 范數(shù)。CapsNets并不像以往的神經(jīng)網(wǎng)絡輸出的概率總和為1,因為CapsNets有同時識別多個物體的能力。
1.2 膠囊
起初的神經(jīng)網(wǎng)絡依靠使用單一的標量輸出來總結一個局部池中的重復特征檢測器的活動,CNN會對單一的圖像進行位移、旋轉(zhuǎn)等處理后的圖像,看做是兩幅圖。然而神經(jīng)網(wǎng)絡應該使用的是多維特征也就是“膠囊”的形式,這些膠囊對其輸入執(zhí)行一些非常復雜的內(nèi)部計算,然后將這些計算的結果封裝成一個包含信息豐富的輸出的向量。每個膠囊會學習辨識一個局部條件和有效變形范圍內(nèi)隱性定義的視覺實體,并輸出在有限范圍內(nèi)存在的概率及一組實體參數(shù),這組實體參數(shù)會包括相對這個視覺實體的照明條件、精確的位姿和變形信息等。當膠囊工作正常時,視覺實體存在的概率具有局部不變性,也就是當實體在膠囊覆蓋的有限范圍內(nèi)的外觀流形上移動時,概率不會改變。實體參數(shù)卻是“等變的”,隨著觀察條件的變化,實體在外觀流形上移動時實例參數(shù)也會相應地變化,因為實例參數(shù)表示實體在外觀流形上的內(nèi)在坐標,如圖3所示。
假設一個膠囊,它檢測圖像中的指靜脈特征,并輸出長度固定三維向量。接著開始在圖像上移動靜脈。同時,向量在空間上旋轉(zhuǎn),表示檢測出的靜脈的狀態(tài)改變了,但其長度將保持固定,因為膠囊仍然確信它檢測出了靜脈。神經(jīng)活動將隨著物體在圖像中的移動而改變,然而檢測概率保持恒定,這就是CapsNets追求的不變性,而不是CNN提供的基于最大池化的不變性。
1.3 Squash函數(shù)
CNN常用的激活函數(shù)包括ReLU、sigmoid等,實現(xiàn)的只是線性疊加后壓縮在0~1或者1~-1之間。在CapsNets中,因為在前層網(wǎng)絡中以向量的形式輸送,所以在做激活時需要對“膠囊”做方向處理。CapsNets的激活函數(shù)命名為Squash,表達式如式(2)所示:
1.4 動態(tài)路由
膠囊的輸入和輸出的點積測量輸入與輸出的相似性,然后更新路由系數(shù)。實踐中的最佳的迭代次數(shù)是3次。動態(tài)路由的步驟為:
(1)將輸入的圖片進行膠囊封裝后輸出Uj|i,路由迭代次數(shù)r;
(2)定義bij為l層VNi連接下一層VNj的可能性,初始值為0;
(3)循環(huán)執(zhí)行步驟(4)~步驟(7)r次;
(4)對l層的VNi,將bij用Softmax轉(zhuǎn)化成概率cij;
(5)對l+1層的VNj,加權求和sj;
(6)對l+1層的VNj,使用激活函數(shù)激活sj得到vj;
(7)根據(jù)Uj|i和vj的關系來更新bij。
用Uj|i和vj的點積來更新bij,當兩者相似時,點積就大,bij也就變大,低層VNi連接高層VNj的可能性就變大;相反,當兩者差距大時,點積就小,bij也就變小,低層 VNi連接高層VNj的可能性就變小。
1.5 損失函數(shù)
CapsNets的損失函數(shù)類似于SVM的損失函數(shù),如式(3)所示;
式(3)同樣表示最大化正負樣本到超平面的距離。這里給定了2個標定點m+=0.9和m-=0.1,損失希望正例樣本m+預測在0.9,超過0.9就沒必要繼續(xù)提高了;負例m-預測在0.1,低于0.1也就沒必要繼續(xù)再下降了。λ的值固定為0.5,用于訓練期間的數(shù)值穩(wěn)定性,是為了防止一開始損失過大,導致全部輸出值都在收縮。公式中的兩個項都有平方,因為這個損失函數(shù)具有L2范數(shù),總損失是所有類損失的總和。
2 實驗
2.1 數(shù)據(jù)集
本次實驗采用的數(shù)據(jù)集是584個人的6根手指(除大拇指與小指)圖像,每根手指重復采集20次,也即數(shù)據(jù)集大小為584×6×20。其中訓練集為60 000張,測試集為10 000張。
2.2 實驗結果
利用TensorFlow開源框架設計和實現(xiàn)深度神經(jīng)網(wǎng)絡。進行3次路由循環(huán),迭代訓練31 000次。識別率與loss值如表1所示。
整個實驗在NVIDIA Titanxp上,CapsNet網(wǎng)絡訓練時間花費約6小時,通過圖4可以看出,橫坐標為CapsNets的迭代次數(shù),縱坐標為CapsNets的精確度與loss值,當?shù)? 000次的時候,開始逼近90%的精確度,同時loss已經(jīng)低至0.2,隨著迭代次數(shù)的增加,震動逐漸減少趨近平穩(wěn),最后收斂于98.6%,而loss值也驚人地收斂于0.010 7。圖5為VGG-16的訓練圖,可以看出比較平穩(wěn),后期的學習并沒提升多少精確度,當?shù)?00次的時候網(wǎng)絡精確度趨近84%,最后精確度在85%,而loss值緩慢減小,最后總loss值在0.21。如表2所示,相比VGG-16,CapsNets優(yōu)勢非常明顯(采用同一個數(shù)據(jù)集實驗)。
3 結論
通過實驗證實了CapsNets比CNN更佳適合指靜脈識別,由于網(wǎng)絡結構的簡易,使得訓練速度大幅度地提升。同時,因為CapsNets的空間特性使得靜脈特征被更完整地提煉出,增加了識別精確度。但是CapsNets也常與背景糾纏在一起,CapsNets仍處于起步階段,在以后的工作當中,也許在出現(xiàn)龐大的數(shù)據(jù)集的時候會出現(xiàn)其他問題,不過CapsNets的出現(xiàn)使得我們在人工智能的研究中跨進一大步。
參考文獻
[1] KRIZHEVSKY A,SUTSKEVER I,HINTON G E.ImageNet classification with deep convolutional[C].International Conference on Neural Information Processing Systems,2012,60(2):1097-1105.
[2] SIMONYAN K,ZISSERMAN A.Very deep convolutional networks for large-scale image recognition[J].Computer Science,arXiv:1409.1556,2014.
[3] SZEGEDY C,LIU W,JIA Y,et al.Going deeper with convolutions[C].IEEE Conference on Computer Vision & Pattern Recognition,2015:1-9.
[4] He Kaiming,Zhang Xiangyu,Ren Shaoqing,et al.Deep residual learning for image recognition[C].IEEE Computer Society,2015.
[5] 吳超,邵曦.基于深度學習的指靜脈識別研究[J].計算機技術與發(fā)展,2018(2):200-204.
[6] HONG H G,LEE M B,PARK K.Convolutional neural network-based finger-vein recognition using NIR image sensors[J].Sensors,2017,17(6):1-21.
[7] 余成波,秦華鋒.手指靜脈圖像特征提取算法的研究[J].計算機工程與應用,2008,44(24):175-177.
[8] GONZALEZ R C,WOODZ R E.數(shù)字圖像處理[M].阮秋琦,等,譯.北京:電子工業(yè)出版社,2007.
[9] Wen Yandong,Zhang Kaipeng,Li Zhifeng,et al.A discriminative feature learning approach for deep face recognition[J].Lecture Notes in Computer Science,Springer,2016,47(9):499-515.
[10] HINTON G E,KRIZHEVSKY A,WANG S D.Transforming auto-encoders[C].International Conference on Artificial Neural Networks,2011,6791:44-51.
[11] SABOUR S,F(xiàn)ROSST N,HINTON G E.Dynamic routing between Capsules[J].NIPS2017,2017.
[12] 劉洋,郭樹旭,張鳳春,等.基于稀疏分解的指靜脈圖像去噪[J].信號處理,2012,28(2):179-185.
[13] ROSDI B A,CHAI W S,SUANDI S A.Finger vein recognition using local line binary pattern[J].Sensors,2011,11(12):11357-71.
[14] AREL I,ROSE D C,KARNOWSKI T P.Deep machine learning-a new frontier in artificial intelligence research[J].Computational Intelligence Magazine IEEE,2010,5(4):13-18.
作者信息:
余成波,熊遞恩
(重慶理工大學 電氣與電子工程學院,重慶400050)