付玉虎,杜月榮,李哲哲
(1.西安電子科技大學物理與光電工程學院,陜西 西安 710071;2.西安電子科技大學通信工程學院,陜西 西安 710071)
隨著指紋識別技術(shù)在各個領(lǐng)域的廣泛應用,越來越多的學者對指紋識別技術(shù)展開了更加深入的探索和研究。對于圖像分割算法,常見的有基于Gaussian-Hermit各階矩能量分布[1]、Harris 角點能量分布[2]、分塊梯度[3]、遺傳算法[4]、K 均值和模糊 C 均值[5]等。其中,文獻[3]的算法處理速度快,分割效果好,且易于實現(xiàn)。萬鵬[6]優(yōu)化了Gabor濾波器的窗口大小,同時將傳統(tǒng)的方形Gabor濾波器改為圓形,對指紋圖像進行了增強。Safar Hatami[7]和王瑤[8]分別采用了八方向脊線濾波器和小波變換,較好地降低了圖像中的噪聲。計春雷等[9]針對傳統(tǒng)的二值化處理速度慢、不適用于低對比度指紋圖像等缺點,給出了一種動態(tài)閾值的二值化算法。文獻[10-12]采用了固定閾值算法,有效地刪除了多數(shù)偽特征點,但對于非均勻采集的指紋圖像的偽特征點,無法有效刪除。本文結(jié)合以上算法的優(yōu)點,給出一種高效準確的預處理算法,該算法能較好地適用于不同質(zhì)量指紋圖像,對非均勻采集的指紋圖像效果較好。
采集到的指紋圖像由于含有大量噪聲,需要進行預處理。本文給出的預處理主要包括:圖像分割、圖像增強、二值化以及后處理、細化以及偽特征點的刪除。由于圖像質(zhì)量不同,不能直接進行分割。首先采用3×3高斯模板濾波,去除圖像中的部分噪聲,使得指紋圖像的紋理更加平滑。針對圖像質(zhì)量不同,對指紋圖像統(tǒng)一規(guī)格化處理,使得所有指紋圖像都具有統(tǒng)一的均值和方差,同時降低了指紋的脊線和谷線間的灰度差異。規(guī)格化以及圖像分割流程如下:
(1)求出原始圖像灰度均值和灰度方差。
(2)求取規(guī)格化后的圖像灰度值。
其中,G(i,j)表示原始指紋圖像在(i,j)處像素點的灰度值,M、N為指紋圖像的高度與寬度,E(G)為原指紋圖像的灰度均值,V(G)為原指紋圖像的灰度方差,E0、V0為期望的灰度均值和灰度方差,一般根據(jù)實驗選取適中的期望值;G'(i,j)表示歸一化后的指紋圖像在(i,j)處像素點的灰度值。本文選取E0=100,V0=100。
(3)Soble 算子求梯度和塊梯度分割[3,13]。
結(jié)合指紋圖像灰度方差和方向信息,將指紋圖像分塊,利用Soble算子分別計算各像素點梯度,并求出塊梯度均值和塊梯度方差。取各方向的塊梯度標準差之和作為塊特征值,再對塊特征值取均值找出塊梯度的分割閾值,大于閾值部分作為指紋圖像前景,小于閾值作為指紋圖像背景。
本算法中的圖像增強是基于Gabor濾波[6]與八方向脊線濾波[8]的改進算法,主要包括:圖像平滑、方向圖以及離散化、均值濾波、Gabor濾波。
無規(guī)律的噪聲對指紋方向場的準確性提取有很大的影響,為了更準確地提取指紋方向場,先采用超限鄰域平滑濾波[14]的方法對圖像平滑處理,去除無規(guī)律的噪聲。G(i,j)為(i,j)處的像素值。采用3×3模板對像素點(i,j)八鄰域求取平均值E'(i,j),Q為設定閾值。如果|G'(i,j)- E'(i,j)|≥Q,則認為該處像素值為噪聲像素,用 E'(i,j)代替 G'(i,j)作為(i,j)處的像素值。
指紋圖像自身的紋線性和方向性比較強,使得指紋的脊線和谷線在一個相對較小的區(qū)域,脊線和谷線的方向大致相同,并具有唯一性。對已經(jīng)平滑的指紋圖像采用Soble算子,求取像素點(i,j)處的橫向梯度和縱向梯度,并將指紋紋線方向取值范圍規(guī)定為[0°,180°]之間。每隔 22.5°取一個方向,共計 8個大方向。用公式法(詳見文獻[6])求取像素點脊線的大致方向,選擇濾波窗口為5×5的低通濾波器濾波修正該方向圖得到平滑離散的方向圖。
根據(jù)線性空間的結(jié)構(gòu)構(gòu)建八方向濾波模板(如圖1),并進行均值濾波。經(jīng)過均值濾波可以去除圖像中與濾波尺寸相比較小的的噪聲區(qū)域,但是均值濾波同時也會帶來一定程度的邊緣模糊效應。為了去除這一影響,需要對圖像采用Gabor濾波處理。
圖1 八方向均值濾波模板
Gabor變換屬于加窗傅立葉變換,Gabor函數(shù)可以在頻域不同尺度、不同方向上提取相關(guān)的特征,并能在時域和頻域獲得最佳的局部化。指紋脊線和谷線交替排列,且沿著脊線或谷線的切線方向,灰度值變化緩慢,法線方向,灰度值變化劇烈。Gabor濾波器的方法需要根據(jù)樣本估計濾波器的參數(shù)。二維Gabor函數(shù)表示為:
v的取值決定了Gabor濾波的波長,u的取值表示Gabor核函數(shù)的方向,K表示總的方向數(shù)。參數(shù)決定了高斯窗口的大小,這里取σ =π。程序中取4 個頻率(v=0,1,2,3),8 個方向(即 K=8,u=0,1,...,7),共32 個 Gabor核函數(shù)。
為了盡可能地去除邊緣模糊效應這一影響,本文在算法中設定切線方向濾波模板參數(shù)為Hx=0.1(1,0,2,0,4,0,2,0,1),法線方向濾波模板為 Hy=(-1,0,-2,0,9,0,-2,0,-1),采用矩形 Gabor濾波處理。用切線方向和法線方向2個一維濾波器來估計矩形Gabor濾波器。結(jié)合均值濾波,對指紋圖像先進行法線方向銳化,再進行切線方向平滑。
圖像二值化關(guān)鍵是閾值的確定,常用的算法概括有2大類:全局閾值和局部閾值。文獻[9]給出了動態(tài)閾值加填補的算法,較好地完成了圖像的二值化,且算法具有一定的連接圖像中斷線的能力,這對提高細節(jié)特征提取結(jié)果的準確性具有重要的意義。但對于圖像中產(chǎn)生的孔洞、短線等無法進行更加有效的處理。為此,本文改進該算法的后續(xù)處理,使其更加完善。算法描述如下:
(1)將分割后的指紋圖像分為n個像素相同的小窗口,窗口像素個數(shù)為W。對每個窗口所有像素求和取平均值為pi,取經(jīng)驗值為ω,使得動態(tài)窗口閾值T滿足:
(2)窗口內(nèi)所有像素值大于T的點賦值為1,小于T的點賦值為0。
(3)搜索圖像中白色點,搜索并統(tǒng)計該白點四鄰域黑點數(shù)N1和八鄰域黑點數(shù)N2,若N2≥7或N1≥3、N2≥5,則將該八連通域白色點填充為黑色點,否則,統(tǒng)計白色點八連通域R內(nèi)白色點的數(shù)目TR,實驗分析閾值為W1,如果TR≤W1,對連通域R,分別統(tǒng)計和判斷與某一行(列)白色點所相鄰的2個黑色點的像素距離Sx(Sy),如果所有Sx(Sy)≤W2,將該八連通域白色點填充為黑色點。否則,標記連通域?qū)陌c。
(4)重復操作直至不存在未標記的白點時,圖像取反色,返到(3);經(jīng)過完全處理后,再次取反獲取最終圖像。
本文指紋系統(tǒng)采用數(shù)學查表細化算法[15]。細化后的脊線像素點根據(jù)八鄰域特點可分為孤立點、端點、內(nèi)點、分叉點,如圖2的(a)~(d)所示。常見的指紋識別系統(tǒng)提取的指紋特征點主要是有效的端點和分叉點[16],圖3給出了常見的偽特征點。偽特征點的刪除中,像素閾值的選取十分重要。本文為了更好地刪除偽特征點,對閾值選取采用統(tǒng)計求平均思想,自動選取閾值。
圖2 孤立點、端點、內(nèi)點和分叉點的示意圖
圖3 幾種偽特征點
其中,P'(8)=P'(0),P'(i)代表八鄰域中某一像素點的值,若像素點為白色點,則P'(i)=1;若為黑色點,P'(i)=0。Y表征了脊線上點的性質(zhì),Y=0、1、2對應八鄰域的中心點分別為孤立點、端點、內(nèi)點,Y≥3,中心點為分叉點。
本文根據(jù)先驗的偽特征點的一般形式,結(jié)合指紋的方向信息和自動閾值信息,綜合文獻[9-12]的算法思想,給出偽特征點刪除算法。具體步驟如下:
(1)結(jié)合特征點的局部結(jié)構(gòu)信息,判斷指紋圖像黑色像素點的性質(zhì),濾除所有邊緣特征點后,標記出所有準特征點。
(2)依次判斷準特征點屬于孤立點、端點、分叉點。對于孤立點直接刪除;對于端點,判斷該點連通域上的像素點個數(shù)是否大于閾值M1,若大于閾值則存儲,否則,刪除該毛刺;對于分叉點依次判斷3條相鄰脊線是否大于閾值M1,若都大于閾值則存儲,否則,若有一條標記脊線像素點個數(shù)不大于閾值,則可能為毛刺、小橋、梯形,刪除不大于閾值的標記點;若有2條標記脊線像素點個數(shù)不大于閾值,判斷這2條脊線在中心點處對應的切線方向,并與第3條脊線的切線方向?qū)Ρ?,保留切線方向相近的脊線,將另一條
為判斷八鄰域中心點性質(zhì)的公式如下:填充。
(3)通過脊線方向信息和相關(guān)性,濾除關(guān)聯(lián)性較大和特征點像素距離不大于M1的特征點,剩下為獲取的真實特征點。
圖4 指紋圖像預處理效果圖
指紋識別系統(tǒng)在VC++平臺上采用C語言編程實現(xiàn)。對于本文所提出的預處理方法進行實驗驗證,并實現(xiàn)該算法。為了說明文算法效果,圖4(a)給出了FVC2002_DB3數(shù)據(jù)庫中一枚普通指紋圖像,圖4的(b)~(m)分別為針對這一指紋圖像采用本預處理算法每一步的實際效果圖。
由圖4可知,(b)濾除了高斯噪聲,圖形更加均衡,紋理更加清晰。(c)規(guī)格化,降低了指紋脊線谷線的對比度,使得不同指紋圖像都具有相同的灰度均值方差,便于圖像分割。(d)為分割效果圖,利用圖像整體塊特征值均值與分割參數(shù)的乘積自適應計算分割閾值,該過程能適用于不同的指紋庫,具有較好的魯棒性。對比(d)與(f),指紋圖像內(nèi)部噪聲基本完全消除,脊線經(jīng)過(g)Gabor濾波后,指紋圖像脊線和谷線,更加平滑地濾除了大部分脊線或者谷線內(nèi)部的孤立點、空洞等。由于閾值選取不同,(h)二值化后,會產(chǎn)生部分空洞、斷線、孤立點等,本文在此基礎(chǔ)上進行后處理,有效地消除了這一問題,能更好地保證細化的準確性和圖像的完整性。對比(j)和(k),發(fā)現(xiàn)本文細化后殘留的偽特征點基本被消滅。(m)給出了該指紋圖像對應的特征點,對比(a)可知,該圖像中特征點已完全被找出,且沒有新的偽特征點產(chǎn)生,說明該算法的效果較好。統(tǒng)計表明,該算法提取特征點中包含端點24個、分叉點20個,丟失真實特征點1個,特征點提取的準確率97.78%,濾除邊緣偽特征點48個,刪除內(nèi)部偽特征點23個,遺漏偽特征點2個,該算法產(chǎn)生偽特征點0個,偽特征點刪除比例97.26%,很好的實現(xiàn)了指紋識別系統(tǒng)的要求。
為了更充分地說明本文算法的有效性,取FVC2002_DB3數(shù)據(jù)庫中10幅指紋圖像,分別采用文獻[6]算法和本文算法,對應的統(tǒng)計結(jié)果如表1。其中,T1表示刪除前圖像中的特征點和偽征點的總數(shù);B1、B2、A1、A2分別表示真實特征點中的端點個數(shù)之和、特征點中的分叉點個數(shù)之和、丟失真實特征點個數(shù)之和、特征點中包含偽特征點的個數(shù)之和;P1表示特征點提取的準確率;P2表示特征點中包含的偽特征點的比例;S1、S2、S3、S4依次代表濾除邊緣偽特征點個數(shù)之和、刪除內(nèi)部偽特征點個數(shù)之和、遺漏偽特征點個數(shù)之和、該算法產(chǎn)生偽特征點個數(shù)之和;P表示偽特征點刪除比例。特征點準確率計算公式為:
特征點中包含的偽特征點的比例:
偽特征點刪除比例計算公式為:
表1 2種算法處理的統(tǒng)計結(jié)果
由表1對比可知,本文定義的絕大部分偽特征點均已被刪除。相比文獻[6]算法,本算法能更加高效準確地刪除指紋圖像中的偽特征點,而文獻[6]算法指紋特征點的標記準確性低,刪除偽特征點的同時容易增加新的偽特征點。這進一步說明本預處理算法的有效性和魯棒性。
本文結(jié)合文獻[6,8-9]等算法的優(yōu)點,改進并實現(xiàn)了指紋預處理算法。采用均值濾波去除指紋圖像中大量噪聲,獲取較清晰的指紋圖像,并通過Gabor濾波解決了邊緣掩蓋效應問題,同時本算法對指紋圖像中斷線和孔洞等偽特征點都進行了有效的處理,使圖像的增強效果更好,并有效地提取出指紋特征點。實驗表明,該算法對不同質(zhì)量指紋圖像適用性強、準確率高、對偽特征點刪除效果好,為后續(xù)指紋特征匹配提供了較準確、真實的特征信息,滿足指紋識別系統(tǒng)的要求。但對指紋圖像增強算法的簡化和偽特征點去除方面仍有待于進一步改進。當指紋圖像清晰部分和不清晰部分大面積交叉(如脫皮比較嚴重的指紋圖像),增強算法受實際圖像情況影響較大。如何更加高效準確確定局部塊自動閾值,并把指紋脊線信息、方向信息和閾值信息充分綜合一起并進一步改進算法,仍有待進一步研究。
[1]Wang Lin,Suo Hongmin,Dai Mo.Fingerprint image segmentation based on gaussian-hermite moments[C]//Proceedings of the First International Conference on Advanced Data Mining and Applications.2005:446-454.
[2]Baig A,Bouridance A,Kurugollu F.A corner strength based fingerprint segmentation algorithm with dynamic thresholding[C]//Proceedings of the 19th International Conference on Pattern Recognition.2008:1-4.
[3]Akram M U,Ayaz A,Imtiaz J.Morphological and gradient based fingerprint image segmentation[C]//2011 International Conference on Information and Communication Technologies(ICICT).2011:1-4.
[4]楊暉,鄭剛,張仁杰.基于遺傳算法的指紋圖像分割算法[J].光學技術(shù),2007,33(5):772-777.
[5]Balti A,Sayadi M,F(xiàn)naiech F.Segmentation and enhancement of fingerprint images using k-means,fuzzy c-mean algorithm and statistical features[C]//2011 International Conference on Communications,Computing and Control Applications(CCCA).2011:1-5.
[6]萬鵬.低質(zhì)量指紋圖像預處理算法研究[D].南京:南京郵電大學,2010.
[7]Hatami S,Hosseini R,Kamarei M,et al.Wavelet based fingerprint image enhancement[C]//IEEE International Symposium on Circuits and Systems.2005:4610-4613.
[8]王瑤,喻建平,劉宏偉,等.基于8方向脊向濾波器的指紋預處理方案[J].信號處理,2011,27(9):1423-1428.
[9]計春雷,馮偉,黎明,等.一種動態(tài)閾值加填補的指紋圖像二值化算法[J].計算機仿真,2011,28(7):258-261,289.
[10]Rahta N K,Chen S,Jain A K.Adaptive flow orientation based feature extraction in fingerprint images[J].Pattern Recognition,1995,28(11):1657-1672.
[11]陶剛,盧昀,李吉桂.細化指紋圖中偽特征點的一體化去除算法[J].現(xiàn)代計算機:專業(yè)版,2002(10):40-42.
[12]王建永,郭成安.一種基于局部結(jié)構(gòu)信息的指紋偽特征濾除算法[J].中國圖像圖形學報,2003,8(12):1467-1474.
[13]蔡秀梅,張永健,梁輝.結(jié)合方差和方向的指紋圖像分割算法[J].現(xiàn)代電子技術(shù),2011,34(12):111-113.
[14]郭喜.指紋預處理系統(tǒng)的研究與開發(fā)[D].長春:吉林大學,2009.
[15]徐俊峰.自動指紋識別系統(tǒng)算法研究[D].西安:西安電子科技大學,2013.
[16]董昕野.指紋圖像預處理算法的研究[D].長春:吉林大學,2011.