宗兆星,劉光宇,2,劉 彪,程 遠(yuǎn),張令通,趙繼強
(1.大理大學(xué) 工程學(xué)院,云南 大理 671003;2.上海交通大學(xué) 海洋智能裝備與系統(tǒng)教育部實驗室,上海 200030;3.中國人民解放軍32268部隊信息科,云南 大理 671003)
隨著人們生活中應(yīng)用指紋的場景越來越多,更快捷高效的指紋識別系統(tǒng)受到了越來越多的關(guān)注。一個準(zhǔn)確的指紋匹配方法可以大大提高指紋識別系統(tǒng)的安全性和可靠性[1]。劉漢英等[2]基于線模式的指紋匹配算法在處理紋線時過程較復(fù)雜,在非線性形變的影響下,紋線的嚴(yán)格匹配關(guān)系難以準(zhǔn)確建立,少數(shù)區(qū)域的脊線結(jié)構(gòu)不夠準(zhǔn)確;SOHN B J等[3]基于紋理模式的匹配方法每次與數(shù)據(jù)庫中的指紋匹配時都要計算一次紋理,算法比較耗時;基于整體圖像的匹配方法未經(jīng)大規(guī)模試驗證實,基于紋理和串匹配的混合算法計算復(fù)雜度較高,基于細(xì)節(jié)點的匹配方法的紋理特征可區(qū)分性不強,基于三角形和動態(tài)規(guī)劃的匹配方法的特征提取難度較大。
本設(shè)計選取FVC2002指紋庫中的指紋,采用基于點模式特征提取的指紋匹配技術(shù)。首先,將指紋圖像進行歸一化、分割、二值化、細(xì)化等預(yù)處理,在預(yù)處理中采用灰度方差閾值分割算法,通過局部灰度特性對指紋圖像進行分割;其次,進行端點、分叉點等特征點的提取,通過8鄰域法對指紋圖像進行特征提取,并去除其中的指紋邊緣點、斷點等偽特征點;最后,采用基于點模式的匹配算法進行指紋匹配。試驗結(jié)果表明該算法復(fù)雜度低,識別率較好,有較強實用價值。
指紋圖像歸一化是一個像素級的操作,主要是減少灰度的變化,將灰度均值和方差調(diào)為統(tǒng)一的數(shù)值,保持脊線和谷線結(jié)構(gòu)清晰,避免圖像出現(xiàn)亮度不均勻現(xiàn)象,同時還可以消除仿射變換,增強圖像的穩(wěn)定性[4]。在指紋圖像分割之前,先對圖像進行歸一化處理,將原始指紋圖像和指紋庫中的圖像進行對比和灰度調(diào)節(jié),使其達到一個相對一致的標(biāo)準(zhǔn)。
為確保分布的指紋紋線強度一樣,采用基于分塊的歸一化算法:首先,確定指紋圖像上每個像素點的方向信息;其次,將指紋區(qū)域劃分成若干個H×L的子區(qū)域,對子區(qū)域進行灰度分析;最后,利用歸一化公式處理。
設(shè)圖像像素點的灰度為I(x,y),歸一化處理之后的圖像為G(x,y)。歸一化處理公式如下:
(1)
式中:AVE0和VAR0為期望的灰度均值和灰度方差。
指紋圖像分割是將待處理的原始圖像劃分為特征不同的多個子區(qū)域,通常用于辨別每個指紋圖像目標(biāo)區(qū)域的是呈現(xiàn)在圖像中的直線和曲線[5]。指紋分割算法通常從以下兩個方面研究:基于圖像方向信息的分割(梯度法)和灰度方差閾值的分割(方差法),二者從不同的角度對圖像進行分割操作。梯度法通過計算像素方向信息,讀取方向直方圖,根據(jù)方向閾值實現(xiàn)圖像分割。該方法需要大量的特征信息作為方向信息的支撐。方差法是根據(jù)指紋圖像具有背景區(qū)的灰度方差小于前景區(qū)的特點,通過灰度方差的閾值實現(xiàn)圖像分割,該方法計算簡單、應(yīng)用更廣泛。本設(shè)計采用灰度方差閾值分割算法。
指紋脊線和谷線交叉分布在前景區(qū)域中的灰度相差較大,這個區(qū)域計算的方差較大;而在背景區(qū)域中,沒有脊線,灰度相對接近,計算的方差相對較小。利用局部灰度特性對指紋圖像進行分割,過程如下:
(1)將指紋圖像I(x,y)分割成大小為M×M的互不交疊的子區(qū)域,一谷一脊的區(qū)域大小較為合適,本設(shè)計截取的大小為3×3的子區(qū)域;
(2)計算每一塊圖像的灰度
(2)
式中:I(x,y)表示子區(qū)域內(nèi)部H×L個像素點的灰度值。
(3)計算每一塊圖像的灰度方差
(3)
(4)采用多區(qū)域閾值分割算法,多次對指紋區(qū)域求均值和方差,將劃分出的每一塊子區(qū)域與整個區(qū)域相比。若所求的方差近似為0,可視為背景;若所求的均值小于全局均值,則視為前景。然后求得背景色的均值和方差,增加可信度,保存結(jié)果在構(gòu)建的矩陣c中。
(5)背景和前景的分離是通過設(shè)定一個標(biāo)準(zhǔn)來實現(xiàn)的,即首先確定c矩陣中位置值為1的點的8鄰域點之和小于4,將該點設(shè)為0,然后將有用的前景色轉(zhuǎn)換成白色,灰度圖的背景值轉(zhuǎn)換為子區(qū)域的總和及均值。
在指紋識別過程中,關(guān)鍵步驟是將采集的指紋圖像進行二值化處理,在保留前景指紋和背景部分前提下消除灰度噪聲,提高指紋信息的識別配對。目前指紋圖像的二值化處理主要有固定閾值法、迭代法、動態(tài)閾值法等,基本思路都是通過圖像的灰度信息確定閾值和指紋圖像直方圖來選擇合適閾值[6]。灰度圖像二值化的關(guān)鍵是選擇合適的閾值處理方式,主要有全局和局部這兩種閾值算法。其中全局閾值算法使用一個閾值就可以處理整個圖像的區(qū)域,無需再將圖像分為若干個子區(qū)域。由于指紋圖像的亮暗程度和對比度因區(qū)域而異,故采用全局閾值算法是不合理的,因此,本設(shè)計采用動態(tài)局部閾值算法。局部閾值算法不再選用統(tǒng)一的閾值,而是將每個點與其局部鄰域的其他像素點進行比較,根據(jù)局部鄰域像素灰度分布特性自適應(yīng)調(diào)節(jié)閾值,每個像素點依據(jù)局部閾值進行二值化處理[7]。
為了使二值化后的圖像變得更加平滑,應(yīng)當(dāng)做出如下修改:當(dāng)某個像素點的數(shù)值為1,且旁邊的點不超過3個時,將其更改為0;當(dāng)某個像素點的數(shù)值為0,且旁邊的點不小于7個時,將其更改為1。
二值化處理之后的指紋脊線還會有少許寬度,需要進一步細(xì)化處理圖像,執(zhí)行數(shù)學(xué)形態(tài)學(xué)中的膨脹、腐蝕以及開運算和閉運算,使邊緣平滑,避免出現(xiàn)微小的尖刺,在不對線條連通性造成“誤傷”的情況下,將邊緣像素移除后,得到細(xì)化效果圖,并保留其連貫性、拓?fù)湫院吞卣鼽c。
膨脹是將指紋上觸及到的全部背景點融入指紋區(qū)域,讓邊界向外擴展的過程;腐蝕是將邊緣的點消去并向內(nèi)收縮圖像范圍,使二值圖像縮減一圈的過程[8]。符號“⊕”和“?”分別表示結(jié)構(gòu)元素b(i′,j′)對圖像I(i,j)的膨脹和腐蝕運算,如下式所示:
(I⊕b)(i,j)=max{I(i-i′,j-j′)+b(i′,j′)|(i′,j′)∈Db},
(4)
(I?b)(i,j)=min{I(i+i′,j+j′)-b(i′,j′)|(i′,j′)∈Db},
(5)
式中:Db是結(jié)構(gòu)元素b(i′,j′)的定義域。
膨脹算法主要操作與腐蝕算法相似,但是在進行“與”操作之后,更改條件與腐蝕算法相反[9],如果相“與”后皆為0,則細(xì)化圖像的該像素點設(shè)為0,反之設(shè)為1。
開運算是先進行腐蝕運算,再進行膨脹運算,I°b描述為結(jié)構(gòu)元素b(i′,j′)對圖像I(i,j)的開運算,如下式所示:
I°b=(I?b)⊕b
(6)
閉運算是先進行膨脹運算,再進行腐蝕運算,I·b描述為結(jié)構(gòu)元素b(i′,j′)對圖像I(i,j)的閉運算,如下式所示:
I·b=(I⊕b)?b
(7)
開閉運算將指紋圖像與細(xì)小的點分離開來,然后去除微小的尖刺部分,填充指紋內(nèi)的小縫隙,連接周圍指紋并使較大的指紋紋線的邊緣變得平整光滑,且?guī)缀醪桓淖兤鋮^(qū)域大小[10]。利用細(xì)化函數(shù)處理二值化指紋圖像。
特征提取是顯示指紋圖像關(guān)鍵信息的過程,常用的提取特征點的方法有兩種:一種是直接在灰度處理后的指紋圖像中提取特征點,該方法省略了對指紋圖像的預(yù)處理,但需要極為清晰的指紋圖像,在現(xiàn)實生活中很難有這樣完美的指紋圖像供提取特征點,所以很少采用這種方法。另一種則是在經(jīng)過二值細(xì)化后的指紋圖像中提取特征點,雖然經(jīng)過歸一化、分割、二值化、細(xì)化等預(yù)處理,但是最終提取到的特征信息點會比較精確。在得到準(zhǔn)確的細(xì)化二值化圖像后,創(chuàng)建一個3×3的模板,就可以提取出端點、分叉點等特征點。在提取指紋圖像的細(xì)節(jié)特征時,由于受圖像質(zhì)量和處理不當(dāng)?shù)挠绊懀讣y圖像存在著大量的指紋邊緣點、斷點等偽特征點,這些偽特征點會使指紋識別性能急劇下降,因此在指紋匹配之前,應(yīng)對細(xì)節(jié)特征進行驗證,將偽特征點去除。在特征提取后將指紋圖像的細(xì)節(jié)點作為起始點,逐步搜索周圍的區(qū)域,并判斷這些特征點的真?zhèn)?,其中分叉點不能和其他分叉點或者端點相連,端點也不能和其他的細(xì)節(jié)點相對,在判別特征點的真?zhèn)涡灾髮⒅讣y數(shù)字圖像中的所有偽特征點去除,并保留真特征點[11]。
在細(xì)化二值化指紋圖像中提取端點信息、分叉點等細(xì)節(jié)特征多是采用8領(lǐng)域法,8領(lǐng)域模型如圖1所示。為存儲提取的特征,首先要預(yù)設(shè)3個數(shù)組,用2組保存分叉點和端點,另外1組保存無用的偽特征點。
圖1 8領(lǐng)域模型
(1)端點是在符合8個領(lǐng)域分別相鄰且存在兩個不一樣的數(shù)值時,將點的數(shù)量記錄于數(shù)組2中,并記錄該點為數(shù)值0,相鄰的8領(lǐng)域點記錄為數(shù)值1。
(2)分叉點是在符合8個領(lǐng)域分別相鄰且存在6個不一樣的數(shù)值時,也將點的數(shù)量記錄在數(shù)組2中,并記錄該點為數(shù)值0,相鄰的8領(lǐng)域點記錄為數(shù)值1。
(3)指紋邊緣點大部分處于圖像邊緣,可以通過分割圖像來去除邊緣點。
(4)特征值為2的點,將范圍向上、向下延展,特征若還為2的點則是斷點,將它和旁邊8點置0,以此為基準(zhǔn)去除2倍的斷點。
在特征提取后,應(yīng)對含有偽特征點的圖像加以鑒別和處理,進一步提升匹配的準(zhǔn)確率。
指紋匹配的目的是比對指紋圖像的特征模式,以判定它們是否源于同一人的相同指紋。個別指紋匹配算法只針對灰度指紋映射而開發(fā),大部分指紋匹配算法在歸一化、分割、二值化、細(xì)化等預(yù)處理指紋圖像后從二值圖或細(xì)化圖映射中提取指紋特征進行對應(yīng)的處理[12]。本設(shè)計采用基于點模式的指紋匹配算法。
基于點模式的指紋匹配算法是從指紋圖像中提取出特征點,再輸入待匹配的指紋圖像,將兩者的特征點集通過旋轉(zhuǎn)、拉伸、平移等變換進行匹配[13]?;邳c模式的匹配算法過程,首先,要除去手指按壓造成的指紋圖像變形影響;其次,對齊兩個指紋的特征點;然后,統(tǒng)計兩個特征點模式之間相對應(yīng)的特征點的個數(shù),這種對應(yīng)只能是一種近似對應(yīng);最后,根據(jù)對應(yīng)特征點的數(shù)目得到一個衡量相似性的匹配分值,通過匹配分值與預(yù)先設(shè)定的閾值進行比較來判斷這兩個特征點模式是否相同。根據(jù)映射關(guān)系尋找匹配點,最后得出匹配結(jié)果,以此實現(xiàn)指紋的識別[14]。
根據(jù)指紋特征將信息點分為識別點(P點集)和待識點(Q點集),通過翻折、旋轉(zhuǎn)等操作使這兩個點集盡可能對應(yīng)。從模板指紋和輸入指紋中,選擇某相似節(jié)點看作一對參考點,先將指紋與參考點對齊,再評估其余節(jié)點的匹配度。
首先,對指紋圖像進行預(yù)處理,包括基于分塊的歸一化處理、灰度方差閾值分割、選擇動態(tài)局部閾值的二值化處理、細(xì)化,通過執(zhí)行膨脹、腐蝕以及開運算、閉運算來細(xì)化圖像;其次,對指紋圖像進行特征提取和去偽特征,提取出端點、分叉點等特征點,通過8鄰域法對指紋圖像進行特征提取,并盡量地去除指紋邊緣點、斷點等偽特征點;最后,進行指紋匹配,采用基于點模式的指紋匹配算法,流程如圖2所示。
圖2 試驗流程圖
選取來自FVC2002指紋庫中的指紋構(gòu)建數(shù)據(jù)集,數(shù)據(jù)集包含170張指紋圖像(指紋1~指紋170),其中包括10枚指紋,每枚指紋有17幅(不同圖像質(zhì)量的指紋圖像),圖像尺寸為388×374,其計量單位為像素點數(shù)目,通過基于點模式特征提取的指紋匹配技術(shù),在MATLAB2021b上運行,試驗結(jié)果如圖3~5所示。
圖3 指紋9的試驗處理圖
圖4 指紋26的試驗處理圖
圖5 指紋43的試驗處理圖
對指紋圖像執(zhí)行歸一化、分割、二值化、細(xì)化、特征提取等操作,同數(shù)據(jù)集中的指紋進行匹配,根據(jù)特征信息匹配度來評估匹配結(jié)果。選取指紋1為測試指紋,選取數(shù)據(jù)集中的指紋1、2、3、4為匹配指紋,建立直角坐標(biāo)系表示指紋特征信息點的分布,水平方向為X軸,豎直方向為Y軸,匹配結(jié)果如圖6所示。
圖6特征信息匹配度
圖6為指紋1同指紋1、2、3、4的特征信息匹配度,點線段代表測試指紋1,叉線段代表匹配指紋1、2、3、4,根據(jù)特征信息點的重合度評估匹配結(jié)果。由圖6可知,a)圖特征信息點基本重合,b)、c)、d)圖部分重合,由此得到匹配結(jié)果,如表1所示。
表1 匹配結(jié)果
在FVC2002指紋庫中,指紋1~17為來自同一個手指但圖像質(zhì)量不同的指紋,指紋18以及之后的指紋圖像為不同的指紋,由表1可知指紋11識別錯誤,匹配率為94.12%。通過仿真試驗,結(jié)果表明此方法具有較好的識別精度,根據(jù)試驗結(jié)果可知匹配率為99.41%。
本設(shè)計采用一種基于點模式的指紋匹配方法。首先,介紹了指紋特征提取的設(shè)計步驟,利用灰度均值和方差統(tǒng)一指紋圖像規(guī)格;然后采用基于灰度方差閾值的分割算法處理圖像,結(jié)合局部閾值等算法實現(xiàn)圖像預(yù)處理操作,鑒別特征點和偽特征點的方式是將端點、分叉點等常見的特征點辨別提取,再去除指紋邊緣點、斷點等偽特征點;最后,進行基于點模式的指紋匹配。點模式匹配算法復(fù)雜度低,試驗結(jié)果表明該方法具有較好的識別精度。