摘 要: 虹膜的定位包括瞳孔(內圓)和虹膜外圓的定位。該方法首先預判斷瞳孔中心和半徑截取目標區域小圖,然后對目標區域提取邊緣采用最小二乘拋物線擬合,算出左右固定區域內邊緣點極值點坐標,得到瞳孔初始的中心坐標和半徑。最后利用邊緣點搜索方法精確定位虹膜。實驗結果表明,該虹膜定位方法在速度和精度上都能達到較好效果。
關鍵詞: 虹膜定位;OTSU;灰度積分投影;拋物線擬合;hough變換;圓周點搜索
1 分割瞳孔和虹膜
目前,生物特征識別用于身份認證已是大勢所趨,其方式有很多,例如:人臉識別、指紋識別、聲音識別、掌紋識別,等等[1],而虹膜識別是人體除DNA以外精確度最高的生物特征識別方式。對于當今個人網絡的身份認證,迫切需要一種穩定、可靠、便捷的認證方式。目前,圖像中目標物體的定位方式最重要的信息還是基于目標的紋理輪廓進行定位[2]。虹膜是人眼生理結構中的一部分,它位于瞳孔和鞏膜之間,其分布大致呈現出圓環狀,但虹膜的采集相當困難,目前基本上都以Daughman教授提出的圓環法對它進行提取,其定位方法有很多,例如:Hough圓檢測定位[3-6]、圓或橢圓擬合定位、基于模板定位[7-8]以及其他方法[9-10],方法基本都可行,但存在的最大問題是速度和精度很難達到實時性。
1.1 二值化
在人眼圖像中,瞳孔的灰度信息呈現出最直觀的特點,目前對瞳孔的定位大部分都基于它的低灰度信息。
目前二值化動態閾值的確定有以下常用的幾種方法:(1)最大內間方差法(OTSU);(2)迭代法(最佳閥值法);(3)聚類算法;(4)一維最大熵閾值法。比較幾種方法二值化效果以及速度,其中最大內間方差法[11-12]效果更加適合于瞳孔的分割。
1.2 灰度積分投影法找瞳孔中心和半徑
在二值化圖上利用灰度積分投影法[4]預判斷瞳孔的位置以及其半徑。灰度積分投影的原理比較簡單,其計算量較小,對于瞳孔的定位非常實用。本文采用水平和垂直灰度積分投影定位瞳孔,首先,對于m×n大小的圖像,在水平方向上對圖像的每一行進行遍歷,尋找像素值為0的像素點作累加:
然后對每一行的累加次數做比較,尋找累加最多的行數,其行數pre_y和最多累加次數Max_num1分別作為瞳孔預定位的縱坐標和半徑。同理,通過垂直灰度積分可以找到瞳孔預定位的橫坐標pre_x和半徑Max_num2,如圖1所示。
1.3 截取瞳孔和虹膜小圖
因為正常情況下瞳孔位于虹膜內部,并且兩者的中心幾乎重合,根據對中科院提供的虹膜庫進行大量分析,瞳孔和虹膜中心錯位大約在10像素以內,所以幾乎可以看作同心,并且虹膜外圓半徑正常情況下小于125像素,然后以(pre_x,pre_y)為中心,以L=(250+5)為邊長,在原圖上將虹膜區域截圖已備后期處理。
2 邊緣提取及拋物線擬合找瞳孔中心
目前常用的邊緣提取算法有很多,例如:Roberts邊緣檢測算子、sobel算子、prewitt算子、canny算子、小波分解算法等。它們各有優點,Roberts、sobel、prewitee算子計算量較小,但邊緣提取效果較差,小波分解算法對細節提取較好,但其實現相對復雜,計算量較大、耗時;canny算子邊緣提取效果很好,其計算量也能接受。為了得到較好的邊緣,獲得準確定位,本文選取canny算子。
在圖中需要快速且準確地判斷瞳孔的中心和半徑,那么,常用的方法是Hough圓檢測以及在此基礎之上的改進方法,該方法在定位精度較高,但是定位速度相當慢,非常耗時,并不能很好地應用于實時的虹膜識別系統。
本文采用另一種方法進行定位。首先在其預定位中心左側選定半圓形區域R1,如圖2所示。
對所有的邊緣點采用最小二乘法進行拋物線擬合,其抗噪性較好,其擬合公式方程組如式(2)所示:
這里用高斯消元法編程實現解拋物線方程組,求出拋物線方程的3個系數a、b、c:
y=ax2+bx+c(3)
得到拋物線的系數,從而確定區域R1的左拋物線方程。同理可以擬合右半圓矩形區域R2,得到右拋物線,根據拋物線的性質,可以計算出左右拋物線的極值點,公式如下:
求出極值點P_left(x1,y1),P_right(x2,y2),如圖3、圖4所示,那么就可以得到比較精確的瞳孔中心坐標(P_center_x,P_center_y)和半徑accurate_r,其中:
此時的瞳孔中心和半徑已經比較精確,但是如果在區域R1和R2噪聲邊緣點較多的情況下,還會存在一定的誤差。
3 圓周點搜索方法精確定位
為了得到瞳孔最精確的中心點和半徑,本文最后基于圓周點搜索原理,快速且精準地定位瞳孔以及虹膜外圓。
3.1 內圓精確定位
基于傳統Hough原理,本文采用一種新的方法對圓進行檢測。
該方法的基礎是找到圓心的預估位置,將預估位置附近坐標作為圓心坐標,半徑取值范圍是:(accurate_r-5~accurate_r+5),計算其圓周點坐標,然后在邊緣圖上統計圓周上存在邊緣點的個數,比較并記錄圓周上邊緣點最多的圓心和半徑,即可以精確定位。
該方法利用了不同于Hough的圓檢測原理,但準確性和抗干擾性都保留了傳統Hough的優點,并且速度比傳統Hough快。
3.2 外圓精確定位
對虹膜外圓的定位也采用此圓周邊緣點搜索原理檢測算法。根據對中科院所提供的虹膜庫進行大量分析,正常人的瞳孔中心和虹膜外圓中心幾乎重合,偏離最嚴重的情況下,外圓中心也不會超出瞳孔區域,并且虹膜外半徑最大值為125左右,根據這一特性,外圓的中心檢測在瞳孔中心已知的情況下,采用與瞳孔檢測相同的原理,遍歷瞳孔的最大內接矩形區域找中心,檢測半徑在r1~r2之間,這里r1=pupil_r+10,pupil_r是瞳孔的精確半徑,r2取125。通過此方法,可以快速且精確地找到邊緣點最多的某個圓心和半徑。
3.3 本文方法和傳統hough比較
傳統的Hough圓檢測原理基于圓的基本公式:
?。▁-a)2+(y-b)2=r2(6)
其中,(a,b)為圓心,r為圓的半徑,把x-y平面上的圓轉換到a-b-r三維參數空間,遍歷圖中的每一個邊緣點在參數空間做累加,然后遍歷參數空間尋找疊加次數最多的點,即得到圓心點。該方法的準確性及抗干擾能力非常好,但因其需要遍歷每一個邊緣點計算量非常大,比較耗時。
本文方法與傳統Hough變換及其改進方法相比有如下優點:(都在原圖的邊緣圖上進行檢測,并未縮?。┍闅v的像素點較少。因為傳統Hough遍歷的是圓周邊緣點,而本文遍歷的是中心點,在預估中心點較精確的情況下,需要遍歷的次數就很少,從而省時。
本文方法不需要人為設定內圓的半徑檢測范圍。因為算法本身可以通過灰度積分投影和拋物線擬合自動找到較為精確的半徑和圓心坐標,所以計算量很小。實現方式上比較簡單。傳統Hough是不斷地在二維和三維空間切換,而本文只在二維空間操作。
4 實驗結果
本文對傳統Hough和參考文獻[5]中改進的Hough圓檢測算法及本文算法已基于VS平臺和OpenCV圖像處理庫,利用中科院提供的200張虹膜圖片,采用C語言編程實現。
3種算法都統一進行邊緣提取。在圖上使用不同算法分別對虹膜內圓進行定位,其中傳統Hough和參考文獻[5]在外圓定位之前,首先清除虹膜內圓周圍部分邊緣點,以減小計算量和誤差。
測試3種方法對于200張圖片的定位精度和速度,并進行比較和分析,其結果如表1所示。
由此可見,本文定位算法相對于其他兩種算法,在精度和速度上都有一定提升,具有較好的實時性。
5 結論
在傳統Hough定位和改進Hough定位[5]的比較之下,本文方法提高了定位效率和精度,該方法步驟雖多,但每一步的計算量很小。文中算法在一些方面有待進一步提高,例如:魯棒性、考慮用橢圓進行定位、預處理等。在不影響定位精度的情況下還可以在適當地縮小圖片之后再定位,速度會更快。
參考文獻
[1] 王雨晴,謝曉堯.基于生物模式識別的網絡身份認證研究[J].微型機與應用,2014,33(18):42-44.
[2] 李文鋒,張紅英.基于紋理特征的車牌定位方法[J].微型機與應用,2014,33(3):41-43.
[3] 劉念,蘇杭,郭純紅,等.基于Hough變換圓檢測的人眼定位方法改進[J].計算機工程與設計,2011,32(4):1359-1362.
[4] 蔣丹丹,馮曉毅.改進的Hough與梯度直方圖的人眼定位算法[J].電子設計工程,2014,22(21):127-130.
[5] 張林,王保強.一種改進的基于Hough變換的虹膜定位算法[J].電子技術應用,2014,40(4):66-69.
[6] 涂娟,王海濱,曹林,等.基于Hough變換的快速虹膜識別算法研究[J].電視技術,2014,38(19):211-215.
[7] 韓麗娜.基于幾何特征的虹膜定位算法[J].傳感器世界,2013,19(9):11-13.
[8] 劉源.基于模板匹配算法的人眼定位方法[J].火力與指揮控制,2014,39(5):124-126.
[9] 史少龍,尹達一.改進型灰度質心實時算法研究[J].光電工程,2013,40(12):18-24.
[10] 鄒德旋,王鑫,段納.一種基于修正差分進化的虹膜定位算法(英文)[J].控制理論與應用,2013,30(9):1194-1200.
[11] 黃麗麗,楊帆,王東強,等.基于改進型最大類間方差法的瞳孔定位方法[J].計算機工程與應用,2013,49(23):137-140.
[12] 陳濱,田啟川.改進的快速Otsu自適應分割算法及其應用[J].計算機應用研究,2012,29(4):1572-1574.