摘 要:为了提高现有虹膜定位算法的性能,提出了一种虹膜粗定位算法。该算法利用二值图像的下边缘轮廓粗定位虹膜内边界,利用内边界圆心左右两侧的一维灰度均值信号粗定位虹膜外边界。即使在存在严重的眼皮和睫毛干扰的情况下,这种算法也能快速有效地估计出虹膜内外边界的位置。实验结果表明:该算法能够极大地提高虹膜定位的速度和准确度,粗定位一幅虹膜图片平均只需7l ms,定位准确度也明显优于现有的粗定位算法。
关键词:图像处理;虹膜定位;下边缘轮廓;Hough变换;粗定位
虹膜识别是目前最具发展潜力的生物识别技术,现有虹膜识别系统的识别错误多由定位误差引起,因此,快速准确的虹膜定位对虹膜识别系统非常重要。虹膜定位是从一幅虹膜图像中找到虹膜的内外边界,以便从原始图像中分割出环形虹膜区域。虹膜的内外边界通常用圆形模板来模拟,经典的虹膜定位算法包括文中提出的圆形检测算子和文中提出的基于边缘检测和Hough变换的虹膜定位算法。这两种算法均需在三维空间进行大范围搜索,定位速度很慢。为了提高定位速度,目前多采用粗定位与精定位相结合的方法:利用粗定位估计出虹膜边界的大致位置,利用精确定位在小范围内搜索,得到虹膜的准确边界。
文中给出了常用的几种虹膜粗定位方法,这些方法主要针对虹膜内边界的粗定位,并且当存在严重眼皮、睫毛干扰时,定位结果存在严重偏差。针对虹膜外边界的粗定位仅在文中被提及,但没有给出详细说明。由于虹膜内外边界的圆心偏差不大,可以将内边界的圆心作为外边界圆心的粗略估计值。但外径的变化范围很大,且很难利用内径的定位结果来约束外径的搜索范围,因此在粗定位虹膜内边界之余,也需对虹膜的外径进行粗定位。
针对上述问题,本文提出了一种新的虹膜粗定位算法:利用二值图像的下边缘轮廓粗定位虹膜内边界,利用内边界圆心左右两侧的一维灰度均值信号粗定位虹膜外边界。
l 内边界粗定位
考虑到即使存在严重的眼皮和睫毛干扰,受影响比较严重的是瞳孔的上半部分区域,其下边缘的轮廓信息基本不受影响,故可利用二值图像的下边缘轮廓来粗定位虹膜的内边界。由于瞳孔多位于图像中部,在定位虹膜内边界时,仅选取原始图像中部的子图像区域(见图1b,对应图1a白框内的区域)进行处理。

同时为了提高定位的速度,图像尺寸被缩小为原来的1/4。
将子图像二值化,利用开运算减少二值图像上眼皮、睫毛的干扰,计算二值图像的下边缘轮廓D。对于二值图像的第x列,D(x)等于从下往上扫描第一个黑色像素点的纵坐标,如果该列没有黑色像素点,则D(x)=O。图1描绘了该过程,其中图1e中的实线对应图1d的下边缘轮廓。下边缘轮廓在瞳孔处会出现一个平坦的峰,通过检测这个峰的位置,就可以得到虹膜内边界的粗略估计值。具体过程如下:
1)找到D(x)中瞳孔对应的非零区间AA′。
2)找到AA′中的最大值点C,记其值D(C)为yc从C点分别向左右两侧搜索第一个梯度幅度局部极大点B和B′。B和B′两点之间的距离的一半即可作为虹膜内边界半径的估计值rp。
3)在BB′区间中找到满足D(x)≥(yc一2)的x的集合,取该集合的均值作为虹膜内边界中心横坐标的估计值Xp。虹膜内边界中心纵坐标的估计值yp=yc-rp。
将计算得到的(xp,yp,rp)平移、放大后即可得到在原始图像坐标系下的粗定位结果。
2 外边界粗定位
虹膜外边界存在明显的过渡带,外边界粗定位的目的就是找到左右过渡带的位置,进而估计出外径rs。这里利用瞳孔中心(内边界精确定位的结果)左右两侧的一维灰度均值信号来估计rs。下面以右侧灰度均值信号SR为例说明该过程,左侧灰度均值信号SL可在对称区间计算得到,将其左右翻转后可采用与SR同样的方式进行处理。
对于满足y=yp,(xp+1.2rP)≤x≤(xp+160)的所有点,计算其5×5邻域内的灰度均值,作为SR(x)的值。图2给出了SR的例子,其中横轴对应其在原始图像中的横方向像素(见图la),纵轴表示灰度均值的大小。

