李海燕 潘培哲 唐一吟 余鵬飛 黃亞群 陳建華
1(云南大學信息學院 云南 昆明 650091)2(昆明醫(yī)科大學第三附屬醫(yī)院乳腺外科 云南 昆明 650106)
掌紋是一種位于人體體表的遺傳因子,具有個體特異性和終身不變性,遺傳學的研究表明:人體的遺傳性病變會體現(xiàn)在掌紋主線上[1-2]。醫(yī)學研究表明:精神分裂[3]、咬合不正[4]、乳腺腫瘤[5]、支氣管哮喘[6]等病人的掌紋主線與健康對照組存在明顯差異。因此,提取完整、符合自然生長規(guī)律的掌紋主線作為疾病的特異性特征,對研究掌紋與疾病相關(guān)的特異性特征具有重要意義。
目前,掌紋主線特征的提取人員主要有兩類。一類是醫(yī)學研究者,靠人眼視覺手工提取。手工提取的掌紋主線可靠性及一致性差,對與掌紋主線與疾病相關(guān)性研究的準確性也因人而異。此外,由于手工計算的局限性,現(xiàn)有的特征測量方法多是對視覺可見特征進行定性或近似的描述,再加之人眼視覺對手紋局部細節(jié)特征可分辨性差而且手工提取困難,極大地減緩了研究的進度。
另一類是計算機專家,利用檢測算法自動提取掌紋主線特征,用于身份識別。目前常用的主線提取算法有:基于邊緣檢測算法[7-8]、基于方向建模的算法[9]和基于數(shù)學形態(tài)學的提取算法[10-12]等?;谶吘墮z測的主線提取算法主要有:張大鵬等[7]采用小波變換將掌紋圖像分解為不同頻率成分,繼而利用小波系數(shù)提取掌紋圖像中的明顯線特征,但是該方法提取的皺褶較多;Lin[8]采用Sobel算子提取具有方向的邊緣特征,這些特征主要是掌紋主線以及較深的褶皺線,但是提取的線特征含有大量噪聲?;诜较蚪5闹骶€提取算法主要有:張大鵬等[9]利用方向建模構(gòu)造十二方向的線段模板提取圖像中的直線特征,接著利用提取出的直線段模擬出原始的掌紋線,該方法提取出的紋線不連續(xù)?;跀?shù)學形態(tài)學的主線提取算法主要有:鄭艷清等[10]利用數(shù)學形態(tài)學濾波和Hough變換處理提取出三條掌紋主線,但是該方法在搜索過程中容易產(chǎn)生分叉而導致提取的主線形態(tài)失真;黃申[11]利用小波變換提取不同方向的主線分量,并通過形態(tài)學處理得到主線,最后結(jié)合回歸分析和圖像融合完成對主線的修復;彭其勝[12]采用數(shù)學形態(tài)學和4方向的模板匹配法對掌紋線進行提取,提取出主線以及較深褶皺的信息。
用于身份識別領域的掌紋主線提取方法只需要提取部分匹配識別的特征點,無需提取出完整的掌紋主線。而研究掌紋主線與疾病相關(guān)性時,需要提取清晰、完整的掌紋主線。因此當前身份識別領域的掌紋主線提取算法用于研究主線與疾病相關(guān)性時,存在以下問題:① 提取過程中難以區(qū)分掌紋主線和較深的掌紋皺褶,容易錯提取出皺褶線;② 提取出的掌紋主線形態(tài)失真,不符合實際生長規(guī)律。
因此,本文提出了一種結(jié)合形態(tài)學濾波和鄰域搜索的掌紋主線提取算法,力求解決現(xiàn)有方法的局限性,以期為研究掌紋主線與疾病相關(guān)性提供一種客觀的、具有一致性的、可重復的特征提取方法。本文算法首先提取手掌輪廓并對其進行歸一化方向矯正和截取感興趣區(qū)域(ROI)。然后,提出一種新的平滑模板和3個特異性方向檢測模板,利用形態(tài)學濾波法對掌紋主線進行粗提取。最后,確定生長于粗提取主線上的搜索起始點,對掌紋ROI灰度圖像在兩個方向上采用鄰域搜索算法提取掌紋主線。
本文的創(chuàng)新點在于:提出了一種結(jié)合形態(tài)學濾波和鄰域搜索的掌紋主線提取算法;提出一種新的平滑模板和3個特異性方向檢測模板;提出了一種確定生長于粗提取主線上的搜索起始點,然后對掌紋ROI灰度圖像在兩個方向上采用鄰域搜索算法提取掌紋主線的方法。
對掌紋圖像預處理的目的是消除圖像平移、旋轉(zhuǎn)等方向性因素干擾。在預處理過程中,利用指根點的位置信息旋轉(zhuǎn)矯正掌紋圖像,并采用尋找手掌最大內(nèi)切圓的方法分割出包含掌紋主線信息的ROI,并將其歸一化成相同尺寸,具體流程如圖1所示。
圖1 掌紋圖像預處理流程
首先用Otsu算法二值化輸入的掌紋圖像,用文獻[13]的方法提取手掌輪廓并定位指根點。由于指根點的位置在手掌中的相對位置是不會改變的,因此本文提出了一種用指根點對掌紋圖像進行矯正的方法,具體的矯正思路如下:
如圖2所示,點A和點B分別是食指與中指、中指與無名指之間的指根點。設A、B兩點的坐標分別為(xA,yA)和(xB,yB),如果xA=xB,即A、B兩點位于同一條豎直線上,則說明手掌的擺放處于正確的位置,不需要矯正,否則按照下面的步驟計算矯正方向及旋轉(zhuǎn)角度:
Step1連接A和B,得到直線AB。過點B做一條垂線,得到直線BO。
Step2計算直線AB與BO之間的夾角,記為θ。當xA
圖2 利用指根點旋轉(zhuǎn)掌紋圖像
通過上述方法旋轉(zhuǎn)矯正后的圖像如圖3所示。
圖3 歸一化旋轉(zhuǎn)后的掌紋圖像
旋轉(zhuǎn)矯正后提取掌紋的ROI。因為手掌的二值圖像是單連通區(qū)域,觀察手掌的形狀,可知最大的內(nèi)切圓必然出現(xiàn)在手掌的中心區(qū)域,該區(qū)域包含掌紋主線,就是所需截取的ROI區(qū)域。本文采用文獻[14]的方法提取掌紋ROI。圖4為找到的最大內(nèi)切圓。
圖4 最大內(nèi)切圓法截取掌紋ROI
本文采用最大內(nèi)切圓的內(nèi)接正方形來截取ROI,如圖4所示。為方便后續(xù)處理和便于存儲,將截取出的圖像歸一化成128×128的大小,截取出的ROI效果見圖5。
圖5 歸一化的掌紋ROI圖像
從圖5可以看到,經(jīng)過預處理后的掌紋圖像統(tǒng)一裁剪成了正方形的ROI圖像。ROI圖像囊括了主線信息,去除了原始掌紋圖像的龐大背景,并且不同掌紋圖像的主線走向基本一致,消除了圖像采集過程中因手掌旋轉(zhuǎn)造成的影響,提高了下一步主線提取算法對圖像的魯棒性。
掌紋主線在所有紋線中體積最大,并且掌紋主線的灰度值相對周圍皮膚更低。根據(jù)掌紋主線的這兩個特點,先利用形態(tài)學處理粗提取出掌紋主線,繼而定位主線搜索起始點,最后在灰度圖像上進行跟蹤提取。
由于掌紋主線的長度和寬度通常比褶皺大,灰度值也更低,因此,ROI圖像中的掌紋主線經(jīng)過形態(tài)學底帽變換并加以二值化處理后會有更大的面積,通過刪除小面積區(qū)域就可以剔除褶皺線,僅保留掌紋主線。因此,本算法采用數(shù)學形態(tài)學前置處理,定位主線搜索起始點。
設掌紋ROI圖像信號為I(x,y),對掌紋ROI圖像進行歸一化旋轉(zhuǎn)矯正后,掌紋主線在方向上具有一致性。本文提出一種新的平滑模板H和新的3個方向結(jié)構(gòu)元素進行形態(tài)學處理,如表1所示。
(1)
首先用平滑模板H對圖像進行平滑:
J=I×H
(2)
對于平滑后的圖像J,依次選擇結(jié)構(gòu)元素bi(i=1,2,3),進行形態(tài)學Bottom-hat變換:
Li=(J·bi)-J
(3)
而后采用恰當?shù)拈撝祵i進行H-極大值變換,將處理后的圖像用Otsu方法二值化處理,并采用形態(tài)學處理填補孔洞、適度膨脹后得到bwi(i=1,2,3),融合3個方向的二值圖,得到底帽變換的二值圖:
BW=bw1+bw2+bw3
(4)
為了避免二值圖中的主線粘連的情況,還需采用“矩形”結(jié)構(gòu)元素對BW進行開操作,斷開主線之間的粘連,保證每條主線都是一個單連通區(qū)域。最終得到的主線粗提取二值圖如圖6所示。
圖6 不同掌紋圖像的二值圖
對二值圖中的單連通區(qū)域按面積從大到小進行排序,僅保留前3個連通區(qū)域,刪除其余區(qū)域,這樣保留下的區(qū)域就是粗提取的掌紋主線。接著對粗提取出的掌紋主線進行形態(tài)學收縮(shrink)處理,操作次數(shù)為無限次(n=Inf),該操作將會使沒有孔洞的區(qū)域收縮成一個點。在掌紋ROI圖像中標記出這些點,如圖7所示。
圖7 主線上的搜索點
統(tǒng)計主線點的5×5鄰域中所有像素點的灰度值,擁有最小灰度值的點將成為主線搜索的起始點。精確定位的主線搜索的起始點用圓形標記“○”標出,如圖8所示。
圖8 精確定位的主線搜索起始點
定位出搜索起始點后,用鄰域法進行主線搜索。通過觀察發(fā)現(xiàn),在歸一化的掌紋ROI圖像中,掌紋主線的寬度大約是3個像素,通常位于中央的像素點的灰度值最低,因此在搜索時,算法設計成對灰度值最低的方向進行跟蹤。采用鄰域搜索算法提取掌紋主線的具體步驟如下:
1) 確定搜索方向。由于掌紋主線的走向具有規(guī)律性,所以搜索方向定為向左下角和右上角兩個方向,如圖9所示。
圖9 掌紋主線的搜索方向
以向左下角搜索為例,設當前像素為p(x,y),那么在p的8個鄰域中,可供搜索的像素點有3個,分別是(x-1,y)、(x-1,y-1)、(x,y-1)。將搜索方向旋轉(zhuǎn)180°可以得到向右上角的搜索方向,可供搜索的像素點也有3個,分別是(x+1,y)、(x+1,y+1)、(x,y+1)。
2) 確定下一個主線點。在p(x,y)的鄰域中,采用一個長度為3個像素的“探針”,以p點為起點,分別向3個搜索方向“刺探”。以左下角搜索為例,如圖10所示,黑色像素是已經(jīng)搜索到的主線,圓圈標記的像素是p(x,y),從p點出發(fā)的黑線代表“探針”,分別統(tǒng)計方向i(i=1,2,3)上的“探針”所經(jīng)過像素的平均灰度值Ii:
(5)
(6)
(7)
在其中求出min{I1,I2,I3},也就是平均灰度值最小的方向作為主線的跟蹤方向。那么,下一個主線點就是“探針”在該方向上的中央像素點,如圖10所示。
圖10 搜索下一個主線點示意圖
3) 更新當前點坐標,繼續(xù)搜索。
4) 進行搜索終止判定。終止條件采用灰度值和灰度方差兩項因素綜合判定:
(1) 設定一個灰度閾值T,若當前點的灰度值超過閾值,或其3×3鄰域的灰度平均值超過閾值,則認為當前鄰域內(nèi)亮度較大,其判定公式如下:
(8)
(2) 設定一個方差閾值V,若當前點的5×5鄰域內(nèi)所有像素點灰度值的方差小于閾值,則認為當前鄰域內(nèi)的像素灰度值基本無變化,其判定公式如下:
(9)
式中:xi表示5×5鄰域中的像素點,μ為鄰域的平均灰度值。
當且僅當點p同時符合上述兩個條件時,即點p亮度過大,且其周圍區(qū)域無明顯灰度變化時,則認為p點周圍不存在主線點,終止搜索。
5) 保存主線。主線點標記為1(黑色),其他為0(白色)。
為了驗證本文算法的有效性,對香港理工大學人體生物特征識別中心(BRC)制作的掌紋圖像庫[15](PolyU Palmprint Database)進行主線跟蹤提取,其結(jié)果如圖11所示。
圖11 本文算法提取的掌紋主線
由圖11可以看出,采用數(shù)學形態(tài)學前置處理定位的主線點非常準確,以這些主線點為起始點,應用搜索算法提取出的掌紋主線不但完整,形態(tài)也很貼合實際主線。并且該方法完全屏蔽了褶皺線、脊線、陰影噪聲的干擾,僅保留純粹的主線信息。
為了驗證提出的算法的性能,將本文提出的算法與梯度算子檢測以及文獻[12]對比,如圖12所示。
圖12 掌紋主線提取對比實驗
從圖12可以看出,本文提出的算法提取出的主線效果最好。Sobel算子檢測出的掌紋連續(xù)性差、噪聲多,并且由于掌紋由兩個階躍邊緣組成,所以雙邊緣現(xiàn)象不可避免。彭七勝提出的數(shù)學形態(tài)學結(jié)合模板匹配的方法[12]提取出的掌紋線連續(xù)性佳、定位準確,但是這種基于全局的檢測方法不可避免地提取出了褶皺和陰影。本文方法相對于全局檢測法有效地避免了主線區(qū)域以外的噪聲干擾,提取出的掌紋主線完整、純粹、自然。
為了客觀比較本文算法與現(xiàn)有算法的性能,對BRC制作的掌紋圖像庫中286副手掌圖像進行主線提取。因為本文的研究目的是提取完整、符合自然生長規(guī)律的掌紋主線,因此統(tǒng)計了提取結(jié)果中含噪圖像比例、含褶皺圖像比例,完整無噪無褶皺圖像比例。
從表2的客觀比較可看出,本文算法提取的掌紋主線,能有效濾出噪聲和其他干擾性褶皺、短線,提取完整、單純的掌紋主線。
表2 掌紋主線提取客觀比較 %
以期為研究掌紋主線特征與疾病相關(guān)性提供一種提取完整、符合自然生長規(guī)律的主線提取算法,本文提出了一種結(jié)合形態(tài)學濾波和鄰域搜索的掌紋主線提取算法。與現(xiàn)有算法相比,該算法的主要特點是:(1)提出了一種新的平滑模板和結(jié)構(gòu)元素,能屏蔽與主線方向不同的褶皺和噪聲,提取出較為理想的掌紋主線。(2)提出了一種基于鄰域搜索的掌紋主線跟蹤算法,在粗提取的掌紋主線上定位出搜索起始點,而后采用鄰域搜索算法,在掌紋ROI灰度圖像中采用“探針”跟蹤掌紋主線的延伸方向,最終提取出完整的掌紋主線。實驗結(jié)果表明,該方法算法能提取出完整、純粹、自然的掌紋主線,有效屏蔽與主線不同方向上的干擾。