文/袁穎
基于傳統(tǒng)細節(jié)特征點指紋識別算法在指紋細節(jié)特征點有限時,誤識別率FPIR和誤比對率FMR往往不能達到預期要求,而且傳統(tǒng)指紋基于特征點的指紋識別還面臨大庫衰減和比對速度減慢等問題。伴隨近年來神經(jīng)網(wǎng)絡等算法的不斷成熟,越來越多的研究者將指紋識別的重心轉(zhuǎn)向?qū)χ讣y圖像中的紋理特征進行識別,基于神經(jīng)網(wǎng)絡的指紋識別是基于指紋圖像紋理特征而非指紋中的細節(jié)點特征,研究顯示基于神經(jīng)網(wǎng)絡的指紋識別可以高效處理海量指紋數(shù)據(jù),解決識別計算量大識別速度慢的問題。
本研究對導入的指紋灰度圖像進行二維小波變換,用spliteachlable將導入指紋的圖像拆分,分為75%的訓練集和25%的測試集,加載原始神經(jīng)訓練網(wǎng)絡進行訓練,通過使用Activitions來對目標圖像進行卷積計算提取特征,使用小波特征提取函數(shù)Imfilter再次提取圖像特征,將兩個特征使用矩陣計算進行合并,用Fitcecoc函數(shù)合共以上特征參數(shù)和訓練集標簽參數(shù),得到訓練好的分類器Classfier;用之前的矩陣計算融合的圖像特征訓練新的神經(jīng)網(wǎng)絡,得到訓練好的新神經(jīng)網(wǎng)絡;將待識別指紋輸入用卷積函數(shù)和小波特征提取函數(shù)對指紋圖像進行特征提取,用訓練好的深度學習訓練好的新神經(jīng)網(wǎng)絡和分類器對該特征進行匹配,最后輸出結(jié)果。本研究不需要繁瑣的預處理,運算效率較高,還可適用于質(zhì)量較低的指紋圖像。
圖1:Gabor濾波向量
圖2:指紋圖像小波變換圖
Gabor函數(shù)是有一個高斯函數(shù)和一個正弦平面波疊加形成,Gabor 濾波是位于邊緣檢測的線性濾波器,提取圖像的Gabor特征,形成含有圖像Gabor特征的方向向量,Gabor函數(shù)的表達式如下所示:
λ為正弦函數(shù)sinθ的波長,σ為高斯標準差,ψ為相位偏移,γ為x、y兩個方向的縱橫比。本算法利用Gabor濾波器將圖像進行8個方向的濾波,如圖1所示,圖2是指紋圖像小波變換圖。
CNN算法通過多層的卷積神經(jīng)網(wǎng)絡提取更抽象的特征,每一層的神經(jīng)元組織都和前一層以及后一層的神經(jīng)元相連,輸入的信息在通過層層神經(jīng)元處理之后,構(gòu)成更復雜的輸入的深度學習的特征。具體來說,CNN是由輸入層、卷積層和池化層、全連接層以及輸出層構(gòu)成,其中卷積層和池化層會有若干個,每一個卷積層都會和對應的池化層相連,之后再鏈接卷積層,這樣交替疊加連接構(gòu)成龐大的卷積池化層處理,淺層的卷積層收到來自輸入層的信息,經(jīng)過之后的局部加權(quán)求和,得到輸入值如圖3所示。
圖3:CNN卷積網(wǎng)絡結(jié)構(gòu)
圖4:系統(tǒng)架構(gòu)圖
圖6:新神經(jīng)網(wǎng)絡訓練流程圖
CNN的卷積核對于二維圖像而言可以是一個3*3或者5*5的矩陣。通過卷積層和相連接的池化層處理輸入的不同特征,淺層卷積層提取例如紋線寬度、邊緣形態(tài)等形象的特征也稱為基礎特征,深層卷積層提取圖像中更為抽象的特征。神經(jīng)元滿足如下關(guān)系:
圖5:分類器設計圖
其中iMapN表示輸入層輸入圖像特征面的大小,CWindow表示卷積核的大小,CInterval表示卷積核與前一層的滑動步長,池化層在卷積層之后,每一個池化層的輸入特征面的神經(jīng)元大小為DoMapN。
其中池化核的大小用DWindow表示,池化層通過對卷積層的處理減少神經(jīng)元的數(shù)量。
特征面是CNN的一個重要參數(shù),特征面的數(shù)量可以根據(jù)實際需求進行設置,本文使用金字塔架構(gòu),通過實驗并觀察所得訓練模型的分類性能,最終確定特征面數(shù)量。采用指紋方向場提取指紋圖像特征,淺層卷積層提取圖像的邊緣、輪廓特征,相當于輪廓檢測器。
Matlab的小波紋理特征融合指紋識別系統(tǒng)架構(gòu)分為深度學習模塊和特征匹配模塊兩個部分如圖4所示。
本系統(tǒng)的分類器主要是使用SVM極限向量機對導入的指紋圖像進行二維小波變換,用spliteachlable將導入的指紋圖像拆分為兩個新的數(shù)據(jù)存儲,分別為75%的訓練集和25%的測試集,加載原始神經(jīng)訓練網(wǎng)絡進行訓練,通過使用Activitions對目標圖像進行卷積計算提取特征,使用小波特征提取函數(shù)Imfilter再次提取的任意多維圖像進行濾波,提取到一組指紋圖像特征,將兩個特征使用矩陣計算進行合并,用Fitcecoc函數(shù)合共以上特征參數(shù)和訓練集標簽參數(shù),得到訓練好的分類器Classfier,整個流程如圖5所示。
將待識別指紋輸入用卷積函數(shù)和小波特征提取函數(shù)對指紋圖像進行特征提取,使用提取到的指紋圖像特征對新神經(jīng)網(wǎng)絡進行訓練,新神經(jīng)網(wǎng)絡在通過深度學習以后對輸入的指紋圖像特征進行匹配,過程如圖6所示。
圖像特征匹配的過程是在待識別的圖像輸入后,用前一階段指紋特征深度學習過后訓練出的新神經(jīng)網(wǎng)絡重復第一階段的流程,對輸入的指紋特征進行提取,分類識別結(jié)果輸出。如圖7所示。
圖7:特征匹配流程圖
實現(xiàn)平臺:MATLAB(Matrix Laboratory)矩陣實驗室,是由美國mathworks公司設計,為可視化交互程序設計的高科技計算環(huán)境。它將數(shù)值分析、矩陣計算、科學數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中。
運行環(huán)境:CPU:PENTIUM4 以上,內(nèi)存512以上,硬盤50G以上,操作環(huán)境:Microsoft Windows XP/ Microsoft Windows10/ Microsoft Server 2003;指紋輸入設備:MBF200固態(tài)電容傳感器
實驗環(huán)境:本文利用Matlab MatConvnet 工具箱建立卷積神經(jīng)網(wǎng)絡,MatConvnet是基于Matlab設計的卷積神經(jīng)網(wǎng)絡工具箱,可以直接進行調(diào)用,它的優(yōu)點是運算效率高實現(xiàn)簡單,可以訓練處高水平的深度網(wǎng)絡,本文使用的訓練數(shù)據(jù)是1000枚指紋照片。
建立MATLAB GUI界面,在界面中設置了選擇圖片、特征提取及混淆矩陣、訓練和識別模塊,選擇圖像之后,圖片會和訓練庫中已經(jīng)訓練好的圖像進行比對,最終匹配結(jié)果會顯示與該指紋圖片匹配的數(shù)據(jù)庫指紋圖片編號,如圖8所示。
整個實驗進行的過程中,新神經(jīng)訓練網(wǎng)絡訓練時間花費約6小時,通過圖9可以看出,橫坐標為迭代次數(shù),縱坐標為精確度與loss值,當?shù)?000次的時候,開始逼近90%的精確度,同時loss已經(jīng)低至0.2,隨著迭代次數(shù)的增加,震動逐漸,減少趨近平穩(wěn),最后收斂于98.6%,而loss值收斂于0.0107。
圖8:Matlab GUI界面
圖9:對應訓練圖像 橫坐標是迭代次數(shù) 縱坐標是精度
基于傳統(tǒng)細節(jié)特征點的經(jīng)典指紋識別算法在指紋細節(jié)特征點有限時,誤識別率FPIR和誤比對率FMR往往不能達到預期要求,面臨大庫衰減和比對速度減慢等問題,對指紋圖像中的紋理特征進行識別,可以高效處理海量指紋數(shù)據(jù),解決識別計算量大識別速度慢的問題,本研究通過MATLAB仿真實驗研究,通過深度學習方法對指紋庫進行訓練,采用Matlab GUI友好界面對指紋庫指紋進行識別,實驗結(jié)果顯示特征融合后的識別精度為99.95%,與傳統(tǒng)基于細節(jié)特征的經(jīng)典算法相比較,本識別的方式是解決目前傳統(tǒng)基于特征點識別算法面臨的大庫衰減等問題,為解決可識別特征點少的殘缺指紋的識別問題以及指紋自動識別中人工干預帶來的誤差等問題提供可能,應用前景廣闊。