基于iOS系统的虹膜识别算法研究
虹膜识别的基本原理:
一、虹膜识别系统的工作流程
虹膜识别系统的主要流程有以下几个:图像的采集、图像预处理(定位、归一化、增强)、特征提取和模式匹配。
虹膜识别的整个流程图如下:
1.虹膜图像采集
2.预处理
预处理包括虹膜的定位、归一化、以及图像增强三个部分,如下图
在虹膜识别实现时,虹膜特征主要是虹膜环形区域的纹理,但是采集到的虹膜图像,一般不仅仅只包括虹膜的纹理,通常还有眼睛的其它部分,如眼睑、睫毛、眼白等。在虹膜定位中已经将虹膜区域从整个眼睛图像中分隔出来了,但是由于非虹膜因素仍可能存在于定位模块中得到的虹膜图像。这些干扰因素作为虹膜纹理特征进入虹膜编码模块的话,将会出现不是虹膜特征的特征,从而影响识别的精度。所以虹膜识别之前,必须对图像进行去燥处理,接着指定出虹膜在图像中的位置,然后归一化。
经过试验统计,虹膜图像的灰度具有一定的规律。比如眼睛各个部位对红外光的反射率是不同的。
定位算法:
目前定位算法主要有基于微积分算子的圆模板匹配法、主动轮廓线算法、Hough变换算法、最小二乘算法等。这些算法大多数都是基于以下两种经典的虹膜定位算法: 一种是Daugman的基于微积分算子的原模板匹配法、另一种是Wildes等提出的边缘检测结合Hough变换的方法。
基于微积分算子的原模板匹配法:
其基本思想是:利用虹膜图像中巩膜、虹膜至瞳孔的灰度分布呈现出一次递减、灰度相差比较大的特点,利用圆形检测模板对虹膜的内外边缘进行检测,得到内外圆的估计参数,其算法核心是利用微积分算子内外圆参数进行计算,该算子的表达式如下
其中I(x,y)是虹膜图像的灰度分布;(r,x0,y0)是要检测的内圆或外圆的参数;r为半径;(x0,y0)为圆心的位置坐标;G。(r)是标准差为。的高斯平滑函数,在空域和频域内都可以起到平滑滤波的作用。其表达式为:
*为卷积符号; 表示 I(x,y)在半径为r,圆心为(x0,y0)的圆周上的曲线积分。
对于虹膜图像的定位,首先通过一定的方法找到所处理对象的大致圆心(内圆和外圆)区域,以此区域内的每一个点作为圆心(x0,y0),不断改变 r 进行积分运算。得到积分结果后,对r取偏导数,并与平滑滤波函数卷积进行平滑。通过不断变化参数(r,x0,y0)进行迭代搜索,直到找到使算子取得最大值的参数(r,x0,y0),作为圆的半径和圆心
优点: 准确性高 缺点:计算量大、容易受到区域影响
边缘检测结合Hough变换定位算法
这种算法一般称为两步定位方法。
该方法包含两个步骤:首先利用边缘检测算子得到虹膜图像的边缘信息,然后利用圆的Hough变换在边缘图像中检测虹膜内外边缘。
1、第一步是对虹膜图像边缘化。边缘是图像中灰度发生急剧变化的区域边界,图像灰度的变化情况可以用图像灰度分布的梯度来反映。因此可以利用基于梯度的边缘检测算子来检测边缘像素。这个算子的定义如下:
其中, I ( x, y )表示图像;G(x,y)是以(x0,y0)为中心,标准差为。的二维高斯函数
对图像起平滑作用,以突出图像边界,开头倒三角符号为拉普拉斯微分算子。二维的高斯函数和拉普拉斯微分算子组合后与图像进行卷积,则可得到图像边缘的二值化图像。
2、第二步是通过Hough变换的投票机制确定内外边界圆的圆心坐标和半径。设边缘图像的所有点的坐标为(xi,yi),(i=1,2,3..n),圆心坐标为(x0,y0),半径为r的圆在参数空间中的Hough变换原理为:
搜索最大参数集的过程实际上就是计算H数组在三维空间求圆参数最优解的过程。
Hough变换是利用图像的全局特性而将边缘像素连接起来组成区域封闭边界的一种方法。在预先知道区域的情况下,利用Hough变换可以方便的得到边界曲线,将不连续的边缘像素点连接起来。
优点:参数清晰,对噪声不敏感 缺点:计算量大、搜索范围大导致定位速度慢
3.虹膜的特征提取
4.模式匹配 (鉴别模式、认证模式)
可以利用分类器进行模式匹配,其中海明距离是使用最多的分类器。
5.虹膜特征数据库
虹膜特征数据库中存放的是已知虹膜纹理的特征向量。在虹膜识别过程中,首先要对识别的虹膜图像进行处理分析得到虹膜特征码,然后将所提取的特征码与数据库中的特征码模板进行比对,最后得出分类结果。为了将虹膜用于身份识别,在虹膜识别系统的后台需要一个大型的虹膜特征数据库,以便于对虹膜特征码进行存储和查询。常用的公开虹膜数据库有 CASIA、UBIRIS 等。
特征提取的时候利用到了Gabor滤波器
直角坐标系下的2维Gabor变换函数如下: