楊得國, 呂懌萌
(西北師范大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 蘭州 730070)
?
一種改進(jìn)的指紋識別算法與研究
楊得國*, 呂懌萌
(西北師范大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 蘭州 730070)
提出了一種改進(jìn)了的指紋圖像增強(qiáng)算法和指紋圖像二值化算法—分塊閾值法.分塊閾值法利用了固定閾值算法的思想對圖像中的每一小塊確定一個(gè)大致范圍的閾值,然后利用區(qū)域自適應(yīng)的思路對設(shè)定閾值進(jìn)行適當(dāng)?shù)恼{(diào)整,即當(dāng)閾值的取值范圍合適時(shí),指紋圖像的紋線是平滑的不會(huì)有黑洞的出現(xiàn).通過實(shí)驗(yàn)證明這種算法能夠很好的去除塊效應(yīng),使得處理后的指紋圖像邊緣更平滑.
指紋; 圖像; 分割
指紋是人類手指末端指腹上凹凸不平的皮膚所形成的紋路.指紋特征總體分為兩大類,一類是指紋的總體特征,另一類是指紋的局部特征.在分析匹配指紋的過程中最后都?xì)w結(jié)于這兩大特征上,即先對比總體特征若相似則進(jìn)行局部特征的對比,若相似度滿足一定的閾值那么認(rèn)為指紋匹配成功[1].指紋的識別要經(jīng)過圖像采集、預(yù)處理、特征提取和匹配[2].
Gabor函數(shù)是一個(gè)經(jīng)過復(fù)數(shù)正弦函數(shù)調(diào)制而成的高斯函數(shù).用高斯函數(shù)的實(shí)部對圖像進(jìn)行濾波,將得到的一個(gè)平滑的指紋圖像,而其虛部則是一個(gè)有效的邊緣檢測算子,這樣可以方便的對圖像進(jìn)行處理.
算法的過程如下:
1)把指紋圖像進(jìn)行方向圖的求解;
2)把指紋圖像分割成N×N塊,然后對其中的每一塊進(jìn)行塊內(nèi)紋線的頻率信息求解;
3)運(yùn)用Gabor函數(shù)對指紋圖像中的每一點(diǎn)進(jìn)行函數(shù)運(yùn)算.
通過這3步處理后,就可方便的實(shí)現(xiàn)了指紋圖像的自動(dòng)增強(qiáng),且效果比較明顯.
基于Gabor濾波的算法雖然簡單易行,但是,它存在塊效應(yīng),塊效應(yīng)的存在必然會(huì)影響后續(xù)的指紋特征提取,本文運(yùn)用最小二乘原理方便的解決了這一問題.首先要得到一個(gè)均衡頻率f,然后利用該均衡頻率對指紋圖像進(jìn)行增強(qiáng)處理[3].
具體過程如下:
1)把指紋圖像分成平均且互不重疊的若干子塊,即16×16塊;
2)以像素點(diǎn)(i,j)為中心點(diǎn),其中(i,j)是指紋圖像子塊中的像素點(diǎn),再以子塊中的指紋方向?yàn)檩S,做一個(gè)32×16的長方形區(qū)域塊;
3)因?yàn)榘阎讣y圖像分割成了16×16塊,所以對于每塊的中心像素點(diǎn)(i,j)做垂直于局部紋理方向的線,并計(jì)算其灰度離散信號X(k).其計(jì)算公式如下:
(1)
其中,u和v為長方形窗口中平行于w方向的直線上的點(diǎn)(d,k)轉(zhuǎn)換到指紋圖像坐標(biāo)系下的坐標(biāo)值,G(u,v)為像素點(diǎn)(u,v)的灰度值.通過計(jì)算正弦波波峰A的平均值A(chǔ)0,得到正弦波的頻率f0,即為該小塊的脊線頻率[4].
4)求16×16小塊的頻率f1,f2,…,fn;
通過上述過程后計(jì)算方程:(f-f1)2+(f-f2)2+…+(f-fn)2=0中的f值,即為所要求的濾波頻率.
此算法可以有效的改進(jìn)Gabor算法中的塊效應(yīng),增強(qiáng)指紋圖像的效果,使得指紋圖像具有更加平滑的邊緣.
圖1所示的是基于改進(jìn)算法的指紋圖像增強(qiáng)效果對比圖,從圖中可以看出,此算法有效的增強(qiáng)了圖像的效果.
圖1 算法改進(jìn)前后指紋圖像效果對比圖Fig.1 Effect comparison of the fingerprint image with the algorithm
下面來判斷指紋圖像增強(qiáng)的效果,這里一般使用GI來計(jì)算判定的指標(biāo),如下所示是質(zhì)量指標(biāo)GI的定義:
(2)
其中,r代表指紋圖像被平均分成的小塊數(shù)量,qi代表第i個(gè)小塊的圖像質(zhì)量(質(zhì)量好為4,質(zhì)量中等為2,質(zhì)量差為1),pi代表第i塊中匹配的節(jié)點(diǎn)數(shù)目,ai代表第i塊中丟失的節(jié)點(diǎn)數(shù)目,bi代表第i塊中偽節(jié)點(diǎn)數(shù)目,ti代表第i塊的真實(shí)節(jié)點(diǎn)數(shù)目.GI代表增強(qiáng)效果,值越大表示增強(qiáng)效果越好,最大值為1.表1給出了20幅指紋圖像的樣本,從表中的數(shù)值可以看出本文改進(jìn)的算法方便可行,所得圖像質(zhì)量比較好.
表1 20幅指紋圖像的改進(jìn)前后的GI值
指紋圖像的二值化指的是將其轉(zhuǎn)變成只具有黑白兩種色調(diào)的圖像,其過程是將圖像中顏色較淺的部分轉(zhuǎn)化成白色,相對較深的部分轉(zhuǎn)化成黑色,即只有白色和黑色,這樣的轉(zhuǎn)化主要是方便后續(xù)的指紋處理與匹配[5].在后文中將介紹一種改進(jìn)了的指紋圖像二值法,這種方法有效的結(jié)合了固定閾值法和區(qū)域自適應(yīng)閾值法的優(yōu)點(diǎn),避免了二者的弊端.
公式(3)是一般的灰度二值化函數(shù),其中x為灰度值,T為指定的閾值,
(3)
3.1 固定閾值二值化
在指紋圖像中顏色深的部分是脊線,顏色淺的部分是谷線,一副指紋圖像中往往都是由脊線和谷線相互間隔構(gòu)成的,在把圖像進(jìn)行二值化處理后,把顏色深的部分也就是脊線部分當(dāng)做前景區(qū)域,二值化后使其變成1,作為黑像素,同時(shí)把顏色淺的部分也就是谷線部分當(dāng)做背景,二值化后使其變成0,作為白像素.由于脊線比谷線的灰度值要小,也就是說在圖像掃描的過程中脊線部分要比谷線部分的顏色深,而研究的正是脊線上的特征點(diǎn)紋路細(xì)節(jié).在采集指紋圖像之后,對指紋圖像進(jìn)行了二值化處理,經(jīng)過二值化處理后的指紋圖像只有黑白倆種像素點(diǎn),且這倆種像素點(diǎn)的比例為1∶1,下面所介紹的固定閾值算法便是利用指紋圖像黑白像素比例相等的這一特點(diǎn),在該算法中,將得到一個(gè)合適的灰度值T,使黑白像素在整個(gè)指紋圖中所占的比例接近相等.
固定閾值算法的步驟如下:
假設(shè)圖像中的某個(gè)實(shí)驗(yàn)物體的寬度為D,當(dāng)T=T0時(shí),使待測物體的寬度接近于D,即可選定此時(shí)的T0為分割閾值.
設(shè)圖像大小為m×n,其灰度值為L1≤L2≤…≤Ln,用離散隨機(jī)變量Xij(0≤i≤m-1,0≤j≤n-1)來表示圖像中任一像素的灰度.
設(shè)各灰度級的概率分別為:P1=P(L1) ,P2=P(L2),…,PK=P(LK),…,PN=P(Ln).
詳細(xì)過程如下:
1)求指紋灰度圖像的總像素個(gè)數(shù),設(shè)一副大小為m×n的灰度圖像,m×n為總像素的個(gè)數(shù);
3)先假設(shè)好閾值設(shè)為T,如果像素灰度值大于或者等于T,就將此值設(shè)為255,若灰度值小于T,就將此像素的灰度值設(shè)為0.
3.2 區(qū)域自適應(yīng)閾值法
區(qū)域自適應(yīng)閾值法是把指紋圖像先進(jìn)行分塊,對每塊的灰度值計(jì)算其閾值,然后在分別對每塊進(jìn)行固定閾值二值化處理.區(qū)域自適應(yīng)閾值法與固定閾值二值化算法的思想比較相類似,主要是根據(jù)塊內(nèi)的黑白像素點(diǎn)的數(shù)目大致相等的特征,計(jì)算其平均值,求得的平均值最后作為閾值T在進(jìn)行塊內(nèi)像素的二值化處理.
具體方法如(4)、(5)兩式所示:
(4)
(5)
對比于固定閾值二值化算法,區(qū)域自適應(yīng)閾值法有著較為明顯的優(yōu)勢,因?yàn)榇朔椒▽χ讣y圖像進(jìn)行了分塊,然后進(jìn)行二值化處理.然而,此方法的二值化處理之后也有其不足,那就是圖像中指紋線條不夠平滑,圖像會(huì)出現(xiàn)毛刺的問題,毛刺在塊與塊的邊緣二值化后更加的嚴(yán)重,需要在后續(xù)過程中進(jìn)行毛刺處理.
3.3 改進(jìn)的分塊閾值算法
以上所述兩種算法各有其優(yōu)勢與不足,因而本文將采用兩種算法結(jié)合的思路進(jìn)行指紋圖像的二值化,這樣能夠有效地進(jìn)行二值化處理并得到清晰的圖像.這種改進(jìn)的指紋圖像二值化算法即分塊閾值法.
首先把指紋圖像分為若干個(gè)w×w方塊,然后每一塊根據(jù)自己的閾值進(jìn)行二值化處理.經(jīng)過處理后,指紋圖像的紋線是平滑的不會(huì)有黑洞的出現(xiàn).
分塊閾值算法的過程如下:
1)在得到指紋圖像后,現(xiàn)將指紋圖像進(jìn)行劃分,如同前面所介紹的區(qū)域自適應(yīng)閾值算法,把圖像劃分為w×w塊,且這w×w相互不能重疊[6],對區(qū)域內(nèi)所有的指紋像素點(diǎn)求取灰度平均值.在本文的實(shí)驗(yàn)中將圖像分割成8×8塊,因?yàn)檫@樣在算法的速度和效率上比較適用.下式是分塊閾值算法所用到的公式,其中,T是塊的灰度平均值,
(6)
2)計(jì)算塊內(nèi)的Nh和Ni的值,其中,Nh為灰度值大于或等于T的像素的個(gè)數(shù),Ni為灰度值小于T的像素的個(gè)數(shù);
3)如果|Nh-Ni|≤a(a=w×w×0.1),則T為閾值;
4)如果Nh﹥Ni,則T=T+1,否則T=T-1,均返回2).
算法的流程圖如圖2所示:
圖2 分塊閾值二值化算法的流程圖Fig.2 Flow chart of two valued algorithm of block threshold
利上述的三種算法的指紋圖像二值化方法處理指紋圖像的效果對比如圖3所示.
圖3 指紋圖像二值化處理效果對比圖Fig.3 Two value of fingerprint image processing effect comparison chart
本文在原有算法的基礎(chǔ)上提出了一種新的思路,對算法進(jìn)行了合理的改進(jìn),使得改進(jìn)后的算法比以往的算法有著明顯的優(yōu)勢,使得指紋識別的效率有著很大程度的提高.
[1] 秦 楓. 基于MATLAB的指紋識別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué), 2011:11-15.
[2] 張明治. 基于微特征的指紋識別算法研究[D].福建:廈門大學(xué), 2009:10-12.
[3] 劉靈麗, 李麗娟. 指紋圖像預(yù)處理和特征提取[J].計(jì)算機(jī)工程, 2006, 32(16):190-192.
[4] 毛克明, 王國仁, 于長永, 等. 一種改進(jìn)的基于Gabor小波的指紋增強(qiáng)算法[J].東北大學(xué)學(xué)報(bào):自然科學(xué)版, 2009, 30(1):46-49.
[5] 田 鵬. 指紋識別技術(shù)的研究[J].科學(xué)技術(shù)與工程, 2007, 18(7):476-547 .
[6] 何東宇, 蔡遠(yuǎn)利. 基于方向圖的指紋預(yù)處理方法研究[J].計(jì)算機(jī)工程與應(yīng)用, 2004, 1(4):77-80 .
Research on an improved algorithm for fingerprint identification and research
YANG Deguo, LV Yimeng
(College of Computer Science and Engineering, Northwest Normal University, Lanzhou 730070)
An improved fingerprint image enhancement algorithm and fingerprint image two value based algorithm, block threshold method, is proposed. Block threshold method uses the fixed threshold algorithm of image in every bit of identified a broad range of threshold, and then adjusts threshold using the idea of region adaption, namely that in the suitable range of threshold, the fingerprint image ridge is smooth and not black hole. Experiments show that the algorithm can remove the block effect, which makes the processing of the fingerprint image edge more smooth.
fingerprint; image; division
2015-02-12.
國家自然科學(xué)基金項(xiàng)目(61165002).
1000-1190(2015)05-0668-04
TP391.41
A
*E-mail:yangdeguo@nwnu.edu.cn.