摘要: 在掌紋識別技術中,關鍵點的定位起到了至關重要的作用。為了提高用戶的接受度,采用了非接觸式的掌紋識別技術。針對關鍵點定位的準確性影響識別精度,提出基于非接觸式掌紋圖像的關鍵點定位方法,其中包括手指張開時和手指并攏時兩種情況。首先通過預處理提取手形的外側輪廓,然后采用基于角度和方向的跟蹤方法來初定位手指指尖點和手指間的凹點所在區域,最后細定位指尖點和手指間的拐點。實驗結果表明,提出的關鍵點定位方法定位精確且穩定性高。
關鍵詞:
中圖分類號: TP391.41 文獻標識碼:A 文章編號:2095-2163(2011)01-0062-04
0引言
生物特征識別技術是指通過計算機將人體所固有的生理特征或行為特征進行處理,用來進行個人身份識別的技術。目前常用的生物特征識別技術有:人臉識別[1],虹膜識別[2],指紋識別[3],語言識別[4],掌紋識別[5]等。這些生物特征都滿足下面的條件:(1)普遍性,每個人都具有;(2)唯一性,任何兩個人都不一樣;(3)穩定性,這種特征長時間內是不變的;(4)可采集性,可以方便采集和定量測量;(5)安全性,該特征不容易被偽造或模仿;(6)可接受性,識別系統被用戶所接受的程度。原則上,生物特征只要滿足以上條件就可以用于身份鑒別。
掌紋識別技術是根據人手掌上的有效信息來進行身份識別的技術,其中需要利用關鍵點定位技術從手掌圖像中提取穩定的掌紋信息。不同采集設備采集到的手掌圖像有不同的特點。目前,大部分掌紋識別系統中的設備是接觸式的且有輔助物(如支柱)作為參考,能更方便地定位采集到的掌紋圖像的關鍵點。但接觸式采集設備在使用時會讓用戶產生被侵犯感,且不同人頻繁地接觸設備,容易傳播細菌和疾病。因此,接觸式掌紋識別系統不容易被用戶所接受。使用非接觸式掌紋采集設備可以解決這一問題,但非接觸采集方式會給手掌帶來一定的自由度,導致關鍵點定位不準確。本文將研究非接觸掌紋識別系統中的關鍵點定位方法。
1手掌圖像的采集
圖像采集是整個生物識別系統中的一個非常重要的過程。圖像采集質量的好壞直接影響到整個系統的性能。本文采用的是非接觸式的圖像采集設備(如圖1所示),更容易被用戶所接受。該采集設備采用高清晰度CCD攝像機,可獲取高質量的手掌圖像。本文采集到的圖像包括手指都張開和除拇指外其他手指都并攏兩種情況,如圖2所示。
2預處理與邊緣提取
在定位關鍵點之前,先對采集到的圖像進行預處理,圖2中給出的兩種情況的手掌圖像的預處理過程是一樣的。本文中,預處理過程的流程如圖3所示。
2.1預處理
首先使用高斯低通濾波器對原始的手掌圖像進行濾波,去除圖像中的噪聲。由于采集到的手掌圖像中手掌和背景的灰度值相差較大,可以采用固定閾值對圖像進行分割,得到二值圖像。若設定的灰度閾值是thre, 而圖像中每點的灰度值是f(x,y),分割后的灰度值為g(x,y),則圖像分割的過程如下所示:
g(x,y)=255if:f(x,y)?叟threg(x,y)=0if:f(x,y)<thre (1)
2.2邊緣提取
首先對二值圖像使用形態學上的腐蝕操作,用原二值圖像減去腐蝕后的圖像來提取邊緣,再用高斯低通濾波對邊緣進行濾波,除去噪聲點,最后得到的邊緣圖像如圖4(a)和圖4(b)所示。由于采集到的手掌圖像可能包含衣袖等干擾,因此提取到的輪廓包含手形和其它干擾物的輪廓。獲取其中最大的輪廓,包含了完整的手形外側輪廓,再設定一個閾值將衣袖等干擾物的輪廓截去,最后得到的手形輪廓如圖4(c)和圖4(d)所示。
3關鍵點的定位算法
3.1手指張開時關鍵點的定位算法
由圖4(c)可知,在手指張開的情況下,本文要定位的關鍵點包括指尖點和指谷間的拐點。本算法使用以下方法來初定位關鍵點所在的區域。設圖像的左下角為坐標原點,從圖像右下角的輪廓點開始,跟蹤整個輪廓線上的每一點直到右上角。對于跟蹤的某一點A, 取其前面間隔一定距離的輪廓點B和其后面間隔一定距離的輪廓點C,通過式(2)求出夾角 ∠BAC的大小。
∠BAC=arccos(cos∠BAC) (2)
若∠BAC和A、B、C三點的橫坐標滿足以下條件,則點A就是指尖弧上的一點,并用數組記錄A點的坐標:
∠BAC?燮θ
A.x?燮B.x
A.x?燮C.x
A.x?燮μ(3)
其中,θ和μ為閾值。
若∠BAC和A、B、C三個點的橫坐標滿足以下條件,則點A就是指谷弧上的一點,并用數組記錄A點的坐標:
∠BAC?燮θ'
A.x>B.x(4)
A.x>C.x
其中,θ'為閾值。
對輪廓線上的每一點進行以上操作后,將得到7個數組,每個數組記錄了關鍵點所在弧上所有點的坐標。初定位得到的關鍵點所在的區域如圖5(a)所示。最后,以初定位為基礎,對關鍵點進行細定位。本算法采用每段弧的中間點作為最終關鍵點。
3.2手指并攏時關鍵點的定位算法
由圖4(d)可知,在手指并攏的情況下,不能根據手形輪廓圖直接找到指谷間的拐點所在的區域。 由圖2(b)可知,手指間縫隙上點的灰度值與手掌的灰度值相差較大,且手指間縫隙區域的中心點的灰度值是最小的。因此,本算法根據縫隙上灰度值最小的點來定位指谷間的拐點。
具體過程如下,首先用手指張開時關鍵點的定位算法找到手形輪廓上的指尖點和手指間的凹點,如圖6(a)上標紅的點。再把手指間的凹點作為起點,用以下方法來跟蹤得到手指間縫隙上的中心點。設手指間縫隙上某點的坐標為(x,y),灰度值為f(x,y),該點右側相鄰的三個點的坐標分別為(x+1,y+1)、(x+1,y)和(x+1,y-1),其對應的灰度值分別為f(x+1,y+1)、f(x+1,y)和f(x+1,y-1)。將相鄰三個點中灰度值與該點灰度值變化最大的點作為下一個被跟蹤的點。若在這三個點中,點(x+1,y)的灰度值f(x+1,y)與點(x,y)的灰度值f(x,y)相差最大,則下一個被跟蹤的點的坐標就是(x+1,y),如圖7所示。在跟蹤每個點(x,y)的同時,判斷其正右方五個像素距離的點(x+5,y)是否滿足以下條件。該點的灰度值為f(x+5,y),給定一個閾值thre,若以點(x+5,y)為中心的一個5×5的滑動窗口上的每個點的灰度值都大于閾值thre時,則終止跟蹤過程,點(x,y)就是找到的指谷間的拐點。對手指間的三個凹點都進行以上過程后,最終找到的關鍵點如圖6(b)所示。
3.3算法描述
//Interval是算法中A, B, C三點間隔的距離
//BorderPixelNum是邊緣上點的總個數
//Border記錄了邊緣上從右上角到右下角所有點的坐標
//θ,θ'和μ為算法設定的閾值
//Array記錄指尖點和手指間凹點所在弧上的點的坐標
//Points記錄指尖點和手指間凹點的坐標
//Keypoints記錄關鍵點的坐標
//n記錄關鍵點個數,初始值為0
//m記錄弧上點的個數,初始值為0
//flag=1表示為手指張開,flag=2表示為手指并攏
for(i=Interval;i<BorderPixelNum-Interval;i++)
?邀
A.x=Border[i].x;
A.y=Border[i].y;//算法中A點的坐標
B.x=Border[i+Interval].x;
B.y=Border[i+Interval].y;//算法中B點的坐標
C.x=Border[i-Interval].x;
C.y=Border[i-Interval].y;//算法中C點的坐標
angle=GetAngle(A,B,C);//計算夾角∠BAC的大小
if((angle<= && A.x<= B.x&& A.x<= C.x&& A.x<=μ)
||(angle<=θ'&& A.x>B.x&& A.x>C.x))//判斷是指尖還是手指間凹點弧上的點
if(m==0)
temppoint.x=A.x;
temppoint.y=A.y;
Array[n][m].x=A.x;
Array[n][m].y=A.y;
m++;
continue;
Points[n].x= Array[n][m/2].x;
Points[n].y= Array[n][m/2].y;
if (A.y-temppoint.y>10 || abs(A.x-temppoint.x)>10)
if(m>4)
n++;
m=0;
Array[n][m].x=A.x;
Array[n][m].y=A.y;
m++;
continue;
if(flag==1)
for(i=0;i<=n;i++)
Keypoints[i].x=Points[i].x;
Keypoints[i].y=Points[i].y;
if(flag==2)
for(i=0;i<n;i++)
if(i%2==0)
Keypoints[i].x=Points[i].x;
Keypoints[i].y=Points[i].y;
else
temppoint=GetValleyPoint(Points[i]);
//找到指谷間的拐點
Keypoints[i].x= temppoint.x;
Keypoints[i].y= temppoint.y;
4實驗結果
為了驗證本文提出的關鍵點定位算法的準確性和穩定性,在手指張開的手掌圖像庫和手指并攏的手掌圖像庫中進行掌紋識別實驗。在進行特征提取之前,需要進行感興趣區域提取,本文采用ZHANG等人提出的掌紋感興趣區域提取算法[5],并將提取結果歸一化到相同大小。圖9給出了掌紋感興趣區域提取的過程,圖10給出了提取得到的掌紋圖像。提取感興趣區域時,只用了兩個關鍵點,即圖5(b)和圖6(b)中的E、G兩點,而E、G兩點和其他關鍵點的定位過程是一樣的,所以只需證明這兩點定位的準確性和穩定性即可。
實驗所使用的兩種掌紋數據庫各包含200個用戶的4 000個樣本,其中,每個用戶20個樣本。從數據庫中每個用戶的20個樣本中隨機選取3個樣本作為模板,剩下的作為測試樣本。對于掌紋識別算法,采用WU等人提出的基于圖像相位及方向特征的掌紋識別算法[6]。圖11給出了手指張開的數據庫上的實驗結果,圖12給出了手指并攏的數據庫上的實驗結果。兩個不同數據庫上的等誤率分別為0.401%和0.352%。
基于本文提出的關鍵點定位算法的掌紋識別取得了較好的結果,這證明本文提出的算法具有較好準確率和穩定性。另外,手指并攏時的等誤率比手指張開時的要小,說明本文提出的手指并攏時關鍵點定位算法的穩定性更高。
5結束語
本文提出了用于手指張開和并攏兩種情況的掌紋圖像關鍵點定位算法,可以精確定位關鍵點。但本文中的算法只適用于手指上不戴飾品(如戒指)的情況,且沒有對既有手指張開又有并攏的圖像進行討論。針對這些問題,關鍵點的定位技術還需要進一步的研究,并擴展其適用性。
參考文獻:
[1] WANG Y H,TAN T N,ZHU Y. Face identification based on s- ingular values decomposition and data fusion. Chinese J. Com- put,2000,23(6).
[2] NEGIN M,CHMIELEWSKI T A,SALGANICOFF M G,et al. An Iris Biometric System for public and personal use.Computer,20- 00,33(2):70-75.
[3] ERN L C,SULONG G. Fingerprint Classification Approaches an Overview. Sixth International. Symposium on Signal Processing and its Applications,2001,1:347-350.
[4] RAMACHANDRAN P. A comparative study of robust linear pr- edictive analysis methods with applications to speaker identific- ation. IEEE Trans. SAP,1995,3(2):117-125.
[5] ZHANG D,KONG W K,YOU J,et al. Online palmprint identi- fication. IEEE Trans. Pattern Anal Mach Intell,2003,25:1041- 1050.
[6] WU Xiangqian,WANG Kuanquan,ZHANG Fengmiao,et al. Fu- sion of Phase and Orientation Information for Palmprint Authen- tication. IEEE International Conference on Image Processing,20- 05,2:29-32.