本發(fā)明屬于生物識(shí)別技術(shù)領(lǐng)域,更為具體地講,涉及一種基于掌靜脈圖像的預(yù)處理方法。
背景技術(shù):
人體的手掌靜脈(簡稱“掌靜脈”),是一種穩(wěn)定且唯一的生物特征靜脈信息隱藏在表皮下,結(jié)構(gòu)復(fù)雜很難被復(fù)制;斷落的手掌或尸體因血液停止流動(dòng)將不能通過認(rèn)證。所以,掌靜脈識(shí)別是一種“活體識(shí)別”。掌靜脈圖像不能在可見光下拍攝,卻可以在近紅外光下拍攝,這也增加了掌靜脈識(shí)別的安全性。手掌靜脈識(shí)別的高安全性使其成為近年生物特征識(shí)別研究的新熱點(diǎn)。
掌靜脈識(shí)別系統(tǒng)由圖像采集、預(yù)處理、特征提取和特征匹配4部分組成。采集到的掌靜脈圖像包括手指、腕部和背景區(qū)域,在預(yù)處理階段從圖像中選擇分割出一塊有效區(qū)域用來提取特征,進(jìn)而特征匹配。這塊有效區(qū)域,通常稱為感興趣區(qū)域(roi)。roi的選擇必須帶有清晰而豐富的掌靜脈特征信息,且在進(jìn)行特征提取和匹配之前必須進(jìn)行預(yù)處理,其質(zhì)量直接關(guān)系到后續(xù)的特征提取和匹配的準(zhǔn)確率,對(duì)識(shí)別性能影響很大。
掌靜脈圖像的預(yù)處理主要由有效roi區(qū)域提取、圖像歸一化、圖像增強(qiáng)、圖像去噪這四部分組成。目前掌靜脈的roi區(qū)域提取大多數(shù)沿用了如下方法。通過提取掌脈圖像的輪廓線,計(jì)算食指和中指間的縫隙與無名指和小指間縫隙下邊界的公切線,并將公切點(diǎn)作為定位基準(zhǔn)點(diǎn)(keypoint)建立坐標(biāo)系,截取固定大小矩形作為roi。具體參見文獻(xiàn)[1]:zhangd,kongwk,youj,etal.onlinepalmprintidentification.ieeetransactionsonpatternanalysisandmachineintelligence,2003,25(9):1041-1050.但該方法要求測試者手掌放置位置相對(duì)高度固定,否則會(huì)導(dǎo)致同一測試者roi區(qū)域截取不同。而對(duì)于掌靜脈圖像增強(qiáng),目前大多數(shù)算法都是進(jìn)行全局圖像增強(qiáng),然后進(jìn)行圖像濾噪等。而由于采集設(shè)備以及光線亮度影響,直接全局增強(qiáng)可能會(huì)導(dǎo)致外界噪聲過度增強(qiáng),且沒有考慮到局部信息。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于掌靜脈圖像的預(yù)處理方法,在提取掌靜脈roi區(qū)域時(shí),減少因位置偏移、高度細(xì)微差別導(dǎo)致的誤差,運(yùn)用局部增強(qiáng)方法,增強(qiáng)局部信息,提高roi圖像的質(zhì)量,進(jìn)而減少外界噪聲被過度增強(qiáng)造成的影響,便于后續(xù)的特征提取和特征匹配。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明一種基于掌靜脈圖像的預(yù)處理方法,其特征在于,包括以下步驟:
(1)、通過掌靜脈圖像,提取掌靜脈圖像的roi區(qū)域
(1.1)、先將掌靜脈圖像轉(zhuǎn)換成灰度圖,再進(jìn)行二值化處理,得到二值化圖像;
(1.2)、利用canny算法提取二值化圖像的輪廓作為掌靜脈圖像輪廓;
(1.3)、結(jié)合掌靜脈圖像輪廓,根據(jù)根查找法找出食指與中指間的指根點(diǎn)p1,以及無名指與小指之間的指根點(diǎn)p2;
(1.4)、將指根點(diǎn)p1和指根點(diǎn)p2做直線連接,得到線段l,再標(biāo)記出線段l的中點(diǎn)坐標(biāo)p(x0,y0),以中點(diǎn)p為中心,根據(jù)p1,p2的坐標(biāo)做仿射變換旋轉(zhuǎn),旋轉(zhuǎn)角度為θ,使得p1,p2兩點(diǎn)的縱坐標(biāo)或橫坐標(biāo)相等;
(1.5)、以中點(diǎn)p為基準(zhǔn)點(diǎn),做線段l的垂線g,再以中點(diǎn)p為起點(diǎn),沿垂直線g向掌心方向延伸長度d,并標(biāo)記為端點(diǎn)p0,以p0為中心點(diǎn),提取大小為m*n的roi區(qū)域,并對(duì)該roi區(qū)域進(jìn)行尺度歸一化處理,得到大小為m0*n0的標(biāo)準(zhǔn)roi區(qū)域,命名為roi圖像;
(2)、對(duì)roi圖像進(jìn)行預(yù)處理
(2.1)、對(duì)roi圖像進(jìn)行分塊處理:將roi圖像劃分成k1*k2個(gè)小塊,每個(gè)小塊的大小為(m0/k1)*(n0/k2),其中,k1,k2為常數(shù),且k1能被m0,k2能被n0整除;
(2.2)、對(duì)每一小塊roi圖像進(jìn)行自適應(yīng)直方圖均衡化處理,獲取每一塊的像素值映射關(guān)系矩陣;
(2.3)、根據(jù)像素值映射關(guān)系矩陣,對(duì)roi圖像進(jìn)行插值平滑處理,得到預(yù)處理后的roi圖像。
其中,所述的根查找法查找指根點(diǎn)的方法為:
以手掌指向左為例,先找出掌靜脈圖像輪廓點(diǎn),再根據(jù)掌靜脈圖像輪廓點(diǎn)按照如下公式找出指根的所有待校正指根點(diǎn);
point[k].x>=point[k-n].x&&point[k].x>=point[k+n].x
其中,k為當(dāng)前輪廓點(diǎn)的標(biāo)號(hào),point[k]為當(dāng)前輪廓點(diǎn)的x軸坐標(biāo),point[k-n]、point[k+n]為當(dāng)前輪廓點(diǎn)的前、后第n個(gè)輪廓點(diǎn)的x軸坐標(biāo);
對(duì)待校正指根點(diǎn)進(jìn)行歸類:若相鄰兩個(gè)待校正指根點(diǎn)的y軸坐標(biāo)差小于閾值s,則兩個(gè)待校正指根點(diǎn)屬于同一指根,否則屬于不同指根;
最后對(duì)歸屬于同一指根的所有待校正指根點(diǎn)坐標(biāo)取平均值,得到該指根的指根點(diǎn)坐標(biāo)。
進(jìn)一步的,所述的旋轉(zhuǎn)角度θ的計(jì)算方法為:
其中,p1的坐標(biāo)為(x1,y1),p2的坐標(biāo)為(x2,y2),pi為圓周率,取3.14;
當(dāng)旋轉(zhuǎn)角度θ為正值,表示圍繞中點(diǎn)p做逆時(shí)針旋轉(zhuǎn);當(dāng)旋轉(zhuǎn)角度θ為負(fù)值,表示圍繞中點(diǎn)p做順時(shí)針旋轉(zhuǎn)。
再進(jìn)一步的,所述的對(duì)roi區(qū)域進(jìn)行尺度歸一化處理的方法為:
設(shè)p1的實(shí)際坐標(biāo)為(x1,y1),p2的實(shí)際坐標(biāo)為(x2,y2),p1,p2兩點(diǎn)間的標(biāo)準(zhǔn)長度為l0,延伸標(biāo)準(zhǔn)長度為d0,提取的標(biāo)準(zhǔn)roi區(qū)域大小為m0*n0;
中點(diǎn)p的坐標(biāo)為(x0=(x1+x2)/2,y0=(y1+y2)/2),線段l的長度為
更進(jìn)一步的,所述的獲取每一塊roi圖像的像素值映射關(guān)系矩陣的方法為:
1)、對(duì)第j塊roi圖像進(jìn)行直方圖統(tǒng)計(jì),得到直方圖統(tǒng)計(jì)統(tǒng)計(jì)表;
2)、根據(jù)直方圖統(tǒng)計(jì)表,從像素值0正序開始,找出首個(gè)像素個(gè)數(shù)不為零的像素值,記為min,以及從像素值255倒序開始,找出首個(gè)像素個(gè)數(shù)不為零的像素值,記為max;
再對(duì)max和min進(jìn)行校正:
其中,ndelta=(max-min)*0.5*ncontrast,ncontrast為自調(diào)參數(shù);
3)、根據(jù)直方圖統(tǒng)計(jì)表,從像素值0正序開始,找出首個(gè)像素個(gè)數(shù)不大于閾值t的像素值,記為mint,以及從像素值255倒序開始,找出首個(gè)像素個(gè)數(shù)不大于閾值t的像素值,記為maxt;其中,閾值t通過如下關(guān)系確定,
t=m0*n0*nlimit
其中,m0,n0為標(biāo)準(zhǔn)roi區(qū)域的大小,nlimit為自調(diào)參數(shù);
4)、根據(jù)步驟2)和3)得到對(duì)應(yīng)的像素映射關(guān)系矩陣ttj[i];
其中,i表示范圍為0~255的灰度值,j表示塊的編號(hào),范圍為1~k1*k2。
本發(fā)明的發(fā)明目的是這樣實(shí)現(xiàn)的:
本發(fā)明一種基于掌靜脈圖像的預(yù)處理方法,通過提取掌靜脈圖像的roi區(qū)域并對(duì)該roi區(qū)域進(jìn)行處理,得到局部特征明顯,且便于特征提取和特征匹配的掌靜脈圖像;具體講,本發(fā)明優(yōu)化了roi區(qū)域提取算法,減少了因采集時(shí)手掌放置位置不同、高度不同導(dǎo)致的roi區(qū)域提取的偏差,盡可能保證了在同一采集條件下同一個(gè)人roi區(qū)域提取的一致性;其次,利用自適應(yīng)直方圖均衡法處理roi區(qū)域,增強(qiáng)了整體的局部特征和對(duì)比度;最后進(jìn)行插值處理,得到最終局部增強(qiáng)的、平滑的roi圖像,進(jìn)而提升掌靜脈識(shí)別的整體效果。
附圖說明
圖1是一種基于掌靜脈圖像的預(yù)處理方法流程圖;
圖2是掌靜脈圖像的roi提取示意圖;
圖3是分塊roi插值方法示意圖;
圖4是本發(fā)明增強(qiáng)方法和經(jīng)典的全局直方圖均衡化增強(qiáng)方法的效果對(duì)比圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計(jì)的詳細(xì)描述也許會(huì)淡化本發(fā)明的主要內(nèi)容時(shí),這些描述在這里將被忽略。
實(shí)施例
圖1是一種基于掌靜脈圖像的預(yù)處理方法流程圖。
掌靜脈圖像必須包含除大拇指和食指間指根點(diǎn)之外的其余3個(gè)指根點(diǎn),否則無法識(shí)別出足夠的指根點(diǎn),會(huì)導(dǎo)致roi區(qū)域提取失敗。其次,在掌靜脈圖像中,手掌指可以指向四個(gè)方向(上、下、左、右),但在同一roi區(qū)域提取方法中必須要求手掌指向同一方向,以便后續(xù)手掌共用,如圖2所示,在本實(shí)施例中選取手掌指向左。
下面結(jié)合圖1所示,對(duì)本發(fā)明一種基于掌靜脈圖像的預(yù)處理方法進(jìn)行詳細(xì)說明,具體包括以下步驟:
s1、通過掌靜脈圖像,提取掌靜脈圖像的roi區(qū)域
s1.1、先將掌靜脈圖像轉(zhuǎn)換成灰度圖,再進(jìn)行二值化處理,得到二值化圖像;
根據(jù)實(shí)際需要,將掌靜脈圖像轉(zhuǎn)成256色的灰度圖,再運(yùn)用固定閾值法對(duì)灰度圖進(jìn)行二值化處理,得到只有灰白兩色的二值化圖像g(x,y)。
其中,二值化處理的具體方法為:
定義一個(gè)閾值t,按照如下公式進(jìn)行二值化處理:
在本實(shí)施例中,將閾值t設(shè)置為30,這樣可以得到一個(gè)大小為640*480的二值化圖像;
s1.2、利用canny算法提取二值化圖像的輪廓作為掌靜脈圖像輪廓;
s1.3、結(jié)合掌靜脈圖像輪廓,先找出掌靜脈圖像輪廓點(diǎn),再根據(jù)根查找法找出食指與中指間的指根點(diǎn)p1,以及無名指與小指之間的指根點(diǎn)p2;
具體講,先按照如下公式找出所有指根的所有待校正指根點(diǎn);
point[k].x>=point[k-n].x&&point[k].x>=point[k+n].x
其中,k為當(dāng)前輪廓點(diǎn)的標(biāo)號(hào),point[k]為當(dāng)前輪廓點(diǎn)的x軸坐標(biāo),point[k-n]、point[k+n]為當(dāng)前輪廓點(diǎn)的前、后第n個(gè)輪廓點(diǎn)的x軸坐標(biāo);在本實(shí)施例中,n取5;
再對(duì)待校正指根點(diǎn)進(jìn)行歸類:若相鄰兩個(gè)待校正指根點(diǎn)的y軸坐標(biāo)差小于閾值s=50,則兩個(gè)待校正指根點(diǎn)屬于同一指根,否則屬于不同指根;
由于該方法判斷出來的一個(gè)指根可能不止一個(gè)指根點(diǎn),因此需要對(duì)同一指根的指根點(diǎn)取平均位置,即對(duì)歸屬于同一指根的所有待校正指根點(diǎn)坐標(biāo)取平均值,得到該指根的指根點(diǎn)坐標(biāo);
s1.4、將指根點(diǎn)p1和指根點(diǎn)p2做直線連接,得到線段l,再標(biāo)記出線段l的中點(diǎn)坐標(biāo)p(x0,y0),以中點(diǎn)p為中心,根據(jù)p1,p2的坐標(biāo)做仿射變換旋轉(zhuǎn),旋轉(zhuǎn)角度為θ,使得p1,p2兩點(diǎn)的縱坐標(biāo)或橫坐標(biāo)相等;
在本實(shí)施例中,取p1的坐標(biāo)為(132,40),p2的坐標(biāo)為(96,320),計(jì)算出中心坐標(biāo)p為(114,180);再將上述點(diǎn)的坐標(biāo)值代入如下公式,
角度θ大小為7.18度,數(shù)值為正,因此做逆時(shí)針旋轉(zhuǎn);
s1.5、以中點(diǎn)p為基準(zhǔn)點(diǎn),做線段l的垂線g,再以中點(diǎn)p為起點(diǎn),沿垂直線g向掌心方向延伸長度d,并標(biāo)記為端點(diǎn)p0,以p0為中心點(diǎn),提取大小為m*n的roi區(qū)域,并對(duì)該roi區(qū)域進(jìn)行尺度歸一化處理,得到大小為m0*n0的標(biāo)準(zhǔn)roi區(qū)域,命名為roi圖像;
如圖2所示,在本實(shí)施例中,規(guī)定標(biāo)準(zhǔn)長度l0=200,延伸標(biāo)準(zhǔn)長度d0=100,提取的標(biāo)準(zhǔn)roi區(qū)域大小為128*128;
那么將p1,p2,p的實(shí)際坐標(biāo)代入到如下公式:
中點(diǎn)p的坐標(biāo):(x0=(x1+x2)/2,y0=(y1+y2)/2);
線段l的長度:
提取的roi區(qū)域的大小偏差比例為:r=l1/l0;
實(shí)際延伸長度的偏差比例為:d=d0*r;
提取的roi區(qū)域的實(shí)際大小為:(m=m0*r)*(n=n0*r);
可以分別計(jì)算出實(shí)際長度l1=283,偏差比例r=1.415,實(shí)際延伸長度為d=141,實(shí)際提取的roi區(qū)域大小181*181;
最后將實(shí)際提取的roi區(qū)域大小歸一化為128*128的標(biāo)準(zhǔn)大小,得到標(biāo)準(zhǔn)roi區(qū)域,命名為roi圖像。
s2、對(duì)roi圖像進(jìn)行預(yù)處理
s2.1、對(duì)roi圖像進(jìn)行分塊處理:將roi圖像劃分成k1*k2個(gè)小塊,每個(gè)小塊的大小為(m0/k1)*(n0/k2),其中,k1,k2為常數(shù),且k1能被m0,k2能被n0整除;
在實(shí)施例中,取k1=k2=8,m0*n0=128*128,那么可以得到64個(gè)小塊,且每個(gè)小塊的大小為16*16;
s2.2、對(duì)每一小塊roi圖像進(jìn)行自適應(yīng)直方圖均衡化處理,獲取每一塊的像素值映射關(guān)系矩陣;
下面以第1塊roi圖像為例進(jìn)行詳細(xì)說明,具體為:
1)、對(duì)第1塊roi圖像進(jìn)行直方圖統(tǒng)計(jì),得到一個(gè)1*256的直方圖統(tǒng)計(jì)表,即roi圖像中0~255每個(gè)像素值的個(gè)數(shù);
2)、根據(jù)直方圖統(tǒng)計(jì)表,從像素值0正序開始,找出首個(gè)像素個(gè)數(shù)不為零的像素值,記為min,以及從像素值255倒序開始,找出首個(gè)像素個(gè)數(shù)不為零的像素值,記為max;
再對(duì)max和min進(jìn)行校正:
其中,ndelta=(max-min)*0.5*ncontrast,ncontrast為自調(diào)參數(shù),具體可以根據(jù)實(shí)際效果設(shè)置大小;
在本實(shí)施例中,校正前的max和min分別為198,147;ncontrast值為1.0,校正后的max和min分別為223,122;
3)、根據(jù)直方圖統(tǒng)計(jì)表,從像素值0正序開始,找出首個(gè)像素個(gè)數(shù)不大于閾值t的像素值,記為mint,以及從像素值255倒序開始,找出首個(gè)像素個(gè)數(shù)不大于閾值t的像素值,記為maxt;其中,閾值t通過如下關(guān)系確定,
t=m0*n0*nlimit
其中,m0,n0為標(biāo)準(zhǔn)roi區(qū)域的大小,nlimit為自調(diào)參數(shù),具體可以根據(jù)實(shí)際效果設(shè)置大??;
在實(shí)施例中,nlimit設(shè)置為0.01,進(jìn)而得到maxt和mint分別為195,154;
4)、根據(jù)步驟2)和3)得到第1塊roi圖像對(duì)應(yīng)的像素映射關(guān)系矩陣tt1[i];
其中,i表示范圍為0~255的灰度值;
同理,可以得到64塊1*256的像素映射關(guān)系矩陣;
s2.3、根據(jù)各塊的像素值映射關(guān)系矩陣,對(duì)roi圖像進(jìn)行插值平滑處理,得到預(yù)處理后的roi圖像;
在本實(shí)施例中,如圖3所示,以四個(gè)頂角塊的中心點(diǎn)為分割點(diǎn),圖3中的灰色區(qū)域?yàn)榻屈c(diǎn)區(qū)域,白色區(qū)域?yàn)檫吘墔^(qū)域,黑色區(qū)域?yàn)橹行膮^(qū)域;
其中,對(duì)roi圖像的角點(diǎn)區(qū)域直接使用原像素值;
對(duì)roi圖像的邊緣區(qū)域使用線性插值;
以點(diǎn)s0為例,將roi圖像作為校正圖像,進(jìn)行線性插值的方法為:
s01=(1-x0)*ga(s00)+x0*gb(s00)
其中,s00是點(diǎn)s0在校正圖中對(duì)應(yīng)位置的像素值,s01是經(jīng)插值處理后點(diǎn)s0處的像素值,a、b兩點(diǎn)為點(diǎn)s0最近的兩個(gè)塊的中心點(diǎn),設(shè)a、b兩點(diǎn)間x軸坐標(biāo)相對(duì)距離為1,ga(s00)、gb(s00)為s00在a、b所在塊的映射關(guān)系矩陣中對(duì)應(yīng)的映射像素值,x0是點(diǎn)s0到點(diǎn)a的x軸坐標(biāo)的相對(duì)距離,且小于1;
同理,其他邊緣區(qū)域的線性插值方法相同;
對(duì)roi圖像的中心區(qū)域使用雙線性插值;
以點(diǎn)s為例,將roi圖像作為校正圖像,進(jìn)行雙線性插值的方法為:
s1=(1-x)*(1-y)*ga(s0)+x*(1-y)*gb(s0)+(1-x)*y*gd(s0)+x*y*gc(s0)
其中,s0是點(diǎn)s在校正圖中對(duì)應(yīng)位置的像素值,s1是經(jīng)插值處理后點(diǎn)s處的像素值,a、b、c、d四點(diǎn)為點(diǎn)s最近的四個(gè)塊的中心點(diǎn),設(shè)a、b兩點(diǎn)間x軸坐標(biāo)相對(duì)距離為1,a、d兩點(diǎn)間y軸坐標(biāo)相對(duì)距離為1,ga(s0)、gb(s0)、gc(s0)、gd(s0)分別為s0在a、b、c、d所在塊的映射關(guān)系矩陣中對(duì)應(yīng)的映射像素值,x是點(diǎn)s到點(diǎn)a的x軸坐標(biāo)的相對(duì)距離,且x小于1,y是點(diǎn)s到點(diǎn)a的y軸坐標(biāo)的相對(duì)距離,且y小于1;
同理,其他中心區(qū)域的雙線性插值方法相同。
通過插值,最終得到邊界線消除,較為平滑的roi圖像,最后對(duì)圖像進(jìn)行中值濾波,平滑周邊的效果,使圖像更為平滑化,得到增強(qiáng)后的roi圖像。
增強(qiáng)效果如圖4所示,其中,圖4(a)為掌靜脈roi原圖,圖4(b)為全局直方圖均衡化算法的增強(qiáng)圖像,圖4(c)為本發(fā)明增強(qiáng)后的圖像,可以發(fā)現(xiàn)圖4(b)中,圖像左上角、右下角過暗,右上角又過亮,圖像明顯增強(qiáng)過度。而在圖4(c)中,圖像整體掌靜脈輪廓明顯,無過暗過亮現(xiàn)象。綜上,本發(fā)明方法能有效減少了掌靜脈圖像增強(qiáng)過度的現(xiàn)象,有著較好的增強(qiáng)效果。
盡管上面對(duì)本發(fā)明說明性的具體實(shí)施方式進(jìn)行了描述,以便于本技術(shù)領(lǐng)域的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實(shí)施方式的范圍,對(duì)本技術(shù)領(lǐng)域的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。