陳典典, 程培培, 馬軍山
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院, 上海 200093)
隨著社會(huì)信息化的深入發(fā)展,身份識(shí)別的重要性飛速上升。掌紋識(shí)別是一種有著廣泛應(yīng)用前景的生物識(shí)別方法,是對(duì)現(xiàn)有生物識(shí)別技術(shù)的有益補(bǔ)充[1]。圖像預(yù)處理是掌紋識(shí)別過(guò)程的關(guān)鍵一環(huán),算法提取出的掌紋感興趣的區(qū)域(region of interest,ROI)的質(zhì)量好壞直接影響到最終的識(shí)別效果[2]。因此尋找一種有效的掌紋ROI提取方法對(duì)于掌紋識(shí)別技術(shù)的研究十分重要。
目前已有的掌紋ROI提取方法主要有基于擬合橢圓的方法[3],基于最大內(nèi)切圓的方法[4],基于曲率及小波變換的方法[5-6],基于形態(tài)學(xué)的方法[7]等,提取的掌紋ROI形狀主要有正方形、圓形與橢圓形等。其中,圓形和橢圓形的ROI具有較好的魯棒性,能夠適應(yīng)不同大小的手掌。但與正方形ROI相比,其形狀特征不利于后續(xù)的特征提取與匹配工作,同時(shí)搜索最大內(nèi)切圓或橢圓會(huì)耗費(fèi)大量的時(shí)間,不利于掌紋識(shí)別的實(shí)際應(yīng)用。因此正方形ROI的應(yīng)用與研究更加廣泛。
在正方形掌紋ROI的提取過(guò)程中,關(guān)鍵點(diǎn)的檢測(cè)與定位至關(guān)重要。Harris算子是一種基于信號(hào)的點(diǎn)特征提取算子,具有計(jì)算簡(jiǎn)單、提取的角點(diǎn)特征均勻合理、算子穩(wěn)定的特點(diǎn)[8]。因此部分研究者試圖將Harris角點(diǎn)檢測(cè)方法引入到掌紋圖像ROI提取中來(lái)。目前已有的基于Harris角點(diǎn)檢測(cè)算法進(jìn)行掌紋ROI提取的方法[9]在應(yīng)用中仍有很大的缺陷,具體表現(xiàn)在需要進(jìn)行人為鼠標(biāo)操作、結(jié)果誤差較大等。本文根據(jù)掌紋圖像的特點(diǎn)提出了一種基于Harris角點(diǎn)檢測(cè)和聚類(lèi)算法的掌紋圖像ROI提取方法,并在香港理工大學(xué)與中科院自動(dòng)化研究所的掌紋數(shù)據(jù)庫(kù)中進(jìn)行測(cè)試,結(jié)果表明,該方法易于實(shí)現(xiàn),提取的結(jié)果準(zhǔn)確性與穩(wěn)定性較好,并對(duì)各個(gè)掌紋數(shù)據(jù)庫(kù)具有普適性。
Harris角點(diǎn)檢測(cè)原理是利用移動(dòng)的窗口在圖像中計(jì)算灰度變化值[10],其關(guān)鍵流程包括轉(zhuǎn)化為灰度圖像、計(jì)算差分圖像、高斯平滑、計(jì)算局部極值和確認(rèn)角點(diǎn)。
對(duì)于一幅二維圖像I以及一個(gè)各向同性窗w,在某一像素點(diǎn)(x,y)上,將圖像窗口平移[u,v]則產(chǎn)生灰度變化的平方和E(u,v)為
(1)
使用二維函數(shù)的一階泰勒公式簡(jiǎn)化式(1)可以得到
(2)
式中:Ix是圖像I在x方向上的梯度;Iy是圖像I在y方向上的梯度。令矩陣
(3)
定義角點(diǎn)相應(yīng)函數(shù)R為
R(M)=det(M)-K·trace2(M)
(4)
式中:det(M)為矩陣的行列式;trace(M)為矩陣的跡;K為可調(diào)參數(shù),有關(guān)文獻(xiàn)建議范圍為0.04~0.15。Harris角點(diǎn)檢測(cè)算法就是對(duì)角點(diǎn)響應(yīng)函數(shù)R進(jìn)行閾值處理,當(dāng)R大于給定的閾值,即判定為角點(diǎn)。
本文使用Harris角點(diǎn)檢測(cè)器對(duì)二值化掌紋圖像進(jìn)行角點(diǎn)提取,當(dāng)角點(diǎn)檢測(cè)器對(duì)圖像進(jìn)行操作時(shí),圖像明暗邊緣的細(xì)小鋸齒或尖峰會(huì)對(duì)角點(diǎn)檢測(cè)造成誤提取,對(duì)后續(xù)的關(guān)鍵點(diǎn)定位步驟造成不利的影響。增大窗口w的尺寸大小可以減小Harris矩陣方差,從而減少誤檢測(cè)的角點(diǎn),但是會(huì)使角點(diǎn)形成簇。使用聚類(lèi)算法尋找角點(diǎn)簇的中心點(diǎn),可以得到關(guān)鍵點(diǎn)的坐標(biāo)。
聚類(lèi)分析就是用數(shù)學(xué)方法研究和處理給定對(duì)象的分類(lèi),其過(guò)程是按照某個(gè)特定標(biāo)準(zhǔn)(如距離準(zhǔn)則)把一個(gè)數(shù)據(jù)集分割成不同的類(lèi)或簇,使得同一個(gè)類(lèi)簇內(nèi)的數(shù)據(jù)對(duì)象的相似性盡可能大,同時(shí)不在同一個(gè)簇中的數(shù)據(jù)對(duì)象的差異性也盡可能得大[11]。如圖1所示,聚類(lèi)算法將坐標(biāo)系中所有的點(diǎn)分為了3類(lèi),計(jì)算出3個(gè)點(diǎn)作為聚類(lèi)中心并作為每一類(lèi)的代表。
目前有多種聚類(lèi)方法[12],對(duì)于不同的應(yīng)用情況,應(yīng)當(dāng)根據(jù)數(shù)據(jù)的類(lèi)型以及聚類(lèi)的目的進(jìn)行選擇。本文主要使用了K-means聚類(lèi)算法,是一種十分經(jīng)典的高效率聚類(lèi)算法。K-means算法以k為參數(shù),把n個(gè)對(duì)象分成k個(gè)簇,使簇內(nèi)具有較高的相似度,而簇間的相似度較低。K-means算法的處理過(guò)程如下:首先,隨機(jī)地選擇k個(gè)對(duì)象,每個(gè)對(duì)象初始地代表了一個(gè)簇的平均值或中心;然后,對(duì)剩余的每個(gè)對(duì)象,根據(jù)其與各簇中心的距離,將它賦給最近的簇;最后,重新計(jì)算每個(gè)簇的平均值。這個(gè)過(guò)程不斷重復(fù),直到準(zhǔn)則函數(shù)收斂。
圖1 聚類(lèi)算法的應(yīng)用Fig.1 The application of clustering algorithm
如圖2所示,原始的圖像的噪聲會(huì)對(duì)后續(xù)的處理結(jié)果造成不利的影響。本文使用中值濾波器進(jìn)行圖像降噪,設(shè)h(i,j)代表濾波之后的圖像,g(i,j)為濾波之前的圖像,則濾波窗口為A的圖像中值濾波可以表示為
h(i,j)=medA{g(i,j)}=med{g(i+r,j+s)}, (r,s)∈A
(5)
圖3為濾波后的圖像。
圖2 掌紋原圖像Fig.2 Palmprint source image
圖3 中值濾波后的掌紋圖像Fig.3 The palmprint image after median filtering
圖像二值化是一個(gè)重要步驟,本文算法采用固定閾值T=50對(duì)圖像進(jìn)行二值化,此過(guò)程表示為
(6)
對(duì)二值圖像進(jìn)行閉運(yùn)算可以平滑圖像的邊緣,減少角點(diǎn)的誤提取,圖4和圖5分別表示了圖像經(jīng)過(guò)二值化與邊緣平滑的結(jié)果。
對(duì)經(jīng)過(guò)前文處理獲得的二值圖片進(jìn)行Harris角點(diǎn)檢測(cè)。通過(guò)第1部分的分析可知,當(dāng)使用較大的窗進(jìn)行角點(diǎn)檢測(cè)時(shí)能夠在檢測(cè)結(jié)果中極大地減少無(wú)關(guān)的角點(diǎn)。本文算法中取窗的大小為10,圖6顯示了檢測(cè)結(jié)果。
收集特定位置的角點(diǎn)簇并利用聚類(lèi)算法分析,得到角點(diǎn)簇的中心。在得到的中心點(diǎn)中,取食指與中指之間角點(diǎn)簇的中心點(diǎn)O1(x1,y1)以及無(wú)名指與小拇指角點(diǎn)簇中心點(diǎn)O2(x2,y2)作為基準(zhǔn)點(diǎn),過(guò)這兩個(gè)點(diǎn)做直線(xiàn)為新建立坐標(biāo)系的y軸,以線(xiàn)段O1O2的中點(diǎn)為原點(diǎn),做線(xiàn)段的中垂線(xiàn)為x軸建立坐標(biāo)系。如圖7所示。
圖4 二值化掌紋圖像Fig.4 Binary palmprint image
圖5 閉運(yùn)算處理后的圖像Fig.5 The image after closed operation
圖6 角點(diǎn)檢測(cè)結(jié)果Fig.6 Results of corner test
圖7 建立坐標(biāo)系Fig.7 Establishment of coordinate system
最后根據(jù)步驟4確定的坐標(biāo)進(jìn)行掌紋ROI的定位提取,具體做法是:先將掌紋圖像以原點(diǎn)O為中心旋轉(zhuǎn)θ角度,θ可表示為
(7)
當(dāng)θ為正值時(shí),將圖像逆時(shí)針旋轉(zhuǎn),反之順時(shí)針旋轉(zhuǎn)。之后確定合適的距離D,可以取得掌紋ROI圖像,圖8反映了這一過(guò)程。圖9為本算法取得的ROI圖像。
圖8 旋轉(zhuǎn)之后的圖片F(xiàn)ig.8 The image after rotate
圖9 截取到的掌紋ROIFig.9 Palmprint ROI
在本文ROI提取方法中,對(duì)檢測(cè)出來(lái)的角點(diǎn)進(jìn)行篩選是十分重要的一環(huán)。對(duì)于不同的掌紋數(shù)據(jù)庫(kù),因其圖像采集方式、擺放標(biāo)準(zhǔn)的不同,則角點(diǎn)收集范圍應(yīng)當(dāng)按照實(shí)際情況進(jìn)行修改。本文算法分別針對(duì)香港理工大學(xué)掌紋數(shù)據(jù)庫(kù)以及中科院自動(dòng)化研究所掌紋數(shù)據(jù)庫(kù)的不同特點(diǎn)制定了相應(yīng)的角點(diǎn)收集與關(guān)鍵點(diǎn)篩選定位規(guī)則。 利用Python編程驗(yàn)證本文方法,進(jìn)行提取掌紋ROI的實(shí)驗(yàn)。
3.1.1圖像數(shù)據(jù)
香港理工大學(xué)掌紋數(shù)據(jù)庫(kù)[13]中的圖像均為256級(jí)的灰度圖像,是利用特殊的帶有定位裝置的掌紋圖像收集器進(jìn)行收集的,故該掌紋數(shù)據(jù)庫(kù)的自由度較低,進(jìn)行預(yù)處理較為容易。圖2顯示了該數(shù)據(jù)庫(kù)中的一張掌紋圖像,圖像的大小為284×384,格式為bmp格式。
圖10 關(guān)鍵點(diǎn)定位過(guò)程Fig.10 The positioning process of key points
3.1.2關(guān)鍵點(diǎn)定位
對(duì)于掌紋數(shù)據(jù)庫(kù),根據(jù)圖6顯示的角點(diǎn)分布情況,可以制定如下的角點(diǎn)收集與篩選規(guī)則,圖10反映了這一過(guò)程:
1) 首先通過(guò)逐列搜索的方式得到點(diǎn)K1,K2,K3,K4的大致坐標(biāo);
2) 根據(jù)K1,K4兩點(diǎn)確定矩形ABCD為角點(diǎn)收集的范圍,得到角點(diǎn)坐標(biāo)集合P;
3) 對(duì)集合P進(jìn)行簇為4的K-means均值聚類(lèi),得到各個(gè)簇的中心點(diǎn)O1、O2、P1、P2;
4)O1、O2、P1、P24個(gè)點(diǎn)中縱坐標(biāo)最小的點(diǎn)O1與最大的點(diǎn)O2即為我們要尋找的關(guān)鍵點(diǎn)。
3.1.3掌紋圖像處理結(jié)果
抽取300幅圖像組成測(cè)試圖像數(shù)據(jù)庫(kù),其中10幅圖像來(lái)自同一只手,另外290幅圖像為隨機(jī)抽取。設(shè)置提取的ROI大小為128×128,圖11與圖12顯示了本文算法的提取效果。經(jīng)統(tǒng)計(jì),本文算法成功處理299張,失敗1張,成功率為99.7%。
圖11 對(duì)同一只手掌圖像的ROI提取結(jié)果Fig.11 The results of ROI extraction from same palmprint
圖12 對(duì)不同手掌圖像的ROI提取結(jié)果Fig.12 The results of ROI extraction from different palmprint
3.2.1圖像數(shù)據(jù)
中科院自動(dòng)化研究所掌紋數(shù)據(jù)庫(kù)(CASIA)中的圖像亦均為256級(jí)的灰度圖像,該庫(kù)中的樣本均是使用CCD簡(jiǎn)單采集得到,沒(méi)有用于固定的圓柱。故該掌紋數(shù)據(jù)庫(kù)的自由度較高,關(guān)鍵點(diǎn)難以定位,預(yù)處理難度較高,一般使用最大內(nèi)切圓或擬合橢圓的方法提取ROI。圖 13顯示了CASIA中的幾張典型手掌圖像,圖像的大小為480×640,格式為jpg格式。
3.2.2關(guān)鍵點(diǎn)定位
對(duì)于CASIA掌紋數(shù)據(jù)庫(kù),圖14顯示了角點(diǎn)分布情況,可以看出角點(diǎn)主要分布在指尖和兩指之間。由于不同圖像的角點(diǎn)簇的數(shù)量和位置不盡相同,因此確定角點(diǎn)收集與關(guān)鍵點(diǎn)篩選規(guī)則如下:
1) 收集圖像中的所有檢測(cè)到的角點(diǎn)坐標(biāo)得到集合P;
2) 對(duì)集合P進(jìn)行簇為n(n=3,4,5…)的K-means聚類(lèi),得到聚類(lèi)中心;
3) 對(duì)所有得到的聚類(lèi)中心點(diǎn)取整,判斷是否全部都位于集合P中,如果不是,則取n=n+1,并重復(fù)步驟2,如果是,則進(jìn)行下一步;
4) 得到角點(diǎn)簇的中心點(diǎn)A、B、C、D、E后,如圖14所示,我們需要得到A、B、C三個(gè)指間點(diǎn),可以利用A、B、C三點(diǎn)組成的三角形面積最小這一特性進(jìn)行判斷;
5) 得到A、B、C三點(diǎn)的坐標(biāo)后,縱坐標(biāo)最小的點(diǎn)A與最大的點(diǎn)C即為我們要尋找的關(guān)鍵點(diǎn)。
圖13 CASIA掌紋數(shù)據(jù)庫(kù)圖像Fig.13 Images from CASIA palmprint database
圖14 角點(diǎn)檢測(cè)結(jié)果Fig.14 Results of corner test
3.2.3掌紋圖像處理結(jié)果
抽取200幅圖像組成測(cè)試圖像數(shù)據(jù)庫(kù),其中5幅圖像來(lái)自同一只手,另外195幅圖像為隨機(jī)抽取。設(shè)定ROI提取大小為200×200,圖15與圖16顯示了本文算法的提取效果。經(jīng)統(tǒng)計(jì),本文算法成功處理198張,失敗2張,成功率為99%。
圖15 對(duì)同一只手掌的ROI提取結(jié)果Fig.15 The results of ROI extraction from the same palmprint
圖16 對(duì)不同手掌的ROI提取結(jié)果Fig.16 The results of ROI extraction from different palmprints
圖17為錯(cuò)誤提取的掌紋ROI圖像。通過(guò)分析,造成錯(cuò)誤提取的直接原因是由于部分掌紋圖像由于存在較強(qiáng)的噪聲干擾,本文的方法未能有效地去除,使Harris角點(diǎn)檢測(cè)器提取到了較多且情況復(fù)雜的角點(diǎn),從而未能正確提取到關(guān)鍵點(diǎn),導(dǎo)致誤提取的出現(xiàn)。進(jìn)一步減少圖像中噪聲對(duì)提取結(jié)果的干擾,是本文方法的改進(jìn)方向。
圖17 錯(cuò)誤提取的掌紋ROIFig.17 Wrong extraction of palmprint ROI
在掌紋識(shí)別技術(shù)的研究中,研究者往往需要花費(fèi)大量的時(shí)間去研究提取掌紋圖像的ROI。通過(guò)實(shí)驗(yàn)分析,本文提出的方法可以適應(yīng)多種不同的掌紋數(shù)據(jù)庫(kù),提取的效果穩(wěn)定準(zhǔn)確。目前,有大量的庫(kù)函數(shù)可以幫助研究者實(shí)現(xiàn)本文的各項(xiàng)算法,因此本文方法實(shí)現(xiàn)簡(jiǎn)單。綜上所述,本文所提出的基于Harris角點(diǎn)檢測(cè)及聚類(lèi)算法的掌紋ROI提取方法對(duì)掌紋識(shí)別技術(shù)的研究發(fā)展很有意義。但同時(shí)本文算法無(wú)法對(duì)復(fù)雜背景下的掌紋圖像進(jìn)行有效的ROI提取,運(yùn)行效率仍有大量的優(yōu)化空間,需進(jìn)一步優(yōu)化完善。