资源描述
摘 要生物识别技术已经成为身份识别和网络安全的发展技术之一,其中指纹识别技术是目前公认的安全、准确、方便的身份认证技术之一,是人们研究的热点。本文对指纹图像识别系统的原理和基本过程进行了较为深入的分析与研究并给与实现。首先对指纹数字图像的分类、基本特征与识别原理进行了详细地论述。其次,本文在指纹数字图像预处理部分从指纹图像的预处理、特征提取、特征匹配这三个必要环节对指纹识别算法进行了详细地研究,最后实现了指纹图像处理的算法。在指纹图像预处理阶段,本文使用基于灰度的算法对图像进行了分割,同时,针对二值化后图像中仍然存在的噪声,也进行了相应的修饰处理,尽可能的为以后指纹特征的提取打好基础。指纹特征提取阶段,采用模板法提取指纹中所有的端点和分叉点,并进行了细化的处理。特征匹配阶段,采用基于细节点的方式进行特征点的匹配。本文设计并实现了一个指纹识别系统,完成了对指纹数字图像的处理、特征提取,保存和匹配等功能,利用编码对指纹数字图像进行入库、匹配等操作,从而完成图像的识别来判断是否同一指纹,其比对结果令人满意。【关键词】指纹识别 预处理 二值化 特征提取 特征匹配ABSTRACT Biometric technology has become one of the developing technologies for identity recognition and network security. And fingerprint identification technology is now recognized as one of the most safe, accurate and convenient authentication technologies, and it is a focus for researchers. This paper mainly research the basic principles of digital image of the fingerprint identification system and do more in-depth analysis on process, and finally achieved the algorithm of digital fingerprint precessing. First, this paper explains the classification of fingerprints digital images, basic characteristics and identify the principle in detail. Secondly, in the digital fingerprint image pre-processing part of this paper, three essential aspects of fingerprint : fingerprint imagepreprocessing, featureextraction and feature matching are discussed and researched in detail in this paper. Fingerprint image pre-processing stage, This paper presents a gray-based algorithm for image segmentation, at the same time, the noise still exists for the image after binarization, also carried out the appropriate modification of treatment, as much as possible lay a solid foundation for the fingerprint feature extraction . Fingerprint feature extraction stage, the use of all of the endpoints and the bifurcation point in the fingerprint template extraction and refinement processing. Feature matching stage, minutiae-based approach for matching feature points. In this paper, a fingerprint verification system was designed and implement a digital image of a fingerprint recognition system, completed fingerprint digital image processing, feature extraction, save and matching features, the use of coding fingerprint digital image storage, matching and other operations to complete the image recognition process, and we were satisfied with the results of its comparison .【Keywords】Fingerprint Recognition Preprocessing Binarization Feature Extraction Feature Matching 目 录前 言- 1 -第一章 指纹识别概述- 2 - 第一节 生物识别技术- 2 - 第二节 指纹识别的历史- 2 - 第三节 指纹识别研究的现状- 3 - 第四节 指纹识别研究的意义- 5 - 本章小结- 5 -第二章 指纹识别系统及算法简介- 6 - 第一节 指纹识别系统的构成- 6 - 第二节 指纹图像增强- 7 - 第三节 指纹识别的基本原理- 7 - 一、总体特征- 8 - 二、局部特征- 10 - 第四节 指纹识别的一般算法- 12 - 一、指纹图像预处理- 12 - 二、特征提取- 13 - 三、特征匹配- 14 - 第五节 指纹识别算法的性能指标- 14 - 本章小结- 15 -第三章 指纹图像处理算法详细设计及实现- 16 - 第一节 指纹图像预处理- 16 - 一、指纹图像预处理概述- 16 - 二、指纹图像分割及增强- 16 - 三、指纹图像二值化- 17 - 四、指纹图像细化- 19 - 五、实验结果- 22 - 第二节 指纹图像特征提取- 23 - 一、指纹图像特征提取的方法- 23 - 二、特征点提取- 24 - 三、指纹图像特征的去伪- 25 - 第三节 指纹特征匹配- 27 - 一、基于点模式的匹配算法- 28 - 二、特征匹配算法- 28 - 三、实验结果- 29 - 本章小结- 30 -结 论- 31 -致 谢- 32 -参考文献- 33 -附 录- 35 - 一、英文原文:- 35 - 二、英文翻译- 44 - IV -前 言 当今社会,更安全、更方便的身份认证和访问控制在电子设备和保密机构上的需求变得越来越强烈,传统的保护措施如机械钥匙、口令加密码以及智能卡等的保护措施都存在着各种安全隐患,但是生物识别技术为以上不足提供了一个很好的解决方案。一个人的生物特征是随身携带的,具有唯一和不可复制性,而且安全可靠。指纹识别是诸多人类生物特征识别方法的一种,有学者推论:以全球60亿人口算,300年内都不会有两个相同的指纹出现2。因此,指纹被称为“物证之首”。进入信息时代,生物识别特征识别又一次崛起,以电子商务、电子银行的安全认证为例,目前在电子商务中,他人假冒当事人上网采购所造成的欺诈案越来越多。如果对当事人的身份能够被确认,例如通过生物特征识别,就可有效防止此类事件的发生。另外,网络、数据库的关键文件等的安全控制、带有机密信息的计算机的登陆认证、银行ATM、POS终端等的安全认证都离不开安全可靠的生物识别特征。 本文首先对指纹识别的全过程进行介绍,通过指纹识别过程中指纹图像预处理、指纹图像特征提取、指纹图像特征匹配这三个主要阶段对指纹图像处理算法进行研究,然后给出了算法的详细设计及实验结果。第一章介绍了指纹识别的概况,包括历史和研究现状;第二章对指纹识别系统做了简介;第三章对指纹图像处理算法进行详细分析并出实验结果。最后讨论了本文算法所存在的问题,总体上实现了研究的目的。第一章 指纹识别概述第一节 生物识别技术生物识别技术是依靠个人不同的生理或行为特征来进行身份验证的一种解决方案。要把人体的特征用于身份识别,这些特征必须具有唯一性和稳定性。人体的生物特征包括脸形、指纹、掌形掌纹、声音、虹膜、视网膜、骨架、签名笔迹及键盘敲击习惯甚至腕关节的血管脉络等等。未来的生物识别技术必将无所不在,全民普及。为此,生物识别技术应有以下特性1:1、随时性,随时随地都有或可以进行生物认证;2、隐蔽性,似无实有的认证,生物个体轻松接受;3、方便性,即便于使用,产品符合个人的生理和心理习惯;4、可靠性,采用易于汲取和辨识,由不易流失伪造的生物特征。由于人体特征具有人体所固有的不可复制的唯一性,这一生物密钥无法复制,失窃或被遗忘。人类追寻文档、交易及物品的安全保护的有效性与方便性经历了三个阶段的发展。第一阶段是最初始的方法,也就是采用大家早已熟悉的各种机械钥匙。第二阶段是由机械钥匙发展到数字密钥,如口令或条形码等。第三阶段是利用人体所固有的生物特征来辩识与验证身份。生物识别是当今数字化生活中最高级别的安全密钥系统。常见的口令、IC卡、条纹码、磁卡或钥匙则存在着丢失、遗忘、复制及被盗用诸多不利因素。因此采用生物”钥匙,您可以不必携带大串的钥匙,也不用费心去记或更换口令。生物识别的核心在于如何获取这些生物特征,并将之转换为数字信息,存储于计算机中,利用可靠的匹配算法来完成验证与识别个人身份。第二节 指纹识别的历史指纹识别作为可靠的身份认证技术自古以来就被人类发现并运用,据考古学家证实:公元前7000年6000年,指纹作为身份鉴别的工具已经在古叙利亚和中国开始应用2。在那个时代,一些粘土陶器上留有陶艺匠人的指纹,中国的一些文件上印有起草者的大拇指指纹,在Jercho的古城是的房屋上留有砖匠的指纹等。由此可见,指纹的一些特征在当时已经被人们认识和接受。19世纪初,科学家研究发现了至今仍然承认的指纹的两个重要特征,一是两个不同手指的指纹纹脊的样式不同,另外一个是指纹纹脊的样式终生不变,即指纹的唯一性和不变性2。这个研究成果使得指纹在犯罪事件的鉴别中得以正式应用。20世纪60年代,由于计算机的高速发展,可以快速、有效地处理图形,人们便开始着手研究利用计算机来处理指纹。从那时起,自动指纹识别系统AFIS(Auto Fingerprint Identification System)在法律实施方面的研究和应用在世界许多国家展开。随着个人计算机、光学扫描这两项技术的革新,指纹识别技术得到了进一步发展,计算机代替人力作为指纹提取的工具成为现实,从而使指纹识别在其他领域得以应用。现在,随着取像设备的引入及其飞速发展,生物指纹识别技术的逐渐成熟、可靠的比对算法的发现都为指纹识别技术提供了更广阔的舞台。第三节 指纹识别研究的现状生物识别技术中应用最早、技术最为成熟、价格最为低廉的分支就是指纹识别技术,许多厂商都有各自相对成熟的指纹识别系统。尽管各个厂家都声称自己的系统具有相当高识别率,但是他们的实验都是在自己的指纹库上做测试,而不是在一个统一的标准指纹库上进行测试,结果并不具很大的可比性。影响指纹识别率的因素有很多,例如噪声、变形等。在提取指纹的过程中,人为因素最容易导致噪声的产生,例如脏手指、疤痕导致的不同时期、不同季节间指纹的差异,手指按压过程中的扭转、拉伸和按压力度等因素会使指纹产生变形;机器因素有芯片表面残留物带来的噪声等,这些都会影响指纹录入的质量,可能使多次录入的同一手指的指纹不能被指纹识别系统辨识,给指纹识别带来困难,直接导致识别错误。随着半导体指纹录入芯片的诞生,指纹识别技术从单一的司法应用扩展到了民用,同时问题也随之产生,为了降低成本,指纹芯片的面积做得尽可能小,这样,由于指纹的多次按压位置不同,导致同一指纹的重叠区域有时会很小。传统的基于细节点的指纹识别算法只利用了指纹图像中一小部分信息,丢失了丰富的结构信息,对于小面积指纹图像就有可能因为缺乏足够的信息儿影响识别率。而且细节提取过程中,由于噪声的影响,很容易产生虚假细节点和丢失真正的细节点,在指纹的受损区域,这种现象更为突出。另外,由于每个指纹的细节点数都不同,导致产生出的特征向量长度不同,不利于快速匹配,特征匹配时,细节点的相对位置随指纹的弹性变形而会改变,会影响匹配精度。所以在指纹识别的算法研究上,还存在着许多需要改进的地方,这使得指纹识别算法研究还在继续。国外有机构在很早之前就开始了对指纹识别的研究,其中最为著名的是FVC(Fingerprint Verification Competition)是由意大利博洛尼亚大学“生物识别系统实验室”、美国密歇根州大学“模式识别与图像处理实验室”与美国圣何塞州大学“生物识别测试中心”联合举办的全球指纹识别算法大赛。也是在指纹识别算法方面唯一一个世界性大赛。参加2000年FVC算法大赛的有14家企业院校,分别来自法国、以色列、新加坡、韩国、立陶宛、荷兰、瑞士等国。法国的SAGEM SA (France)公司这次比赛中名列第一。到了2002年FVC大赛,增至32支队伍参加算法竞赛。参赛的国家也大有增多,有美国、巴西、立陶宛、加拿大、俄罗斯、以色列、德国、法国等在算法研究方面领先的国家参加。还有中国的五个算法参加者,分别是中科院自动所,北大生物识别系统实验室、两家企业(杭州中正、数字指通)和一位个人(北京石油大学邓国强)。台湾的大叶大学也参加了此次比赛。在这次竞赛上,美国Bioscryp公司的算法摘取第一。西门子、立陶宛(神网)、法国SAGEM、以及中国的邓国强算法名列前10名。最近的一届2004年FVC大赛,有43家参赛者,其中企业29家,院校6家,个人8人。其中中国参赛者有8家,分别是邓国强、杭州中正、中科院自动所、Li Lijuan(音)、Ji Hui(音)、汉王科技、长沙新通科技和香港Futronic 公司。这次大赛美国的Bioscryp公司、俄罗斯的SONDA,以及中科院自动所都取得不错的成绩。在国内,清华大学在80年代开始指纹识别的研究。中科院自动化所模式识别国家重点实验室自90年代以来,一直致力于“基于生物特征的身份鉴别”的研究,在指纹、虹膜、脸相识别等方面取得了很多的研究成果。北京大学视觉与听觉信息处理国家重点实验室先后承担了国家“七五”和“八五”,科技攻关项目,对指纹识别进行了长期的基础性研究,提出了一整套独创的理论和高效实用的算法。另外,自九十年代初以来,我国的北大方正集团、长春鸿达集团、西安青松集团等机构分别以所在地高校为技术依托,陆续开展了这方面的研究工作。总的来说,国内开展了很多研究,而且取得了很多成果。2002年,清华大学实现了在海量数据库上的人脸和指纹综合识别系统,在识别的过程采用的融合策略是先用人脸特征进行比对得到前n个候选,然后在这个范围内用指纹特征再进行比对。迄今为止,还没有综合生物特征的识别系统的产品问世,综合身份识别系统的研究有待于进一步发展。2009年中北大学信息与通信工程学院提出了一种基于傅立叶变换的指纹图像增强技术,大大提高了图像的清晰度。为后来的指纹识别技术做出了较大贡献。第四节 指纹识别研究的意义在目前的计算机系统中,指纹识别已经被广泛的应用于多种领域中。例如:指纹识别可以被用于电脑或手机开机登录的身份确认,企事业单位中被用于指纹打卡考勤,银行储蓄防冒领及通存通兑的加密方法,保险行业中投保人的身份确认,期货证券提款人的身份确认,刑侦犯罪案件时被用于指纹比对,医疗卫生系统中医疗保险人的身份确认等等。指纹识别技术之所以能够快速的发展是因为现代电子集成制造技术和快速可靠的算法的研究的快速提高。虽然指纹只是人体皮肤的一小部分,但因为对指纹的数据识别并不是简单的相等与不相等的问题,所以需要识别的数据量却很大,指纹识别过程实际上需要进行大量运算的模糊匹配算法。由于具备了较小的集成的指纹图像读取设备,而更高更快的个人计算机运算速度也为我们提供了将两个指纹的比对运算运用在微型计算机或单片机上的可能。同时,随着指纹数字图像的匹配算法的可靠性也在不断提高,指纹识别技术已经变得越来越实用,使指纹识别技术更多的出现在我们的身边。为了进一步的讨论如何提高指纹识别技术的可靠性和匹配的速度等,本文研究指纹识别系统中指纹图像处理的算法和可靠性问题显得尤为重要,具备一定的理论研究意义。本章小结本章简要介绍了指纹识别的历史和研究现状,对指纹识别这一技术有了大致的了解。分析了指纹识别技术在当代的应用状况,并且提出了所要研究的问题指纹图像处理算法,最后介绍了指纹识别研究的意义。第二章 指纹识别系统及算法简介第一节 指纹识别系统的构成指纹识别系统主要涉及4个功能:指纹图像预处理、特征提取、保存数据和对比,其系统结构如图2.1所示。图2.1 指纹识别系统结构系统在一开始,通过指纹读取设备读取到人体指纹的图像,读取到指纹图像之后,要对原始图像进行初步的处理,使之更为清晰。然后,指纹识别软件建立指纹的数字表示特征数据,两枚不同的指纹不会产生相同的特征数据,这是一种单方向的转换,可以从指纹转换成特征数据但是不能从特征数据转换成指纹。软件从指纹上找到被称为“minutia”的数据点,也就是那些指纹纹路的分叉、终止或者圆圈处的坐标位置,这些点同时具有7种以上的唯一特性,因为通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。有的算法把节点和方向信息组合产生了更多的数据,这些方向信息表明了各个节点之间的关系,也有的算法还处理整幅指纹图像。总之,这些数据通常被称为模板,保存为1KB大小的记录。无论它们是怎样组成的,至今仍然没有一种统一的标准,也没有一种公布的抽象算法,各个厂商自行其是。最后,通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。第二节 指纹图像增强刚获得的图像有很多噪声,这主要是由于平时的工作和环境引起的。想得到比较干净清晰的图像并不是容易的事情。为达到这个目标需要指纹处理图像所涉及的操作即设计一个合适、匹配的滤镜和恰当的阈值。图像增强技术就是减弱噪音,增强脊和谷的对比度。图像增强的方法有很多种,但大多数是通过过滤图像与脊局部方向相匹配的方法实现。图像首先分成几个小区域,并在每个区域上计算出脊的局部方向来决定方向图,可以由控件域处理或经过快速二维傅里叶变换后来得到每个小区域上的局部方向。设计合适的、相匹配的滤镜,是指适用于图像上的所有像素,依据每个像素处脊的局部走向,滤镜应增强在同一方向脊的走向,并且在同一位置,减弱任何不同于脊的方向。后者还有横跨及的噪音,所以其垂直与脊的局部方向上的那些不正确的噪音会被滤镜过滤掉。所以,合适的、匹配的滤镜可以恰到好处地确定脊局部走向的自身方向,它应该增强或匹配脊而不是噪音。图像增强,噪音减弱后,准备开始选取一些脊。虽然没在原始灰阶图像中,其强度是不同的而按一定的梯度分布,但它们真实的信息被简单化为二值:脊及其相对的背景。二值操作使一个灰阶图像变成二值图像,图像在强度层次上从原始的256色降为2色。图像二值化后,随后的处理就会比较容易。二值化的困难在于,并不是所有的指纹图像有相同的阈值,所以一般不采取从单纯的强度入手,而且单一图像的对照物是变化的,比如手在中心地带按得比较紧。因此一个叫“局部自适应的阈值(Local Adaptive Threshold)”的方法被用来决定局部图像强度的阈值。在节点提取之前的最后一道工序是“细化(thinning)”。细化是将脊的宽度降为单个像素的宽度。一个好的细化方法是保持原有脊的连续性,降低由于人为因素所造成的影响。人为因素主要是毛刺,带有非常短的分支而被误认为是分叉。认识到合法的和不合法的节点后,在特征提取阶段排除这些节点。第三节 指纹识别的基本原理 指纹其实是比较复杂的。与人工处理不同,许多生物识别技术公司并不直接存储指纹的图像。多年来,在各个公司及其研究机构产生了许多数字化的算法(美国有关法律人为,指纹图像属于个人隐私,因此不能直接存储指纹图像),指纹识别算法最终归结为在指纹图像上找到并对比指纹的特征。指纹的特征定义了指纹的两类特征以进行指纹的验证:总体特征和局部特征7。一、总体特征总特征是指那些用人言直接就可以观察到的特征,包括以下几个方面2:1、基本纹路图案基本纹路团包括环型(Loop)、弓型(Arch)和螺旋型(Whorl),如图2.2所示。其他的指纹图案都基于这3种基本图案。仅依靠图案来分辨指纹是远远不够的,这只是一个粗略的分类,但是通过分类使得在大数据库中搜寻指纹更为方便。 环型弓型螺旋型图2.2 环型、弓型、螺旋型指纹图像2、模式区模式区是指指纹上包括了总体特征的区域,即从模式区就能够分辨出指纹是属于那一种类型的。有的指纹识别算法只使用模式区的数据。Secure Touch的指纹识别算法使用了所取得的完整指纹而不仅仅是模式区进行分析和识别,如图2.3所示。图2.3模式区3、核心点核心点位于指纹纹路的渐进中心,它在读取指纹和比对指纹时作为参考点。许多算法是基于核心点的,既只能处理和识别具有核心点的指纹。核心点对于Secure Touch的指纹识别算法很重要,但没有核心点的指纹它仍然能够处理,如图2.4所示。图2.4核心点4、三角点三角点位于从核心点开始的第一个分叉点或者断点、或者两条纹路会聚处、孤立点、折转处,或者指向这些奇异点。三角点提供了指纹纹路的计数跟踪的开始之处,如图2.5所示。图2.5三角点5、纹数纹数指模式区内指纹纹路的数量。在计算指纹的纹数时,一般先在连接核心点和三角点,这条连线与指纹纹路相交的数量即可认为是指纹的纹数,如图2.6所示。图2.6纹数二、局部特征 局部特征是指指纹上的节点,两枚指纹经常会具有相同的总体特征,但他们的局部特征节点却不可能完全相同。节点(Minutia Points)指纹纹路并不是连续的、平滑笔直的,而是经常出现中断、分叉或打折。这些断点、分叉点和转折点就成为特征点,就是这些节点提供了指纹唯一性的确认信息。指纹上的节点有四种不同特征2。1分类节点有一下几种类型,最典型的是终结点和分叉点:(1)终结点(Ending)一条纹路在此终结,如图2.7所示。图2.7终结点(2)分叉点(Bifurcation)一条纹路在此分开成两条或更多的纹路,如图2.8所示。图2.8分叉点(3)分歧点(Ridge Divergence)两条平行的纹路在此分开,如图2.9所示。图2.9分歧点(4)孤立点(Dot or Island)一条特别短的纹路,以至于成为一点,如图2.10所示。图2.10孤立点(5)环点(Enclosure)一条纹路分开成为两条之后,立即有合并成为一条,这样形成的一个小环称为环点,如图2.11所示。图2.11环点(6)短纹(Short Ridge)一端较短但不至于成为一点的纹路,如图2.12所示。图2.13短纹2方向(Orientation) 节点可以朝着一定的方向。3曲率(Curvature) 描述纹路方向改变的速度。4位置(Position) 节点的位置通过(x,y)坐标来描述,可以是绝对的,也可以是相对于三角点或特征点的。第四节 指纹识别的一般算法指纹图像处理的算法研究包括指纹图像预处理、特征提取和特征匹配三个主要阶段。一、指纹图像预处理 在指纹识别过程中,输入的指纹图像由于各种原因的影响,是一幅含噪声较多的灰度图像,预处理的目的就是去除图像中的噪声,使图像画面清晰,边缘明显,把它变成一幅清晰的点线图,以便于提取正确的指纹特征。指纹图像预处理环节在整个指纹识别系统中具有重要的地位和作用,它的好坏直接影响着指纹识别的效果。预处理一般分为四步进行:图像分割、图像增强、二值化和细化。首先,对图像进行分割。由于有的原始图像跟其背景区域相混合,在背景和指纹图像之间存在一道白色区域,所以需要对原始指纹图像进行背景分离,消除最外面的边框。我们可以根据灰度的大小对图像进行初步处理,得到初步处理然后对指纹图像进行归一化及分割处理,消除剩下的背景区域。其次,指纹预处理过程中最重要的一步就是对指纹图像进行增强,即滤波去噪,它是指纹图像预处理需要解决的核心问题。图像滤波的目的是在增强脊线谷线结构对比度的同时抑制噪声,连接断裂的脊线和分离粘连的脊线,按特定的需要突出一幅图像中的某些信息,同时削弱或去除某些不需要的信息。再次,图像经滤波处理后,其中的纹线(脊)部分得到了增强,不过脊的强度并不完全相同,表现为灰度值的差异。二值化的目的就是使脊的灰度值趋向一致,使整幅图像简化为二元信息在指纹识别中,一方面对图像信息进行了压缩,保留了纹线的主要信息,节约了存储空间,另一方面还可以去除大量的粘连,为指纹特征的提取和匹配做准备。最后,指纹图像二值化后,纹线仍具有一定的宽度,而指纹识别只对纹线的走向感兴趣,不关心它的粗细。细化的目的是为了删除指纹纹线的边缘像素,使之只有一个像素宽度,减少冗余的信息,突出指纹纹线的主要特征,从而便于后面的特征提取。细化时应保证纹线的连接性,方向性和特征点不变,还应保持纹线的中心基本不变。二、特征提取目前的指纹识别普遍采用的指纹特征是细节点(minutiae),分为端点和分叉点。指纹的特征可以反映不同的指纹相互之间相似的程度。指纹的特征信息很多。这些所有的指纹特征信息构成了庞大的指纹特征集合。一组好的特征不仅要能达到身份识别的基本要求,而且对噪声、畸变和环境条件不敏感。原始指纹图像经预处理后得到的是一幅细化的二值图像,下一步要做的工作就是对细化后的图像进行特征提取,得到可以识别不同指纹的关键特征。特征提取把指纹图像的纹线走向,纹线端点、交叉点等能充分表示该指纹唯一性的特征用数值的形式表达出来。为了比对的准确性,要求特征提取算法尽可能多地提取有效特征,同时滤除由各种原因造成的虚假特征。一般在指纹识别技术中只使用两种细节特征点:端点和分叉点,其他类型特征点出现的机率很小,这两类特征点在指纹中出现的机会最多、最稳定,比较容易获取。如何准确高效的提取指纹特征是指纹细节特征提取要开展的工作,或者说是采取什么样的步骤和方法,是后面指纹匹配工作的基础。三、特征匹配 特征匹配主要是细节特征的匹配,将新输入指纹的细节特征值与指纹库中所存指纹的细节特征值进行比对,找出最相似的指纹作为识别的输出结果,也就是所说的指纹验证识别过程,它是指纹识别系统的最终目的。由于各种因素的影响,同一指纹两次输入所得的特征模板很可能不同。因此,只要有输入指纹的特征模板与所存储的模板相似时,就说这两个指纹匹配。于是产生了有关衡量标准的问题。通常,匹配结果用“匹配度”来表示。当匹配度大于某一阈值时,认为两指纹匹配;相反,当小于该阈值时,认为不匹配。阈值大小通常根据经验等因素人为设定。第五节 指纹识别算法的性能指标在自动指纹识别系统中,由于计算机处理的指纹只涉及了指纹的部分信息,而且在图像处理和匹配过程中也存在计算误差,因此任何一个指纹识别算法都不是100%的精确匹配,其结果也有可能存在误差或错误,即指纹识别算法并不是 100%的可靠。因此需要一定的指标来衡量识别算法的好坏,通常评估一个指纹识别算法的性能指标主要包括2:拒登率(Failure To Enroll Rate, FER),即拒绝建档(算法不能处理)的比率,反映适用人群大小,通常用来描述设备的适用性;拒识率(False Rejection Rate, FRR),指将相同指纹误认为不同指纹而加以拒绝的出错概率,即错误拒绝的比率,反映好用性;误识率(False Acceptance Rate, FAR),指不同指纹认为是相同指纹而加以接受的错误率,即错误接受的比率,反映安全性;相等错误率(Equal Error Rate, EER),FRR 和 FAR 相等时的值;速度 (SPEED),通常指每秒钟算法运行的次数;空间 (SPACE),算法运行所需要的代码空间和数据空间。表 2.1 中是各种产品的网上发布数据对比,可以看出,后者的错误率比前者要高一些。由于 FRR 和 FAR 是相互矛盾的,这就使得在应用系统的设计中,要权衡易用性和安全性。一个有效的办法是比对两个或更多的指纹,从而在不损失易用性的同时,极大地提高了系统安全性。因此在指纹数字图像辨别的算法研究上,还存在着许多需要改进的地方,这使得指纹识别算法研究还在继续。表2.1网上公布一些指纹识别系统的性能公司传感器FARFRRBiolinkijSA光学0.0000010.01BiometriCD光学0.010.01Startek光学0.0013.3IOSoftware光学0.11Identix光学0.00011NEC半导体0.00020.05BiometnxInt半导体0.00010.0001Pollex半导体0.00011Sony半导体0.00011当然有许多因素会影响指纹数字图像识别的效果,其中包括:数字噪声,变形等,比如脏或干的手指,疤痕,不同季节间的指纹数字图像差异;手指按压过程中的扭转,拉伸和按压力度等因素会使指纹数字图像产生变形,这些都会影响指纹数字图像质量,因此多次录入的同一手指的指纹数字图像可能不会被识别,这样直接导致辨别错误,或者说给指纹识别带来了更大的难度。本章小结本章对指纹识别系统和指纹识别算法做了简介,指纹识别系统包括指纹图像预处理、特征提取、保存数据和对比四个主要步骤。同时,通过指纹图像增强和指纹特征对指纹识别的基本原理做了介绍。最后,对指纹识别算法中图像预处理、特征提取、特征匹配做了概述,初步全面了解了指纹识别系统和识别算法,为以后的工作打好了基础。第三章 指纹图像处理算法详细设计及实现第一节 指纹图像预处理一、指纹图像预处理概述对于指纹图像的预处理,已有很多学者作了大量的研究,对指纹图像的分割、二值化等提出了各种不同的方法。本章所研究的预处理算法流程如图3.1所示,图像分割是将要处理的图像的有效部分从整个指纹图像中分离出来,这样一方面减少了后续处理步骤的数据量,另一方面也避免了因为部分图像区域不可靠而导致伪特征的产生。图像增强包括两个部分,首先是对原始图像时模糊但有可能恢复的部分进行增强,人后再对整幅图像滤波,消除指纹脊线间的断裂和粘连。图像二值化是提取经增强处理的指纹图像的脊线,用“1”表示脊线上的点,“0”表示背景和谷线,从而把原始灰度图像转换为二值图像。图像细化是进一步吧二值指纹脊线细化为单像素宽度的骨架线,这是为了方便以后的特征提取。图3.1 指纹图像预处理过程二、指纹图像分割及增强 指纹图像分割通常位于预处理的前端,其目的是把指纹图像中质量很差、在后续处理中很难恢复的区域与有效区域区分开来,使后续处理能够集中于有效区域。分割处理不仅能提高特征提取的精确度,而且还能大大减少指纹预处理的时间,因此是指纹图像处理中的重要组成部分。图像归一化的目的是为了消除图片的噪声。这里采用公式3.1将各个区域归一化,其中M0和V0是预置的均值和方差(这里都置为100),而Mi和Vi为图像的均值和方差,I(i,j)和G(i,j)为归一化前后图像内置位置为(i,j)像素的灰度。 (3.1)如果,则把灰度值归一化为255背景处理。对指纹图像进行分块,将其分为88的小块,如果是背景区域,其灰度的方差较小,而前景区的指纹图像的方差较大,所以对每个小块求其方差,再设定一个阈值,小于阈值的方块区域设置为背景区域,将其灰度值设定为255,而大于阈值的区域的灰度值保持不变,从而可以将指纹图像从背景区域很好的分离。图像增强用于图像不清晰的部分,依据某些已知条件,改善这些区域的质量,以保证后续处理的可靠性。对于指纹图像增强,已有很多学者进行了研究,他们主要依据沿脊线垂直方向的灰度变化成正弦波的假设,设计各种具有方向性的滤波器。但实际上,即时是同一幅指纹图像,脊线的宽度和差异都有可能很大,为了适应不同的频率,滤波器的频率也需不断变化,同时。指纹脊线方向的估计也并不是完全可靠,即时图像质量得到了一定改善,但却大大增加了计算的复杂度,本文使用的算法是Anil Jain提出的算法,首先归一化,然后计算方向图,计算频率,计算区域掩码,最后滤波10。三、指纹图像二值化 二值化的目的是把灰度指纹图像变成0-1取值的二值图像。指纹图像二值化作为指纹预处理过程的一部分,是进行指纹图像细化处理的基础。目前指纹细化方法都是基于二值指纹图像进行的。对指纹图像二值化的好处在于使得图像的几何性质只0和1的位置有关,不再涉及像素的灰度值,使处理变得简单,这给存储和处理带来了很大的方便,同时也提高了系统的经济实用。一个好的算法可以得到一个高质量的二值图像。反之,如果该阶段引入噪声,就会直接降低图像质量,影响识别精度。对指纹图像进行二值化,其基本要求就是二值化后的图像能真实地再现原指纹。具体要求为: 脊线中不出现空白; 二值化后的脊线基本保持原来指纹的特征; 指纹的纹线不应有太多的间断和相连; 指纹纹线间的间距应大致相同。 指纹图像首先要进行中值滤波处理,去除噪声。然后进行二值化过程,变成二值图像。由于原始指纹图像不同区域深浅不一,如对整幅图像用同一阈值进行二值分割,会造成大量有用信息的丢失。这里我们使用自适应阈值二值化的思想,对每块指纹图像,选取的阈值应尽量使该块图像内大于该阈值的像素点数等于小于该阈值的像素点数。一般灰度图像二值化的变换函数f(x)用下列公式3.2表示,其中T为阈值,x为灰度值。 (3.2) 自适应阈值算法首先是利用固定阈值算法的思想,然后根据图像中每一部分的明暗度来调整阈值8。本文首先把图像分为若干个的方块,每一块根据自己的阈值进行二值化。这种算法充分利用了指纹图中脊线与谷线宽度大致相同的特点,即二值化后黑白像素的个数也应大致相同,首先利用固定阈值算法的特点对指纹图像中的每块确定一个大致的阈值,然后再利用自适应的思想对阈值进行准确的调整,即阈值的取值合适时图像是最光滑的,既没有“黑洞”阈值过大,也没有“白点”阈值过小,所以01之间的转换次数最少。下面为块区域阈值的选取算法: 将指纹图像划分为不重叠的大小为的块,求取该区域内所有像素的灰度平均值。在综合考虑算法速度和处理效果两方面的条件下,本文分块尺寸为88;T为块的灰度平均值见公式3.3 (3.3) 计算区域内的Nh和Nl的值,Nh=灰度值大于等于T的像素点的个数。Nl=灰度值小于T的像素点的个数; 如果,则T为阈值; 若NhNl则T=T+1,否则T=T-1,返回第二步。自适应阈值二值化的流程图如图3.2所示:图3.2自适应阈值二值化流程图图3.2中T为该块指纹图像的平均灰度值Nh和Nl分别为第(k,l)块指纹图像中灰度值大于等于T和小于T的像素点数,是分块尺寸(像素)。四、指纹图像细化细化就是将二值化图像变化为单像素宽度的骨架图像。图像细化算法的种类很多,细化的方法不同,细化的结果就有差异。在指纹识别中要求在不改变原来指纹图像的拓扑连通性的同时,细化的结果应为严格的八邻域图像骨架;纹线中除去特征点以外,每个像素均只与相邻两个像素为八邻域,抹去任意一像素都将破坏纹线的连接性。概括起来说就是纹线细化处理要满足收敛性、连接性、拓扑性、保持性、细化性、中轴性、快速性的要求。目前为止,关于细化方法的研究工作已有很多成果,所采用的方法从使用的观点来看,比较多的是采用模板匹配的方法(如迭代法、OPTA单连通法等)。这种方法是根据某个像素的局部邻域(如33,55等)的图像特征对其进行处理,此外也有采用边缘搜索编码、外轮廓计算以及神经网络等细化方法9。从处理的过程来看,主要可以分为串行和并行两类,前者对图像中当前像素处理依据其邻域内像素的即时化结果,且不同的细化阶段采用不同的处理方法;后者对当前的像素处理该像素及其邻域内各像素的前一轮迭代处理的结果,自始至终采用相同的细化准则。对于任意形状的区域,细化实质上是腐蚀操作的变体,细化过程中要根据每个像素点的八个相邻点的情况来判断该点是否可以剔除或保留。 (1) (2) (3) (4) (5) (6) (7)图3.3根据某点的八个相邻点的情况来判断该点是否能删除 图3.3给出了当前需要处理的像素点在不同的八邻域条件下的情况,可以看出:(1)不能删,因为它是个内部点,我们要求的是骨架,如果连内部点也删了,骨架也会被掏空的;(2)不能删,和(1)是同样的道理;(3)可以删,这样的点不是骨架;(4)不能删,因为删掉后,原来相连的部分断开了;(5)可以删,这样的点不是骨架;(6)不能删,因为它是直线的端点,如果这样的点删了,那么最后整个直线也被删了,剩不下什么;(7)不能删,因为孤立点的骨架就是它自身8。总结上图,有如下的判据: 内部点不能删除; 孤立点不能删除; 直线端点不能删除; 如果P是边界点,去掉P后,如果连通分量不增加,则P可以删除。 我们可以根据上述的判据,事先做出一张表,从0到255共有256个元素,每个元素要么是0,要么是1。我们根据某点的八个相邻点的情况查表,若表中的元素是1,则表示该点可删,否则保留。查表的方法是,设白点为1,黑点为0;左上方点对应一个8位数的第一位(最低位),正上方点对应第二位,右上方点对应的第三位,左邻点对应第四位,右邻点对应第五位,左下方点对应第六位,正下方点对应第七位,右下方点对应的第八位,按这样组成的8位数去查表即可。考虑当前像素点的各种八邻域的情况,我们可以得到一个细化操作查找表,该表在下面的细化算法中详细介绍。 为了避免分裂指纹图像,细化的过程分为两个步骤,第一步是正常的腐蚀操作,但是它是有条件的,也就是说那些被标记的可除去的像素点并不立即消去;在第二步中,只将那些消除后并不破坏连通性的点消除,否则的话保留这些边界点。以上的步骤是在一个33邻域内运算,可以通过查表实现细化的操作。算法的实现步骤如下: 定义一个33模板和一个查找表,模板和查找表分别如表3.1和图3.4所示:表3.1 细化模板1241282568643216erase table256=0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0图3.4细化查找表 对二值图像从上到下、从左到右进行扫描;该过程结束后再对图像进行从左到右,从上到下的扫描;如果图像中当前像素点的灰度值为“0”,且其左右(第一次扫描过程考虑左右像素点)或上下(第二次扫描过程考虑上下两个像素点)两个像素点中有任意一个为“255”则转至步骤,否则回转到步骤; 该像素点为中心的33区域内的各个像素值和定义的模板中的权值进行卷积求和,得到查找索引值k; 根据这个索引值k得到表里相应的数据,如果为“1”,那么该像素点的灰度值设为“255”,如果为“0”,则该像素点的灰度值为“0”。 图像从头至尾扫描二遍后,如果该次扫描修改了图像中的点,则跳转至步骤二,开始新的一轮扫描。否则图像细化结束。为了是图像能过更加清晰的展现出来,我们把分割后的指纹图像背景换为白色背景。五、实验结果 原始图像(a) 原始图像(b)图3.5 原始图像 分割图像(a) 分割图像(b)图3.6 分割后的图像 二值化图像(a) 二值化图像(b)图3.7二值化后的图像 细化图像(a) 细化图像(b)图3.8细化后的图像第二节 指纹图像特征提取一、指纹图像特征提取的方法 细节特征提取的方法分为两种:一种是从灰度图像中提取特征,另一种是从细化二值图像中提取特征。直接从灰度图像中提取特征的算法一般是对灰度指纹纹线进行跟踪,根据跟踪结果寻找特征的位置和判断特征的类型。这种方法省去了复杂的指纹图像预处理过程,但是特征提取的算法却十分复杂,而且由于噪声等因素影响,特征信息(位置、方向等)也不够准确。目前大多数系统采用第二种方法,从细化二值图像中提取特征,该方法比较简单,在得到可靠的细化二值图像后,只需要一个33的模板就可以将端点和分叉点提取出来。特征点提取的好坏将直接影响匹配的结果。现实中,指纹输入时,由于汗渍、干燥、按压力度不同等的影响,得到的指纹图像大都含有断纹、褶皱、模糊、灰度不均匀等质量问题,虽然经过预处理,图像质量会有所改观,但预处理算法对各个指纹的适应性和有效性也会不同,并且会引入新的噪声,因此得到的细化二值图像往往含有大量的伪特征点。伪特征点不仅会影响匹配的速度,严重的会影响整个识别的正确率。所以提取特征点后要进行去伪处理,尽可能滤除伪特征点、保留真特征点。实践中发现,伪特征点的数量一般占总特征数量的一半以上,所以去伪是必不可少的过程。去伪过程可以在两个阶段进行:一是在特征提取之前对细化二值图像进行平滑、去除毛刺、连接断纹等操作,然后提取特征作为真特征;另一种是在特征提取之后,根据特征之间的相互关系,尽可能准确的识别伪特征点并滤除它们。前者直接对图像进行修补,操作比较复杂,容易引入新的伪特征;后者对特征提取后的数据进行判断,识别比较麻烦,但是速度较快本文采用第二种方法,即从已提取的特征点中滤除伪特征,保留真特征。二、特征点提取 本文的特征提取算法是在细化的图像基础上采用是模板匹配法。模板匹配法有运算量小、速度快的优点。 主要提取指纹的细节特征即端点和分叉点。端点和分叉点是建立在对8邻点的统计分析基础之上的,则在八邻域的所有状态中,满足端点特征条件的有8种,满足分叉点特征条件的有9种。 对于细化图像而言,像素点的灰度值只有两种情况(即0或1)“0”为背景点灰度,“1”为纹线点灰度。对于细化图像上的任意点P,其交叉数定义见式3.4,P点的八邻域黑点数定义见式3.5: (3.4) (3.5)具体算法如下: 从端点出发,端点的八邻域只有一个黑点,该点就是脊线跟踪的下一点; 对脊线中间连续点,因为八邻域只有两个黑点,除去上一个被跟踪的点,下的一点即为下一个待跟踪点;设集合,记录下端点或分叉点的横坐标,纵坐标,及特征点的类型是特征点的角度跟踪结束条件。若被跟踪点的八邻域黑点数等于1且交叉数等于2时如下式3.6,则认为是端点;若被跟踪点的八邻域黑点数等于3且交叉数等于6时如下式3.7,则认为是分叉点;端点的角度取从端点为起点的端线的角度,分叉点的角度取相对最小分支的角度。端线及分支线的角度求法为:即从一个特征的位置出发坐标为搜索到步长为7是最后一点坐标为(x,y)。见式3.8: (3.6) (3.7) (3.8)求出特征点后,再根据平均纹线距离等信息对所得特征点进行有效性检验,去除伪特征点,保留真特征点。然后以特征点的坐标(x,y),及特征点的方向d,结合其邻域情况(邻域内的特征点数、相对位置、脊线上特征点所处位置的纹曲率、特征点邻域内的脊线纹密度等等),可以构成该指纹细节特征点的特征向量。将所有的特征向量进行筛选后留下50到80个特征向量,构成指纹特征模板。三、指纹图像特征的去伪由于手指的磨损、汗渍、传感器的噪声等因素的影响,指纹细节
展开阅读全文