过渡带的灰度变化较缓慢,其梯度幅度相对眼皮、睫毛等干扰部分较小,因此不能简单地利用梯度幅度最大作为虹膜外边界点的判决标准。这里首先将SR以其均值为门限二值化,虹膜外边界点必定在二值信号BR的上升沿附近。通过BR上升沿的辅助,可以有效地查找虹膜外边界点,具体过程如下。
1)找到BR的所有上升沿(如图2中的A1和A2)。通常睫毛干扰也会在BR曲线上形成上升沿,但上升沿前的谷的宽度相对虹膜边界处的过渡带通常较窄,利用该宽度信息可以去除部分不可能是虹膜边界的上升沿。
2)记录候选边界点。对于保留下来的每一个上升沿(以A2为例),分别在其左右两侧搜索谷值点D和峰值点C;然后按照

计算SR在CD之间的梯度值,选取梯度值最大的点E作为候选边界点。
3)从候选边界点中选择虹膜边界点。据统计,边界处的梯度幅度通常不超过30,且大多数情况下不会超过20。令T1=20和T2=30,如果所有候选边界点的梯度值均大于T2,则选择最小梯度值对应点为边界点;如果梯度值均小于T1,则选择最大梯度值对应点为边界点;否则按照式(2)对梯度值进行转化后,选择梯度值最大点作为边界点。其中a=T1/T2。图2中,点E即为最终选取的边界点。

得到虹膜左右边界点后,分别将其坐标和瞳孔中心横坐标相减,得到虹膜外径的两个粗略估计值。当两者相差较大时(虹膜内外边界的圆心横坐标的差异小于10个像素,因此rs的两个估计值之间的差异不应超过20个像素),取梯度值较大的那个边界点对应的值作为rs的估计值,并记录对应的梯度值(记为Gs);否则,取两者均值作为rs的估计值,此时,Gs取两点梯度的均值。Gs可在精确定位时用于限制梯度幅度。
3 虹膜精确定位
为了算法的完整性,这里简单介绍一下精确定位算法。精确定位通过利用式(3)在3维空间搜索最大值来实现。与文中算法相比,积分图像由文中Gaussian滤波后的微分图像变为梯度图像G。

由于粗定位算法有效地限制了搜索范围,因此即使精确定位时仍需在3维空间搜索,定位速度依然很快。精确定位一幅虹膜图像的平均时间只需O.392 3 s。
将本算法与文中的算法进行对比试验。文中的方法在初始瞳孔中心点出现较大偏差时,会导致定位误差过大,因此在实现该算法时,选取真实的内边界中心(人工标定结果)作为初始点。表1给出了各种粗定位算法的平均运算时间。

定位虹膜内边界时,G(i,j)对应像素点(i,j)处的梯度幅度值。积分路径s是以(x,y)为圆心,r为半径的圆。
定位虹膜外边界时,G(i,j)由式(4)确定,其中,I(i,j)表示图像在像素点(i,j)处的灰度值。然后将绝对值大于2Gs的梯度值置为0,以减小睫毛等干扰对定位的影响。由于上下眼皮会遮盖一部分虹膜,所以积分路径s被限定在一45°~45°与135°~225°的区域。

4 实验结果
实验所用图像由“天目”便携式虹膜采集仪拍摄得到,分辨率为640×480×8,共2 984幅。实验在主频为2.4 G的计算机上进行,编程环境为Matlab6.5。图3给出了其中一幅图像的定位结果。

图4描绘了各算法之间的性能差异,其中,横坐标表示误差门限,纵坐标表示错误率。这里错误率定义为:粗定位结果与真实结果在3维空间中的Euclidean距离大于误差门限的图片数目与总图片数的比值。

图5给出了虹膜外边界粗定位算法的性能,这里错误率的定义为:虹膜外径rs与真实值的差的绝对值大于误差门限的图片数目与总图片数的比值。粗定位外边界的平均时间是0.0494s。

5 结 论
由实验结果可知,本文提出的虹膜内边界粗定位算法在速度和性能方面均优于其他算法。当误差门限大于8时,该方法的错误率已经为0;并且对于所有图片,虹膜内边界的粗定位结果在各个维度上与真实值的差异均不超过8个像素,因此利用粗定位的结果可以有效地限制精确定位时的搜索范围。本文提出的外边界粗定位算法可以有效地估计出虹膜外径的大小,减小精确定位的搜索范围。同时通过利用粗定位时得到的虹膜外边界的梯度信息Gs来限制精确定位时梯度矩阵G的幅度,可以减小睫毛等干扰对外边界定位的影响。实验结果表明,本文提出的虹膜粗定位算法可以快速有效地定位出虹膜边界的大致位置,从而提高了整个定位算法的速度和准确度。

