1绪论1.1指纹识别的历史与发展前景1.2指纹识别中的基本概念与技术困难1.3系统总体设计方案和论文结构2纹图像处理及特征提取与实现2.1方法概述2.2方向图的计算2.2.1求点方向图2.2.2由点方向图求块方向图的算法2.2.3最小均方估计块方向算法2.3指纹图像的滤波2.4基于方向图的动态阀值指纹图像二值化方法2.5指纹图像的细化算法2.6特征提取及其后处理2.6.1特征点的提取2.6.2假特征点的去除2.6.3.细节点信息的提取及记录2.6.4指纹识别中细节点的匹配3指纹识别系统的硬件设计3.1功能描述3.2系统硬件结构概述3.3AT89S51单片机的结构与特点3.4指纹识别系统硬件电路设计3.5电源电路的设计3.6指纹采集器介绍及工作方式3.7单片机和PC机的通讯功能4.指纹识别系统软件设计4.1算法的软件实现4.2指纹识别系统软件的编制4.3指纹传感器初始化设置4.4指纹识别系统串口通信4.4.189S51串行口工作方式4.4.2PC机主程序(函数)4.4.3单片机图像处理设计致谢参考文献1绪论1.1指纹识别的历史与发展前景19世纪初,科学研究发现了至今仍然承认的指纹的两个重要特征,一是两个不同手指的指纹纹脊的式样(radgepattern)不同,另外一个是指纹纹脊的式样终生不改变。这个研究成果使得指纹在犯罪鉴别中得以正式应用。主要代表性的事件有:1896年阿根廷首次应用,然后是1901年的苏格兰,20世纪初其他国家也相继应用到犯罪鉴别中。20世纪60年代,由于计算机可以有效的处理图形,人们开始着手研究利用计算机来处理指纹。从那时起,自动指纹识别系统AFIS(AutomatedFingerprintIdentificationSystem)在法律实施方面的研究和应用在世界许多国家展开。20世纪80年代,个人电脑、光学扫描这两项技术的革新,使得它们作为指纹取像的工具成为现实,从而使指纹识别可以在其他领域中得以应用,比如代替IC卡。现在(90年代后期),低价位取像设备的引入及其飞速发展,可靠的比对算法的发现为个人身份识别应用的增长提供了舞台。相对于其他身份鉴定技术,指纹识别技术之所以优于其他身份鉴定技术而被广泛采用的原因:1.指纹是独一无二的,两人之间不存在着相同的指纹:2.指纹是相当固定的,不会随年龄、健康状况的变化而改变;3.指纹样本易于采集,难以伪造,便于开发,实用性强;4.每个人十指的指纹皆不相同,可以利用多个指纹构成多重口令,提高系统的安全性;5.指纹识别中使用的模板并非最初的指纹图像,而是由图像提取的关键特征,使所需存储的信息量减小,而且在实现异地确认时,可以大大减少网络传输负担,支持网络功能。可以看出,指纹识别技术相对于其他识别方法有许多独到之处,具有很高的实用性和可行性。因此,指纹识别成为最流行、最方便、最可靠的身份认证方式,己经在社会生活的诸多方面得到广泛应用。1.2指纹识别中的基本概念与技术困难指纹图像其实是比较复杂的,它有着许多不同于其他图像的特征。与人工处理不同,现代的生物识别技术并不直接存储指纹的图像(一是考虑到隐私权,二是由于储存空间),而是记录从指纹源图像中提取到的特征,指纹识别算法最终都归结为在指纹图像上找到并比对指纹的特征。我们定义了指纹的两类特征来进行指纹的验证:总体特征和局部特征。总体特征是指那些用人眼直接就可以观察到的特征,包括:基本纹路图案:环型(loop),拱型(arch),漩涡型(whorl)。其他的指纹图案都基于这三种基本图案。仅仅依靠图案类型来分辨指纹是远远不够的,这只是一个粗略的分类,但通过分类使得在大数据库中搜寻指纹更为方的,这只是一个粗略的分类,但通过分类使得在大数据库中搜寻指纹更为方便。指纹图像类别比例是这样的:漩涡型(包括whorldoublewhorl)占27.9%,环型(包括rightloop,leftloop)占65.5%,拱型(包括arch,tentedarch)占6.60I0。目前指纹识别技术还有很多困难。例如:当三维的指纹被指纹录入设备扫描成二维的数字图像时,会丢失一部分信息、,手指划破、割伤、弄脏、不同干湿程度以及不同的按压方式,还会导致指纹图像的变化,这给可靠的特征提取带来了相当地困难。例如传统的基于细节点的识别方法,是依靠提取指纹脊线上的细节点,然后对其位置和类型进行匹配,来识别指纹的(详细描述在第三章中),而噪声会影响特征提取准确度,增加错误的特征点或丢失真正的特征点。当噪声很大时,就要增加图像增强算法来改善图像的质量,但很难找到一种增强算法能够适应所用的噪声,多种增强算法又会大幅增加算法运行时间,不好的增强算法又会增加人为特征。当噪声增大时,提取了许多虚假细节点,还有可能丢失细节点。这就是传统的基于细节点识别算法的不足之处之一,因为它只利用了指纹图像中的一小部分信息—细节点位置和方向,作为特征进行匹配,丢失的蕴涵在图像中的其他丰富的结构信息。不难想象,基于这种方法的识别算法,很难全面适应指纹的变化。1.3系统总体设计方案和论文结构硬件平台大致可以分为5个部分:成像系统(传感器FPS200)、核心部分(AT89S51单片机)、RAM、EEPROM等器件。工作原理:指纹经传感器采集后,由传感器直接转成RGB格式,并且数据传输到MCU。MCU需要执行大量的模式识别和图像处理相关计算。固化的程序存储在EEPROM中,这些指令控制了整个指纹识别系统的工作流程。RAM为内存存储临时数据。这就构成数据通道。在指纹算法方面,研究了基于细节点特征指纹自动识别系统的各部分构成以及指纹图像的预处理和细节特征提取。文章第一部分首先介绍了基于细节点特征的指纹识别系统的构成及原理。重点研究了其预处理过程,其中包括指纹图像预滤波、方向图计算、基于方向图的指纹图像滤波和指纹图像二值化。最后介绍了对二值化后的指纹图像细化的方法。第二部分介绍了硬件系统的结构,如:单片机的连接方法,外设寄存器选取,串口通信的实现等等。第三部分介绍了指纹识别系统的软件流程及与PC机接口通信的实现。2纹图像处理及特征提取与实现2.1方法概述基于细节点特征的指纹自动识别技术是目前这方面研究中的主流,这种系统的实现有以下一些步骤如图2.1:预处理是将输入的(直接采集进来的)低质量、有噪音的指纹源图象处理成已细化了的清晰的二值图像[1]。它的目的是减少低质量的图像对分类识别结果的影响,预处理中一般包括图像增强、滤波、二值化、细化等步骤。预处理的方法通常有两种:方法一:先求方向图,后求频率图,最后由此得到的Gabor滤波器对图像进行滤波。这种方法计算量比较大,在求频率图容易产生偏差,不利于单片机的实现。方法二:结合指纹图像自身的特点以及其源图像像素来确定该点是否为脊,直接准确地得到黑白二值的指纹脊图像。这种方法对于从不同渠道获得的图像均有不错的效果。在以上两种方法都要用到方向图,方向图是一种可直接从原灰度图像中得到的有用信息,在预处理、特征提取、指纹分类中有着重要意义。我们总是在准确求得方向图的基础上运用各种滤波方法或直接找脊的方法来进行预处理。方向图描述了指纹图像中每一像素点所在脊线或谷线在该点的切线方向,也可看作是指纹源图像的一种变化表示方法,既用纹线的方向来表示该纹线。方向图分为两种:一种是点方向图,表示源指纹图像中每一点脊线的方向:另一种是块方向图,表示源指纹图像中每一块脊线的大致方向。计算方向图的基本思想是:在原灰度图像中每一点(或每一块在各个方向上的某个统计量(如灰度差、梯度等),根据这些统计量在各个方向上的差异,确定该点(块)的方向。2.2方向图的计算2.2.1求点方向图设是指纹图像中点的灰度值,要计算该点的方向,需要先求出(该点临域沿d方向的灰度变化)。图2.2点方向示意图=,d=1,2,···,N(2.1)其中:是方向d上的第k个点;是该点的灰度值,N是所取的方向数,n为每个方向上所取的邻点数。这两个数的具体取值与图像的分辨率有关,一般取N=16,即取16个方向,n=8,即一个方向上取8个邻点。点的方向为取值最小的方向。对图像中的每一点求取点方向,这样便形成了指纹点方向图。此方向求得的方向特点:1.方向取值不是0~2中的任意值,而是有限的几个数。2.这种方向计算出的方向范围是0~2,有利于求取指纹的走势。(与认为是不同方向)2.2.2由点方向图求块方向图的算法把点方向图分成大小的块,对每一块计算方向直方图(横坐标的方向取到的N个值,纵坐标为取这些方向的象素个数),方向直方图中的峰值所对应的方向,即该块的方向。2.2.3最小均方估计块方向算法特征提取代表指纹图像在处的灰度值步骤:1.将图像分成大小为的块。这里M的大小以包含一脊一谷(即一周期)为宜;2.计算块中每个像素在x轴和y轴上的梯度和。这里用简单的梯度算子:=(2.2)(2.3)3.用下面公式计算块的方向,且(2.4)当的块中或为零的比率很大时,块方向应直接设为0或,这样块中的每一个像素的方向都等于。(A)原始图像(B)改进前的结果(C)改进后的结果图2.3指纹图像的方向图4.在计算指纹图像方向图多采用块与块直接不重叠的方式,但这样求出的块方向仅由该块所包含的像素点所决定,没有考虑其周围像素点的影响,很容易造成方向的不连续性。于是我们采用在计算方向图时,采用块重叠的方式。这样可以使方向图精度可以大大提高。5.方向图平滑这里我们采用将方向图正交分解后分别进行滤波的方法对它进行平滑,实验证明这种方法比一般用的中值滤波和加权平滑的方法的效果好。计算步骤:1)将方向图转变为连续的向量场:(2.5)(2.6)这里,分别是向量场x,y方向上的分量。2)实现低通滤波:(2.7)(2.8)这里W是一个大小为的二维低通滤波器,一般使用的均值滤波。3)平滑后的方向场为:(2.9)2.3指纹图像的滤波在指纹处理中用到滤波器,主要在于去除图像噪声,增强图像质量,即增强指纹脊与谷的对比度,修补图像——连接脊中出现的断点、去除图像中的叉连现象。指纹图像滤波有两种方法:方法一:利用Gabor滤波器的参数可利用指纹的方向性和纹理性,用Gabor滤波器来作为带通滤波器,去除噪音,增强脊谷结构。这种算法难点在于需要计算图像的频率图——将指纹图像看成由脊和谷组成的周期图像,在每一个局部领域内都会有一个相对固定准确的频率。这种算法的缺点在于:求频率图导致计算量比较大,而且频率容易产生偏差;方法二:这种方法也是我们采用的滤波方法。这是一种简单但效果良好的上下文滤波器,上下文滤波法也是基于方向图的,这是一系列上下文相关的滤波器,使用时根据某一快的方向从一系列滤波器中选择一个相应的滤波器来对这一块进行滤波。其他方向的滤波器可以通过旋转得到。一个基本的滤波器由两部分组成:平均滤波器和分离滤波器。平均滤波器的作用主要是连接边中出现的断点,而分离滤波器可以去除图像中的叉连现象。(断裂和叉连的情况;如I右图2.4所示)。滤波器的大小由指纹图像中脊线的周期决定,在我们的试验中,周期取为5,因而这里以Sx5大小的滤波器为例。水平方向的平均滤波器的权值如右图2.5所示,其中系数满足:。经过平均滤波器过滤的图像,其中每一点的灰度由其临近的24个像素的灰度值共同决定。即对于第i行j列的点的灰度值的处理如下:图2.4断裂与叉连图2.5平均滤波器的权值(2.10)若图像中出现断点,即这一点的灰度值比周围点都小得多,则经过平均滤波器的处理,它的灰度值就接近邻近点的灰度值了,所以平均滤波器有连接断点的作用。分离滤波器的权值如图2.6所示,其中参数:P+2Q+2R=0。分离滤波器处理图像过程与平均滤波器相同,图像中的叉连点是把相邻的两条脊线连接起来的点,所以叉连点的上下点灰度值较大,而其同一行上的邻点的灰度值较小,通过分离滤波器的处理,叉连点的灰度值会明显降低,所以分离滤波器有去除叉连点的作用。一个基本滤波器要求具备上述两种功能,它的作用相当于平均滤波器加分离滤波器,所以它的权值如右图2.7,其中参数:K=X十P,L=Y+Q,M=Z+R。为归一化权值,基本滤波器的每个权值都需要除以该滤波器