潘 靜,帥仁俊
(南京工業(yè)大學電子與信息工程學院,江蘇 南京 211816)
指紋特征是人終生不變的特征之一,而且不同人的指紋特征相同的可能性幾乎為零,由于指紋鑒定花費小,效果好,因此指紋鑒定作為身份鑒定的一種方法有廣泛的應用前景,如案例分析、銀行存取款、汽車鎖、進人特殊環(huán)境等。但是,指紋比較即使對指紋專家來說也是一個繁鎖而又枯燥的工作。有關部門迫切需要計算機的幫助來完成指紋比較工作,所以實現(xiàn)一個指紋自動識別系統(tǒng)[1]是非常必要的。
這里主要討論的當中預處理的部分,指紋圖像預處理可分為濾波、二值化、細化,不過在這些步驟之前,要對指紋圖像進行歸一化[2-3]。
基本上歸一化思想是利用圖像的不變矩尋找一組參數(shù)使其能夠消除其他變換函數(shù)對圖像變換的影響。也就是轉換成唯一的標準形式以抵抗仿射變換圖像歸一化使得圖像可以抵抗幾何變換的攻擊,它能夠找出圖像中的不變量,便于后續(xù)步驟的處理。
圖1 自動指紋識別框
其中 M0、V0為期望平均值和期望方差,通常由圖像采集時的分辨率確定。一般分別都取125。V、M分別為圖像自身的均值和方差[4]。表示為:
方向圖有兩種,一種是點方向圖,表示原指紋圖像中脊線的大致方向[5]。具體做法是:在每個點的處取8個方向,在每個方向上左右各取4個點,共8個點,分別計算這8各點的灰度平均值分別計算出這 8個點和上步的平均值的差的絕對值,將他們加起來,和存入矩陣S.比較S矩陣中的每各方向上的s值,值最小的,即該S所對應的方向即是該點的方向。
另一種是塊方向圖,表示源指紋圖像中每一塊脊線的大致方向??紤]到相鄰幾點方向不會相差太大,所以直接算塊的方向。具體就是算 3×3矩陣的中心點方向即代表該塊的方向,從而大大減少了運算量。具體還是要算點的方向,在每個先取8個方向,如圖1示。
圖2 每個點的8個方向
式中,f(i,j)為點P(ij)的灰度值?為此方向上各個點的灰度平均值。
濾波結果應與原圖的平均灰度無關,因此模板中所有系數(shù)的代數(shù)和應為零。點(i,j)的灰度值由其周圍的48各點的灰度值共同決定[6],水平方向系數(shù)矩陣B如下式:
這個濾波器可以連接脊線中出現(xiàn)的斷點,且可以去除圖像中的叉連現(xiàn)象,x、y、z、u 滿足 u>x>y>=0,z>0 且u+2x+2y-2z=0??梢钥闯鲈娇拷擖c的象素對該點的影響越大。實際上使用的濾波矩陣B是右上角的矩陣。
有了水平方向上的濾波矩陣后,現(xiàn)要求的是其他方向上的 7×7濾波矩陣,求方向上的矩陣已歸結為求點(k,l)和點(m,n)關系的問題,如圖4示。
要求基于方向上的點的坐標,即是由水平方向的點旋轉角度a所得到的。用向量的知識可以解決此問題:向量m+jn=(k+jl)(cos a+j sin a)=(k cos a-l sin a)+j(k sin+l cos a)。所以旋轉后的點(m,n)和原來的點(i,j)坐標關系為:m=k cos a-l sin a;n=k sin a+l con a。兩個點相對位置關系如圖2。令k l從-3到3循環(huán),可得到點(i,j)周圍的7×7矩陣I的坐標及其灰度。由于點(i,j)的灰度是由周圍48個點的灰度決定的如下面的公式:
圖3 旋轉后的點和原來點的位置關系
指紋圖像的二值化就是通過設定閾值(threshold).把它變?yōu)閮H用兩個灰度值分別表示的前景和背景顏色的二值圖像。圖像的二值化可以根據(jù)下面的閾值來處理:
假設一副圖像的象素值為I(i,j),設有一閾值T,則:
動態(tài)閾值法僅是一個變換,在一個n×n的方塊中先求出此方塊內象素的平均灰度值,所有具有灰度值超過平均灰度的置為0,低于平均灰度的置為125[7],二值化流程如圖4。
圖4 二值化流程
指紋圖像二值化后,紋線仍具有一定的寬度,而指紋識別只關心紋線的走向,并不關心它的粗細,應對指紋圖像進行細化處理。細化還可以減小數(shù)據(jù)量,提高識別準確性。細化時應保持紋線的連接性、方向性、特征點不變,還應保持紋線的中心基本不變。
圖像細化算法的種類很多,但一些經典的細化算法用于指紋紋線細化處理時,往往會引起較明顯的紋線吞食現(xiàn)象或骨架位置發(fā)生偏移等問題,并不能達到滿意的效果,因此應該根據(jù)指紋紋線的特點有針對性的設計細化算法。
此方法即是對每個點取其附近的 15個點,它們的位置如表1所示。
模板分為刪除模板和保留模板,對任意一個黑像素點,先將它于刪除模板相比較。若不符合,則保留該像素。若符合,則再于保留模板相比較,若符合,則保留。否則刪除該像素點,將該像素點灰度置 0。這樣得到的只是初步細化后的結果,理論上要重復上述過程,直到沒有象素值被改變?yōu)橹?,實際上只要細化足夠多次以后就可以了。
其中圖5(a)圖為原圖,圖5(b)為濾波之后的圖??梢姙V波能明顯濾除原圖像中的離散點,圖像也比原來的清晰了很多。圖5(c)為二值化之后的圖像,二值化采用的是動態(tài)閾值法,對原指紋灰度圖要求較低,處理的效果也較好,算法的復雜度一般,容易編程實現(xiàn)。圖5(d)為細化后的指紋圖像,細化過程中已將特征點標出,其中叉點表示分岔點,圈點代表端點[8]。
指紋圖像預處理是指紋識別的基礎,這一步結果的好壞直接決定著指紋識別的質量。在現(xiàn)行的算法的基礎上,提出了一種有效的指紋圖像預處理的算法。所有算法均經過Matlab仿真,取得了較好的效果。
[1] 徐國輝.指紋識別技術產品的開發(fā)與進展[J].通信技術,2009,42(08):88-90.
[2] 羅希平,田捷.自動指紋識別中的圖像增強和細節(jié)匹配算法[J].軟件學報,2002(05):946-956.
[3] 劉福元,王玲.自動指紋識別算法研究[J].信息安全與通信保密,2007(02):70-72.
[4] 王瑩,蘇成利.指紋圖像增強算法研究[J].科學技術工程,2010(01):94-97.
[5] 周媛媛,張成,林嘉宇.指紋圖像的預處理算法[J].計算機應用,2004(06):34-36.
[6] 王科俊,李雪峰,趙玥.基于方向濾波的指紋圖像增強算法研究[J].模式識別與仿真,2009(07):54-56.
[7] 苑瑋琦,夏義勇.方向濾波指紋圖像二值化[J].儀器儀表學報,2003(4增):469-471.
[8] 馮國進,顧國華,張保民.指紋圖像預處理與特征提取[J].計算機應用研究,2004(05):183-185.