李 鵬,曹 兵
(南京理工大學機械工程學院,江蘇南京210094)
虹膜具有唯一性、不易變性、易采集等優(yōu)點[1],虹膜身份識別在生物特征識別技術領域中具有越來越來重要的作用。通常采集到的虹膜圖像包含除虹膜以外其他部分,為了使虹膜識別技術能夠正常進行,需要對采集到的圖像進行虹膜分割。
目前存在很多的虹膜分割算法,文獻[2]提出的環(huán)形積分微分算法和文獻[3-4]提出的通過邊緣檢測和Hough變換相結合的算法是最具有代表性的兩種定位人眼虹膜區(qū)域的方法。文獻[5-8]提出了改進的Hough變換對虹膜分割,文獻[9]提出的一種基于圖像對齊的虹膜分割方法,文獻[10]提出一種應用于虹膜圖像粗分類的自仿射擬合紋理分割算法,實現(xiàn)虹膜腸環(huán)外邊界檢測,文獻[11]采用基于幾何灰度投影的方法粗定位虹膜內邊界,文獻[12-13]提出了基于水平集算法的虹膜分割算法,文獻[14]采取聚類法來對虹膜圖像閾值分割,文獻[15]提出Log-Gabor濾波的虹膜識別算法。虹膜分割算法雖然很多,國內外學者也提出了不少改進的算法,但主流算法一般是基于固定閾值的圖像二值化、邊緣檢測、Hough變換等,而且沒有考慮瞳孔中心與虹膜中心并不重合這個因素。這樣的方法需要人為設定參數(shù),虹膜分割精度受到一定影響,魯棒性不強。
文中在上述研究的基礎上,提出了一種魯棒性較好的虹膜分割算法,即通過自適應閾值的方法對圖像進行二值化,找出最大連通區(qū)域,然后通過一階中心矩計算連通域的中心點位置,進而分割出瞳孔區(qū)域;以瞳孔中心為圓心,以不同半徑和不同角度的扇形掃描圖像,計算不同扇形圓弧所在位置的灰度值和之差的最大值所對應的半徑,根據(jù)返回的半徑值和角度可以得到若干點,再對這些點進行圓擬合。實驗表明,該算法相比較而言,虹膜分割精度高,魯棒性強。
瞳孔是眼部區(qū)域最黑的區(qū)域,相對于虹膜區(qū)域較容易分割,所以一般情況下都是對圖像進行二值化。對于不同的圖像,固定的二值化閾值容易導致瞳孔分割失敗[16]。用Hough變換尋找圓形區(qū)域,定位精度易受到輸入?yún)?shù)的影響。針對以上問題,提出了一種自適應閾值的二值化以及用一階中心矩求瞳孔圓心的算法,進而分割出瞳孔區(qū)域。
閾值的恰當與否對于瞳孔的識別至關重要,受到廣泛應用的自適應閾值的二值化方法主要有最大類間方差法、雙峰法、P參數(shù)法、最大熵閾值法、迭代法等,用這些方法得到的二值化圖像不能很好地分割出瞳孔區(qū)域,容易受到睫毛、眉毛的影響。本文提出的自適應閾值的二值化方法,能夠較好地分割出瞳孔區(qū)域。
首先,對灰度圖像進行中值濾波,以消去噪聲的影響。因為瞳孔區(qū)域的灰度值相對與整幅圖像明顯要低,故利用灰度圖像的小平和垂直積分投影對瞳孔區(qū)域粗定位。然后以粗定位點為中心,求邊長為a的矩形區(qū)域的灰度均值,并將其作為二值化閾值。粗定位點計算公式為:
式(1)、(2)中,n、m為圖像的寬高,m1=1/4m,m2=3/4m,n1=2/5n,n2=3/5n。找出粗定位點后,計算出二值化閾值,如式(3)所示:
利用式(3)計算出的閾值,對圖像進行二值化,因為圖像中存在眉毛、眼睫毛的影響,故還需要進一步對二值化圖像進行開運算和內孔填充,然后計算每個連通域的面積并得到最大連通域,最大連通區(qū)域就是瞳孔所在的位置。
經過上述步驟,得到自適應二值化圖像。圖1是幾組采用上述步驟得到的二值化圖像,圖像數(shù)據(jù)來源CASIA虹膜數(shù)據(jù)庫。由以上二值化圖像可以看出,瞳孔區(qū)域基本能夠完整的分割出來。對于瞳孔邊緣有白色亮點的二值化圖像,瞳孔邊緣會有小部分缺口;對于眼睫毛部分遮擋瞳孔的二值化圖像,邊緣不是很圓,但這并不影響瞳孔中心點的定位。下面將通過二值化圖像進一步計算瞳孔的參數(shù)。
圖1 自適應閾值二值化
傳統(tǒng)的瞳孔識別一般是通過邊緣檢測和Hough變換來定位瞳孔區(qū)域,需要人為輸入初始參數(shù),而參數(shù)的合適與否決定了瞳孔定位精度。為此,本文將在二值化圖像的基礎上通過一階中心矩求出瞳孔中心點位置,然后計算多個最遠非零點到中心點距離的平均值,從而得到瞳孔的半徑。
經過自適應閾值二值化后,瞳孔區(qū)域基本已經被分割出來,接下來就是要得到瞳孔的具體參數(shù),為后面的虹膜識別做好基礎。首先需要對瞳孔中心定位,即通過一階中心矩計算質心的方式找出連通域的中心位置。采用的公式如下:
由公式(4)、(5)可計算出瞳孔的中心,其中,m、n—圖像寬高;BW—二值化圖像。瞳孔中心點定位結果如圖2所示。
圖2 瞳孔中心定位
在瞳孔中心定位的基礎上,沿圓周每隔30度找出中心點位置與非零點位置的最大距離,然后求出最大距離的平均值,該平均值即為瞳孔半徑。
利用上述方法對瞳孔區(qū)域分割,瞳孔識別的最終效果如圖3所示。
圖3 瞳孔分割
虹膜區(qū)域的顏色相對較淺,所以通過二值化是很難將其分割出來。還有重要的一點是,一般情況下瞳孔中心與虹膜中心并不是重合的,如果將瞳孔中心與虹膜中心視為重合,則虹膜分割會產生較大誤差。為此,提出了一種檢測虹膜外邊界多個點,并根據(jù)這些點進行圓心擬合的算法。
雖然虹膜區(qū)域的顏色相對較淺,但是虹膜邊界線的內外灰度值之差是比較明顯的,所以根據(jù)這個特性可以找出若干個邊界點。主要思路是:
虹膜外邊界與眼白的灰度值有明顯的變化,從灰度值求和的角度出發(fā),以瞳孔中心為圓心,以一定角度的扇形(扇形半徑呈遞增狀態(tài))掃描虹膜及眼白區(qū)域,計算每個方向不同半徑圓弧線位置灰度和之差的最大值,最大值對應的半徑即為瞳孔中心點到虹膜邊界點的距離,根據(jù)半徑及瞳孔中心可以獲得邊界點的坐標,以相同的方式獲取多個邊界點,最后根據(jù)邊界點進行圓擬合。具體計算過程如下:
為了提高邊界點定位的準確性,必須對灰度圖像進行預處理。首先對灰度圖像中值濾波,削除噪聲影響,然后進行直方圖均衡化,增強對比度。為了減少計算量并考慮到扇形掃描虹膜區(qū)域會受到上下眼瞼的影響,所以只獲取8個虹膜邊界點,且只掃描虹膜區(qū)域左右各40度,8個邊界點的位置方向如圖4所示。
圖4 虹膜外邊界點位置方向示意圖
由圖4可知,要定位虹膜邊界點,必須先求出每個10度扇形區(qū)內不同半徑所對應圓弧線位置圖像的灰度值之和。求和過程為:以瞳孔中心為圓心,以半徑不斷遞增(范圍為瞳孔半徑的1.5倍到3倍)的扇形掃描圖4中的每個10度區(qū)域,用公式(6)~(8)計算不同半徑扇形圓弧線所在位置的圖像灰度值之和,然后計算相鄰半徑對應灰度值和的差,最后找出差值最大的半徑,根據(jù)這個半徑和瞳孔中心定位虹膜邊界點。重復以上過程便可以定位多個虹膜邊界點。
式(6)、(7)中,x、y是瞳孔中心坐標,θ是扇形角,式(8)求出最大灰度值之差g,然后可以得出其對應的半徑。虹膜邊界點定位的具體算法如表1所示:
經過上述步驟后,可以定位出虹膜邊界點,效果如圖5所示。
虹膜邊界點的位置確定后,接下來就要對邊界點進行圓擬合。目前圓擬合常用也最有效的方法是最小二乘法,本文也將采用該方法對虹膜邊界點進行擬合。
表1 虹膜邊界定位偽代碼
圖5 虹膜邊界點定位
對于最小二乘法的圓擬合,其誤差平方的優(yōu)化目標函數(shù)為:
式中:(xi,yi)i=1,2,3…n為虹膜邊界上的特征點坐標;n為參與擬合的特征點數(shù)。最終的目標是得到使S的值最小的點(x0,y0)及半徑r。通過最小二乘法對虹膜外邊界點擬合后的效果如圖6所示,虹膜外邊界確定后,可以很容易得到虹膜區(qū)域,效果如圖7所示。
圖6 虹膜外邊界點擬合
由圖7可以看出,瞳孔中心位置與虹膜中心位置有一定的偏差,通過虹膜外邊界點擬合,既能定位虹膜邊界區(qū)域又能解決瞳孔與虹膜不同心而給虹膜分割帶來的困難。
圖7 虹膜分割
為了驗證本算法的正確性和有效性,本文的仿真實驗在CPU為Intel Core i5-5200U 2.20 GHz,內存為4 GB,操作系統(tǒng)為Windows 10,環(huán)境為MATLAB R2015b的計算機上進行的。選擇CASIA[15]虹膜數(shù)據(jù)庫中的CASIA-Iris-Lamp作為實驗素材,其中包含50個不同人的左右眼圖像各20張。為了驗證本文算法的有效性,將與Hough變換虹膜分割算法進行比較。
圖8 Hough變換與本文算法定位虹膜區(qū)域
圖8展示了幾組Hough變換定位虹膜區(qū)域與本文算法定位虹膜區(qū)域的對比。使用Hough變換定位瞳孔區(qū)域,其準確性對于大部分樣本來說還是挺高的,但是定位虹膜邊界區(qū)域,其準確性受到初始輸入?yún)?shù)的影響。本文提出的算法不僅能準確的分割瞳孔區(qū)域,而且能較好地定位瞳孔邊界。表2是5組(每組10人)Hough變換方法與本文算法對虹膜分割的錯誤定位百分比。由實驗結果可以看出,本文提出的算法相對Hough變換分割虹膜區(qū)域,其準確性有很大提高。但第三組的虹膜錯誤定位百分比Hough變換要高,分析原因,是由于圖像中出現(xiàn)瞳孔半徑相對虹膜半徑過小,干擾了扇形的區(qū)域掃描,針對這種特殊情況,手動調整扇形半徑,使掃描區(qū)域處于正常范圍,則可以正確地分割出虹膜區(qū)域。
表2 Hough變換與本文算法對虹膜區(qū)域的錯誤定位百分比
本文針對傳統(tǒng)二值化方法的局限性及Hough變換需要人為輸入較多參數(shù)的缺點,提出了一種改進的算法,即通過自適應閾值對圖像二值化,分割出瞳孔區(qū)域,采用扇形掃描灰度圖像并計算灰度值的方法定位虹膜邊界點,最后進行圓擬合。本文提出的算法不需要人為設定初始值,對于不同圖像有較好的魯棒性。實驗結果表明,本文算法能夠適應不同的圖像,虹膜區(qū)域分割的準確性也有所提高。
參考文獻:
[1]LI S Z,Jain A K.Encyclopedia of biometrics[M].Berlin,Germany:Springer,2010.
[2]Daugman J G.How iris recognition works[J].IEEE Transactions on Circuits and Systems for Video Technology,2004,14(1):21-30.
[3]Wildes R P.Iris recognition:an emerging biometric technology[J].Proceedings of the IEEE,1997,85(9):1348-1363.
[4]Wildes R P,Asmuth J C,Green G L,et al.A system for automated iris recognition [C]//Applications of Computer Vision,1994.Proceedings of the Second IEEE Workshop on IEEE,1994:121-128.
[5]Hilal A,Daya B,Beauseroy P.Hough transform and active contour for enhanced iris segmentation[J].International Journal of Computer Science Issues,2012,9(2):1-10.
[6]Sahmoud S A,Abuhaiba I S.Efficient iris segmentation method in unconstrained environments[J].Pattern Recognition,2013,46(46):3174-3185.
[7]Uhl A,Wild P.Weighted adaptive hough and ellipsopolar transforms for real- time iris segmentation[C]//Biometrics(ICB),2012 5th IAPR International Conference on.IEEE,2012:283-290.
[8]Bendale A,Nigam A,Prakash S,et al.Iris segmentation using improved hough transform[C]//International Conference on Intelligent Computing.Springer Berlin Heidelberg,2012:408-415.
[9]曽葉,蔡碧野,宋云.一種基于圖像對齊的虹膜分割方法[J].計算機工程,2015,41(7):269-273.
[10]黃靜,苑瑋琦.自仿射擬合的虹膜紋理分割及粗分類[J].儀器儀表學報,2015(4):758-767.
[11]許威,權芳芳,姜媛媛.改進的算法在虹膜識別中的應用研究[J].計算機技術與發(fā)展,2013(3):34-37.
[12]范立南,歐文杰,孫申申,等.基于圓形保持水平集方法的虹膜分割研究[J].計算機應用研究,2014,31(4):1229-1231.
[13]張荷萍,徐效文.基于變分水平集模型的虹膜圖像分割方法[J].計算機工程,2013(10):251-253.
[14]王延年,姬樂樂.基于閾值分割及邊緣檢測的虹膜定位算法[J].微處理機,2016(6):34-37.
[15]張旭.一種改進Log-Gabor濾波的虹膜識別算法[J].計算機仿真,2012(5):283-286.
[16]Xu G,Zhang Z,Ma Y.Automatic iris segmentation based on local areas[J].2006,4:505-508.