蘇 丹 王新強(qiáng) 劉宇航 陸瑤芃 李 婷 聶澤東#*
1(桂林電子科技大學(xué)電子工程與自動化學(xué)院,桂林 541004)
2(中國科學(xué)院深圳先進(jìn)技術(shù)研究院,廣東深圳 518055)
身份識別是指通過一定的手段,完成對用戶身份的鑒別。傳統(tǒng)的身份識別技術(shù)主要借助于鑰匙、密碼、證件等媒介來鑒別個(gè)人身份,但容易被復(fù)制、偽造、泄密或遺忘,因此生物識別技術(shù)應(yīng)運(yùn)而生。生物識別技術(shù)主要是通過計(jì)算機(jī)與生物傳感器等高科技手段相結(jié)合,利用人體生理特征(如指紋、指靜脈、掌紋、人臉、虹膜、視網(wǎng)膜等)或行為特征(語音等)來鑒別個(gè)人身份[1]。生物識別技術(shù)具有不被遺忘、不易被盜和復(fù)制、攜帶方便、防偽性能高等優(yōu)點(diǎn),與傳統(tǒng)的身份識別技術(shù)相比更加安全、穩(wěn)定和方便,已逐步發(fā)展為國內(nèi)外熱門研究方向。
常見的生物識別技術(shù)有指紋識別[2]、人臉識別[3]、掌紋識別[4]和虹膜識別[5]等,這些技術(shù)在給人們帶來便利的同時(shí)也存在著一些缺點(diǎn),例如:指紋和掌紋特征易被破壞,手指和手掌表皮有污漬或破損會降低識別率,而且指紋和掌紋存在被復(fù)制的可能性,安全性低;人臉識別易受到整容、化妝等因素影響,存在較大安全隱患;虹膜識別安全性高,但是它對硬件要求非常高,價(jià)格昂貴、便攜性差,還易引發(fā)人眼不適。
手指靜脈識別是一種新興的生物識別技術(shù),利用手指內(nèi)部靜脈血管的分布結(jié)構(gòu)作為生物特征進(jìn)行身份識別,與其他生物識別技術(shù)相比,具有以下優(yōu)點(diǎn):(1)唯一性和穩(wěn)定性,每個(gè)人的手指靜脈網(wǎng)絡(luò)各不相同且終身不變[6],這為身份識別提供了可靠的依據(jù);(2)高防偽性和不可復(fù)制性,手指靜脈結(jié)構(gòu)屬于人體內(nèi)部特征,只有在血液流動的情況下才能夠被采集,故只能在活體上采集,無法被復(fù)制、偽造和竊取,安全性能高;(3)非接觸式,手指靜脈圖像可以通過近紅外光照射手指,用CCD 攝像頭捕捉得到,具有非接觸式的特點(diǎn),安全便利;(4)手指靜脈位于表皮之下,手指表皮有破損和污漬都不會對手指靜脈的采集造成影響?;谏鲜鰞?yōu)點(diǎn),近年來手指靜脈識別技術(shù)獲得了越來越多的關(guān)注,成為研究與應(yīng)用的熱點(diǎn)[7]。
手指靜脈識別一般分為4 個(gè)步驟,包括手指靜脈圖像采集、圖像預(yù)處理、圖像特征提取和匹配。最后的匹配結(jié)果依賴于特征提取,因此圖像特征提取至關(guān)重要。根據(jù)提取的特征,手指靜脈識別方法可以分為基于全局特征的方法、基于局部特征的方法和基于深度學(xué)習(xí)的方法。
基于全局特征的方法是運(yùn)用降維,將高維圖像映射到低維向量,減少特征中的冗余信息。主要方法有文獻(xiàn)[8]提出的主成分分析法(principal component analysis,PCA)、文獻(xiàn)[9]提出的獨(dú)立成分分析法(independent component analysis,ICA)、文獻(xiàn)[10]提出的線性判別分析法(linear discriminant analysis,LDA)、以及文獻(xiàn)[11]提出的雙向加權(quán)二維主成分分析法等?;谌痔卣鞯姆椒ㄔ谶\(yùn)算效率上得到了提高,但對光照強(qiáng)度不具有魯棒性,對受光照影響嚴(yán)重的圖像識別效果較差[8]。
基于深度學(xué)習(xí)的方法是通過搭建網(wǎng)絡(luò)模型以對大量圖片進(jìn)行訓(xùn)練進(jìn)而達(dá)到識別目的。文獻(xiàn)[12]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的靜脈紋路提取方法;文獻(xiàn)[13]提出了一種基于生成對抗網(wǎng)絡(luò)的靜脈紋路分割方法;文獻(xiàn)[14]采用基于AlexNet 的深度學(xué)習(xí)網(wǎng)絡(luò)對指靜脈圖像進(jìn)行識別?;谏疃葘W(xué)習(xí)的方法識別率高,但需要用到大量的數(shù)據(jù)進(jìn)行充分訓(xùn)練,運(yùn)算速度慢,耗時(shí)較長。
基于局部特征的方法主要有:(1)基于紋理特征的算法。根據(jù)手指靜脈呈線狀分布,且靜脈圖像的橫截面灰度曲線呈谷形分布的特點(diǎn)。文獻(xiàn)[15]提出了重復(fù)線追蹤法,通過從多個(gè)位置開始跟蹤圖像局部暗線來檢測靜脈紋路的走向;文獻(xiàn)[16]提出了最大曲率法,利用靜脈灰度值小于背景區(qū)域的特點(diǎn),通過計(jì)算圖像截面曲線的最大曲率點(diǎn)來提取靜脈紋路;文獻(xiàn)[17]提出了平均曲率法,通過計(jì)算每個(gè)像素點(diǎn)的平均曲率,然后將負(fù)平均曲率的像素點(diǎn)作為靜脈紋路進(jìn)行提取。(2)基于局部二值的算法。文獻(xiàn)[18-21]分別提出了局部二值模式(local binary patterns, LBP )、 局部方向模式( local directional pattern, LDP)、 局部方向編碼(local directional code,LDC)、局部線性二值模式(local line binary pattern,LLBP)對圖像特征進(jìn)行二值化,最后使用二值化編碼進(jìn)行圖像識別。(3)基于靜脈結(jié)構(gòu)特征的算法。文獻(xiàn)[22]對靜脈圖像進(jìn)行Gabor 濾波和Frangi 濾波提取靜脈線,然后對靜脈線進(jìn)行均勻采樣并將采樣點(diǎn)作為細(xì)節(jié)點(diǎn),然后提取細(xì)節(jié)點(diǎn)的特征作為靜脈特征,最后用CPD(coherent point drift)匹配算法進(jìn)行特征匹配;文獻(xiàn)[24]提取了靜脈骨架化圖像的細(xì)節(jié)點(diǎn)(端點(diǎn)和交叉點(diǎn)),然后利用修改的Hausdroff 距離來計(jì)算細(xì)節(jié)點(diǎn)間的相似度,進(jìn)而達(dá)到圖像識別的目的;文獻(xiàn)[25]提取了靜脈端點(diǎn)、交叉點(diǎn)和加速穩(wěn)健特征(speed up robust features,SURF)點(diǎn)作為細(xì)節(jié)點(diǎn),將它們的特征融合作為靜脈圖像的特征信息,最后分別用歐式距離和Hausdroff 距離對提取到的特征細(xì)節(jié)點(diǎn)進(jìn)行匹配。
基于局部特征的方法,其特征模板相對較小,提高了存儲效率和運(yùn)行速度,近年來受到越來越多研究者的青睞。目前大部分基于靜脈結(jié)構(gòu)特征的算法僅考慮到了細(xì)節(jié)點(diǎn),但是卻忽略了靜脈網(wǎng)絡(luò)結(jié)構(gòu)的曲線段,這會造成一部分結(jié)構(gòu)信息的丟失,影響識別結(jié)果。并且,因?yàn)殪o脈圖像的細(xì)節(jié)點(diǎn)較少,部分低質(zhì)量的指靜脈圖像和分割算法的局限性會降低靜脈細(xì)節(jié)點(diǎn)的有效性[26],從而降低識別率,所以只考慮靜脈細(xì)節(jié)點(diǎn)特征是不夠的。針對以上問題,本研究提出一種將靜脈細(xì)節(jié)點(diǎn)(端點(diǎn)和交叉點(diǎn))與靜脈曲線段相結(jié)合的曲線描述子—交叉弧描述子,然后用交叉弧描述子提取靜脈結(jié)構(gòu)特征,最后利用加權(quán)距離公式進(jìn)行靜脈圖像匹配。在自制的指靜脈數(shù)據(jù)庫上進(jìn)行驗(yàn)證,得到較好的實(shí)驗(yàn)結(jié)果,證明了本文方法具有一定的應(yīng)用前景。
手指靜脈圖像的采集原理是:將波長為700 ~1 000 nm 的近紅外光照射手指,指靜脈中的血紅蛋白會顯著地吸收近紅外光,而靜脈周圍人體組織和骨骼對近紅外光幾乎沒有吸收作用,透過手指的近紅外光將在紅外攝像頭內(nèi)形成指靜脈分布圖像[26]。因此,手指靜脈傳感器主要由紅外光發(fā)生裝置和紅外攝像頭構(gòu)成,如圖1(a)所示。實(shí)驗(yàn)使用的手指靜脈圖像采集設(shè)備的結(jié)構(gòu)是固定的,手指需放置在特定的位置才會觸發(fā)圖像采集,因此所采集的圖像的分辨率和距離是保持不變的,如圖1(b)所示,采集設(shè)備設(shè)置了固定的手指卡槽,手指必須放置在卡槽里才能觸發(fā)圖像采集。采集到的靜脈圖像如圖1(c)所示。
圖1 手指靜脈圖像采集。(a)手指靜脈傳感器的基本結(jié)構(gòu);(b)手指靜脈采集裝置;(c)采集的手指靜脈圖像Fig.1 Finger vein image acquisition. (a) Basic structure of the finger vein sensor; (b) Finger vein collection device; ( c ) Finger vein image collected
對56 名志愿者進(jìn)行手指靜脈圖像采集,建立了實(shí)驗(yàn)室自己的手指靜脈數(shù)據(jù)庫。對每個(gè)志愿者的一根手指進(jìn)行15 次采集,一共采集到840 幅手指靜脈圖像。故數(shù)據(jù)庫的樣本量是840 幅,總計(jì)56 類圖像,每類15 張手指靜脈圖像。
算法驗(yàn)證時(shí),首先把數(shù)據(jù)庫分為注冊集和測試集,從每根手指的15 張靜脈圖像中隨機(jī)選取一張共56 張作為注冊集,余下的784 張作為測試集。
在手指靜脈圖像特征提取前要對圖像進(jìn)行預(yù)處理,手指靜脈圖像預(yù)處理包括:感興趣區(qū)域(region of interest,ROI)提取、靜脈紋路分割。
1.2.1 ROI 提取
手指靜脈圖像的ROI 指的是包含了豐富手指靜脈網(wǎng)絡(luò)信息及特征的手指區(qū)域。圖像中包含指靜脈信息特征少的區(qū)域?qū)κ种胳o脈識別起到的作用可以忽略不計(jì),所以ROI 提取的目的是摒除圖像背景中對指靜脈識別無用的信息,保留有用的信息。
如圖2 所示,首先利用Prewitt 算子檢測手指靜脈圖像中的兩條手指邊緣線,分割手指區(qū)域;然后進(jìn)行方向校正,對分割后的圖像進(jìn)行旋轉(zhuǎn)[27];最后以靜脈圖像第二指關(guān)節(jié)為參考線截取感興趣區(qū)域的左右邊界,再以手指上下邊緣中線為水平參考線截取上下邊界,由此可得到矩形ROI[27]。
圖2 ROI 提取示意Fig.2 ROI extraction schematic diagram
1.2.2 手指靜脈紋路分割
靜脈紋路分割,即對手指靜脈ROI 圖像,通過主曲率二值化、細(xì)化等處理后得到手指靜脈骨架圖,如圖3 所示。
圖3 指靜脈紋路分割示意。(a)指靜脈ROI 圖;(b)指靜脈二值圖;(c)指靜脈細(xì)化圖Fig.3 Segmentation of finger veins.(a)ROI of the finger veins; (b)Binarization of finger veins; (c)Thinning of finger veins
1.2.2.1 手指靜脈紋路二值化
采用主曲率二值化法[28]對手指靜脈圖像進(jìn)行二值化,該方法包括梯度歸一化、主曲率計(jì)算和二值化這3 個(gè)步驟:(1)將指靜脈圖像上每個(gè)像素的梯度歸一化為1;(2)根據(jù)每個(gè)像素點(diǎn)的Hessian 矩陣的特征值計(jì)算主曲率。在計(jì)算主曲率之前,使用高斯濾波器對歸一化的梯度場進(jìn)行平滑處理。在每個(gè)像素點(diǎn)上有兩個(gè)主曲率,但這里只使用較大的曲率,它對應(yīng)于所有方向上的最大曲率;(3)使用大津閾值分割法對最大曲率值進(jìn)行閾值化,得到手指靜脈二值圖像。
1.2.2.2 手指靜脈紋路細(xì)化
對手指靜脈二值圖像使用細(xì)化算法,可以得到單像素寬的靜脈骨架圖,作為之后特征提取的基礎(chǔ)。細(xì)化過程中,為了保持靜脈紋路的連續(xù)性,需要保留靜脈的拓?fù)浣Y(jié)構(gòu),不斷重復(fù)刪除圖像邊緣滿足一定條件的像素,最終得到單像素寬的靜脈骨架。
1.3.1 提取交叉點(diǎn)和端點(diǎn)
手指靜脈網(wǎng)絡(luò)是由多條靜脈曲線互相連接在一起,再被交叉點(diǎn)分割為若干條曲線段的。所以交叉點(diǎn)和端點(diǎn)都是靜脈圖像重要的細(xì)節(jié)點(diǎn)。可以通過檢測手指靜脈骨架上任意一點(diǎn)的八鄰域像素值來提取手指靜脈圖像的交叉點(diǎn)和端點(diǎn)。點(diǎn)P是手指靜脈骨架上任意一個(gè)像素點(diǎn),它的八鄰域示意如圖4 所示,可以通過計(jì)算點(diǎn)P的八鄰域中像素值為1 的點(diǎn)的個(gè)數(shù)M(即點(diǎn)P八鄰域所有點(diǎn)的像素值之和)來判斷P點(diǎn)是否是交叉點(diǎn)或端點(diǎn),如式(1)所示。
1)當(dāng)M(P) = 1 時(shí),則P是指靜脈曲線上的一個(gè)端點(diǎn);
2)當(dāng)M(P) = 2 時(shí),則P是指靜脈曲線上的一個(gè)普通點(diǎn);
3)當(dāng)M(P) ≥3 時(shí),則P是指靜脈曲線上的一個(gè)交叉點(diǎn)。
指靜脈圖4 交叉點(diǎn)和端點(diǎn)的檢測結(jié)果如圖5所示。
圖4 像素點(diǎn)P 的八鄰域示意Fig.4 Eight neighborhoods of pixel point P
圖5 交叉點(diǎn)和端點(diǎn)檢測示意。(a)手指靜脈骨架圖;(b)手指靜脈交叉點(diǎn)和端點(diǎn)檢測結(jié)果(中紅色圓圈表示端點(diǎn),綠色圓圈表示交叉點(diǎn))Fig.5 Schematic diagram of intersection points and endpoints detection. (a) Skeleton of finger veins; (b) Detection result of intersection points and endpoints (Red circles indicate endpoints and green circles indicate intersection points)
1.3.2 弧描述子
手指靜脈圖像中除了端點(diǎn)和交叉點(diǎn),還包含許多以端點(diǎn)和交叉點(diǎn)為兩端的靜脈曲線段,這些曲線段同樣包含了豐富的手指靜脈信息,屬于指靜脈的重要特征。所以,為能夠獲得手指靜脈的完整結(jié)構(gòu)特征,不僅要提取靜脈的端點(diǎn)和交叉點(diǎn),還要對靜脈的曲線段進(jìn)行描述,提取靜脈曲線段的特征[29]。為了精確地描述靜脈曲線,本研究提出一種基于弧的曲線描述子——稱為弧描述子。
如圖6 所示,對曲線段Lo(A,B),采用弧描述子進(jìn)行描述,具體描述方法如下:
圖6 曲線弧描述子Fig.6 Curve arc descriptor
1)計(jì)算曲線段的弧長,即總長度S;
2)連接曲線段的起點(diǎn)A 和終點(diǎn)B,得到曲線段的弦長L;
3)找到曲線段上距離弦長L最遠(yuǎn)的點(diǎn)C,過該點(diǎn)作垂直于L的直線,并與L相交于點(diǎn)D。則直線CD 的長度可作為曲線段的弧高H[30];
4)注意特殊情況,當(dāng)曲線段是一條直線時(shí),H=0,S=L;
5)最后獲得曲線段的弧描述子為
如果兩條曲線段相似,則它們的弧描述子也相似;如果兩條曲線段不相似,則它們的弧描述子差異度非常大。基于弧描述子,可以計(jì)算出兩條曲線段的差異度,即兩條曲線段的距離。
給定曲線段Zi的弧描述子Di={Si,Li,Hi}和Gj的弧描述子Dj={Sj,Lj,Hj},定義曲線段距離度量函數(shù)為[30]:
1.3.3 交叉弧描述子
在指靜脈的結(jié)構(gòu)特征中,相比于端點(diǎn),交叉點(diǎn)包含更豐富的信息。為了降低計(jì)算復(fù)雜度,本文提出了基于交叉點(diǎn)的弧描述子,簡稱交叉弧描述子。交叉弧描述子的定義如下:從任意一個(gè)交叉點(diǎn)出發(fā),追蹤與其相連的靜脈曲線,直到遇到端點(diǎn)或另一個(gè)交叉點(diǎn)時(shí)結(jié)束,最后能得到4 條或4 條以上靜脈曲線段[29]。
因?yàn)榇蟛糠朱o脈圖像交叉點(diǎn)連接的靜脈曲線段最多是4 條,4 條以上出現(xiàn)的概率特別小,所以以4 條靜脈曲線為例,假定P是指靜脈骨架圖像中的一個(gè)交叉點(diǎn),其八鄰域如圖4 所示,從P6開始,按照順時(shí)針方向?qū)c(diǎn)P的八鄰域像素點(diǎn)P6,P7,P0,...,P5進(jìn)行判斷其像素值是否為1(等于1 的點(diǎn)為靜脈上的點(diǎn)),直至找到4 個(gè)像素值為1 的靜脈點(diǎn)M1~M4。把M1~M4分別作為對應(yīng)曲線段的起點(diǎn),如圖7(b)、(c)、(d)、(e)所示。
圖7 曲線段追蹤(綠色標(biāo)記“+”代表起點(diǎn),紅色標(biāo)記“O”代表交叉點(diǎn))Fig.7 Curve segment tracing (The green “+” represents the start point, the red “O” represents the cross point)
假設(shè)Jn(n=1,2,3,4)表示與交叉點(diǎn)P相連的一條靜脈曲線段的點(diǎn)坐標(biāo)序列,tn是追蹤曲線時(shí)以Mn作為起點(diǎn)的移動點(diǎn)。具體的追蹤步驟及Jn生成過程總結(jié)如下[31]:
1)令移動點(diǎn)tn的坐標(biāo)等于起點(diǎn)Mn的坐標(biāo),即tn(x0,y0)=Mn(x,y),把tn(x0,y0)放進(jìn)Jn序列,則有Jn(x0,y0)=tn(x0,y0),并將交叉點(diǎn)P和另外3 條曲線段起點(diǎn)的像素值置零;
2)以移動點(diǎn)tn為中心,遍歷其八鄰域,找到像素值為1 的點(diǎn),該點(diǎn)坐標(biāo)(xi,yi)即為下一個(gè)靜脈點(diǎn)的坐標(biāo),將tn移動到該點(diǎn)上,即tn(x,y)= (xi,yi),并將此時(shí)tn的坐標(biāo)(xi,yi)放入Jn序列;
3)把移動點(diǎn)tn(xi,yi)的像素值置零,令i=i+1;
4)判斷tn是否為端點(diǎn)或交叉點(diǎn)。若不是,則重復(fù)步驟(2)和(3),直到tn為端點(diǎn)或交叉點(diǎn)為止。
上述過程即為靜脈曲線段追蹤的完整步驟,由此可獲得與交叉點(diǎn)相連的4 條曲線段的坐標(biāo)序列J1~J4,最后由曲線段坐標(biāo)序列和1.3.2 節(jié)的方法計(jì)算得到這4 條曲線段的弧描述子l1~l4,最終獲得的交叉弧描述子表達(dá)式為
式中,(x,y)是交叉點(diǎn)坐標(biāo),l1,l2,l3,l4分別表示的是與該交叉點(diǎn)相連的4 條靜脈曲線段的弧描述子。由1.3.2 節(jié)方法得l1={S1,L1,H1},l2={S2,L2,H2},l3={S3,L3,H3},l4={S4,L4,H4},所以式(4)又可以表示為
當(dāng)交叉點(diǎn)連接3 條靜脈曲線段時(shí),可以當(dāng)做是連接4 條靜脈曲線段的一種特殊情況,即第4 條曲線段的S、H、L都為0,弧描述子l4={0,0,0}。
交叉點(diǎn)連接的靜脈曲線段超過4 條的概率非常低,一旦出現(xiàn)交叉點(diǎn)連接的靜脈曲線段超過4 條,將自動選取主要的4 條靜脈曲線段進(jìn)行描述。
1.3.4 靜脈圖像特征提取
以交叉點(diǎn)和端點(diǎn)為核心,跟蹤與交叉點(diǎn)相連的曲線段,將交叉點(diǎn)、端點(diǎn)和曲線段共同看作指靜脈圖像的結(jié)構(gòu)特征并進(jìn)行提取。
遍歷一幅手指靜脈圖像上所有的交叉點(diǎn),假設(shè)交叉點(diǎn)個(gè)數(shù)為m,用交叉弧描述子對每一個(gè)交叉點(diǎn)進(jìn)行描述,可得到包含m個(gè)交叉弧描述子的手指靜脈圖像特征矩陣,如式(6)所示,矩陣中每一行都代表一個(gè)交叉弧描述子。
式中,m是手指靜脈圖上的交叉點(diǎn)個(gè)數(shù),(xm,ym)是第m個(gè)交叉點(diǎn)的坐標(biāo),lm1、lm2、lm3、lm4分別是與第m個(gè)交叉點(diǎn)相連接的靜脈曲線段的弧描述子,lm1={Sm1,Lm1,Hm1}、lm2={Sm2,Lm2,Hm2}、lm3={Sm3,Lm3,Hm3}、lm4={Sm4,Lm4,Hm4}。所以式(6)又可以用式(7)表示。
1.3.5 交叉弧描述子的距離度量函數(shù)
如果兩個(gè)交叉弧相似,則它們的交叉弧描述子也相似;而如果兩個(gè)交叉弧不相似,則它們的交叉弧描述子差異度非常大。要想判斷兩個(gè)交叉弧之間的相似性,需要計(jì)算這兩個(gè)交叉弧描述子之間的距離,距離越小,相似性越大。兩個(gè)交叉弧描述子之間的距離和兩交叉點(diǎn)之間的距離有關(guān),還和與交叉點(diǎn)相連的曲線段組合間的相似性有關(guān)。兩個(gè)交叉點(diǎn)的距離就是兩個(gè)交叉點(diǎn)坐標(biāo)之間的歐式距離,給定兩個(gè)交叉點(diǎn)的坐標(biāo)分別為(x1,y1)、(x2,y2),則它們的距離式如式(8)所示。Dbif表示兩個(gè)交叉點(diǎn)間的距離。
給定一幅靜脈圖像上的交叉弧Ki的描述子Bi={(xi,yi),li1,li2,li3,li4}和交叉弧Kj的描述子Bj={(xj,yj),lj1,lj2,lj3,lj4},定義兩個(gè)交叉弧距離度量函數(shù)為
式中,D(li1,lj1)、D(li2,lj2)、D(li3,lj3)、D(li4,lj4)分別是弧描述子li1和lj1、li2和lj2、li3和lj3、li4和lj4的距離,可由式(3)計(jì)算得出;q代表權(quán)重值,其大小由交叉點(diǎn)間的距離決定,交叉點(diǎn)間距離越大權(quán)重越大、距離越小權(quán)重越小。這里q是一個(gè)經(jīng)驗(yàn)值,可通過反復(fù)實(shí)驗(yàn)獲得最佳值,對權(quán)重q的取值如下:
1)當(dāng)交叉點(diǎn)距離Dbif≤1 時(shí),q=0.2;
2)當(dāng)交叉點(diǎn)距離1<Dbif≤3 時(shí),q=0.5;
3)當(dāng)交叉點(diǎn)距離3<Dbif≤5 時(shí),q=0.7;
4)當(dāng)交叉點(diǎn)距離5<Dbif≤8 時(shí),q=1;
5)當(dāng)交叉點(diǎn)距離8<Dbif時(shí),q=100。
1.3.6 交叉弧匹配
設(shè)定一個(gè)閾值th,當(dāng)兩個(gè)交叉弧之間的距離小于閾值th 時(shí),則這兩個(gè)交叉弧能夠匹配成功。對待匹配的兩張手指靜脈圖像,先分別計(jì)算得到兩個(gè)指靜脈圖像的特征矩陣,然后對兩個(gè)特征矩陣中的交叉弧描述子進(jìn)行一一匹配,即按式(9)計(jì)算交叉弧距離,當(dāng)距離小于閾值th 時(shí),說明對應(yīng)的兩個(gè)交叉弧能夠匹配成功;當(dāng)距離大于閾值th 時(shí),說明匹配不成功。th 是一個(gè)經(jīng)驗(yàn)值,經(jīng)多次實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)th=40 時(shí)得到的識別效果最好。當(dāng)兩幅手指靜脈圖像屬于同一類時(shí),匹配成功的交叉弧對多;不屬于同一類時(shí),匹配成功的交叉弧對少。
1.3.7 圖像匹配
采用的圖像匹配方法是:把指靜脈圖像數(shù)據(jù)庫分為注冊集和測試集,將注冊集里的每一張圖片和測試集里的每一張圖片進(jìn)行一一匹配,得到不同的匹配交叉弧對N,并將N歸一化到[0,1]范圍內(nèi),設(shè)定閾值thr,當(dāng)N>thr 時(shí),判定兩張圖片匹配成功;當(dāng)N<thr 時(shí),判定兩張圖片匹配失敗。閾值thr 的取值范圍是[0,1],受試者工作特性曲線中等錯(cuò)誤率所對應(yīng)的閾值是最優(yōu)閾值。
1.3.8 算法流程圖
研究流程如圖8 所示,首先把手指靜脈圖像數(shù)據(jù)庫分為注冊集和測試集,分別對注冊集和測試集圖像進(jìn)行預(yù)處理,預(yù)處理包括ROI 提取、靜脈分割;然后采用交叉弧描述子對靜脈骨架圖進(jìn)行交叉弧描述,從而提取出靜脈圖像結(jié)構(gòu)特征矩陣;最后用加權(quán)距離公式進(jìn)行圖像匹配。
圖8 本研究方法流程Fig.8 Flow chart of method
SURF 算法、LBP 算法和局部三值模式(local ternary patterns,LTP)算法都是經(jīng)典的圖像特征提取算法,且和本算法一樣都可以采用歐式距離進(jìn)行圖像匹配,故選取這3 種算法與本算法進(jìn)行對比。
1.4.1 SURF 算法
SURF 是一種具有加速魯棒性的局部特征點(diǎn)描述算法,它是SIFT 算法的改進(jìn),解決了SIFT 算法計(jì)算復(fù)雜度高、耗時(shí)長的缺點(diǎn)。
SURF 描述子生成的過程:構(gòu)建Hessian 矩陣,構(gòu)造高斯金字塔尺度空間,并利用非極大值抑制初步確定的特征點(diǎn),精確定位極值點(diǎn),然后通過計(jì)算特征點(diǎn)的一定領(lǐng)域內(nèi)的水平Haar 小波特征和垂直Haar 小波特征來確定64 維特征向量[25]。最后采用歐式距離式進(jìn)行特征點(diǎn)匹配,進(jìn)而實(shí)現(xiàn)圖像匹配。
1.4.2 LBP 算法
LBP 是一種用來描述圖像局部紋理特征的算子,設(shè)3×3 的窗口的中心像素灰度值為Pa,以Pa為閾值,將其與相鄰的8 個(gè)像素的灰度值進(jìn)行比較,若周圍像素灰度值大于或等于中心像素,則該像素點(diǎn)的位置被標(biāo)記為1,否則為0。并將LBP 算子局部鄰域關(guān)系記為S(x,pa)[18]:
窗口中心像素點(diǎn)的LBP 值表示為
式中,Pa代表中心像素點(diǎn)的灰度值,i代表第i個(gè)鄰域,x代表該鄰域的灰度值。
圖9 為LBP 算子示意。對靜脈圖像每個(gè)像素點(diǎn)進(jìn)行LBP 編碼,得到LBP 圖譜,然后將LBP 圖譜的歸一化統(tǒng)計(jì)直方圖作為圖像的特征向量,最后采用歐式距離進(jìn)行圖像匹配。
圖9 LBP 算子Fig.9 LBP operator
1.4.3 LTP 算法
LTP 是一種圖像局部紋理描述符,設(shè)3×3 的窗口的中心像素灰度值為pa,設(shè)定一個(gè)閾值t,若鄰域像素灰度值x≥pa+t,則該像素點(diǎn)的位置被標(biāo)記為1,并將LTP 算子局部鄰域關(guān)系記為S(x,pa,t)[32]。
窗口中心像素點(diǎn)的LTP 值表示為
式中,pa代表中心像素點(diǎn)的灰度值,i代表第i個(gè)鄰域,x代表該鄰域的灰度值。
圖10 給出了閾值t=5 時(shí)LTP 算子的示意。根據(jù)式(13),LTP 的編碼有3i種模式[32],此時(shí)編碼的復(fù)雜度大幅提升且灰度值超限。故為了簡便,現(xiàn)將LTP 分為如圖11 所示的正負(fù)LBP 通道[32]。
圖10 LTP 算子Fig.10 LTP operator
圖11 LTP 的正負(fù)通道Fig.11 Positive and negative channels of LTP
對靜脈圖像每個(gè)像素點(diǎn)進(jìn)行LTP 編碼,得到LTP 圖譜,然后將LTP 圖譜的歸一化統(tǒng)計(jì)直方圖作為圖像的特征向量,最后采用歐式距離進(jìn)行圖像匹配。
1.5.1 誤拒率和誤識率
誤拒率(false reject rate,F(xiàn)RR)是指同一類圖像被誤認(rèn)為是不同類圖像,從而被錯(cuò)誤拒絕的比率,其計(jì)算方式如式(14)所示。誤識率(false accept rate,F(xiàn)AR)是指不同類圖像被誤認(rèn)為是同類圖像,從而被錯(cuò)誤接受的比率,其計(jì)算方式如式(15)所示。
1.5.2 受試者工作特性曲線和等錯(cuò)誤率
受試者工作特性曲線(receiver operating characteristic,ROC)是生物識別領(lǐng)域中用來評價(jià)一個(gè)系統(tǒng)整體性能的指標(biāo)。以FAR 為橫坐標(biāo),F(xiàn)RR 為縱坐標(biāo)即可得到ROC 曲線圖[33-36],且ROC 曲線與直線Y=X的交點(diǎn)所對應(yīng)的坐標(biāo)值即為等錯(cuò)誤率(equal error rate,EER)的大小,EER 是FAR =FRR的值。ROC 曲線和等錯(cuò)誤率都是用于評價(jià)生物識別算法性能的指標(biāo),ROC 曲線越靠近左下角,等錯(cuò)誤率越小,代表算法性能越好。
本方法涉及到兩個(gè)閾值參數(shù)th 和thr。th 是兩個(gè)交叉弧是否能判定為同一個(gè)交叉弧的閾值,可經(jīng)過反復(fù)調(diào)參得出其最優(yōu)值,如表1 所示,當(dāng)th =40時(shí),得到的等錯(cuò)誤率最低,識別效果最好。參數(shù)thr的取值范圍是[0,1],令thr 在[0,1]之間每隔0.05取一個(gè)閾值,求出每個(gè)閾值對應(yīng)的FAR 和FRR,最后以FRR 為橫坐標(biāo),F(xiàn)AR 為縱坐標(biāo)繪制成ROC 曲線;ROC 曲線圖中FAR =FRR(即等錯(cuò)誤率時(shí))所對應(yīng)閾值即為thr 的最優(yōu)值。
表1 不同的th 取值對應(yīng)的EERTab.1 EER corresponding to different th values
令th =40,得到本方法的ROC 曲線,如圖12 所示,并可以得到等錯(cuò)誤率是1.63%。
圖12 本方法的ROC 曲線Fig.12 ROC curve of the method in this paper
為了驗(yàn)證本方法的可靠性,分別采用LTP[38]、LBP[39]和SURF[25]算法對實(shí)驗(yàn)時(shí)自制的手指靜脈圖像數(shù)據(jù)庫進(jìn)行實(shí)驗(yàn),首先進(jìn)行特征提取,最后根據(jù)歐式距離進(jìn)行圖像匹配。最后實(shí)驗(yàn)結(jié)果如圖13和表2 所示。圖13 是不同指靜脈識別算法的ROC 曲線。表2 是不同指靜脈識別算法的EER值對比。
由表2 和圖13 可以看出,所提出的基于曲線描述子的手指靜脈識別算法的等錯(cuò)誤率為1.63%,而LTP、LBP、SURF 算法的等錯(cuò)誤率分別為3.99%、4.47%、6.08%。本算法的等錯(cuò)誤率明顯遠(yuǎn)低于其他幾種算法,即本算法的識別效果更好。
表2 不同指靜脈識別方法的EER 對比Tab.2 Comparison of EER for different finger vein recognition methods
圖13 不同指靜脈識別方法的ROC 對比Fig.13 Comparison of ROC for different finger vein recognition methods
結(jié)構(gòu)特征是手指靜脈最穩(wěn)固的特征[29],結(jié)構(gòu)特征提取的精確性越高,靜脈識別效果越好。手指靜脈的結(jié)構(gòu)特征在于,靜脈是呈線狀分布的,多條靜脈交織在一起構(gòu)成了靜脈網(wǎng)絡(luò),而靜脈網(wǎng)絡(luò)可以由交叉點(diǎn)分割為數(shù)條曲線段[29]。本課題主要圍繞手指靜脈圖像特征提取,研究如何精確地提取手指靜脈結(jié)構(gòu)特征,提高識別率。
在基于靜脈結(jié)構(gòu)特征的方法中,基于交叉點(diǎn)和端點(diǎn)的特征提取由于比較簡單而成為目前常用的方法[31]。雖然靜脈交叉點(diǎn)和端點(diǎn)也能較好的表示靜脈網(wǎng)絡(luò)結(jié)構(gòu)特征,但是識別準(zhǔn)確性通常不令人滿意。第一,手指采集姿勢不同等原因引起的圖像旋轉(zhuǎn)和平移,會造成即使是同源的手指靜脈,相同的交叉點(diǎn)或端點(diǎn)的位置坐標(biāo)也有可能出現(xiàn)不同,從而降低靜脈交叉點(diǎn)和端點(diǎn)特征的有效性。第二,靜脈曲線復(fù)雜,即使是不同源的手指靜脈,交叉點(diǎn)或端點(diǎn)之間的距離也有可能出現(xiàn)相同的情況[37],容易出現(xiàn)誤識現(xiàn)象;第三,只考慮交叉點(diǎn)和端點(diǎn)等特征點(diǎn),會損失靜脈網(wǎng)絡(luò)結(jié)構(gòu)的曲線特征。所以,單純的交叉點(diǎn)和端點(diǎn)特征信息無法有效的表達(dá)完整的靜脈結(jié)構(gòu)特征。靜脈結(jié)構(gòu)特征除了交叉點(diǎn)和端點(diǎn)外,還有許多與交叉點(diǎn)相連的靜脈曲線段,兩者的融合特征能更精確的表達(dá)完整的靜脈結(jié)構(gòu)特征。
為了更精確的提取手指靜脈的結(jié)構(gòu)特征,本算法跟蹤與交叉點(diǎn)相連的靜脈曲線段,將靜脈交叉點(diǎn)的位置信息和其周圍靜脈曲線段的形狀特征相結(jié)合,提出了適用于手指靜脈圖像識別的曲線描述子,即交叉弧描述子。交叉弧描述子不僅包含了交叉點(diǎn)在圖像中的坐標(biāo)信息,還包含了與交叉點(diǎn)相連的若干條曲線段的形狀特征(弧長、弦長、弧高)信息,能夠有效表示完整的靜脈網(wǎng)絡(luò)結(jié)構(gòu),更精確地提取手指靜脈結(jié)構(gòu)特征。即使手指靜脈圖像出現(xiàn)旋轉(zhuǎn)或者平移,靜脈曲線段的形狀特征是不會發(fā)生改變的,所以理論上來說,所提出方法對旋轉(zhuǎn)的圖像具有一定的魯棒性。而且由表2 可知,本算法的等錯(cuò)誤率是1.63%,分別比LTP、LBP、SURF 算法降低了2.36%、2.84%、4.45%,說明本文算法相比于其他三種算法,能更精確描述手指靜脈圖像的特征,大幅降低等錯(cuò)誤率,具有更好的識別效果。
然而,本研究仍然存在著一些不足之處。首先,本研究是基于采集圖像的分辨率和采集距離大小不變的情況下進(jìn)行的,在下一步工作中,我們將重點(diǎn)研究圖像分辨率和距離的變化對弧描述子的影響;其次,本算法較依賴于預(yù)處理結(jié)果,缺乏對圖像旋轉(zhuǎn)不變性的研究,所以在下一步工作中,我們將會招募更多的志愿者進(jìn)行手指靜脈圖像采集以增大實(shí)驗(yàn)數(shù)據(jù)量,在擴(kuò)大數(shù)據(jù)集的基礎(chǔ)上進(jìn)一步完善算法,深入研究圖像旋轉(zhuǎn)對識別結(jié)果的影響,進(jìn)一步提高算法對圖像的旋轉(zhuǎn)不變性。
本研究針對手指靜脈的結(jié)構(gòu)特征提出了一種基于曲線描述子的靜脈識別算法,將靜脈曲線交叉點(diǎn)、端點(diǎn)和曲線段相結(jié)合,提出了用于靜脈曲線描述的交叉弧描述子,用它對分割并細(xì)化后的靜脈圖像進(jìn)行特征提取,最后使用加權(quán)距離式計(jì)算匹配交叉弧對并進(jìn)行圖像識別。實(shí)驗(yàn)結(jié)果表明,所提出的手指靜脈識別算法,與LTP、LBP、SURF 這3 種傳統(tǒng)算法相比,能更有效降低識別的等錯(cuò)誤率,為手指靜脈識別技術(shù)研究提供了參考。