基于方向图的指纹预处理方法
扫描二维码
随时随地手机看文章
对很多传统的灰度图像滤波算法进行研究后发现,傅氏变换滤波的效果最好,但远不如方向图滤波器的滤波效果,且傅氏变换滤波算法的运行时间很长,对一幅512×512的图像需要几分钟,而方向图滤波器只需几秒钟就可完成。至于其他的滤波算法,如中值滤波、均值滤波等效果都远远不如方向图滤波效果。因此,无论从效果还是从速度上考虑,方向图滤波都是一个好的灰度图像滤波算法。
在目前许多基于方向图的滤波算法中,一种是在计算出指纹图像的方向图后,利用各点的方向使用各种滤波器进行滤波[1][2],另一种方法则是使用指纹纹线分割来实现指纹增强,通过利用局部纹线方向、纹线宽度等结构信息,采用非传统的二值化方法从原始指纹图像中分割出脊线区域和谷线区域,并用二值图像表示[3][4]。本文则通过增加在计算过程中对各点的高斯滤波和不可恢复区域的提取2个过程,对第2种方法进行了完善和补充。实验结果表明,该方法所取得的效果要比传统的第2种方法更为理想、可靠。
指纹特征是人终生不变的特征之一,而且不同人的指纹特征相同的概率几乎为零,所以世界各国都在争先研究和开发实用指纹识别系统。指纹识别系统一般由以下几个部分组成:指纹采集、预处理、特征提取、分类及匹配。而在指纹采集过程中,不可避免地会引入各种噪声,如图像中的叉连、断点等。这些噪声对指纹特征信息的提取造成一定的影响,甚至会产生许多伪特征点。因此在提取指纹特征之前,需要对指纹图像进行滤波处理,以去除无用信息,增强有用信息。在得到增强的灰度图后,需要将其进一步二值化,以便于后续过程的处理。
图像归一化及指纹有效区域的提取
1.1 指纹图像归一化处理
由于采集仪本身和手指结构的特点,以及指纹采集时用力不均等情况,容易造成图像部分区域信号太弱(颜色太淡)或者太强(颜色太黑),给后续的指纹处理带来很大的困难。所以必须对指纹进行归一化处理,使图像中纹线灰度均值和方差接近于给定的期望均值M0和期望方差VAR0。在本文方法中M0和VAR0均为125。灰度图像归一化并不改变指纹纹理的清晰度。
设图像I为N×N大小,令G(i,j)为象素点(i,j)的灰度值,M和VAR分别为图像灰度均值和方差,G′(i,j)为象素点(i,j)规格化后的灰度均值,归一化处理如下公式所示:
1.2 指纹有效区域的提取
由于非指纹区中没有纹线峰和谷的变化,因此它的方差很小,所以将图像分成W×W的多个不相重叠的小方块,利用小方块的灰度均值K和方差V,将指纹有效区域提取出来:
其中(i0,j0)为方块内左上角象素点的坐标,对于求出的V,设定一定的阈值T1,如果V>T1,则该方块内为有效的指纹区域;否则,该方块内为非有效区域。
经过上面运算后,指纹图像被分为指纹区和非指纹区。考虑到指纹图像中指纹区和非指纹区的连通性,还需要进行进一步处理,即去除大片非指纹区中孤立的指纹块和大片指纹区中孤立的非指纹块。处理完成后,指纹图像就被标识成连通的指纹区和非指纹区。非指纹区不在处理范围内,而指纹区还需要进行进一步的分割处理。
指纹图像的分割
2.1 指纹图像的滤波及二值化
为了消除干扰及增强纹线,针对指纹纹线有较强方向性的特点,使用了基于方向图的纹线滤波增强方法。为估计方向场,把指纹脊线的走向分为8个方向,1个象素处的8个指纹脊线方向如图1所示,各方向之间的夹角为π/8,以0~7表示。在求取各点方向图时,由于图像在采集过程中,会受到各种随机噪声的影响,所以并不直接使用计算点的灰度值G′(i,j),而是利用了高斯低通滤波器的旋转对称性,将该点与其八邻域中的点(C1~C8)所形成的点集Ω与高斯低通滤波器Gu做卷积运算,得到该点的新的灰度值G″(i,j)。
同时计算该点8个方向上的象素的灰度值之和,得到S0,……S7。将8个方向灰度值按两两垂直的方向分为4组(0~4,1~5,2~6,3~7),取两两差值最大的方向p为象素点可能的方向。在2个方向中灰度平均值与该点象素值G″(i,j)最接近的方向作为该象素处的脊线方向。
在计算各点方向的过程中,可以同时进行纹线的增强及二值化。如果象素点为脊线上的点,则该点的灰度值一定会大于8个方向上所有点的灰度平均值,而且它的脊线方向和垂直于脊线方向的所有点的灰度和的平均值一定会大于8个方向上所有点的灰度平均值。因此将上述2个条件联合起来会取得更好的效果。
若当前点C满足上式,则C点处于脊线上。将C点的灰度值置为125,否则C点是背景点,将它的灰度值置为0。根据以上方法,还可以设计出13×13、17×17等大小的窗口。窗口越大,对指纹断裂的连接功能越强,但对指纹粘连的隔离功能减弱,计算量也随之增加。利用以上方法,对图像中所有点均进行同样运算。运算结束后,图像中的断点和叉连被很好地去除,同时也完成了图像的初步分割。
2.2 不可恢复区域的提取
在成功进行了指纹增强和初步分割后,指纹有效区域中仍然可能存在一部分区域,其纹线非常模糊,其中纹线严重粘连或呈颗粒装,即使是人眼也看不出其中的纹线结构,无法根据相邻区域中纹线结构判断该区域中纹线结构。这种区域被称为不可恢复区。需要进一步标识出该区域,在后续的特征提取过程中,不再从不可恢复区域中提取特征值,从而避免了从中提取大量的虚假细节点,也提高了细节点的提取速度。
针对不可恢复区域中各个象素点的方向均匀分布,而正常指纹区域方向有较大一致性的特点,利用计算出的各个象素点的方向值,来提取出不可恢复区域:
将点方向图分成互不重叠的16×16大小的块,计算每一块的方向一致度Ax。其计算过程如下:
(1)将图1中的8个方向量化为具体的数值。0等于0,1等于-π/8,2等于-π/4,3等于-3π/8,4等于-π/2,5等于3π/8,6等于π/4,7等于π/8。
(2)当每一块内各象素点的方向大致相同时,所有点的方向和的绝对值应该等于所有绝对值的和,此时Ax=1;而当各象素点方向均匀分布时,此时Ax=0。求出各块内的方向一致度,设置一定的阈值T2,如果Ax2,就将该区域设为不可恢复区域。
实验结果
在微机上用Delphi编程实现了上述方法。使用分辨率为500dpi的指纹采集仪采集大小为512×512的图像。根据采集图像的特性,实验参数如下:图像增强区域为16×16,M0和VAR0均为125;提取有效区域中的方块大小16×16,阈值T1为20;在方向图中使用了9×9的邻域大小;在高斯低通滤波器中,使用了3×3的邻域,σ=1;在不可恢复区域中,方向一致度的阈值T2=0.35;实验结果如图2所示。图2(a)为原始指纹图像,图2(b)是进行了对比度增强、提取有效区域后的图像,图2(c)是传统的利用指纹纹线分割来实现的指纹图像,图2(d)是利用本文提出的方法实现的指纹增强、分割后的图像,图2(e)是提取不可恢复区域后的指纹图像,图2(f)是图2(d)细化后的指纹图。
通过对50对指纹进行实验比较发现,在传统特征提取方法中,指纹伪特征点在所有特征点中的比例为12%~14%。而在改进的方法中,对指纹的纹线间断连接及叉连的分离能力都大为增强,同时通过不可恢复区域的标识,又避免了大量伪特征点的提取,其中伪特征点比例降为7%~9%。对残留的伪特征点,可以利用计算出的各特征点的方向以及各特征点之间的距离等特性,将各类噪声引起的伪特征点分别予以删除[5][6],保留的特征点集作为真正特征点的集合。