杭海滨
传统的身份识别方法主要是基于身份识别物品(如钥匙、证件、信用卡等)和身份识别知识(如用户名、密码和暗语等。)而钥匙、证件等标识物品容易丢失或被伪造,用户名密码等容易被忘记或记错。更为严重的是,它们无法区分物品真正的拥有者和取得标识物品或知识的冒充者,一旦冒充者获得了这些标志物品或知识,就可以得到与真正拥有者相同的权力,极大地威胁其财产和人身安全。诸如此类的问题,使传统身份识别体系面临着巨大的挑战,而使得生物特征识别(Biometrics)日益显现,并被广泛接受。
虹膜识别[1]是近年来兴起的一种生物特征身份识别方法,它具有长期的稳定性和良好的防伪性。在虹膜识别系统中,通常将虹膜的可视特征转化为二值模板,由于不同人的虹膜千差万别,所以即使比对的虹膜模板有1/3发生错误匹配,识别系统仍能做出准确的鉴别,任意两个虹膜相同的概率是很小的,几乎接近于0。其缺点是,虹膜采集设备昂贵,影响其采集应用。需要一个较好的光照环境;黑眼睛虹膜难以读取;对于盲人,眼疾患者和眼睛较小的人来说,虹膜识别技术不能使用。另外,在虹膜识别中,存在虹膜旋转的问题,虹膜识别对的有效性还没有经过大规模数据的测试。由于虹膜识别具有很高的安全性、防范性、稳定性和识别率,在安全性要求高的场合,虹膜识别是一种理想的身份识别方法,因此社会安全以及身份认证方面具有应用前景。本文介绍了虹膜系统的快速定位[2]和识别。
1.1.1 图像二值化的阈值确定
图像二值化的目的,是为了搜寻瞳孔中心所做的预处理。其原理是将图像的灰度值在阈值以下的像素的灰度值变为0,而灰度值在阈值以上的像素的灰度值变为255,即有算式(1)
阈值t的确定过程如下:
假设图像尺寸为640*480,瞳孔半径为50,瞳孔的比率为50*50*π/ (640*480)= 2.56%。然后统计图像灰度值的累计值,当累计值超过2.56%时,即认为此时的灰度值为图像二值化的阈值。阈值t的确定实例,如表1所示:
表1 灰度累计
1.1.2 瞳孔中心定位的实现
瞳孔中心定位的实现是通过投票法来实现的。所谓投票法,是与物理的共鸣原理相似。处理方法可以理解为,在一张白纸上,根据原图像的二值化后的图像,对灰度值的小地方(深色),滴上浅色的黑墨水,等到所有点都处理完毕后,在白纸上颜色最深的处即可认为是接近瞳孔中心的点。原理,如图1所示:
图1 投票法原理
1.1.3 瞳孔半径的确定
取得瞳孔假设中心后,就可以确定瞳孔中心和瞳孔半径。瞳孔中心和瞳孔半径可以通过成长法确定。所谓成长法是,圆的半径逐步扩大,每次都计算圆周上的黑点与圆周长的比率(即饱和度)。相邻两个圆的饱和度进行比较,如果化率大于一定阈值时,即认为此圆从瞳孔边界出去了,如图2所示:
图2 瞳孔半径确定
然后再判别此瞳孔假设中心的判别相邻 8点的同样半径的圆的饱和度,再将此瞳孔假设中心移向相邻8点中饱和度最大的点,如表2所示:
表2 八点领域计算
同样对新瞳孔假设中心再进行圆的半径逐步扩大并计算饱和度的操作。如此反复,直到找到瞳孔中心和最大瞳孔半径为止。此处用了一阶离散微分的方法。
成长法的从假象圆心到搜索所得的真圆心的过程,如图3所示:
图3 通过成长法获得圆心
从图中可以看出,起始的圆心为白色十字处,通过成长法进行多次迭代后所得到的圆心为红十字处。
1.2.1 虹膜半径的确定
虹膜右半径的确定是从瞳孔孔半径处沿着半径方向进行扫描,求出虹膜灰度变化最大的地方即为虹膜边界处,如图4所示:
图4 虹膜半径的确定
具体处理过程如下。
(1)确定从瞳孔中心角度 10 -- 60度,以瞳孔边界向外150像素作为扫描范围。
(2)求出在所限角度的弧线上,求出各个弧线上的灰度平均值。
(3)弧线灰度值由后10个平均组成。
考虑到图像噪声大或图像摄像错误的情况,仅仅靠一个圆弧来决定的话,可能会有误差。这个误差可能是睫毛,或是头发等引起的。为了减小误差,所以采用多个弧线的来决定一个弧线的方式。
(4) 每一圆弧的灰度变化量由左相邻7个弧线和右相邻的7个弧线之差的和算出。
求微分变化量时,不是简单地求相邻两个弧线的灰度差,而是求一定区域内弧线灰度值的差之和。(5) 最大变化量即为虹膜左右边界。至此,可以得到虹膜的左右半径。
1.2.2 眼睑的确定
上下眼睑的确定,是通过在垂直方向的对虹膜扫描而求出的,如图5和图6所示:
图5 眼睑的扫描
图6 眼睑的梯度
但在实际的图像中,人眼有可能是歪的,如图7所示:
图7 图像歪的眼睑的扫描
为此,灰度的梯度变化率变成了图8的图形,如图8所示:
图8 图像歪的眼睑的梯度
这样,需要旋转扫描角度和扫描半径,去拟合实际的眼睑曲线。扫描过程如下。
(1)以90°为分界的左右个10°来旋转。
(2)旋转半径是2至8倍的瞳孔半径。
这样对于上眼睑,共扫描21*7=141次扫描,得出梯度变化率最大处的扫描半径作为虹膜与眼睑的分界圆弧。
1.2.3 睫毛的噪声去除
有一部分人的眼睛的睫毛较长会遮挡到虹膜部分,这样会影响到特征提取的精度。考虑到睫毛一般比虹膜颜色深,所以先计算出虹膜ROI(Region of Interest)的平均灰度值,即P1,P2区域。在ROI的平均灰度值的0.6-0.8倍以下的灰度值的地方认为是睫毛,如图9所示:
图9 睫毛的去除
得计算公式(2)
虹膜的特征提取是为了进行虹膜的识别而做的预处理,特征值比照是为了根据虹膜特征值进行虹膜的识别。
根据虹膜左右半径,将虹膜分成8个环,如图10所示:
图10 虹膜的分割
其分割原理如下:
设d=虹膜左半径-虹膜右半径,最小环的中心坐标x1=瞳孔中心,由此类推,第n个环的中心Xn=X1+(d/2)/8*(n-1),|X8-X1|=d/2。
在虹膜径向方向将虹膜分成256份,即每个微小区域的角度为2*PI/256=PI/128,大约为1.4度。如图11所示:
图11 虹膜微小区域分割
这样一个环被分成256分,将虹膜的整个区域的8个环分成8*256=2048个微小区域。下一步将通过2048个微小区域来提取虹膜特征值。
对所得到的2048个从微小区域,计算每一个微小区域的灰度平均值。对于每一个微小区域,计算包括在四边形的矢量内的所有像素的灰度值的和除以这四边形所包含的像素个数,得到此微小区域的平均灰度值,如图12所示:
图12 微小区域平均值
整个虹膜的灰度平均值为2048个。下面以一个圆环为例说明如何将灰度特征值符号化,如图13所示:
图13 特征值符号化
将两个微小区域y1,y2的灰度值相减,有如下四种情况:
y1-y2<0 此微小区域的符号化值为00,即为上升;
y1-y2>0 此微小区域的符号化值为01,即为下降;
y1-y2=0 此微小区域的符号化值为10,即为无变化;
当计算出的y1或y2大于或小于一定的阈值,如250,20等,此微小区域为不可使用区域,其符号化值为11。
这样做的优点是:1)提高了虹膜图像的不可复原度,有利于图像数据的保密。2)数据处理量减少,加快了比照速度。
一个虹膜所占容量为2048*2=4192位,即512字节,为了提高比照精度,在特征提取时将虹膜旋转半个微小角度,即0.7度。因此,一个虹膜所占容量为8192位,即1024字节。
对符号化后的两个文件进行比较,具有相同特征值,则得到1分。设有2个特征值符号化后的文件文件1和文件2。
文件1的符号化值为:00 01 10 11…
文件2的符号化值为:00 10 10 10…
就前面4个特征值比照结果而言,比照结果为2分。在比照中,采用 FAR(错误接受率),FRR(错误拒绝率)来评价识别精度。在此系统中,用 FAR=0.1%时的 FRR率来评价识别精度。
实验表明,用本文的方法,既能较快速地定位虹膜,也能获得较高的比照精度。实验结果表明,本方案对1066张照片进行比照,当FAR=0.1%时,FRR=0.08%,取得了良好的比照效果。
另外,为了进一步提高比照速度,处理从32位机改为64位机,程序也相应从32位转换成64位,比照速度提高了近1倍。
本文较详细介绍了虹膜定位和识别的整个过程。包括瞳孔中心的定位,虹膜左右半径的确定,虹膜微小区域的分割,虹膜特征值的计算和特征值的符号化和虹膜比照。按照文中介绍的方法,取得了较好的比照精度。在虹膜识别方面,有诸多种虹膜识别方法,如微小区域的小波分析法,Gabor滤波器法[5]等。为了进一步提高比照精度,在 Gabor滤波器方面,将开展一些工作。
[1]田启川,虹膜识别原理及算法[M],北京,国防工业出版社,2010.6.
[2]刁雪峰,快速虹膜定位算法研究[D],兰州理工大学硕士论文,2010.9.
[3]骆丽,实时虹膜图像质量评估的算法研究与实现[D],电子科技大学硕士论文,2008.5.
[4]张立云,虹膜图像质量评估方法的研究[D],上海海事大学硕士论文,2009.7.
[5]张帆,基于Gabor变换的虹膜识别算法[D],中国民航大学硕士学位论文,2008.3.