摘要:本文介紹了離散圓形動態(tài)輪廓線法、灰度閾值分割法、圓Hough變換和點Hough變換幾種虹膜定位算法,并對各種算法進(jìn)行了分析和比較。
關(guān)鍵詞:虹膜;離散圓形動態(tài)輪廓線法;灰度閾值分割法;圓Hough變換;點Hough變換
1 引言
虹膜定位是虹膜識別處理過程中非常重要的環(huán)節(jié),它不僅決定了后續(xù)過程能否繼續(xù),而且決定了提取特征是否有效,并最終決定虹膜識別結(jié)果。虹膜包含紋理的部分是內(nèi)外兩個近似圓形邊界之間的部分,虹膜內(nèi)側(cè)與瞳孔相鄰,外側(cè)與眼白相鄰。但是,這兩個圓不是完全同心的[1],需要分別對內(nèi)外兩個邊界進(jìn)行處理。
本文介紹了離散圓形動態(tài)輪廓線法、灰度閾值分割法、圓Hough變換和點Hough變換幾種虹膜定位算法,并對各種算法進(jìn)行了分析和比較。
2 離散圓形動態(tài)輪廓線法
離散圓形動態(tài)輪廓線法(DCAC:Discrete Circular Active Contours),這種算法使用了先驗的信息和統(tǒng)計學(xué)的知識,找出虹膜邊界和評定這種方法的成功和失敗。由于瞳孔-虹膜邊界是圓形,需要定義一個圓形的動態(tài)輪廓線,假定一個開始點,在圖像中定位一個圓[2]。
每個頂點用 vi 來表示,內(nèi)部力Fint,i被定義為:
(2.1)
是該頂點在完美多邊形中的位置。有如下公式:
(2.2)
其中Cr表示當(dāng)前邊界的平均半徑,C= (Cx,Cy) 是當(dāng)前的質(zhì)心,n是節(jié)點數(shù),δ是每次迭代中半徑的增加值,質(zhì)心C被定義為:(2.3)
平均半徑Cr被定義為:(2.4)
由圖像像素的灰度級提供的圖像力把頂點向里推,來平衡輪廓線的內(nèi)部力。每個頂點 vi 的外部圖像力的方向定義為:
(2.5)
大小定義為:
(2.6)
I(vi) 是vi最近頂點的灰度值,這樣每個頂點的圖像力被定義為:(2.7)
如圖2所示:
輪廓線的運動由內(nèi)部力和圖像力之和決定,因此從t到t+1次迭代頂點運動表示為:
(2.8)
β是這兩種力的權(quán)重。這個運動直到內(nèi)外力平衡或者達(dá)到允許誤差范圍之內(nèi)停止。如果當(dāng)前輪廓線的平均半徑的中心和m次迭代前的相同,就認(rèn)為達(dá)到了平衡。這樣就確保了即使單個頂點發(fā)生震蕩移動,輪廓線也能夠保持穩(wěn)定。
離散圓形動態(tài)輪廓線法原則上是依靠初始配置能夠找到瞳孔-虹膜邊界或者虹膜-鞏膜邊界,因為在每個例子中圓形邊界內(nèi)部的區(qū)域更加黑。然而,在真實的眼睛圖像中這樣的方法會帶來幾個問題:
首先,DCAC算法搜索瞳孔-虹膜邊界的時候頻繁地受到來自角膜的鏡面反射的影響。這個問題可以通過預(yù)處理圖像把所有灰度值高于128的部分全部設(shè)為128來解決。
第二個問題是在真實的眼睛圖像中該算法極度地依賴于公式2.2中δ的取值。如果δ的值太大,輪廓線總是會移出圖像;反之如果δ值太小,輪廓線或者維持在開始的地方,距離實際的目標(biāo)增長得非常緩慢,或者收縮到半徑為零。不幸的是,沒有適用于廣泛的眼睛圖像的δ值。
3 灰度閾值分割法
灰度閾值分割法是一種基于區(qū)域的技術(shù),這種方法是把每個像素的灰度值與閾值T進(jìn)行比較,根據(jù)它是否超過該閾值而將圖像中的像素點分成兩類。
一般意義下,閾值運算可以看作是圖像中某點的灰度函數(shù),或者該點的某種局部特性(該點的平均灰度)及該點在圖像中的位置的檢驗,這種閾值檢驗函數(shù)可記作:
T (x, y, N ( x, y, )g ( x, y) )(3.1)
式中g(shù)( x,y ) 是點( x,y )的灰度值,N( x,y )是點( x,y )的局部鄰域特性。如果 g( x,y )>T( x, y, N( x,y ), g( x,y )) (3.2)
則點( x,y )記作物體點,反之則為背景點。若設(shè)( x,y )表示閾值處理后的圖像,則有:
根據(jù)瞳孔和眼白、虹膜之間的關(guān)系。從圖4所顯示的虹膜來看,瞳孔的灰度最為趨向一致,也是圖像中灰度值最低的部分,虹膜圖像的灰度直方圖具有明顯的多峰特征,灰度值最低的峰值之后所對應(yīng)的峰谷就是瞳孔與其他部分分割的閾值。
采用如下步驟進(jìn)行灰度閾值分割[6]:
(1)先計算出整個圖像的灰度直方圖?;叶戎狈綀D是灰度值的函數(shù),描述的是圖像中具有該灰度值的像素的個數(shù)。其橫坐標(biāo)表示像素的灰度級別,縱坐標(biāo)表示該灰度出現(xiàn)的頻率(像素的個數(shù))。在實際操作中對整個圖像的所有像素進(jìn)行掃描,建立數(shù)組int greyCount[256],用以存儲各個灰度值出現(xiàn)的次數(shù)。
(2)平滑灰度直方圖:采用中值濾波和改進(jìn)的鹽和胡椒濾波兩種方法對虹膜圖像進(jìn)行噪聲處理。
(3)求可能的閾值點:設(shè)灰度直方圖的包絡(luò)線為f(x),則閾值點a是滿足下列條件的一個點: 其中δ為一微小增量,用差分代替導(dǎo)數(shù)求得閾值點,對于數(shù)字圖像,可以用一階差分代替一階微分:
(3.4)
(3.5)
(4)確定閾值點:求其中第一和第二個波峰之間的波谷對應(yīng)的灰度值T0,在大部分情況下,直接使用T0作為閾值就可以取得很好的效果,但是有的圖像中睫毛或眼眉的灰度要低于瞳孔的灰度,這時求得的閾值偏低,瞳孔會被誤認(rèn)為背景,需要進(jìn)一步判斷:計算T0與第一個波峰對應(yīng)的灰度值之間的差值,如果差值大于3,則T0就可以作為最后的閾值T1;否則繼續(xù)在直方圖中搜索下一個波峰后的波谷,作為二值化的閾值T1。這些規(guī)定,是根據(jù)所用虹膜庫的虹膜圖像為320×280,經(jīng)過實驗和先驗知識綜合確定的。
求得閾值之后,設(shè)閾值為a,則可用下述方法將圖像二值化:掃描整個圖像,若像素點的灰度值大于a,則賦值為255;若其小于a,則賦值為0。
圖5展示了圖4的灰度直方圖,由圖可以看出,它應(yīng)該有兩個主要的峰值,其中的第一個峰值,對應(yīng)的就是瞳孔區(qū)域灰度集中的范圍,提取瞳孔的二值化閾值應(yīng)該選在第一個峰值的右側(cè)。圖6顯示了對該圖進(jìn)行灰度分割(保留閾值<=35的部分)后的結(jié)果。
由此可見,閾值分割不失為一種分離瞳孔的途徑,但是應(yīng)當(dāng)指出,對于聚焦良好,光照均勻的虹膜圖像,可以直接采用投影的方式確定瞳孔的半徑和圓心,但是,對于光照不均勻的圖像,閾值分割之后會出現(xiàn)許多干擾點,圖7是一幅光照不均勻情況下的虹膜圖像及其閾值變換,可見光照不均勻的情況下閾值變換后的瞳孔邊界有棱角,而且周圍有很多干擾點,這對確定虹膜的內(nèi)邊緣增加了不少難度。
雖然閾值分割不能一次分離出完整的環(huán)形虹膜,但已經(jīng)使環(huán)形虹膜內(nèi)外邊界明顯,為下一步的內(nèi)外邊緣的檢測提供了更好的條件。
4 圓Hough變換
Hough變換[4]是一種用于區(qū)域邊界形狀描述的方法,經(jīng)典的Hough變換常常被用于直線段、圓和橢圓的檢測。Hough變換的思想是將圖像的空間域變換到參數(shù)空間,即將原始圖像中給定形狀的曲線或直線變換成變換空間的一個點,原始圖像中曲線或直線上所有點都集中到變換空間的某個點上形成峰點,這樣,把原始圖像中給定形狀的曲線或直線的檢測問題,變成尋找變換空間的峰點問題,也即把檢測整體特性(給定曲線的點集)變成檢測局部特性的問題。
Hough變換可應(yīng)用于檢測圖像空間解析曲線(u,v)=0,其中u為解析曲線上的點(二維矢量),v為參數(shù)空間上的點(矢量)。由上述原理,可得圓的Hough變換的方法:在x-y平面上,中心在(ac, bc),半徑是 的圓周C上每一點 (x, y) 滿足
(4.1)
如果將圓心 (a, b) 看作為變量,則在a-b平面上可以畫出中心在 (x, y) 、半徑rc的圓Ch。在圓C上的每一點 (xi, yi) ,在a-b平面上有中心在 (xi, yi) 、半徑為rc的圓Chi與之對應(yīng),且這些圓組成了相交于一點 (ac, bc) 的圓群。進(jìn)一步把圓的半徑r作為變量,在a-b平面得到由不同半徑的圓Chi構(gòu)成的圓環(huán)。在a-b-r空間中建立三維數(shù)組,數(shù)組中元素Pai,bi,ri的值代表a-b平面上通過點 (ai, bi)、半徑為ri圓的個數(shù),則數(shù)組中的最大值所對應(yīng)的參量(ai, bi, ri),就是圖像空間中圓的圓心和半徑。
Hough變換雖然使用廣泛,但是因為它要在三維空間內(nèi)搜索,計算量是非常大的。
5 點Hough變換[5,6]
點Hough變換是Hough變換的改進(jìn),它是利用圓周上任意兩條不平行弦的中垂線相交于圓心的性質(zhì)。原理如圖8所示,設(shè)K、L、M為圓周上的三個點,由圓的幾何性質(zhì)可知,KL的中垂線Lkl與LM的中垂線Llm必然相交于圓C的中心O。設(shè)K、L、M三點的坐標(biāo)分別為 (xk, yk) 、 (xi, yi) 、 (xm, ym) ,則 Lkl 和 Lim 的方程分別為:
(5.1)
(5.2)
利用(5.1)和(5.2)式,計算出圓 C 的圓心 (ac, bc) 和半徑 rc:
(5.3)
(5.4)
(5.5)
可見,半徑為ri、圓心為 (ai, bi) 的圓周上任意不共線的三點(以下稱為點組)對應(yīng) a-b-r 空間中的一點(ai, bi, ri),所以稱之為點Hough變換(Point Hough Transform)。
用向量表示 a-b-r 空間中的點,則圖像中圓 (ai, bi, ri) 上的點組對應(yīng)于a-b-r空間中的向量。在圖像中選取N個點組,得到向量 0、1、…N-1,N組來自同一個圓上的點組對應(yīng)的向量相同。向量組中不同編號的向量可能相同。向量組中出現(xiàn)次數(shù)最多的向量就是圖像中圓的參量。用數(shù)組P[n] (n=0,…N-1) 表示向量組中向量 出現(xiàn)的次數(shù),則有:
確定數(shù)組P[n] 后,就可以找出圖像中圓的參量值:
(5.7)
實際上,由于數(shù)字化誤差的原因?qū)⑹?5.6)中kk=1的條件由 改為,為一微小增量,更為符合實際條件。PHT不需搜索變量空間,只對選取的點組進(jìn)行統(tǒng)計,計算復(fù)雜性僅跟所選擇點組的數(shù)目有關(guān)。可見,選擇適當(dāng)?shù)狞c組可以大大降低計算復(fù)雜度。
6 結(jié)束語
綜合以上幾種方法的優(yōu)缺點,結(jié)合試驗結(jié)果分析,點Hough變換無須搜索變量空間,只對選取的點組進(jìn)行計算,復(fù)雜性僅跟點組數(shù)有關(guān),因此更適合用于虹膜定位。
參考文獻(xiàn)
[1] MANN I. The Development of the Human Eye[M]. New York: Grune and Stratton,1950.
[2] RITTER N J, COOPER R. Locating the Iris :A First Step to Registration and Identification[A]. International Conference on Signal and Image Processing[C]. IASTED, Aug.2003:507-512.
[3] 常海軍.虹膜識別算法研究與實現(xiàn)[D].杭州:浙江大學(xué),2005.
[4] 夏良正.數(shù)字圖像處理(修訂版)[M].南京:東南大學(xué)出版社,1999.
[5] 林金龍,石青云.用點Hough變換實現(xiàn)圓檢測的方法[J].計算機工程,2003,29(11):17-18.
[6] 郝偉勇.一種基于特征點的虹膜識別算法研究[D].北京:北京大學(xué),2004.