指纹的特征提取与识别摘要随着社会的发展,计算机技术的进步,人们对身份认证技术提出了更高的要求。
传统的身份认证方法存在的种种弊端让人们将目光投向了生物特征识别这个崭新的领域。
而指纹识别技术凭借其独有的优势在众多生物特征识别技术中脱颖而出,得到了广泛的关注和应用。
现今,自动指纹识别技术已经广泛地应用于公安、海关、银行、网络安全等需要进行身份识别和鉴定的领域。
因此,进行指纹识别技术方面的研究,具有较高的现实意义和理论意义。
本文综合运用图像处理和模式识别的技术,对自动指纹识别系统的若干问题进行了探讨和研究,实现了指纹图像的预处理、特征提取和指纹匹配等算法,并在指纹分割、指纹增强这两个方面进行了改进和创新。
关键词:指纹识别,指纹分割,指纹增强,特征点提取,指纹匹配第1章绪论1.1 指纹识别系统的结构本文主要是对指纹识别系统中图像处理方面的相关算法进行研究,本文的指纹识别系统的基本框架如图1-1所示。
图1-1指纹识别系统的基本结构1.1.1指纹的预处理由于各种原因的影响,指纹取像设备所获得的原始图像是一幅含有较多噪声的灰度图像,预处理的目的就是改善输入指纹图像的质量,增强脊和谷的对比度,将它变成一幅清晰的点线图,以便于进行特征提取。
本文预处理过程主要步骤如下:图1-2指纹预处理的基本结构指纹分割是把指纹的背景区域从图像中分离出去,减少对指纹图像进行处理时的计算量;指纹增强的目的是对输入的噪音较多的灰度图像进行滤波,去除图像中的叉连、断点及模糊不清的部分,得到一幅较清晰的灰度图像;二值化就是把灰度指纹图像变成0-1取值的二值图像,这样就使图像的灰度层次由原来的256级(8-bits)降为2级(1-bits),从而大大减少了需要存储和处理的数据量。
由于指纹的特征仅包含在纹线的形状结构中,所以为了提高处理速度和识别精度,应该在不破坏图像连通性的情况下去掉多余的信息,也就是进行图像的细化。
细化是指删除指纹纹线的边缘像素,使之只有一个像素宽度。
细化时应保持纹线的连接性、方向性以及特征点位置不变,还应保持纹线的中心基本不变。
1.1.2特征提取由于指纹通常是用按压的方式得到的,按压位置和方向的不同、手指的状况以及皮肤的形变等都会导致指纹图像不理想。
因此,采集到的指纹灰度图像不宜直接用来匹配,有必要对其做进一步的处理,再提取出其特征来进行匹配。
1.1.3 指纹图像的匹配两枚指纹经常会具有相同的总体特征,但它们的局部特征却不可能完全相同。
在只考虑局部特征的情况下,英国学者E. R. Henry认为,只要比对13个特征点重合,就可以确认为这两枚指纹来自于同一个手指。
这种利用指纹的局部特征来进行匹配的方法,因为指纹的端点和分叉点较稳定,并且容易检测,因此在实际的指纹图像匹配过程中获得了广泛的应用。
而对特征点进行匹配,这就变成了点模式匹配的问题。
在一对一模式下,特征匹配是将实时在线提取的用户指纹数据同系统数据库中的数据模板进行比较,对其判断是否属于同一指纹。
在一对多模式下,由于用户的特征模板未确定,还需进行数据库的查询比较。
对于身份识别系统来说,由于需要在大量数据中寻找匹配,因此速度将是一个值得考虑的因素。
第2章指纹图像预处理由于各种原因的影响,指纹取像设备所获得的原始指纹图像是一幅含有较多噪声的灰度图像,对指纹图像进行预处理的目的就是改善输入指纹图像的质量,增强脊和谷的对比度,去除指纹的断裂和叉连,并将原始指纹图变成一幅清晰的点线图,以便于下一步进行特征提取。
本文的预处理过程主要包括指纹分割、指纹增强、二值化、细化四个步骤,其流程图如图1-2所示。
2.1指纹图像的规格化指纹规格化(Fingerprint Normalization)是对指纹灰度图的灰度均值和方差做一次调整操作,使不论什么设备采集到的指纹图像都可以有预期的均值和方差,从而屏蔽不同采集设备的差异。
指纹规格化并不会改变指纹的质量,它只是为指纹处理后续的操作创造一个统一、良好的开端。
指纹规格化的算法:如果指纹原图为S(i,j), N(i,j)为规格化后的指纹图,指纹图像的宽为w,高为h,那么我们可以定义整个指纹图像的均值Mean(i,j)和方差Var(i,j)如下:(2.1)(2.2)由此我们可以计算出N(i,j),其中的M0和Var0分别为我们所期望的均值和方差,这两个值可以根据经验值来选取。
(2.3)(2.4)2.2 指纹图像的分割图像分割是从一幅图像中按一定规则将一些物体或区域加以分离,划分出我们感兴趣的部分或区域。
经过分割后的图像更容易进行进一步的分类、分析和识别处理。
其步骤如下:1、把指纹图像分成WxW大小的块(一般为16X16);2、对指纹的块求方差V(2.12)(2.13)设定阈值T,若V>T,则该块作为前景留下,并把该块整块标示为一个存在矩阵A 中;若V<T,则该块作为背景去除,并把该块整块标示为一个0,存在矩阵A中;3、以为结构元素对二值矩阵A作闭运算,得到矩阵B;4、以为结构元素对B作开运算,得到矩阵C,矩阵C为一个二值矩阵,矩阵元素为I 的,对应的该块就作为前景留下,矩阵元素为0的,对应的块就作为背景去除。
由于采集到的指纹图像不可避免的有污渍等,而有污渍的这些块,其方差也就会较大,用阈值来分割时就会被错误的当成前景,而真正属于前景的有些块,由于采集的质量等原因,却有可能被错误的当成背景予以去除,所以上述算法的第三步,在指纹块的基础上,作闭运算,以去除指纹前景中被误当成背景的块,此时,再作开运算,就能很好的去除被误当成前景的背景块,从而分割出我们需要的指纹前景区域。
2.3 指纹增强指纹增强在指纹识别中是非常重要的一个环节,指纹增强的效果直接影响到指纹特征的提取、指纹匹配等各个环节。
我们可以对指纹的不同区域采用不同的滤波方法。
对指纹变化比较缓慢的一般区域可以选择一个平滑能力较强的低通滤波器来平滑,这样保证了对噪声干扰比较强的低质量指纹也能够有效的平滑。
2.4 指纹二值化二值化的目的是把灰度指纹图像变成0-1取值的二值图。
在数字图像处理中,二值图占有非常重要的地位,特别是在实用的图像处理系统中,以二值图处理为核心构成的系统是很多的。
对图像进行二值化处理的好处是:在经过二值化处理后,再对图像作进一步处理时,图像变成只与0和1有关了,不再涉及到像素的灰度值,使处理变得简单,而且数据量也得到了很大的压缩量,这给存储和处理都带来了很大的方便,同时也提高了系统的经济实用性。
图像的二值化的具体办法是:通过设定阈值(Threshold),把灰度图像变换成仅用两个值来分别表示图像目标和图像背景的二值图,其中目标取值为1,背景取值为0。
图像二值化可根据下列的阈值(Threshold)处理来进行:g(i,j)=1,当f(i,J)>threshold时 (2.27)g(i,j)=0,当f(i,J)threshold时 (2.28)块的大小不同,其二值化处理结果也不同,本文试验了4x4, 8x8, 16x16,32x32大小的划分块的方案,发现采用16x16的取块大小的局部阈值二值化方法取得的效果最佳。
2.5 细化指纹图像二值化后,纹线仍具有一定的宽度,而指纹识别只需在指纹的点线结构上提取特征点来匹配,故在二值化之后,细化就是必不可少的。
指纹图像细化后可以得到一个像素宽度的纹线,这样就可以简化并改善后续的指纹特征提取工作,并且进一步压缩了数据量,有利于指纹数据的存储和提高指纹匹配的速度。
细化的目的是:删除指纹纹线的边缘像素,使之只有一个像素宽度。
一个好的指纹细化算法必须满足收敛性、连接性、拓扑性、保持性、细化性、中轴性、快速性的要求。
Matlab中有直接用来细化的函数,因此我们可以直接采用。
第3章指纹特征点的提取3.1指纹特征概述特征提取(feature extraction)就是对指纹图像提取表示其特征的信息。
我们前面所叙述的指纹图像预处理目的就是为指纹的特征提取和最终识别建立一个良好的基础,以保证整个系统有较高的性能。
3.2细节特征提取算法细节特征提取的方法分为两种:一种是从灰度图像中提取特征,另一种是从细化二值图像中提取特征。
直接从灰度图像中提取特征的算法一般是对灰度指纹纹线进行跟踪,根据跟踪结果寻找特征的位置和判断特征的类型。
这种方法省去了复杂的指纹图像预处理过程,但是特征提取的算法却十分复杂,而且由于噪声等因素影响,特征信息(位置、方向等)也不够准确。
目前大多数系统采用第二种方法,从细化二值图像中提取特征,该方法比较简单,在得到可靠的细化二值图像后,只需要一个3×3的模板就可以将端点和分叉点提取出来。
特征点提取的好坏将直接影响匹配的结果。
现实中,指纹输入时,由于汗渍、干燥、按压力度不同等影响,得到的指纹图像大都含有断纹、褶皱、模糊、灰度不均匀等质量问题,虽然经过预处理,图像质量会有所改观,但预处理算法对各个指纹的适应性和有效性也会不同,并且会引入新的噪声,因此得到的细化二值图像往往含有大量的伪特征点。
伪特征点不仅会影响匹配的速度,严重的会影响整个识别的正确率。
所以提取特征点后要进行去伪处理,尽可能滤除伪特征点、保留真特征点。
实践中发现,伪特征点的数量一般占总特征数量的一半以上,所以去伪是必不可少的过程。
去伪过程可以在两个阶段进行:一是在特征提取之前对细化二值图像进行平滑、去除毛刺、连接断纹等操作,然后提取特征作为真特征;另一种是在特征提取之后,根据特征之间的相互关系,尽可能准确的识别伪特征点并滤除它们。
前者直接对图像进行修补,操作比较复杂,容易引入新的伪特征;后者对特征提取后的数据进行判断,识别比较麻烦,但是速度较快。
本文采用第二种方法,即从已提取的特征点中滤除伪特征,保留真特征。
3.3指纹图像的细化后处理为便于算法描述,这里定义一个八邻域模型,如图2所示。
即以当前点为中心,与紧邻中心点的八个点组成一个3×3的模板,各邻点与中心点的位置关系组成八邻域模型,P 代表当前中心点,P0—P7分别代表中心点8个方向上的相邻点,黑点取值0,白点取值1。
图2 八领域模型由于指纹特征提取是从细化指纹图中得到特征点,在特征提取之前,需把指纹细化二值图像做进一步处理,使之真正达到一个像素的宽度,即在不破坏纹线连续性的前提下,将锯齿直角转折处的点去掉。
本文采用模板匹配法,标准模板如图3所示。
细化后处理主要算法描述:if(P==0)if(p2==0&pO==0)I(p2==0&p4:=0)I(p6==0&p4==0)I(pO==0&p6==0) P=1;Else P=0;endend3.3 特征点的提取端点和分叉点(如图3-1)是指纹细化图像的主要特征,本文采用这两种主要特征构造指纹特征向量,它的提取方法是模板匹配法。