自动指纹识别系统.ppt
指纹识别系统,王梦菲 2011082136毛凯丽 2011082141朱东 2011082144,指纹识别的概念a.指纹识别就是利用人的指纹来识别、验证人的身份,指纹具有唯一性和终身不变性b.指纹识别是一种生物特征识别技术。生物特征识别技术就是采用自动技术测量人体固有的生理特性和行为特征,并将这些特征与数据库的模板数据进行比较来进行个人身份的鉴定。,(1)互异性;世界上两个指纹完全相同的概率小于10-9,几乎为零。(2)不变性;人的指纹特征不随年龄的增长和胖瘦或其他情况的改变而改变。(3)具有和主体永不分离性;这样对主体身份的识别更具真实性。(4)指纹的使用比起其它证卡来说更快捷、安全准确、无干扰,可实现快速登录注册。(5)一个人的十指指纹皆不相同,这样可以方便地利用多个指纹构成多重口令,提高系统的安全性。(6)指纹识别中使用的模板并非最初的指纹图,而是由指纹图中提取的关键特征,这样使系统对模板库的存储量较小。另外,对输入的指纹图提取关键特征后,可以大大减少网络传输的负担,便于实现异地确认,支持计算机的网络功能。,指纹取像,图像预处理,特征提取,指纹识别,数据库管理,自动指纹识别系统AFIS的简单流程,预处理流程图,图像滤波,目前市场上常用的指纹采集设备有三种:光学式、硅芯片式、超声波式,指纹图像采集,指纹图像预处理:预处理的目的是改善输入指纹图像的质量,去除图像中的噪音,把它变成一幅清晰的点线图,以便于提取正确的指纹特征,以提高特征提取的准确性。本文采用灰度分割法对质问图像进行分割。利用中值滤波进行去噪。通过自适应二值化的方法处理指纹图像,最后再对图像进行细化以及去除毛刺,断裂等干扰。指纹图像特征提取:对指纹图像的特征点进行提取。由于经过预处理后的细化图像上存在大量的伪特征点,所以提取大量的伪特征点,这些伪特征点的存在,不但使匹配的速度大大降低,还使指纹识别性能急剧下降,造成识别系统的误拒率和误识率的上升,因此在进行指纹匹配之前,尽可能将伪特征点去除,针对提取出指纹细节特征点含有大量的伪特征这一问题,提出了一种边缘信息判别法,有效地去除了边界伪特征点,再根据脊线结构特性去除其毛刺和短脊等伪特征点,显的减少了伪特征点。指纹匹配:对指纹图像的匹配算法进行研究。特征匹配是识别系统的关键环节,匹配算法的好坏直接影响识别的性能、速度和效率。为了克服指纹图像非线性形变的影响,采用基于结构特征的点匹配算法,对校准后的点集进行匹配,匹配的特征点个数在两个点集中所占比例大约百分之六十五的范围内就可判为匹配成功。,根据灰度的大小对图像进行初步处理,得到初步处理然后对指纹图像进行归一化及分割处理,消除剩下的背景区域。,预处理图像分割,对指纹图像进行分割处理,消除剩下的背景区域。a先对初步处理后的指纹图像进行归一化处理,在此利用公式如下:,b.对指纹图像进行分块,将其分为8*8的小块,如果是背景区域,其灰度的方差较小,而前景区的指纹图像的方差较大,所以对每个小块求其方差,再设定一个阈值,小于阈值的方块区域设置为背景区域,将其灰度值设定为255,而大于阈值的区域的灰度值保持不变,从而可以将指纹图像从背景区域很好的分离。,基于灰度的指纹图像与背景分离算法,指纹预处理过程中最重要的一步就是对指纹图像进行滤波去噪,它是指纹图像预处理需要解决的核心问题。图像滤波的目的是在增强脊线谷线结构对比度的同时抑制噪声,连接断裂的脊线和分离粘连的脊线,按特定的需要突出一幅图像中的某些信息,同时削弱或去除某些不需要的信息。,预处理图像滤波,在进行后续处理中常用的滤波方法有均值滤波、中值滤波、最小均方差滤波等。由于高斯函数的傅立叶变换仍是高斯函数,因此高斯函数能构成一个在频域具有平滑性能的低通滤波器。可以通过在频域做乘积来实现高斯滤波。均值滤波是对是对信号进行局部平均,以平均值来代表该象素点的灰度值。中值滤波是常用的非线性滤波方法,也是图像处理技术中最常用的预处理技术。它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘。加权中值滤波能够改进中值滤波的边缘信号保持效果。最小均方差滤波器,亦称维纳滤波器,其设计思想是使输入信号乘响应后的输出,与期望输出的均方误差为最小。,图像经滤波处理后,其中的纹线(脊)部分得到了增强,不过脊的强度并不完全相同,表现为灰度值的差异。二值化的目的就是使脊的灰度值趋向一致,将灰度图变换为只有黑和白两种灰度的图像。使整幅图像简化为二元信息在指纹识别中,一方面对图像信息进行了压缩,保留了纹线的主要信息,节约了存储空间,另一方面还可以去除大量的粘连,为指纹特征的提取和匹配作准备。,预处理二值化,对指纹图像进行二值化,其基本要求就是二值化后的图像能真实地再现原指纹。具体要求为:1脊线中不出现空白;2二值化后的脊线基本保持原来指纹的特征;3指纹的纹线不应有太多的间断和相连;4指纹纹线间的间距应大致相同。,由于原始指纹图像不同区域深浅不一,如对整幅图像用同一阈值进行二值分割,会造成大量有用信息的丢失。这里我们使用自适应阈值二值化的思想,对每块指纹图像,选取的阈值应尽量使该块图像内大于该阈值的像素点数等于小于该阈值的像素点数。一般灰度图像二值化的变换函数用下列公式表示,T为指定的阈值,x为灰度值,1将指纹图像划分为不重叠的大小为w*w的块,求取该区域内所有像素的灰度平均值。在综合考虑算法速度和处理效果两方面的条件下,本文分块尺寸为88;T为块的灰度平均值见下式:2计算区域内的 和 的值,=灰度值大于等于T的像素点的个数。=灰度值小于T的像素点的个数;3如果,则T为阈值;4若,则T=T+1,否则T=T-1,返回第二步。,自适应阈值二值化的流程图,T为该块指纹图像的平均灰度值、分别为第(k,l)块指纹图像中灰度值大于等于T和小于T的像素点数,是分块尺寸(像素)。,指纹图像二值化后,纹线仍具有一定的宽度,而指纹识别只对纹线的走向感兴趣,不关心它的粗细。细化的目的是为了删除指纹纹线的边缘像素,使之只有一个像素宽度,减少冗余的信息,突出指纹纹线的主要特征,从而便于后面的特征提取。细化时应保证纹线的连接性,方向性和特征点不变,还应保持纹线的中心基本不变。,预处理细化,(1)建立3维数组,第一组数据为预处理后的图像信息,定义每一个像素点它周围点像素参数。(2)对于满足6种情况的模板,赋值为2,其实为像素1情况。对于满足后六种情况的模板赋值为3,别的情况点值不做改变。(3)16种消去模板是在不满足上述情况下衍生的模板,对于满足这些模板的点像素全为0,以上都未涉及的点不做改变。(4)循环进行上述过程,到所有点值不改变为止,最多进行20次细化。细化将黑白二值图像细化成了单个像素带宽的指纹图像,由于模板的选择不同,上图中的细化图像一定程度上存在毛刺、分叉、断点等不理想的情况。所以在特征提出前还需稍加处理,细化好的模板选择可以提高图片的质量和细化运算的速度。,细化算法,快速细化算法改进的OPTA算法,压缩图像的信息,突出指纹的主要特征,减少了对特征点判断的复杂度,缩短判断时间。常用的算法包括:,快速细化算法,1,遍历整幅指纹图像,找出图像的边界点。2,对边界点P针对其3x3领域图,得到两个特征量。,如果P点满足NC(P)为2,且NZ(P)不等于1且小于6就剔除。3,继续寻找下一个边界点,直到没有可删除的点为止。,改进的OPTA算法,像素点取舍判断流程图,统一模板,消除模板,保留模板,根据某点的八个相邻点的情况来判断该点是否能删除,图给出了当前需要处理的像素点在不同的八邻域条件下的情况,可以看出:(1)不能删,因为它是个内部点,我们要求的是骨架,如果连内部点也删了,骨架也会被掏空的;(2)不能删,和(1)是同样的道理;(3)可以删,这样的点不是骨架;(4)不能删,因为删掉后,原来相连的部分断开了;(5)可以删,这样的点不是骨架;(6)不能删,因为它是直线的端点,如果这样的点删了,那么最后整个直线也被删了,剩不下什么;(7)不能删,因为孤立点的骨架就是它自身。,为了避免分裂指纹图像,细化的过程分为两个步骤,第一步是正常的腐蚀操作,但是它是有条件的,也就是说那些被标记的可除去的像素点并不立即消去;在第二步中,只将那些消除后并不破坏连通性的点消除,否则的话保留这些边界点。以上的步骤是在一个33邻域内运算,可以通过查表实现细化的操作。算法的实现步骤如下:,(1)定义一个33模板和一个查找表,模板和查找表分别如表1和图1所示:,erase 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图1 细化查找表,(2)对二值图像从上到下、从左到右进行扫描;该过程结束后再对图像进行从左到右,从上到下的扫描;如果图像中当前像素点的灰度值为“0”,且其左右(第一次扫描过程考虑左右像素点)或上下(第二次扫描过程考虑上下两个像素点)两个像素点中有任意一个为“255”则转至步骤(3),否则回转到步骤(2);(3)该像素点为中心的33区域内的各个像素值和定义的模板中的权值进行卷积求和,得到查找索引值k;(4)根据这个索引值k得到表里相应的数据,如果为“1”,那么该像素点的灰度值设为“255”,如果为“0”,则该像素点的灰度值为“0”。(5)图像从头至尾扫描二遍后,如果该次扫描修改了图像中的点,则跳转至步骤二,开始新的一轮扫描。否则图像细化结束。为了是图像能过更加清晰的展现出来,我们把分割后的指纹图像背景换为白色背景。实验结果见实验结果图。,对于特征点提取的常用算法很多,如:(1)基于二值化的特征提取方法:这种算法对于预处理和增强后得指纹图像进行二值化,然后再提取特征点。(2)基于直接灰度的特征提取方法:这种方法直接从灰度图像出发,通过分析图像的纹理属性和拓扑结构提取特征点。(3)基于细化图像的特征提取方法:这种方法是将指纹图像处理后得到细化图像,通过细化图像提取特征点。,特征提取,本文的特征提取算法是在细化的图像基础上采用是模板匹配法。模板匹配法有运算量小、速度快的优点。主要提取指纹的细节特征即端点和分叉点。端点和分叉点是建立在对8邻点的统计分析基础之上的,则在八邻域的所有状态中,满足端点特征条件的有8种,满足分叉点特征条件的有9种。对于细化图像而言,像素点的灰度值只有两种情况(即0或1)“0”为背景点灰度,“1”为纹线点灰度。对于细化图像上的任意点P,其交叉数定义见式41,P点的八邻域黑点数定义见式42:,4-1,4-2,求出特征点后,再根据平均纹线距离等信息对所得特征点进行有效性检验,去除伪特征点,保留真特征点。然后以特征点的坐标,及特征点的方向d,结合其邻域情况(邻域内的特征点数、相对位置、脊线上特征点所处位置的纹曲率、特征点邻域内的脊线纹密度等等),可以构成该指纹细节特征点的特征向量。将所有的特征向量进行筛选后留下50到80个特征向量,构成指纹特征模板。,改进的特征提取算法,第一步,选定全局特征点。第二步,选定细节点。采用之前讲述的八邻域编码算法。第三步,对选定好的特征点进行去伪存真处理。,识别时本文用到特征点间距离和特征点方向差两概念,特征点和间距离用欧式距离计算,见式(46):,伪特征点滤除算法步骤如下:1若在半径内有个相邻特征点,如果个特征点与中心特征点的结构关系符合上面所述的准则,则是真特征点,保存。如果不符合,需进一步分析,对端点和分叉点分别讨论。2对于端点,判断个相邻特征点种有无短枝、纹线间断伪特征结构,如没有是真特征点。如果有一个或两个,则是伪特征,按照先短枝后纹线间断的顺序进行删除。对于分叉点,判断个相邻结构中,有无毛刺、孔洞、叉连伪特征结构,如没有,则是真特征点。如有一个或多个,是伪特征结构,按照毛刺、孔洞、叉连的顺序进行删除。3对边界特征点的去除,搜索指纹分割时的边缘块,根据块所在的位置,判断特征点离边界的距离,如果小于阈值(一般设为5),则认为该特征点为伪特征点,应予以删除。,算法步骤:(1)分别读取两个特征点集合中的特征点;(2)对特征点进行分类。定义取“1”时,属于特征点端点分类,取“2”时,属于特征点分叉点分类;(3)分别计算他们相对于中心点的方向向量和距离向量;(4)若两特征点的距离向量之差小于“2”且两特征点的方向向量小于等于,则认为两特征点匹配;(5)若不满足(4)的条件则认为不匹配,并删除。一般能找到13个相同的特征就可以认为这两个指纹出自同一个手指,但从匹配来看,平均50个特征匹配点会有34个误配,于是将成功匹配点设置为30个,认为是出自同一个手指。匹配成功的特征点:端点用红色o标注,分叉点用绿色标注o。,指纹匹配,指纹图像比对流程图,