自动指纹识别系统的实现
2012-07-30陈英
陈 英
(浙江科技学院 校园网管理中心,杭州310023)
生物特征识别技术指的是在某些需要进行身份验证的环境下,运用自动化手段来测量一个人的身体特征,并将测量结果与数据库的模板数据比较后完成认证。生物特征识别过程一般包含4步:图像获取→取特征→比较→匹配。
通常警用指纹自动识别系统主要应用于刑侦工作上,如“现场查十指”“十指查现场”“现场查现场”及“十指查十指”[1]。“现场查十指”通常是指“以案到人”,亦称作“正查”,就是将现场采集来的指纹信息与系统数据库中已备案的罪犯指纹信息进行比对,以此来确定犯罪嫌疑人。“十指查现场”指的是“以人到案”,亦称“倒查”,就是将个人身份已知的罪犯指纹同现场所采集回来的指纹加以比对,以此来确定此人是否具有犯罪嫌疑。“现场查现场”指的是“以案到案”,就是将若干个尚未确定的现场指纹进行比对,以此来确定它们之间存在的潜在联系,实现串案并案。“十指查十指”指的是“以人到人”,就是将待查的捺印指纹与指纹数据库中已知身份的指纹进行比对,以确定该指纹的个人身份及前科。
输入采集到的指纹,即可使用指纹自动识别系统对指纹图像加以处理,找出每个指纹上的特征点,如指位、纹型、纹线的端点和交点、指纹的细节特征等,然后再与系统数据库中已存储的指纹进行比对。使用预先编制好的电脑程序可以在数据库中实现高速检索,并从中选出50~100枚最为相似的指纹供比对人员进行最后的比对处理。在整个指纹识别过程中,使用系统能够完成80%以上的工作,同时综合处理的速度要比人工比对快上好几十倍甚至好几百倍,而在采集活体和输入捺印指纹图像的过程中,基本上不再需要人工干预,从而大大降低了人工成本,提高了工作效率。
图1 警用指纹自动识别系统的总体框架图Fig.1 Frame diagram of police fingerprint automatic identification system
1 警用指纹自动识别系统总体框架及关键技术
警用指纹自动识别系统的总体框架如图1所示,系统主要由指纹图像采集、指纹图像预处理、指纹图像特征提取、指纹分类和指纹图像匹配五部分组成。
1.1 指纹图像采集
指纹图像采集是指将能够被计算机系统所处理的数字指纹图像采集来并将其录入自动指纹识别系统的一个过程[2]。它是自动指纹识别系统的首要环节。目前可以用于采集活体指纹的设备[3]主要有:光电式指纹采集器、晶体式指纹采集器和超声波指纹采集器。这三种技术各有其优缺点,总体看来,当前的活体指纹采集器多数存在以下缺点:手指的干湿度及清洁度对指纹图像的质量影响较严重;采集设备表面积较小,故采集到的指纹图像并不完整,并且其中包含的特征信息量很少,以致无法为识别提供足够的依据。
1.2 指纹图像预处理
普通指纹数据库中,低质量的指纹图像占10%左右,现场指纹比例就更高了。由于实际输入的指纹图像常常是一幅包含大量噪声的灰度图像,若不对其加以预处理操作,就会产生大量伪特征,指纹的真实特征被遗漏,或者指纹特征的位置和方向等信息出现了错误,这将直接影响到后续的处理工作。为了保证指纹识别系统运转的整体效率,确保识别算法对输入图像质量的鲁棒性,并减少不必要的资源开销,就有必要在分类、提取指纹特征前采取适当的图像分割或增强处理,去除掉一些无用的图像信息,使指纹脊线更清晰。对原始的指纹图像直接提取其指纹特征时,预处理过程只不过是简单的对指纹进行增强,也就是用一个滤波器来滤除噪声并加强指纹脊线与谷线间的对比度;对细化的指纹图像提取其指纹细节特征时,预处理过程一般要包括指纹图像的分割→滤波增强→二值化过程→细化等一系列步骤,最终获得一幅单像素的指纹脊线二值化图像。
1.3 指纹图像特征提取
指纹图像特征提取是为了能较为准确地提取指纹特征,以确定每个指纹的类型,从而实现指纹匹配。当前的识别系统算法主要依靠以下特征[4-6]来进行指纹识别:
1)纹型 依照公安部所制定的标准,指纹纹型可分为“弓形纹”“斗形纹”“右箕形纹”“左箕形纹”“缺指”“其他”“未知”这七种类型,而其中“未知”类型只能应用在现场指纹上。
2)中心点 即读取指纹和比对指纹的参考点,是指纹纹路的渐进中心位置(图2)。
3)三角点 能够提供指纹纹路的计数跟踪起点。一般来说,三角点是指位于从中心点开始的第一个“端点”或“分叉点”,或是两条纹路的“会聚点”“折转点”“孤立点”,或是指向这些奇异点的点(图2)。
图2 指纹中心点、三角点、端点及分叉点简图Fig.2 Diagram of fingerprint center point,points of triangle,endpoint and bifurcation
4)局部特征点的分类 一般来讲指纹特征包括“起点”“终点”“结合”“分叉”“点”“棒”“眼”“桥”“钩”九大特征。通常计算机指纹识别系统只提取“端点”和“分叉”这两类局部指纹特征。
5)方向 局部特征点可朝向一定的方向。
6)曲率 指纹纹路方向改变的速度。
7)位置 节点位置可通过坐标(x,y)来描述,可以是绝对的,也可以是相对的。
指纹的特征提取是指从已进行预处理后的指纹图中提取全部指纹特征的一个过程。指纹的特征提取大多采用“链码搜索法”来对纹线进行搜索,将其各种特征及坐标位置提取出来,并最终形成包含有指纹特征点的大小、种类、方向和坐标等有用信息的指纹特征文件。
1.4 指纹的分类
E.Henry最早提出了著名的Henry指纹分类系统,大大提高了指纹验证效率,为指纹运用于个人标识起了非常重要的推动作用及更为科学的鉴别标准。该指纹分类法根据指纹中心点位置附近的纹线结构及指纹中心点与三角点的数量和相对位置,将指纹主要分成如图3所示的五类结构:弓形、帐拱形、左箕形、右箕形和螺形。
图3 指纹结构类型示图Fig.3 Diagram of fingerprint types
指纹分类的核心目的就是为了提高系统识别效率。在刑侦工作中以案到人、以人到案、以案到案等模式均属1∶N的指纹识别模式。在这种识别模式下,通过指纹分类后输入的指纹只需与数据库中同类型的指纹相匹配即可,大大减少了匹配次数,进而提高了1∶N模式的识别速度。
1.5 指纹图像的匹配
指纹匹配就是指通过对两幅不同的指纹图像的特征集进行相似性比较后,判断它们是不是属于同一枚手指的一个过程[5]。目前指纹匹配模式识别上主要存在的难点有:刚性形变、弹性形变、部分重叠和特征集的可靠性[6]。
指纹匹配算法大致可以分为点模式匹配、相关性匹配、脊线特征匹配这三种类型,而目前应用最广泛的就是基于点模式的指纹匹配方法。该方法主要优势有:一是点模式匹配方法只需提取少量的指纹细节点特征,因而信息存储量较小;二是硬件发展对数据存储空间的要求逐渐降低,使得指纹细节点可以加入与之相关联的指纹脊线和纹理等信息数据,进而提高了匹配的准确性和校准的可靠性;三是硬件运算速度不断提高,使得混合多种细节点匹配算法成为可能,进而提高了匹配的准确性。
2 算法实现及系统演示
本研究使用Visual C++6.0设计开发了自动指纹识别算法演示系统。该系统主要包括指纹图像数据的读取与存储、指纹图像的预处理、指纹特征的提取与匹配等部分,基本上可以演示出自动指纹识别系统的整个过程。
2.1 基于矢量三角法的指纹匹配算法
基于矢量三角形法的指纹匹配算法[7-10],利用3个近邻特征点所组成的三角形结构,求取基准点定位和变换参数,并通过坐标的转换,在极坐标中来进行匹配,并在匹配过程中引入多判决条件与可变界限盒匹配,以提高识别率。
指纹匹配过程中很重要的一步就是匹配基准点的求取。本研究选用了一种根据特征点集中3个近邻点所组成的子集之间的相互关系来确定基准点及变换参数的算法。经过细节提取和后处理等一些步骤之后,提取出来的每个细节点需要记录三方面的信息,就是细节点的xy坐标、细节点的方向和细节点的类型。定义两个细节特征点集P和Q,其中细节特征点集Q表示的是从输入的指纹图中所提取出来的N个细节点;点集P表示的是从模板图像中所提取出来的M个细节点。这两个点集可分别表示为:
其中(xPi,yPi,θPi)记录了点集P中第i个特征点的3条信息:x坐标、y坐标和特征点方向。同理,(xQj,yQj,θQj)记录了点集Q中第j个特征点的3条信息:x坐标、y坐标和特征点方向。
定义1若直角坐标系下的不在同一条直线上3个有向点按逆时针次序排列,称这3个点按标准向系排列,所构成的三角形为标准系下矢量三角形。
定义2若2个同为标准系下的矢量三角形满足如下条件,称2个矢量三角形全等[8]。
1)三对对应边长分别相等;
2)三对对应顶点间的方向角相等;
3)三对对应点的类型相同;
4)三对对应边所穿过的脊线数目相同。
对模板集中的每个点A,在指纹图上寻找与其最近的两个特征点,其一记为R,另一个记为S,逆时针方向把它们连接起来组成一个三角形。那么把点A、点R与点S的类型(末梢点或分支点)分别记为nType1,nType2与nType3;方向角分别记为nBeta1,nBeta2与nBeta3。把连接点A与点R、点A与点S、点R与点S的3条虚拟的线段长度分别记为nDist1、nDist2和nDist3;所跨越的脊线数分别记为nCrossNum1、nCrossNum2和nCrossNum3。通常情况下,纹线数目比距离、相对角更具有鲁棒性,因此,在判断2个矢量三角形是否全等时,笔者增加了这个条件。并把点类型、方向角、边长信息与跨越脊线数记入点A的对象中[9]。如果A属于点集Q,B属于点集P,下面式子均成立:
则认为2个矢量三角形全等,点A和点B分别是模板图像和输入图像的参照点。
按指纹时由于用力的差异等多种原因必然会使两幅指纹图像间存在着非线性形变。即使是经过校准,输入图像当中的细节点也不可能和模板图像中的对应点完全重合。再加上采集过程中存在着噪声等原因,就使得两幅图像上的对应点之间可能会存在一定的偏差。这些都要求细节匹配算法具有一定的弹性,即细节匹配算法应该是能在一定程度上包容由于提取出来的细节点位置不准确或者图像的非线性形变而造成的对应点位置的差异。因此在判断两点的对应跨越脊线数、方向角、边长是否相等时,都留下了一定的松弛量(Tc、T∂和Td)。把找到的参照点记录在两个数组中,以便在后面的极坐标转换中使用。
上述利用矢量三角形找参照点的方法由于利用了指纹图像的结构信息,因而可以克服一定程度的指纹图的变形、噪声等干扰。
将细节点都转换到极坐标下,在极坐标系中将输入图像与模板图像的校准,只需将输入细节点与模板细节点都分别相对于参照点Pi和Qi转换到极坐标系中。即将输入细节点与模板细节点都分别相对参照点Pi和Qi用下面的公式转换到极坐标系中:
其中,(xiyiθi)T是待转换细节点的坐标,(xcycθc)T是参照细节点的坐标,(rieiθi)T是细节点在极坐标中的表示(ri表示极半径,ei表示极角,θi表示细节点相对于参照点的方向)。Δθ表示待测特征点的旋转角度,即待测指纹点集P的参照点Pi相对模板点集Q的参照点Qi发生的旋转角度,即:
其中,Pi→angle为参照点Pi沿着脊线的方向;Qi→angle为参照点Qi沿着脊线的方向。
在完成基点校准与得到模板特征的限界盒之后,就可以进行匹配了,匹配的原理亦是基于界限盒的匹配中所述的原理。采用匹配分数来表示待测指纹特征点集与模板点集之间的相似程度,分数越高匹配度也就越高。
2.2 指纹图像预处理中的主要功能演示
指纹图像的方向场是反映指纹图像场的中心、圆形纹线趋势场、斜角度直纹线趋势场、水平纹线趋势场及其混合趋势场等,与物理场论的旋度和方向场相关[10]。该函数getOrientMap()的功能就是实现指纹图像方向场的算法。如图4所示,(a)是指纹原图,(b)是计算得到的梯度场,(c)是使用函数getOri entMap()得到的方向场(代码略)。
图4 指纹图像场Fig.4 Fingerprint image field
图5 平滑和增强后的对比图像Fig.5 Contrast image after smoothing and enhancement
指纹图像经过平滑、增强、二值化及过滤噪声处理后,转变为质量较高的黑白指纹图像,然而对二值化后的指纹图像进行处理和提取出特征的程序还相当复杂,尚需要对指纹图像经过纹线图像细化处理。指纹图像细化函数void imageThin()的功能就是实现指纹图像增强的算法,图6为指纹二值化图和骨架细化提取后的图像。
图6 指纹二值化图和骨架细化提取后的图像Fig.6 Image of fingerprint two values of map and skeleton thinning after extraction
2.3 特征点提取的代码实现及功能演示
中心点与三角点统称为奇异点,它描述了指纹的整体特征,提取特征点的目的是进行指纹分类及比对过程中的坐标系校正。函数int getSingular()实现了计算指纹图像提取奇异点的功能。
指纹特征末梢点是指纹纹线两头末点,或起点和终点。函数bool IsEnd()实现了对指纹图像末梢点的提取运算。指纹特征分叉点是指纹两条纹线相交汇集为一条纹线的交汇点。函数bool IsFork()实现了对指纹图像分叉点的提取运算。如图7所示,(a)是指纹原图像,(b)是指纹细化提取后图像,(c)是计算得到的特征点,包括中心点、三角点、末梢点和分叉点。
图7 指纹图像的特征点提取结果图Fig.7 Results map of feature point extraction for fingerprint image
2.4 系统演示
在系统开发过程中,将指纹的预处理和特征点提取两个步骤合并在指纹模式识别算法综合引擎FP模块中。其中指纹图像的预处理算法程序架构,由梯度和方向场、分割、均衡、收敛、平滑、智能增强、二值化及细化等图像预处理算法程序模块组成。指纹图像特征点提取算法程序架构包括提取指纹对象特征端点、交叉点、中心点及三角点等算法程序模块。使用指纹模式识别算法综合引擎FP模块预处理指纹图像及提取指纹特征点的软件界面如图8所示。
图8 指纹图像预处理及特征点提取界面Fig.8 Fingerprint image preprocessing and feature extraction interface
指纹图像特征比对算法程序操作如下,依次单击“Open1”按钮和“Open2”按钮,导入两幅指纹图像,单击“Match”按钮,即进行两指纹图像的指纹对象特征比对。
图9和图10分别演示了系统运行过程,尽管这两幅由两次采集而得的指纹图像看上去不同,但指纹的特征却相同。因此,弹出消息框提示经过算法比对是相同的结论“Same Fingerprint!”。
3 结 语
自动指纹识别技术是一个运用前景好且极其富挑战性的研究课题,是一项综合了计算机、模式识别及图像处理等技术的复杂技术。本研究加深了笔者对该技术的了解,并取得了部分研究成果。因个人知识背景有限,尚有待进一步完善和改进的地方:一是当所采集到的指纹图像的质量很差时(比如犯罪现场的指纹),常规的分割方法不能够精确地将指纹图像背景区域和前景区域有效地分割开,而图像分割的效果会直接影响特征提取的精确度(基本上依赖于人工标注指纹特征点),因此指纹图像分割算法还需要进一步改进;二是本系统在针对高质量指纹图像(捺印指纹及CCD采集指纹)的处理时,取得了较好的实验效果,但是对于低质量(犯罪现场指纹)及一些扭曲形变较大的指纹图像,特别是高质量指纹图像比对低质量指纹图像时(特征点数量相差较大),实验结果并不理想,需要在指纹比对阶段对匹配算法作进一步研究,做到自适应调整匹配算法的阈值;三是对于自动指纹识别系统的开发,笔者只设计出总体结构及功能,搭建了识别平台,完成了指纹识别程序的开发,后续需要对指纹分类、压缩及数据库部分继续开发,以便形成一整套警用指纹识别系统。
[1]顾勇.警用指纹识别系统中图像预处理的研究[D].重庆:重庆大学,2007.
[2]夏振华.指纹识别算法及小规模指纹识别系统的开发[D].南京:南京航空航天大学,2006.
[3]尤松.指纹识别系统研究[D].上海:东华大学,2005.
[4]徐国庆.指纹识别系统中的特征提取与匹配算法的研究和实现[D].成都:电子科技大学,2007.
[5]王建永.指纹图像的特征提取与匹配[D].大连:大连理工大学,2003.
[6]刘健,王万良.基于中心区域基准点的指纹匹配算法[J].计算机应用与软件,2011(2):30-33.
[7]谢立锋,陈灵枭.浅谈指纹识别基本原理[J].技术与市场,2008(1):44-45.
[8]魏发建,游敏娟,王保帅,等.浅谈指纹识别的基本原理[J].中国科技信息,2009(10):138-139.
[9]薛亚许,陈金玉.学校指纹考勤系统的设计与实现[J].微型机与应用,2011(1):83-85.
[10]贾聪智.指纹识别系统中的匹配算法研究与实现[D].成都:电子科技大学,2004.