基于自适应阈值的虹膜分割算法研究
2018-04-02李鹏,曹兵
李 鹏,曹 兵
(南京理工大学机械工程学院,江苏南京210094)
虹膜具有唯一性、不易变性、易采集等优点[1],虹膜身份识别在生物特征识别技术领域中具有越来越来重要的作用。通常采集到的虹膜图像包含除虹膜以外其他部分,为了使虹膜识别技术能够正常进行,需要对采集到的图像进行虹膜分割。
目前存在很多的虹膜分割算法,文献[2]提出的环形积分微分算法和文献[3-4]提出的通过边缘检测和Hough变换相结合的算法是最具有代表性的两种定位人眼虹膜区域的方法。文献[5-8]提出了改进的Hough变换对虹膜分割,文献[9]提出的一种基于图像对齐的虹膜分割方法,文献[10]提出一种应用于虹膜图像粗分类的自仿射拟合纹理分割算法,实现虹膜肠环外边界检测,文献[11]采用基于几何灰度投影的方法粗定位虹膜内边界,文献[12-13]提出了基于水平集算法的虹膜分割算法,文献[14]采取聚类法来对虹膜图像阈值分割,文献[15]提出Log-Gabor滤波的虹膜识别算法。虹膜分割算法虽然很多,国内外学者也提出了不少改进的算法,但主流算法一般是基于固定阈值的图像二值化、边缘检测、Hough变换等,而且没有考虑瞳孔中心与虹膜中心并不重合这个因素。这样的方法需要人为设定参数,虹膜分割精度受到一定影响,鲁棒性不强。
文中在上述研究的基础上,提出了一种鲁棒性较好的虹膜分割算法,即通过自适应阈值的方法对图像进行二值化,找出最大连通区域,然后通过一阶中心矩计算连通域的中心点位置,进而分割出瞳孔区域;以瞳孔中心为圆心,以不同半径和不同角度的扇形扫描图像,计算不同扇形圆弧所在位置的灰度值和之差的最大值所对应的半径,根据返回的半径值和角度可以得到若干点,再对这些点进行圆拟合。实验表明,该算法相比较而言,虹膜分割精度高,鲁棒性强。
1 瞳孔区域定位
瞳孔是眼部区域最黑的区域,相对于虹膜区域较容易分割,所以一般情况下都是对图像进行二值化。对于不同的图像,固定的二值化阈值容易导致瞳孔分割失败[16]。用Hough变换寻找圆形区域,定位精度易受到输入参数的影响。针对以上问题,提出了一种自适应阈值的二值化以及用一阶中心矩求瞳孔圆心的算法,进而分割出瞳孔区域。
1.1 自适应阈值
阈值的恰当与否对于瞳孔的识别至关重要,受到广泛应用的自适应阈值的二值化方法主要有最大类间方差法、双峰法、P参数法、最大熵阈值法、迭代法等,用这些方法得到的二值化图像不能很好地分割出瞳孔区域,容易受到睫毛、眉毛的影响。本文提出的自适应阈值的二值化方法,能够较好地分割出瞳孔区域。
首先,对灰度图像进行中值滤波,以消去噪声的影响。因为瞳孔区域的灰度值相对与整幅图像明显要低,故利用灰度图像的小平和垂直积分投影对瞳孔区域粗定位。然后以粗定位点为中心,求边长为a的矩形区域的灰度均值,并将其作为二值化阈值。粗定位点计算公式为:
式(1)、(2)中,n、m为图像的宽高,m1=1/4m,m2=3/4m,n1=2/5n,n2=3/5n。找出粗定位点后,计算出二值化阈值,如式(3)所示:
利用式(3)计算出的阈值,对图像进行二值化,因为图像中存在眉毛、眼睫毛的影响,故还需要进一步对二值化图像进行开运算和内孔填充,然后计算每个连通域的面积并得到最大连通域,最大连通区域就是瞳孔所在的位置。
经过上述步骤,得到自适应二值化图像。图1是几组采用上述步骤得到的二值化图像,图像数据来源CASIA虹膜数据库。由以上二值化图像可以看出,瞳孔区域基本能够完整的分割出来。对于瞳孔边缘有白色亮点的二值化图像,瞳孔边缘会有小部分缺口;对于眼睫毛部分遮挡瞳孔的二值化图像,边缘不是很圆,但这并不影响瞳孔中心点的定位。下面将通过二值化图像进一步计算瞳孔的参数。
图1 自适应阈值二值化
1.2 瞳孔分割
传统的瞳孔识别一般是通过边缘检测和Hough变换来定位瞳孔区域,需要人为输入初始参数,而参数的合适与否决定了瞳孔定位精度。为此,本文将在二值化图像的基础上通过一阶中心矩求出瞳孔中心点位置,然后计算多个最远非零点到中心点距离的平均值,从而得到瞳孔的半径。
经过自适应阈值二值化后,瞳孔区域基本已经被分割出来,接下来就是要得到瞳孔的具体参数,为后面的虹膜识别做好基础。首先需要对瞳孔中心定位,即通过一阶中心矩计算质心的方式找出连通域的中心位置。采用的公式如下:
由公式(4)、(5)可计算出瞳孔的中心,其中,m、n—图像宽高;BW—二值化图像。瞳孔中心点定位结果如图2所示。
图2 瞳孔中心定位
在瞳孔中心定位的基础上,沿圆周每隔30度找出中心点位置与非零点位置的最大距离,然后求出最大距离的平均值,该平均值即为瞳孔半径。
利用上述方法对瞳孔区域分割,瞳孔识别的最终效果如图3所示。
图3 瞳孔分割
2 虹膜分割
虹膜区域的颜色相对较浅,所以通过二值化是很难将其分割出来。还有重要的一点是,一般情况下瞳孔中心与虹膜中心并不是重合的,如果将瞳孔中心与虹膜中心视为重合,则虹膜分割会产生较大误差。为此,提出了一种检测虹膜外边界多个点,并根据这些点进行圆心拟合的算法。
2.1 虹膜外边界点检测
虽然虹膜区域的颜色相对较浅,但是虹膜边界线的内外灰度值之差是比较明显的,所以根据这个特性可以找出若干个边界点。主要思路是:
虹膜外边界与眼白的灰度值有明显的变化,从灰度值求和的角度出发,以瞳孔中心为圆心,以一定角度的扇形(扇形半径呈递增状态)扫描虹膜及眼白区域,计算每个方向不同半径圆弧线位置灰度和之差的最大值,最大值对应的半径即为瞳孔中心点到虹膜边界点的距离,根据半径及瞳孔中心可以获得边界点的坐标,以相同的方式获取多个边界点,最后根据边界点进行圆拟合。具体计算过程如下:
为了提高边界点定位的准确性,必须对灰度图像进行预处理。首先对灰度图像中值滤波,削除噪声影响,然后进行直方图均衡化,增强对比度。为了减少计算量并考虑到扇形扫描虹膜区域会受到上下眼睑的影响,所以只获取8个虹膜边界点,且只扫描虹膜区域左右各40度,8个边界点的位置方向如图4所示。
图4 虹膜外边界点位置方向示意图
由图4可知,要定位虹膜边界点,必须先求出每个10度扇形区内不同半径所对应圆弧线位置图像的灰度值之和。求和过程为:以瞳孔中心为圆心,以半径不断递增(范围为瞳孔半径的1.5倍到3倍)的扇形扫描图4中的每个10度区域,用公式(6)~(8)计算不同半径扇形圆弧线所在位置的图像灰度值之和,然后计算相邻半径对应灰度值和的差,最后找出差值最大的半径,根据这个半径和瞳孔中心定位虹膜边界点。重复以上过程便可以定位多个虹膜边界点。
式(6)、(7)中,x、y是瞳孔中心坐标,θ是扇形角,式(8)求出最大灰度值之差g,然后可以得出其对应的半径。虹膜边界点定位的具体算法如表1所示:
经过上述步骤后,可以定位出虹膜边界点,效果如图5所示。
2.2 虹膜区域定位
虹膜边界点的位置确定后,接下来就要对边界点进行圆拟合。目前圆拟合常用也最有效的方法是最小二乘法,本文也将采用该方法对虹膜边界点进行拟合。
表1 虹膜边界定位伪代码
图5 虹膜边界点定位
对于最小二乘法的圆拟合,其误差平方的优化目标函数为:
式中:(xi,yi)i=1,2,3…n为虹膜边界上的特征点坐标;n为参与拟合的特征点数。最终的目标是得到使S的值最小的点(x0,y0)及半径r。通过最小二乘法对虹膜外边界点拟合后的效果如图6所示,虹膜外边界确定后,可以很容易得到虹膜区域,效果如图7所示。
图6 虹膜外边界点拟合
由图7可以看出,瞳孔中心位置与虹膜中心位置有一定的偏差,通过虹膜外边界点拟合,既能定位虹膜边界区域又能解决瞳孔与虹膜不同心而给虹膜分割带来的困难。
图7 虹膜分割
3 实验结果分析
为了验证本算法的正确性和有效性,本文的仿真实验在CPU为Intel Core i5-5200U 2.20 GHz,内存为4 GB,操作系统为Windows 10,环境为MATLAB R2015b的计算机上进行的。选择CASIA[15]虹膜数据库中的CASIA-Iris-Lamp作为实验素材,其中包含50个不同人的左右眼图像各20张。为了验证本文算法的有效性,将与Hough变换虹膜分割算法进行比较。
图8 Hough变换与本文算法定位虹膜区域
图8展示了几组Hough变换定位虹膜区域与本文算法定位虹膜区域的对比。使用Hough变换定位瞳孔区域,其准确性对于大部分样本来说还是挺高的,但是定位虹膜边界区域,其准确性受到初始输入参数的影响。本文提出的算法不仅能准确的分割瞳孔区域,而且能较好地定位瞳孔边界。表2是5组(每组10人)Hough变换方法与本文算法对虹膜分割的错误定位百分比。由实验结果可以看出,本文提出的算法相对Hough变换分割虹膜区域,其准确性有很大提高。但第三组的虹膜错误定位百分比Hough变换要高,分析原因,是由于图像中出现瞳孔半径相对虹膜半径过小,干扰了扇形的区域扫描,针对这种特殊情况,手动调整扇形半径,使扫描区域处于正常范围,则可以正确地分割出虹膜区域。
表2 Hough变换与本文算法对虹膜区域的错误定位百分比
4 结论
本文针对传统二值化方法的局限性及Hough变换需要人为输入较多参数的缺点,提出了一种改进的算法,即通过自适应阈值对图像二值化,分割出瞳孔区域,采用扇形扫描灰度图像并计算灰度值的方法定位虹膜边界点,最后进行圆拟合。本文提出的算法不需要人为设定初始值,对于不同图像有较好的鲁棒性。实验结果表明,本文算法能够适应不同的图像,虹膜区域分割的准确性也有所提高。
参考文献:
[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].计算机技术与发展,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.