虹膜识别原理
虹膜中包含丰富的色素细胞,当外部光线照射到眼睛上时,由于不同人的色素细胞对光有不同的吸收率,使得虹膜呈现不同的颜色。从识别的角度来说,虹膜的颜色信息并不具有广泛的区分性,那些相互交错的类似于斑点、细丝、冠状、条纹、隐窝等形状的细微特征才是虹膜唯一性的体现。这些细微特征在彩色图像和灰度图像中是一致的,因此一般采用灰度图像进行虹膜识别的研究。
虹膜识别技术的基本步骤为(如图3-1所示):
(1)图像采集,用于获取虹膜图像;
(2)虹膜图像预处理,进行虹膜内外边缘定位、归一化和图像增强等;
(3)特征提取,得到虹膜纹理的特征编码;
(4)特征匹配,将提取的虹膜特征编码与特征模板进行匹配以区分不同的虹膜。
虹膜识别算法——二维Gabor小波
此算法是Daugman博士于1993年在文献中提出的。在定位虹膜时使用了从粗到精的策略最后达到单像素的精度,并估计出虹膜和瞳孔的中心以及半径。一般来说,瞳孔的中心和虹膜是不同心的,瞳孔中心的重要性比虹膜的中心稍差一些,它的半径是虹膜半径的0.1到0.8倍。因此,决定瞳孔的圆周的三个参数必须与虹膜的圆周分开估算。在Daugman系统中,设计的二维Gabor滤波器对归一化后的虹膜纹理进行滤波,其公式如(4-1)
如图4-1所示
Daugman的方法中同时使用二维Gabor滤波器的实部和虚部描述虹膜,利用其对虹膜图像进行滤波处理,然后将滤波后结果的极性量化为2位二进制数:当实部和虚部均为正时量化值为11;实部为正虚部为负时为10;实部为负虚部为正时为01;实部和虚部均为负时为00,从而得到虹膜特征码。图4-2是虹膜特征码及其编码过程示意图。
虹膜识别算法——Wildes的虹膜定位算法
此算法是MIT人工智能研究室的Wildes博士于1997年在文献中提出的。算法分为2步,第一步将灰度图转化为二值边缘化,第二步由边缘点进行投票得到准确的边界轮廓参数值。边缘是图像中灰度发生急剧变化的区域边界,图像灰度的变化情况可以用图像灰度分布的梯度来反映。因此可以利用基于梯度的边缘检测算子来检测边缘像素。这个算子的定义如式(4-2):
Hough变换是利用图像的全局特性而将边缘像素连接起来组成区域封闭边界的一种方法。在预先知道区域形状的条件下,利用Hough变换可以方便地得到边界曲线,将不连续的边缘像素点连接起来。Hough变换的主要优点是受噪声和曲线间断的影响较少,可以直接检测某些已知形状的目标。由于我们已经事先知道了虹膜的内外边缘为圆形,因此就可以用上述的Hough变换来进行检测。首先让(Xc,Yc,r)这三个参数在一定的范围内依次变化,对于j=1,2,,,n,由式(4-7)计算出g(Xi,Yi,Xc,Yc,r)的值,进而对每一组固定的(Xc,Yc,r)计算出h(Xi,Yi,Xc,Yc,r)的值,将这个数值带入式(4-5)中进行累加,得到H(Xc,Yc,r),使其达到最大值的那一组即为所求的圆心与半径。
用同样的方法可以去检测上下眼睑,只不过眼睑的形状是弧形的,可以把式(4-7)中圆的方程改变为椭圆的方程。
虹膜识别算法——基于过零点检测的方法
基于过零点表示的方法最早被Boles采用。这种方法利用小波变换的过零点和两个连续过零点之间的小波变换的积分平均值来表示虹膜特征。通过两个自定义的相似度函数计算两个虹膜纹理间的距离,得到识别结果。在Boles的算法中,先沿以虹膜中心为圆心的同心圆对虹膜图像采样,把二维的虹膜图像变为一维的信号,然后对它进行小波变换。这里所用的小波函数是三次样条函数的一阶导数。为了减少噪声对这种表示方法的影响,只选用了四级较低分辨率的小波变换结果来提取虹膜特征。最后对变换结果的各个过零点区间进行积分和定位得到虹膜一维信号小波变换的过零点表示,如图4-5所示。BoleS的方法相对比较简单,但是算法的鲁棒性较差,很容易受图像质量影响。