指纹识别算法是实现指纹识别的关键,它直接决定了识别率的高低,是指纹识别技术的核心。虽然这些算法日臻完善,但仍有进一步降低错误率的空间。
目前,指纹识别技术的研究无论是在前端的数据采集上还是在后端的指纹识别算法上都已经取得了巨大的进展。于是,很多人认为现在的指纹识别技术已经很完善了,不再需要研究了。但这种观点是错误的,在指纹识别技术上仍然有一些没有解决好的问题,如: 低质量指纹图像的处理、形变指纹图像的匹配、活体指纹的检测等。这些都是经常遇到、非常重要和亟待解决的问题。在国际指纹识别竞赛(FVC2004)中,指纹数据库DB1中有些指纹图像的形变就很大,而位于第一名的指纹识别算法的等错误率(EER)是1.97%,从中可以看出形变指纹图像的处理仍然不是很理想,有着很多工作要做。
自动指纹识别系统(Automatic Fingerprint Identification System,简称AFIS)是通过特殊的光电转换设备和计算机图像处理技术,对活体指纹进行采集、分析和比对,可以自动、迅速、准确地鉴别出个人身份的。一般可以分成“离线部分”和“在线部分”两个部分。如图1所示。
|
图1 自动指纹识别系统框图
|
其中离线部分包括用指纹采集仪采集指纹、提取出细节点、将细节点保存到数据库中形成指纹模板库等主要步骤。在线部分包括用指纹采集仪采集指纹、提取出细节点、然后将这些细节点与保存在数据库中模板细节点进行匹配,判断输入细节点与模板细节点是否来自同一个手指的指纹。一般来说,离线处理允许人工因素介入,可根据需要手动调整系统参数,而在线处理应完全由系统自动完成所有操作。
本文主要对指纹图像增强、特征点提取、匹配以及分类和压缩算法进行介绍。
指纹图像增强算法
采集获得的指纹图像通常都伴随着各种各样的噪声,一部分是由于采集仪造成的,比如采集仪上的污渍,采集仪的参数设置不恰当等。另外一部分是由于手指的状态造成的,比如手指的过干、太湿、伤疤、脱皮等等。第一种相对来说是固定的系统误差,比较容易恢复。另外一类和个体手指密切相关,比较难于恢复。指纹增强在指纹图像的识别过程中是最为重要的一环,这部分算法的优劣将对整个系统的性能产生至关重要的影响。如果这一部分没有处理好,也很难通过改进后面的细节提取过程而获得好的效果。
指纹图像是连续脊线和谷线组成的(在细节点处除外),具有丰富纹理信息的图像。对于灰度指纹图像,脊线和谷线在局部的小邻域内可以认为是正弦波形状,具有一定的频率和方向。使用方向场和Gabor滤波器来进行增强的算法就是基于这样的特点进行。
指纹专家通常是根据视觉上的脊线信息来准确地识别出真正的细节点。这些脊线的关系有局部脊线的方向、脊线的连续性、脊线的曲率、光滑度、脊线走向趋势等等。而诸如指纹的脊线连接、局部脊线方向和脊线的光滑度这样的结构信息是有可能在计算机中表示出来的。所以也可以把人对指纹结构的认识引入指纹图像处理的过程中,用计算机来模拟指纹专家做图像增强的算法。
图像的预处理指的是在指纹进行图像增强前使用一些简单的图像处理手段对图像进行初加工的过程。常见的预处理有: 灰度的均衡化,这可以消除不同图像之间对比度的差异; 使用简单的低通滤波消除斑点噪声、高斯噪声; 计算出图像的边界,进行图像的裁剪,这样可以减少下一步的计算工作量,提高系统的速度。
指纹特征提取算法
图2 指纹图像及其特征
|
|
用计算机的语言完整地描述稳定而又有区别的指纹特征是实现自动指纹识别的一个关键问题。选择什么特征以及如何表示这种特征既关系指纹本身的特点,又和具体的指纹匹配算法紧密联系,同时还要考虑所采用的指纹采集设备的特点。目前的自动指纹识别系统普遍采用的指纹特征是细节点(minutiae),分为极限末梢和分叉点,见图2。
指纹的特征可以反映给定的人类群体里来自不同手指的指纹之间相似的程度。指纹的特征信息很多。这些所有的指纹特征信息构成了庞大的指纹特征集合。那么,特征层需要研究和解决的问题主要与这些特征信息有关,比如: “特征是否是终生不变的、惟一的”,“特征之间存在什么样的相互关系”,“什么样的特征子集可以使某种算法达到最佳的识别效果”,“指纹特征用于身份鉴别是否更安全”等等。一组好的特征不仅要能达到身份识别的基本要求,而且对噪声、畸变和环境条件不敏感。
围绕指纹特征展开研究是伴随着人们对指纹进行身份鉴别的认识而进行的,如今已经有很长的历史。1892年英国Sir Francis Galton对指纹进行了系统研究,首次提出了指纹特征惟一性的问题。随着信息技术的发展,人们对身份认证的准确性要求明显提高,同时也对指纹有效鉴定身份的能力产生质疑。2002年1月,美国联邦法官路易斯·波拉克做出的“凭借指纹鉴定不能定罪”的裁决促动了针对指纹特征的两个方面的研究工作: (1)在实践中为指纹定出可以作为有效特征的标准,使得两幅指纹是否相符不依赖于鉴定人员的主观判断; (2)研究指纹特征产生误差的根源,从技术角度将出现的误差量化。
指纹匹配
指纹匹配指的是通过对两枚指纹特征集间的相似性比较,来判断对应的指纹图像是否来自同一手指的过程,它是一种非常经典而又亟待解决的模式识别问题。
目前,指纹细节点匹配算法分类有多种: 根据指纹识别的目的可以分为一比一匹配和一比N匹配; 根据操作过程的差异可分为自动匹配 和人机交互匹配; 根据匹配适应性可以分为弹性匹配和刚性匹配。根据指纹细节点定义和相似性判断函数选取的不同,指纹匹配方法更是多种多样的,比如基于奇异点的、基于三角形的、基于极坐标变换的,基于动态规划的、基于图匹配的等等方法,不胜枚举。需要说明的是这些分类方法都难以囊括所有的指纹匹配算法,因为同时有很多算法彼此交叉。
需要指出的是,上述分类方法并不是绝对的,各种方法是相互联系的,每个算法都有自己的特点,并针对特殊的应用。比如: 图匹配的方法对质量差指纹图的噪声抗干扰能力较好,但方法未经大规模实验的证实; 细节点匹配对质量好的指纹图像计算准确,纹理特征的可区分性不强; 基于纹理信息和串匹配的混合匹配方法在一定程度上提高了识别率,但是计算代价非常高; 基于三角匹配和动态规划的混合匹配方法可以解决非线性形变的问题,但是提取的特征过大,难以满足在线实用的要求。总而言之,指纹图像的几何影像形变及错位等问题是匹配算法需要做的首要工作。因此,在指纹识别中必须考虑这些指纹图像中可能存在的线性或非线性形变。目前已有的算法依赖一个前提条件: 待匹配的两幅指纹图像是使用相同配置、相同采集仪来采集的,即同模态,并且,这些指纹允许存在一定程度的噪声。而匹配算法的最终目的是对给定的两幅指纹,寻求使这两幅图像的灰度(或特征)相似度之间差异达到最小的方法。在这种情况下,主要的工作常常是对指纹形变问题的研究,建立一个定义在有穷的形变参数空间的带参数的形变变换模型,最后进行形变参数最优化处理。
指纹分类与压缩
识别一个人需要将他的指纹与数据库中的所有指纹做比较。在某些民用或刑侦场合,数据库可能非常大(比如几百万枚指纹)。在这种情况下,识别就需要耗费很长的时间,这是无法接受的。这一识别过程可以通过减少必须执行的匹配次数来提高速度。在某些情况下,如果加入诸如性别、种族、年龄等与个体有关的信息能显著降低搜索数据库的范围,然而这些信息并不总是存在的,比如在犯罪现场的指纹。通常的策略是将指纹数据库划分成几个子类,这样识别指纹时只需将此指纹与数据库中同一类的指纹做比较。
指纹分类就是研究如何以稳定而且可靠的方式将指纹划为某一类别。指纹匹配多根据指纹的局部特征(如细节点)来判别,而指纹分类则根据指纹的全局特征(如全局脊线结构、奇异点)来判别。由于各指纹模式具有较小的类间差距和较大的类内差距,指纹分类是一个非常难的模式识别问题。指纹图像通常还有噪声,这使得分类任务更加困难,因此指纹分类问题一直是模式识别领域中的难点问题,一直以来也吸引了科研人员的极大兴趣。
指纹压缩技术也是自动指纹识别系统中的一项重要技术,在大容量的指纹库中,为了节省存储空间必须对指纹图进行压缩存储,使用时再进行解压缩。图像压缩编码的目的是以尽量少的比特数表示图像,同时保持复原图像的质量,使它符合预定应用场合的要求。基于小波的指纹压缩算法,是目前技术较成熟、应用较广泛的指纹图像压缩算法。