基于Matlab的指纹图像特征提取

更新时间:2024-01-23 20:03:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单位代码 学 号 分 类 号 密 级

毕业设计(论文)

基于Matlab的指纹图像特征提取

院(系)名称 专业名称 学生姓名 指导教师

2012年 5 月 15 日

基于Matlab的指纹图像特征提取

摘 要

随着社会的发展,传统的基于信物或口令的安全系统显得越来越脆弱,不能适应现代安全系统的需要,因而人们需要研究更加安全可靠,防伪性能更好的安全系统。指纹识别技术就是在这种背景下产生的,它借助人体的生理特征来提高身份识别的可靠性,目前已经成为国内外研究的热点。

指纹识别大体分为三个步骤:预处理、特征提取和特征匹配。本文集中于研究特征提取部分,并针对特征提取中的一些关键算法和实现进行了研究和优化,其主要内容如下:在特征提取方面,本论文采用了一种8邻域编码纹线跟踪算法,标注出端点和分叉点来进行特征提取;在剔除伪特征点时,先进行去边缘处理,再根据不同类型伪特征点的特征,采用相应剔除算法。实验表明,以上算法具有较小的运算量和较高的准确性。上述算法在本文中均用Matlab实现,取得了较好的效果,为后续的特征匹配工作打下了良好的基础。

关键字:指纹特征提取,去除伪特征,算法仿真

Matlab-based fingerprint image feature extraction

Abstract

With the development of society, the traditional safety system based on keepsake and password has been weaker, Which can not meet the requirement of modern safety system. In this case, the need of a more reliable safety system with higher anti-fake performance prompts the appearance of fingerprint identification technique. This technique, with a higher safety and reliable performance, can improve the reliability of identity resolution in virtue of human body’s physiological feature, and it has been a research focus these days.

Fingerprint identification falls into three parts, they are pretreatment, feature extraction, and characteristic matching. The thesis mainly focus feature extraction, it optimized and innovated some key algorithms of this parts, which can be described as follows: in the feature extraction part, the thesis used a eight-neighborhood coding ridge tracing algorithm, removing some templates of consecutive points and bifurcate points which have been optimized and removed in the thinning algorithm, and finally marking terminate points as well as bifurcate Points to execute feature extraction. Experiment result indicated that such new algorithm has a less operation but with a higher accuracy. All the algorithms introduced above have been implemented on Matlab, and result proved an adaptive good effect, which facilitates the next characteristic matching process.

Key words: Feature extraction, Removing of false characteristic points, Algorithm simulate

目 录

1 绪论 ........................................................................................................................................ 1

1.1引言 ............................................................................................................................... 1 1.2 生物识别技术简介 ...................................................................................................... 1 1.3指纹识别技术 ............................................................................................................... 2

1.3.1指纹识别简介 ..................................................................................................... 2 1.3.2指纹识别原理 ..................................................................................................... 3 1.3.3指纹识别的发展 ................................................................................................. 3 1.3.4指纹识别的优缺点 ............................................................................................. 5 1.3.5指纹识别系统 ..................................................................................................... 5 1.4指纹图像特征提取 ....................................................................................................... 6 1.5主要内容和结构安排 ................................................................................................... 7

1.5.1主要内容 ............................................................................................................. 7 1.5.2结构安排 ............................................................................................................. 7

2 指纹图像的预处理 ................................................................................................................ 9

2.1归一化 ........................................................................................................................... 9 2.2图像增强 ....................................................................................................................... 9 2.3二值化 ......................................................................................................................... 10 2.4细化 ............................................................................................................................. 11 2.5本章小结 ..................................................................................................................... 12 3 指纹图像特征的提取 .......................................................................................................... 13

3.1指纹图像的特征 ......................................................................................................... 13

3.1.1全局特征 ........................................................................................................... 13 3.1.2局部特征 ........................................................................................................... 13 3.2指纹图像特征点的提取 ............................................................................................. 14

3.2.1直接灰度图像法 ............................................................................................... 15 3.2.2基于细化图像的模板匹配法 ........................................................................... 16

3.2.3算法比较 ............................................................................................................. 1 3.3伪特征点的滤除 ......................................................................................................... 18

3.3.1伪特征点分类及特点 ....................................................................................... 18 3.3.2伪特征点的剔除算法 ....................................................................................... 19 3.4特征提取算法Matlab算法仿真 ................................................................................ 21 3.5本章小结 ..................................................................................................................... 24 4 总结与展望 .......................................................................................................................... 25

4.1总结 ............................................................................................................................. 25 4.2展望 ............................................................................................................................. 25 致谢 .......................................................................................................................................... 26 参考文献 .................................................................................................................................. 27 附录A 主程序 ........................................................................................................................ 30 附录B 提取特征点程序 ........................................................................................................ 31 附录C 剔除伪特征点程序 .................................................................................................... 33

第1页

1 绪 论

1.1引言

随着社会经济的发展,人们的工作生活越来越依赖现代信息技术和网络技术,越来越多的场合,小到个人的虚拟账户密码,大到一个公司甚至是国家机密都需要对使用者、来访者进行身份识别,从而达到对自身的信息、资料以及财产进行可控制的保护,努力避免被不法分子非法入侵或者占有。因此信息安全对于现代社会来说己经变得越来越重要了,它涉及到人们生活的方方面面。同时由于黑客技术借助互联网传播的十分泛滥,这类高科技犯罪活动追究起来过程非常复杂,导致了现在黑客犯罪活动十分地猖獗。几乎每分每秒都有个人或者公司被非法入侵,因此目前形势非常严峻。如何保护人们的信息安全已经成为不得不面对的问题。如何准确识别个人身份信息是解决信息安全问题的一个关键。

目前常见的身份识别方法主要是基于实物(如证件、签名等等)的识别技术和基于电子技术的密钥或者密码的识别技术,而这些认证手段存在诸多缺陷。首先,这些认证手段的安全性不高,极容易通过伪造、窃取或者破解获得。其次,这些认证手段并不是随身携带的,都面临着证件丢失,密码遗忘等问题。一旦这些凭证被不法分子获得,将直接给人们带来巨大的损失和潜在的风险,因此这些手段的可靠性都比较低。目前,为了提高安全性、可靠性,一般采取经常更换密钥、甚至是证件等方式。但是在这些措施只能暂时的缓解被破解、伪造的紧迫性,并不能从根本上提高安全性,并且这些方式都给人们的生活带来诸多不便和损失。因此可以说这两种身份识别技术已经无法满足现实的需要,传统的身份识别技术己无法满足现代生活的需要,社会迫切的需要一种更高可靠性的,更方便的保密验证手段。新的更高安全性的身份识别技术正吸引着越来越多的机构学者的目光,身份识别技术正成为当今信息安全领域的热点[1]。 1.2 生物识别技术简介

生物识别[2](Biometrics),简单来讲,就是利用人体生物特征进行人的身份辨别的过

第2页

程。生物识别的过程是一个模式识别的过程。模式识别定义为:对表征事物或现象的各种方式的(数值的、文字的或逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,是信息科学和人工智能的重要组成部分。

众所周知,人类具有很强的模式识别能力。通过视觉信息识别文字、图片和周围的环境,通过听觉信息识别与理解语言。模式识别能力是人类智能的重要组成部分。生物识别遵循模式识别的原则规律,它通过判定相似度来确认生物特征相不相同。通过筛选的方式,即事先设定一个相似度阈值,在阈值以上的确认通过筛选,以下的拒绝通过,筛选通过的就是符合匹配条件的对象。

生物识别的对象是人,生物识别的主体是机器系统或者计算机系统。生物识别有两大基石。一是它必须基于“人的生物特征是各不相同”这一基本规律,否则无法根据人的生物特征来辨识不同对象。二是人的生物特征可以被外化,并表示为机器系统可读的形式,可以理解的“语言”。外化表示通过专门的电子化、自动化的生物特征采集设备,直接获得生物特征数据,输送给计算机系统进行辨识。生物识别是建立在对人的生物特征辨别的基础上的。人的生物特征包括生理特性和行为方式。生理特征有手形、指纹、脸形、声音、虹膜、视网膜、静脉图案、身体气味、足印、脑电波、脉搏、耳廓、DNA 等,行为特征有签字、按键力度、步态等。

目前,全球来讲,在指纹识别、脸形识别、虹膜识别和语音识别四个方面的研究成果较多,产品化程度也较高。在行为特征辨识的研究方面,对签名识别和按键力度识别的研究相对充分。 1.3指纹识别技术 1.3.1指纹识别简介

指纹,由于其具有终身不变性、唯一性和方便性,已几乎成为生物特征识别的代名词。指纹是指手指末端正面皮肤上凸凹不平的纹路,是在胎儿期6个月时形成的,在人的一生中指纹的纹线类型、结构、统计特征的总体分布等始终没有明显变化。任何手指指纹都独一无二,而且不同人的指纹特征相同的可能性几乎为零。指纹纹线的形态终生不变,及其唯一性,所以使用指纹来鉴别身份,指纹识别[3]也是最安全最可靠的识别方法。

第3页

指纹特征是人终生不变的特征之一,人体指纹含有天然的密码信息,其具有作为密码信息必须具备的三个重要性质:

(1) 广泛性,指每一个正常的人都有指纹。 (2) 唯一性,指每一个人的指纹都不同。 (3) 终身不变性,指非意外事故指纹终身不变。

指纹是人体所固有的特征,随身携带,不易遗忘或丢失,使用方便;与人体是唯一绑定的,防伪性好,不易伪造或被盗。因此,作为一种可靠的方法,可以运用指纹鉴定进行身份认定。 1.3.2指纹识别原理

指纹识别即指通过比较不同指纹的细节特征点来进行鉴别。由于每个人的指纹不同,就是同一人的十指之间,指纹也有明显区别,因此指纹可用于身份鉴定。

其实,我国古代早就利用指纹(手印)来签押。1684年,植物形态学家Grew发表了第一篇研究指纹的科学论文。1809年Bewick把自己的指纹作为商标。1823年解剖学家Purkije将指纹分为九类。1880年,Faulds在《自然》杂志提倡将指纹用于识别罪犯。1889年Edward Herry提出了著名的Herry系统来对指纹进行分类[4]。之后,英国、美国、德国等的警察部门先后采用指纹鉴别法作为身份鉴定的主要方法。随着计算机和信息技术的发展,FBI和法国巴黎警察局于六十年代开始研究开发指纹自动识别系统(AFIS)用于刑事案件侦破。目前,世界各地的警察局已经广泛采用了指纹自动识别系统。九十年代,用于个人身份鉴定的自动指纹识别系统得到开发和应用。

由于每次捺印的方位不完全一样,着力点不同会带来不同程度的变形,又存在大量模糊指纹,如何正确提取特征和实现正确匹配,是指纹识别技术的关键。指纹识别技术涉及图像处理、模式识别、计算机视觉、数学形态学、小波分析等众多学科。 1.3.3指纹识别的发展

随着科技的进步,指纹识别技术已经开始慢慢进入计算机世界中。目前许多公司和研究机构都在指纹识别技术领域取得了很大突破性进展,推出许多指纹识别与传统IT技术完美结合的应用产品,这些产品已经被越来越多的用户所认可。指纹识别技术多用

第4页

于对安全性要求比较高的商务领域,而在商务移动办公领域颇具建树的富士通、三星及IBM等国际知名品牌都拥有技术与应用较为成熟的指纹识别系统,下面就对指纹识别系统在笔记本电脑中的应用进行简单介绍。 (1)第一代指纹识别系统

众所周知,在两年前就有部分品牌的笔记本采用指纹识别技术用于用户登录时的身份鉴定 ,但是,当时推出的指纹系统属于光学识别系统,按照现在的说法,应该属于第一代指纹识别技术。光学指纹识别系统由于光不能穿透皮肤表层(死性皮肤层),所以只能够扫描手指皮肤的表面,或者扫描到死性皮肤层,但不能深入真皮层。

在这种情况下,手指表面的干净程度,直接影响到识别的效果。如果,用户手指上粘了较多的灰尘,可能就会出现识别出错的情况。并且,如果人们按照手指,做一个指纹手模,也可能通过识别系统,对于用户而言,使用起来不是很安全和稳定。 (2)第二代电容式传感器

后来出现了第二代电容式传感器,电容传感器技术是采用了交替命令的并排列和传感器电板,交替板的形式是两个电容板,以及指纹的山谷和山脊成为板之间的电介质。两者之间的恒量电介质的传感器检测变化来生成指纹图像。但是由于传感器表面是使用硅材料,容易损坏,导致使用寿命降低,还有它是通过指纹的山谷和山脊之间的凹凸来形成指纹图像的,所以对脏手指、湿手指等困难手指识别率低。 (3)射频指纹识别技术

发展到今天,出现第三代生物射频指纹识别技术(射频原理真皮指纹核心技术(线型采集器)),射频传感器技术是通过传感器本身发射出微量射频信号,穿透手指的表皮层去控测里层的纹路,来获得最佳的指纹图像。因此对干手指、汗手指等困难手指通过可高达99%,防伪指纹能力强,指纹敏感器的识别原理只对人的真皮皮肤有反应,从根本上杜绝了人造指纹的问题。因为射频传感器产生高质量的图像,因此射频技术是最可靠,最有力的解决方案。除此之外,高质量图像还允许减小传感器,无需牺牲认证的可靠性,从而降低成本并使得射频传感器的思想应用到可移动和大小不受拘束的任何领域中。

第5页

1.3.4指纹识别的优缺点 优点:

(1)指纹是人体独一无二的特征,并且它们的复杂度足以提供用于鉴别的足够特征;

(2)如果要增加可靠性,只需登记更多的指纹、鉴别更多的手指,最多可以多达十个,而每一个指纹都是独一无二的;

(3)扫描指纹的速度很快,使用非常方便;

(4)读取指纹时,用户必需将手指与指纹采集头相互接触,与指纹采集头直接接触是读取人体生物特征最可靠的方法;

(5)指纹采集头可以更加小型化,并且价格会更加的低廉; 缺点:

(1)某些人或某些群体的指纹特征少,难成像;

(2)过去因为在犯罪记录中使用指纹,使得某些人害怕“将指纹记录在案”。 (3)实际上现在的指纹鉴别技术都可以不存储任何含有指纹图像的数据,而只是存储从指纹中得到的加密的指纹特征数据;

(4)每一次使用指纹时都会在指纹采集头上留下用户的指纹印痕,而这些指纹痕迹存在被用来复制指纹的可能性 1.3.5指纹识别系统

指纹识别系统是一个典型的模式识别系统,包括指纹图像获取、处理、特征提取和比对等模块。目前的自动指纹识别系统是集计算机、网络、光电技术、图像处理、智能卡、数据库等技术于一体的综合高端技术。自动指纹识别技术主要包括四个方面:指纹图像的录入、图像预处理、特征提取和特征匹配。下面就以上各部分做简要的介绍。 (1)指纹采集

最早的指纹采集方法是用手指蘸上墨水或印油在纸上用扫描仪摄取,由于其严重的不可靠性,该方法早已经被淘汰。随着光学仪器、传感器及数字技术的发展,各种快速精确、方便小巧的采集设备都得到了应用。目前主要使用光学扫描仪和固态阵列传感器进行采集。前者用激光照在手指上,然后用CCD阵列摄取其反射光,由于反射光随着

第6页

指纹的脊线和谷线的深度不同而不同,因此可以得到指纹图像。后者是用大量的敏感元件组成的固态阵列芯片,它们采用电容传感、热敏传感或其他传感技术,通过感受按压指纹的压力、热度等特征来摄取指纹。 (2)指纹图像预处理

预处理在整个自动指纹识别系统中是很关键的一步。通常直接输入计算机的图像有一定的噪声,我们需要去除这些噪声才能进行下面的细化、特征提取和特征匹配等操作。然而在实际应用中,由于采集条件(手指太湿、太干或太脏)和采集设备等因素的制约,采集到的指纹图像质量比较差,含有大量的噪音,容易导致很多问题,影响后续的处理效果。因此,在对图像进行特征提取前,必须经过一系列的预处理消去大量的噪声信号,以便得到清晰的纹线。 (3)特征提取

传统的特征提取方法主要有两种:第一种是直接从原始指纹图像上进行细节特征提取,另一种是从细化后的指纹图像上进行特征提取。第一种算法比较复杂,受噪声干扰影响较大,特征点定位不精确,大多数系统都采用了第二种方法。指纹图像存在两种待提取的特征:全局特征和局部特征。全局特征用于指纹的分类,一个重要的全局特征是中心区的形状;局部特征是指纹中的细节,它可以通过细化后的指纹图求得。目前最常用的细节特征是美国联邦调查局(FBI)提出的细节点坐标模型,它利用端点和分叉点这两种特征,只需要一个3×3模板便可将端点和分叉点提取出来。 (4)特征匹配

特征匹配是将输入指纹的特征与指纹模板库中所存储的指纹特征进行比较,找出最相似的指纹作为识别的输出结果。这个过程也就是我们所说的指纹识别/认证的过程,它是指纹识别系统的核心。其中指纹识别用于判断指纹是属于哪个人的,而指纹认证则是用来判断两个指纹是否属于同一个人。 1.4指纹图像特征提取

指纹特征提取包括纹线细化、特征点(交叉点、断点、中心点、三角点等)检测与分类、伪特征点消除、特征点特性参数计算、特征参数压缩编码、全局特征(“斗”、“箕”、“旋向”等)检测等步骤,特征提取算法应能适应噪声、畸变、位移、旋转、缺损、变

第7页

形等常见的实际情况。

细节特征的提取就是在指纹图像中找到脊终点和脊分叉两个细节特征,一般说来,如果指纹图像能够很好地分割,那么对于细节特征提取来说,就仅仅是对细化的指纹图像进行沿脊线的点的判断。然而,在实际中由于指纹图像本身存在噪声或在提取特征时,滤波和细化引入了噪声,我们无法得到完美的指纹图像细化图,在提取特征时会产生一些虚假细节特征。虚假细节特征的存在会同时提高指纹图像匹配时的误识率和拒识率。因此,在特征提取时,往往需要进行虚假细节特征删除,一般采用启发式算法对虚假特征进行删除。 对于一个分叉点的分支如果小于某个给定阈值,就将其当作毛刺删除;如果脊线的两个端点很近,那么该脊线有可能是噪声引起的,应删除;在指纹图像边缘的脊终点也应删除。

特征提取的结果一般保存为特征模板,它包括脊终点或分叉类型、位置坐标以及该特征的方向。 一般的指纹图像提取的特征在10—100 之间。 1.5主要内容和结构安排 1.5.1主要内容

指纹图像的处理,包括指纹图像预处理、特征提取和特征匹配三个部分工作。其中指纹图像预处理是指对采集头采集的指纹进行图像归一化、图像增强、二值化和细化;特征提取,包括指纹特征的提取以及伪特征的剔除;特征匹配主要分为初匹配和二次匹配两个阶段。本文主要研究指纹图像的特征提取,介绍了特征点的提取以及伪特征点剔除的算法。 1.5.2结构安排

本文共分为4章,结构安排大致遵循指纹图像识别的处理流程,即按照指纹图像处理的先后顺序:先进行指纹图像的预处理、然后进行特征的提取,省去了指纹特征匹配阶段。具体安排如下:

1.介绍了生物识别技术所包含的内容,指纹识别技术的优缺点与发展现状,以及指纹识别系统的结构,简要介绍了本文研究的主要内容。

第8页

2.对指纹图像的预处理的各个步骤做简要介绍。

3.指纹特征的提取。首先介绍如何对指纹特征进行表征,即通过何种特征来标识一个指纹,具体方法有全局特征和局部特征。接着介绍常用的特征提取方法,以及它们的优缺点。最后给出了本文的指纹特征提取方法,并根据各种伪特征点的形成原因、特点,采用了富有针对性的剔除伪特征点算法,并通过Matlab进行算法仿真验证。

4.结语。总结回顾指纹图像特征提取的方法,对后续进一步研究的进行合理的展望。

第9页

2 指纹图像的预处理

对于一幅指纹采集头采集的原始图像,为了使后续特征提取的操作能够正常有效的进行,必须对原始指纹图像进行一定的处理。通常这样的处理过程包括归一化、图像增强、二值化和细化等过程。下面将依次介绍预处理是如何实现的。 2.1归一化

由于在指纹采集的过程中,采集的指纹图像灰度不均,即有的指纹图像偏暗,有的偏亮。这给建立统一的、有效的后续指纹图像处理算法带来了极大的不便。因此有必要将每幅指纹图像都通过归一化(又叫“规格化”,“均一化”)处理,方便后续的处理。

指纹图像的归一化主要是通过求取指纹图像的灰度均值和方差,将灰度均值和方差调整到一个期望的范围。从而在不改变图像的灰度特性(指:灰度均值和方差)的前提下,实现所有指纹图像的灰度都分布在同一个期望的范围内,实现指纹图像的归一化。 2.2图像增强

指纹图像增强,就是对指纹图像采用一定的算法进行处理,使其纹理结构清晰化,尽量突出和保留固有的指纹特征信息,并消除噪声,避免产生虚假特征。其目的是保持特征信息提取的准确性和可靠性。

从目前的研究情况和各种算法的综合比较来看,空域滤波和频域滤波仍然是指纹图像增强中比较有效且占据主流地位的方法。

空域滤波法通过对滤波算子和原始图像作卷积来实现图像增强,具有简单直观,易于分析的优点。

O’Gorman和Nickerson较早提出采用方向滤波器进行指纹图像增强。他们利用指纹独特的方向性设计出相应的方向滤波器模板,这种滤波器能够沿指纹纹线方向对图像进行平滑处理,具有一定的消除噪声和弥合裂纹的能力,同时能提高指纹脊线和谷线在图像中的对比度。但是,该方法没有使用指纹的频率信息,主要依据经验来确定滤波器模板,对低质量指纹图像的处理效果较差,具有一定的局限性[5]。Greenberg等使用具

第10页

有结构自适应能力的各向异性滤波器对指纹图像进行滤波,能够在滤除噪声的同时保护指纹纹线结构,但是同样没有结合指纹的频率信息,对指纹纹线变化的适应能力有限。 Hong等提出采用具有方向和频率选择性的二维Gabor滤波器来增强指纹图像。他们根据指纹的方向性将二维Gabor滤波器调制到各个方向,并根据指纹的频率信息来确定滤波器的中心频率,然后使用所得的Gabor滤波器组对图像进行滤波。该方法较好地结合了指纹的方向信息和频率信息,对指纹图像的增强效果比较显著。其不足之处在于,容易破坏纹线方向变化剧烈的模式区域,会在一定程度上改变脊线和谷线的位置及比例关系,对细节特征的保护能力有限[6]。

频域滤波法通过直接改善图像的频谱来实现图像增强。由于指纹纹线具有较强的等周期性,因此从频谱上看,指纹图像的能量通常集中在某个频率附近,这为在频域进行指纹图像增强带来方便。

Sherlock等提出了基于频域的方向滤波算法。首先在频域定义出一组方向滤波器对指纹图像的频谱进行滤波处理,每一个方向滤波器在提取出对应方向的频谱信息的同时削弱其它方向的频谱信息,然后在空域将滤波结果按指纹图像的方向信息进行融合,从而得到完整的增强图像。该方法利用了图像的全局信息,对低质量指纹图像也能取得较好的增强效果,但是仅以常数作为指纹的脊线频率,没有考虑频率的空间变化性,对指纹的纹线结构和细节特征具有一定的破坏性。另外,该方法需要对整幅图像进行多次傅立叶变换,存在较多的运算,计算效率还有待提高[7]。Kamei和Mizoguchi在频域对图像作方向滤波时进一步考虑了指纹的局部频率信息,并使用贪婪算法以能量最小化的方式对滤波图像进行融合。该方法的最大问题是计算量和存储量均较大,不利于实际应用。Willis和Myers提出了一种快速的频域增强算法。首先将指纹图像分成一系列小方块,并对各图像子块分别作傅立叶变换以得到相应的频谱,然后采用求幂的方法直接修改幅度谱值,最后通过傅立叶逆变换得到增强图像。该方法不需要计算原始指纹图像的方向和频率,因此简单易行,计算量较小,但是在噪声的影响下会对图像造成较大的破坏,其合理性还有待进一步研究。 2.3二值化

所谓二值化就是将灰度图像转化为灰度值为0、1组成的黑白图像,0为背景点灰

第11页

度,1为纹线点灰度,它是指纹图像处理中重要的一步。由于指纹图像的方向特征、细节点位置等特征的提取以及匹配都跟像素点灰度值的多少没关系,只跟指纹图像的脊线的形状、走向有关系,因此二值化处理不会丢失指纹图像的特征信息,另外二值化还可以方便图像信息的存储,节约存储空间,并且方便了后续的计算处理。常用的二值化方法有:固定阀值法、局部自适应阀值法等。

固定阀值法[8]就是整幅指纹图像采用一个固定的阀值,对于灰度值大于这个阀值的像素点的灰度值置为1,小于等于这个阀值的像素点其灰度值置为0。这种算法非常简单、处理起来非常快,但是具有非常大的缺陷。由于指纹图像在采集时的环境(光线、压力、湿度等),整幅指纹图像的明暗分布并不是均匀的,往往存在某一部分局部过暗(即灰度值偏小),而另外一部分局部过亮(偏大)。这样若采用固定阀值进行处理,将导致过暗和过亮部分的特征信息丢失,因此一般不采用这种算法。

局部自适应阀值法[9-10],它是针对固定阀值法的缺陷提出的,该算法将指纹图像划分为大小合适的子块,对每一个子块进行求取阀值,然后进行分块二值化。该算法在没明显增大运算量的情况下,有效的克服了固定阀值法的不足。 2.4细化

二值化后的指纹脊线平均宽度为6—8个像素,由于按捺的轻重不匀使指纹脊线的粗细不能恒定,难于据此直接抽取指纹的特征集。所以,指纹图像二值化后要进行细化。细化是图象分析、信息压缩、特征提取、模式识别常用的基本技术。它是在不改变图像像素的拓扑关系的条件下,连续擦除图像边缘像素,使纹线最终成为一个像素宽。细化算法的迭代必须收敛且不能破坏纹线的连接性,不能引起纹线的逐步吞食,还要尽可能的保护指纹的细节特征,细化的骨架也要尽可能接近纹线中心线,要求算法简单、高效。

常用的细化算法包括逐层剥离法、距离变换法。逐层剥离法是反复将图像边缘层的点剥去,直至得到中心骨架,其特点是简单、实用、容易理解,所以较为常用,但该方法依赖于像素的执行顺序,因而容易受毛刺或孔洞噪声的影响,且一般需要多次迭代,速度较慢。距离变换法利用中心骨架到脊线边缘距离相等,把到脊线两边边缘距离相等的点连接起来,就可以得到中心骨架,这种方法更符合人类提取骨架的认知过程,受局部噪声干扰小,但其算法设计不直观,且对许多应用并不具有鲁棒性(Robust),尤其是

第12页

应用于处理那些粗细不均匀的纹理。逐层剥离法按照细化顺序又主要分为两类:串行细化和并行细化。串行细化算法一次只能对一个像素进行处理,每次处理不仅与上一次处理的结果有关,而且还和本次已处理过的像素有关;并行细化算法则每次同时对所有的像素或它的一个子集进行处理。串行细化算法即单连通细化(OPTA)算法[11]通过构造一组指纹细化模板,对于脊线上的每个像素点取其一定范围的邻域,如果该邻域与模板符合就保留该当前点,不符合则删除。通常,为了得到更加准确的骨架,往往采用两组模板,一组被称为删除模板,用于决定当前点是否删除,若不符合删除模板,则保留;若符合删除模板,则还要与另一组被称为保留模板的模板比较,若符合保留模板,则保留;若不符合保留模板,则最终删除。OPTA 算法能满足收敛性、连接性、拓扑性和保持性,对指纹图像的细化能达到较好的效果。 2.5本章小结

本章简要阐述了指纹预处理阶段中的图像归一化、滤波增强、二值化以及细化等步骤,并对各个步骤的常用的算法的研究状况和优缺点做了简要介绍。

第13页

3 指纹图像特征的提取

指纹图像的最终匹配还要依赖指纹的特征点来进行。采集到的指纹图像在经过归一化,增强,二值化和细化之后基本保留了原始指纹的纹理特征。目前流行的自动指纹识别系统大多采用基于细节点的表达方式,故在进行指纹的细化及细化处理之后要进行指纹的特征提取,以方便最后的指纹匹配。 3.1指纹图像的特征 3.1.1全局特征

全局特征[12]是指可以直接观察到的宏观特征,必须通过图像整体获得。目前最常见的表示指纹图像的全局特征是按照指纹的脊线总体结构来确立的,具体包括指纹的纹形、模式区、核心点(core)、三角点(delta)和脊线数五个特征。

(1)纹形,是指指纹脊线整体走向,主要有三大类:拱型(arch)、帐型(tended arch)、左箕型(left loop)、右箕型(right loop)、斗型(whorl)、双箕型(double whorl)。拱型没有中心点和三角点,帐型和箕型有一个中心点和三角点,双箕型有两个中心点[13]。

(2)模式区,是指包含了指纹图像的大部分总体特征的区域,通过这个区域也能够分辨出指纹是属于哪个类型的。

(3)核心点(core),是指指纹脊线的渐进中心点。

(4)三角点(delta),一般是指从中心点开始的第一个分叉点、断点、孤立点等等,常与核心点一起称为奇异点。

(5)脊线数,指的是模式区内指纹脊线的数量。

全局特征一般用在大规模指纹库中,实现快速分类,也可以用在特征匹配中的粗匹配阶段。 3.1.2局部特征

局部特征是指指纹拓扑图中的几种有效的特征,比如指纹纹路是不是连续的,方向

第14页

是不是一致,具体到细节特征就表现为断点、分叉点、交叉点、桥、环等等,这些通常称为特征点。这些特征点之间,特征点与周围脊线之间等等都包含了丰富的信息,比如特征点的类型、方向、位置等等。特征匹配就是利用这些信息进行的。

据统计,这几类特征点占特征点的比率如3—1所示。从表中可以发现,端点和分叉点占特征点91%,而交叉形、桥形以及环形三类总共只占9%左右[14]。这一方面说明了几乎所有的指纹都有端点和分叉点,而且数量丰富;另一方面也反映了不是所有的指纹都有桥形、环形等特征点,而且即使有数量也比较少。因此为了能普遍的表征指纹图像,一般选用端点和分叉点作为指纹图像特征点。

图3—1特征点类型及所占比例

一幅质量比较好的指纹图像,一般有40—100个特征点,但真正匹配时,由于受指纹采集时外界影响比较大,不可能实现100%匹配。英国司法界认为有12个细节点匹配,就可以认为两幅指纹相同,美国FBI认为8个细节点匹配就足够了[15-16]。 3.2指纹图像特征点的提取

指纹特征提取是指纹自动识别的核心技术之一,它一般分为两个阶段:提取特征点和伪特征点的剔除。迄今为止,人们已经对指纹细节特征提取算法进行了很多的研究工

第15页

作。最早提出特征点提取算法的是美国联邦调查局(FBI)的自动指纹识别技术研究人员。他们采用了一种二级算法,用自适应“编辑”方法将指纹图像二值化,再从二值化后的指纹图像中提取特征点。该算法的提出在指纹识别领域具有开拓性的意义,并且该算法在相当一段时间内被广泛地用作细节特征点的标准算法,获得了广泛的应用。

最常用的特征点提取算法有两类:一是从灰度图像直接提取特征点;二是对预处理细化后的图像进行提取特征点。下面将对这两种特征点提取算法进行介绍比较,并确立本文将要采用的特征点提取算法。 3.2.1直接灰度图像法

直接灰度图像指纹特征提取[17-18]的原理是使用模式识别的方法跟踪灰度图上的纹线走向。正常区域指纹的纹线应该是连续的,当出现断裂终止分开时,则停下来根据规则进行特征点判定。

该算法主要由几个紧密联系的模块组成:

(1)跟踪步进模块,主要负责预测下一步跟踪方向和步长,用来沿纹线前进一步。 (2)中心点确定模块,负责确定纹线的脊部中心点,使跟踪方向不断调整,始终沿纹线的中心前进。

(3)标记模块,用来给跟踪过的纹线作记号,以免重复跟踪,陷入死循环。 (4)特征判定模块,负责当跟踪到达纹线流向异常区域时,判定是否为特征点及特征点类型。

具体算法如下[19]:

(1)计算指纹图像的方向图,一般以块方向作为指纹的方向。

(2)从初始点出发,根据指纹图像的方向信息,在该处的法线方向上,半个指纹周期内,求取灰度分布的最大值和最小值,并以该最大值处的像素点作为新的出发点。

(3)从新的出发点出发,沿指纹图像的方向图的方向前进一定步长(算法最开始是按固定步长进行跟踪的,后来发展到自适应步长跟踪),继续在发现方向求取灰度分布的最大值和最小值,仍然以最大值处的像素点作为新的出发点。

(4)不断重复步骤3,实现脊线跟踪,直到求取的灰度分布的最大值出现明显的变小,与最小值差不多,甚至相等时,停止跟踪,说明己经到脊线的末端,此处即为特

第16页

征点端点处。若跟踪到的脊线与先前己经跟踪过的脊线相交,停止跟踪,求取两条脊线交点位置,此处即特征点分叉点。

直接从灰度图像中提取特征的算法一般是对灰度指纹纹线进行跟踪,根据跟踪结果寻找特征的位置和判断特征的类型。这种方法省去了复杂的指纹图像预处理过程,但是特征提取的算法却十分复杂,而且由于噪声等因素影响,提取的特征信息(位置、方向等)也不够准确。

3.2.2基于细化图像的模板匹配法

基于细化图像的模板匹配法[20-21],是先将指纹图像经过图像归一化、增强、二值化和细化等一系列的预处理得到细化的指纹图像,再通过构建像素的3×3邻域(如图3—2所示)提取指纹图像的特征点。图中P为待测像素点,Pl、P2······P9为P的邻域,Cn(P)为这8个邻域像素的相邻像素的灰度值(此时己二值化,所以灰度值只可能为0或l)从0变为1,或者从1变为0的次数。Sn(P)为8邻域像素中为1的像素的个数,具体按式(3—1)、(3—2)计算。

Cn(P)??Pi?1?Pi (其中P9?P1) (3—1)

i?188Sn(P)??Pi (3—2)

i?1通过分析可知,细化后的指纹图像的邻域状态如图3—3所示。对于脊线上的像素,可根据其邻域的Cn(P)和Sn(P)数值判定此时P像素点的状态。通过分析可以发现

Cn(P)和Sn(P)数值仅存在以下三种情况:

(1)若P点为脊线上的点,且Cn(P)=2,Sn(P) =l,则可判定像素点P为端点,如图3—3中E点。

(2)若P点为脊线上的点,且Cn(P)=4,Sn(P) =2、3或者4,则可判定像素点P为脊线上的连续点,即不是特征点,如图3—3中的C1点、C2点、C3点、C4点。

(3)若P点为脊线上的点,且Cn(P)=6,Sn(P) =3,则可判定像素点P为分叉点,如图3—3中点B点。

第1页

P1 P8 P7 P2 P P6 P3 P4 P5 E C1 C2 B C3 C4 图3—2邻域示意图 具体算法如下:

图3—3细化后的指纹图像 (1)从端点出发,端点的八邻域只有一个点的灰度值为1,该点就是脊线跟踪的下一点。

(2)对脊线中间连续点,因为八邻域只有两个点灰度值为1,除去上一个被跟踪的点,剩下的一点即为下一个待跟踪点。

(3)设集合Ω={xi,yi,zi,gi},根据Cn(P)及Sn(P)的值判断被跟踪点的类型,并记录下端点或分叉点的横坐标xi,纵坐标yi,及特征点的类型zi,gi是特征点的角度跟踪结束条件。端点的角度取从端点为起点的端线的角度,分叉点的角度取相对最小分支线的角度。端线及分支线的角度求法为:即从一个特征的位置出发坐标为(xi,yi)搜索到步长为7是最后一点坐标为(x,y)。如下式3—3。

gi=arctg(y-yi)/(x-xi) (3—3)

对指纹图像中的所有像素进行处理,分别记录下所有检测到的端点和分叉点,即完成了特征提取的第一步──特征的提取。 3.2.3算法比较

以上即是常用的两种特征点提取算法,通过比较不难发现:基于灰度直接提取算法原理比较简单,简化了图像增强、二值化步骤,直接求取脊线并得到特征点。并且由于步骤的简化一定程度上降低了伪特征点出现的概率。这两点是该算法的最大优点。但是

第18页

该算法对图像的质量要求比较高,仅适合图像质量非常好,脊线清晰的指纹图像,对于较模糊的指纹图像则无能为力。另外,该算法脊线跟踪的步长不好确定,即使采用自适应步长也只是稍微降低丢失特征点的情况,没有从根本上改观,加上是利用灰度分布直方图来确定特征点的,因此特征点的位置信息并不十分精确,有可能与实际的位置出现偏差,尤其是在图像模糊的情况下,更是相差甚远。基于细化图像的模板匹配法,算法稍微复杂一下,跟前一算法相比,多了图像增强和二值化。但是由于模板匹配法采用的是遍历原则,即对所有像素都进行特征点判定,所以不会出现第一种算法那样的特征点丢失的问题。另外由于在预处理阶段增加了图像增强和二值化,所以在算法的鲁棒性方面比第一种算法更好。所以考虑到指纹识别系统的鲁棒性,以及特征点提取算法的可靠性本文采用第二种算法。 3.3伪特征点的滤除

提取指纹图像的细节特征,是在细化图像进行的。由于图像质量和噪声的干扰,经过预处理后的细化图像上存在大量的伪特征点,所以特征提取后可能产生多达一、两万个细节特征点,其中包含了大量的伪特征点,这些伪特征点的存在,不但使匹配的速度大大降低,还使指纹识别性能急剧下降,造成识别系统的误拒率和误识率的上升,因此在进行指纹匹配之前,尽可能将伪特征点去除,同时保留真特征点。 3.3.1伪特征点分类及特点

在特征提取算法提取的特征点集中存在了一定数量的伪特征点,这是不可避免的,必须想办法剔去伪特征点,才能确保特征匹配能够准确的进行。

从上文细化后的指纹图像上不难发现,由于细化后的指纹图像出现了毛刺、粘连、断点等现象。出现这样的情况的原因有多种,一方面原始图像本来就存在模糊区域和粘连区域,另一方面在指纹图像的预处理过程中,虽然多次进行了滤波处理,但是噪音依然存在,并且有相当一部分带入到细化后的指纹图像中,通过特征点的提取转化为伪特征点。大量伪特征点的存在将导致匹配效率降低,成功匹配率降低,严重影响指纹识别系统的指标,因此在匹配前必须对伪特征点进行剔除。

下面分析一下毛刺、短线、断线、假桥以及环这几种主要的噪声的特点,以及因它

第19页

们而产生的伪特征点的特性[22],方便针对它们各自的特点设计剔除算法。

(1)毛刺现象,毛刺的出现有多方面的原因,比如受随机噪声的影响而形成的,还有部分是受图像增强和细化处理产生的。一个毛刺经过提取特征点后会产生一个伪端点和一个伪分叉点。这类伪特征点的特点是它们往往成对出现,而且伪端点和伪分叉点的距离非常近,一般小于细化前的脊线宽度的一半。

(2)短线现象,一般在指纹采集时手指比较脏或者采集头上有灰尘等容易出现比较多的短线。短线的特点就是会产生两个伪端点,该两个端点相距很近,位于同一脊线上。

(3)断点现象,指纹采集时如果手指比较干燥,那么采集到的指纹图像有可能出现不少断点。另外手指褶皱、伤疤也容易产生断点现象。断点会产生两个伪端点,而且这两个伪端点也相距非常近,但是与短线不同的是这两个伪端点是分布在两条脊线上,沿脊线方向两个伪端点之间没有脊线。

(4)假桥现象,当手指过潮湿或者脏时,采集的指纹图像容易出现多脊线假桥(有时也叫桥)的现象,即本来不相连的两条脊线连在了一起。一般在假桥出现的地方提取的特征点为一对伪分叉点。其特点是这两个分叉点的距离一般近似等于平均脊线间距,而且两个伪分叉点间的连线近似垂直于其局部邻域的脊线方向。

(5)环现象,通常也叫孔。主要是由于随机噪声影响产生的。在出现环的地方提取特征点一般出现两个到三个伪分叉点。其特点是一般这两个伪特征点的距离非常小,而且这两个伪特征点间的连线与所在的脊线方向近似相同。 3.3.2伪特征点的剔除算法

从上文提取的特征点,不难发现,位于指纹四周边缘存在数量众多的特征点(包括真特征点和伪特征点)。这些特征点是由于在指纹采集时,指纹接触采集头的边界,脊线的起始点。这些起始点虽然也是属于端点,但是由于它们其实是不存在的,只是因为采集接触面积的原因才产生的。它们又不属于上节分析的那几类伪特征点,但它们并不是指纹的固有特征,所以需要进行剔除。

目前一般的指纹识别方面的文章都忽略了这部分边缘特征点,没有在匹配前进行剔除,这增加了后续匹配的特征点数量,影响了匹配效果。本文特在去伪特征点前对这类

第20页

特征点进行剔除。这样的处理算法难度并没有增加多少,但是却对提高了后续的匹配效率具有重大意义。

分析边缘部分特征点的特点发现,这部分特征点不一定就是位于指纹图像的边缘。但可以肯定的是这部分是脊线和边缘空白的交界处,而边缘特征点就位于边界的一定范围内,因此本文利用这一特点设计了剔除边缘特征点的算法:

(1)将细化后的指纹图像进行划分20×20的子块。

(2)通过计算各个子块中像素点之和,检测该子块中是否含有脊线,并对含有脊线的子块进行标记,方便下面的进一步操作。

(3)对上一步已标记的子块的8个邻子块进行检测,检测是否含有脊线,只要8个邻子块中有一个没有含有脊线,说明该中心子块为边界子块。

(4)查找所有位于边界子块中的边缘特征点,并从特征点集中进行剔除。 处理完指纹边缘的特征点后,下面需要对指纹内的伪特征点进行剔除。根据上节分析的伪特征点的特征,本文将根据伪特征点的这些性质提出一套伪特征点剔除的算法。

由于在剔除伪特征点的算法中会用到脊线跟踪,这里先详细介绍一下如何实现脊线跟踪。

首先从指纹脊线的端点出发,沿脊线不断推进,并对已经跟踪过的脊线上像素点进行标记,并保存下来。如图3—4所示,假设图中Pi?1为上次己跟踪过的脊线上的像素点,3Pi为当前的像素点,Pi?1为下一个要跟踪的像素点[23]。跟踪时,考察以Pi为中心的3×子块,通过将8领域中脊线像素点与己跟踪的像素点进行对比,搜寻尚未考察的脊线上的像素点(图3—4中深色部分) Pi?1,并保存Pi到已跟踪点集中,再以Pi?1代替Pi作为下一个跟踪的像素点,以此类推实现脊线跟踪。

Pi-1 Pi Pi+1 图3—4脊线跟踪示意图

第21页

下面将利用脊线跟踪以及伪特征点的特点提出剔除伪特征点的算法:定义D(i,j)为特征点i和特征点j的距离;A(i,j)为特征点i与特征点j之间的连线与横坐标轴的夹角;?(i,j)为特征点i,j的块方向;??(i,j)为A(i,j)与?(i,j)的差的绝对值。 (1)断点、短线的删除

通过脊线跟踪,若在一个端点i的D1范围内存在另外一个端点j,且方向近似相同,则端点i和端点j为一对断点,将它们从特征点集中删除[24]。 (2)毛刺的删除

通过脊线跟踪,若在一个端点i的D2范围内存在一个分叉点j,则这样的特征点i,j为伪特征点,也将它们从特征点集中删除。 (3)桥的删除

通过脊线跟踪,若在一个分叉点i的D3范围内存在另外一个分叉点j,且??(i,j)近似等于?/2,则这两个特征点为桥形成的伪特征点,需要将它们从特征点集中删除。

这里需要说明的是?(i,j)的取值,由于为桥连的情况时,两条脊线是几乎平行的,所以特征点i,j的块方向其实是相同的,在计算?(i,j)时任取特征点i或者j的块方向即可。 (4)环的删除

通过脊线跟踪,若在一个分叉点i的D4范围内存在另外一个分叉点j,且特征点之间的连线的方向与脊线的方向近似相等,即??(i,j)近似等于0,则这两个分叉点为环形成的两个伪特征点,将它们从特征点集中删除。

以上D1、D2、D3和D4的值取决于指纹图像的脊线周期以及分辨率等因素。一般按经验取值,本文取采集头采集的指纹的脊线周期大约10个像素,试验表明此时D1、D2、D3和D4的值取5、10、4、6时,伪特征点剔除的效果比较好。 3.4特征提取算法Matlab算法仿真

Matlab算法仿真,图3—5为特征点提取示意图,图3—6,3—7,3—8为剔除边缘及伪特征点后的特征点示意图。图中为了分辨分叉点和端点,特将分叉点用蓝色叉号表示,将端点用红色圆圈表示。

第22页

图3—5 特征点提取示意图

图3—6 剔除边缘特征点

第23页

图3—7 剔除伪特征点

图3—8 伪特征点剔除后效果图

第24页

3.5本章小结

本章首先介绍了指纹的全局结构特征和局部结构特征。全局结构特征用于指纹分类,减少指纹匹配时间;端点和分叉点成为最常用的局部结构特征,也称为细节特征,用这两类特征点描述指纹的唯一性。用算法实现了一下两点。

(1)指纹特征提取是指纹自动识别的核心技术之一,采用模板匹配法,提取指纹的细节特征即端点和分叉点。

(2)由于指纹边缘特征点作为端点信息被提取出来,这些特征点在特征匹配过程中是无用的信息,本文采用基于细化图像的邻域法,有效的消除了边缘特征点。

滤除了伪特征点以后,不但使匹配的速度大大提高,而且指纹识别性能提升,使识别系统的误拒率和误识率的下降,因此在进行指纹匹配之前,尽可能将伪特征点去除,保留真特征点。

第25页

4 总结与展望

4.1总结

本文针对指纹识别系统的图像特征提取算法做了大量的富有研究性的工作,具体的工作如下:

(1)在特征提取阶段本文在分析现有的特征提取算法基础上,采用基于细化图像的邻域法进行特征提取,并且针对提取后可能的伪特征点的特点进行了针对性很强的分析,并逐一设计具体的伪特征点剔除算法。

(2)最后,本文应用Matlab对以上算法进行仿真测试,验证了本文指纹识别算法的可行性以及其优劣势,达到检验算法的目的。 4.2展望

经过本文的研究,己经形成了一套比较有效的指纹特征提取算法。针对仿真测试的结果分析,存在一些继续改进的地方。本文认为尚需在以下几个方面进行进一步深入研究:

(1)随着对指纹识别系统的进一步深入全面研究,将在指纹采集图像的自动保存、分类,系统自动建立大型指纹库等方面进行具体研究,从而使系统结构更完整,使用更方便。

(2)本文的算法虽然进行了仿真验证,但算法移植到FPGA上还有许多工作需要做,还需进一步努力。

第26页

致谢

首先,要感谢我的导师蔡超峰老师。在蔡老师的精心指导和严格要求下,我完成了毕业论文。在做毕业设计期间,蔡老师督促我的学习,并不断地鼓励我,严格要求的背后其实是关怀和寄予的深切希望。感谢老师让我生活和学习上得到成长,使我能更好地适应将来的工作生活。

其次,在学习期间,班上的同学都给了我很大的帮助,在此表示由衷的感谢,谢谢你们的帮助。同时,感谢我的父母和亲人,谢谢他们对我多年的关怀和支持。我的生活因为你们而有意义。

最后,感谢评审委员会的各位专家能够在百忙之中审阅我的论文,感谢学校、学院对本次答辩的支持。

第27页

参考文献

[1]戴平阳. 指纹识别技术研究进展[J]. 厦门大学学报(自然科学版), 2002,41(8):750-755. [2] 边肇棋等编著. 模式识别. 北京:清华大学出版社, 1990,20-27.

[3] 田捷,杨鑫. 生物特征识别技术理论与应用. 北京.电子工业出版社, 2006,126-129. [4] Henry Fuzee, Fingerprint recognition in low quality images. Pattern Recognition,1993, 26(10):1441-1460.

[5]O’Gorman, Nickerson. An Approach to Fingerprint Filter Design [J] .Pattern Recognition, 1989,22(l):29-38.

[6] Hong L, Wan Y, Jain A K. Fingerprint image enhancement: algorithm and performance evaluation [J]. IEEE Trans. Pattern Analysis and Machine Intelligence, 1998, 20(8):777-789. [7]Sherlock, Monro, Millard. Fingerprint Enhancement by Directional Fourier Filtering, IEEE Proceedings-Vision, Image and Signal Processing, 1994, 141(2):87-89.

[8]叶四民,陈福祥.指纹图像预处理中的二值化技术[J].自动化与仪器仪表.2001,2:30-34. [9] Amengnal J C, Juan A, Perez J C, et al. Real-time minutiae extraction in fingerprint images[A]. Proc.of the 6th Int. Conf:On Image proceeding and Applications (IPA97) [EB/OL]. http://www.cs.unr.edu/chris Smith Papers 2003.

[10]楚亚蕴.一种结合方向信息的指纹图像二值化算法[J].中国图像图形学报, 2006,15(6): 855-860

[11] Lhin R T, Wan HK, Stover D L, et al. A one-pass thinning algorithm and its parallel implementation[J].Computer Vision Graphics Image Processing,1987,40(1):30-40. [12] 刘怀泉,指纹识别系统研究.山东大学硕士学位论文.2005.6.

[13]张艳霞.全局和局部特征结合的智能指纹匹配算法研究田].天津:天津大学, 2007,6. [14]叶青.指纹识别系统中的预处理组合算法[J].光电工程, 2009.4,36(4):140-142. [15]C.Baner, R.Stock. The FBI’s approach to automatic fingerprint identification (Part?).FBI Law Enforcement Bulletin, USA. Government Publication,1975,44(1).

[16]魏鸿磊,欧宗瑛,甘树坤.采用逐级配准和分值加权的指纹匹配算法[J].计算机辅助设

第28页

计与图形学报,2006.6,18(6):832-837.

[17] Dario Maio. Direct Gray Scale Minutiae Detection in Fingerprints[J]. IEEE Trans on Pattern Analysis and Machine Intelligence, 1997, (19)1:27-40

[18] Jiang, W.Y.Yau and W.Ser. Detecting fingerprint minutiae adaptive tracing the gray level ridge. Pattern Recognition, 2001, 34(11):999-1013

[19]杨小青,杨浩,何为.基于方向滤波器的指纹图像预处理算法研究[J].西南大学学报, 2007, 29(11):148-152.

[20]冯国进,顾国华,张保民.指纹图像预处理与特征提取[J].计算机应用研究,2004(5): 183-185.

[21]X.Sun and Z. Ai-Automatic feature extraction and recognition of fingerprint imagel. Proceed of ICSP96, 1996, 1086-1089.

[22]周德龙,赵志国,潘泉.基于模糊集的图像增强算法研究[J].电子与信息学报, 2002,24(7): 905-909.

[23]甘树坤.指纹与人脸识别相关图像处理算法研究[D].大连:大连理工大学,2005.12. [24]廖凤华.指纹识别匹配算法研究[D].北京:北京交通大学,2007.

[25]吴作好,曾洁.几种人体生物特征的生物识别技术比较[J].现代电子技术,2007,(14): 121-124.

[26]柴晓光,岑宝炽.民用指纹识别技术[M].北京:人民邮电出版社,2004. [27]杨若冰.指纹识别的起源[J].中国防伪报道,2006.7,38-40.

[28]田捷,杨鑫.生物特征识别技术理论与应用[M].北京:电子工业出版社,2005.4-30. [29]孟祥萍,武增光,赵玉兰.基于纹理结构的指纹识别算法[J].计算机工程与设计,2009, 30 (13):3136-3138.

[30]A.Ranade and A..Rosenfeld. Point Pattern Matching by Relaxation[J]. Pattern Recognition.1980, 12(5): 269-275.

[31]Lin Hong, Jain A K, Bolle Retal PanKanti, Identity authentication using fingerprints In:Proc. of First lnt’1Conference on Audio and Video-Based Biometric Person Authentication, Geneva, Switzerland,1997:103-110.

[32]Xudong Jiang, Weiyun Yau. Fingerprint Minutiae Matching Based on the Local and Global Structures. IEEE, 2000, 1038-1041.

[33]B.Moayer and K.Fu.A tree system approach for fingerprint Pattern recognition [J].Pattern Recognition. 1990, 23(8):893-904.

第29页

[34] B.Chatterjee, M.Verma and A.Majumdar. Edge detection in fingerprints [J]. Pattern Recognition.1987, 20:513-523.

[35]Mehtre B.M, Muthy N.N, Kapoor S, et at. Segmentation of fingerprint image using the direction image[J] .Pattern Recognition.1987,20(4):429-35.

[36]N.Ratha, S.Chen and A.K.Jain. Adaptive flow orientation based feature extrication in Fingerprint images[J].Pattern Recognition.1993,26(10):1441-1460.

[37]J.D.Liu, Z.Huang, K.L.Chan. Minutiae extraction from gray-level fingerprint image by relationship examination [J].IEEE. Image Processing,2002,2(9):10-13.

[38]LinHong. Automatic personal identification using fingerprints:[D].Michigan State University,1998.

[39]A.K.Jain, L.Hong, R.Bolle, On-line fingerprints verification[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,1997,19(4):302-314.

[40]D.K.Isenor, S.GZaky. Fingerprint Identification Using Graph Matching[J].Pattern Recognition,1986,19(1):113-122.

[41]孙冬梅,裘正定.生物特征识别技术综述[J].电子学报,2001,29(12A):1744-1748. [42]张敏贵,周德龙,潘泉.生物特征识别及研究现状进展[J],生物物理学报,2002,18(2): 156-162.

[43]卢朝阳,张岗山,刘琳.指纹识别系统性能评价方法[J].西安电子科技大学学报(自然科学版),2002(12):804-509.

[44]夏振华.指纹识别算法及小规模指纹识别系统的开发[D].南京:南京航空航天大学,2006.1.

[45] Mehtre B M. Fingerprint Image Analysis for Automatic Identication [J] .Machine Vision, Application, 1993, 22(6):124-139.

[46]舒乃秋.指纹图像预处理技术研究[D].武汉:武汉大学,2004.7.

第30页

附录A 主程序

clear;clc;close all; FP = imread('zhiwen.tif'); FP = FP(51:250,51:250); figure;imshow(FP);

M0 = 120; Var0 = 100;

FP_Normalized = Normalized(FP,M0,Var0); figure;imshow(FP_Normalized); W = 10;

FP_Orientation = BlockOrientation(FP_Normalized,W);

FP_OrientationMap = DrawOrientationMap(FP_Orientation); figure;imshow(FP_OrientationMap,'InitialMagnification','fit'); FP_Enhancement = Enhancement(FP_Normalized,FP_Orientation,W); imshow(FP_Enhancement);figure;

FP_Binarized = Binarized(FP_Enhancement,W); imshow(FP_Binarized); figure;

FP_Thined = Thined(FP_Binarized); imshow(FP_Thined);

FP_FeaturePointsMatrix = GetFeaturePoints(FP_Thined); FP_DelFeaturePointsMatrix =

DelFeaturePoints(FP_FeaturePointsMatrix,FP_Orientation,W);

第31页

附录B 提取特征点仿真程序

function FP_FeaturePointsMatrix = GetFeaturePoints(FP_Thining) Z = double(FP_Thining)/255; [len,wid] = size(FP_Thining);

FP_FeaturePointsMatrix = zeros(len,wid); Cn = zeros(len,wid); Sn = zeros(len,wid);

P = zeros(1,9); for i = 2:len-1 for j = 2:wid-1 P(1) = Z(i-1,j-1); P(2) = Z(i-1,j); P(3) = Z(i-1,j+1); P(4) = Z(i,j+1); P(5) = Z(i+1,j+1); P(6) = Z(i+1,j); P(7) = Z(i+1,j-1); P(8) = Z(i,j-1); P(9) = P(1); for m = 1:8

Cn(i,j) = Cn(i,j)+abs(P(m+1)-P(m)); Sn(i,j) = Sn(i,j)+P(m); end end end

for i = 1:len for j = 1:wid if Z(i,j) == 1

if Cn(i,j) == 2 && Sn(i,j) == 1

FP_FeaturePointsMatrix(i,j) = 1; elseif Cn(i,j) == 6 && Sn(i,j) == 3 FP_FeaturePointsMatrix(i,j) = 3; else

FP_FeaturePointsMatrix(i,j) = 2; end end end

% endpoint % points on line % forkpoint

第32页

end

figure;hold on; for i = 1:len for j = 1:wid

if FP_FeaturePointsMatrix(i,j) == 1

plot(j,len+1-i,'ro','MarkerSize',10,'LineWidth',2); elseif FP_FeaturePointsMatrix(i,j) == 2

plot(j,len+1-i,'k-','MarkerSize',10,'LineWidth',2); elseif FP_FeaturePointsMatrix(i,j) == 3

plot(j,len+1-i,'bx','MarkerSize',15,'LineWidth',2); end end end

第33页

附录C 剔除伪特征点仿真程序

function FP_DelFeaturePointsMatrix =

DelFeaturePoints(FP_FeaturePointsMatrix,FP_Orientation,W) [len,wid] = size(FP_FeaturePointsMatrix); M = FP_FeaturePointsMatrix; B = 20; for i = 1:B for j = 1:wid

if M(i,j) == 1 || M(i,j) == 3 M(i,j) = 2; end end end

for i = len-B+1:len for j = 1:wid

if M(i,j) == 1 || M(i,j) == 3 M(i,j) = 2; end end end

for i = 1:len for j = 1:B

if M(i,j) == 1 || M(i,j) == 3 M(i,j) = 2; end end end

for i = 1:len

for j = wid-B+1:wid

if M(i,j) == 1 || M(i,j) == 3 M(i,j) = 2; end end end

figure;hold on; for i = 1:len for j = 1:wid

第34页

if M(i,j) == 1

plot(j,len+1-i,'ro','MarkerSize',10,'LineWidth',2); elseif M(i,j) == 2

plot(j,len+1-i,'k-','MarkerSize',10,'LineWidth',2); elseif M(i,j) == 3

plot(j,len+1-i,'bx','MarkerSize',15,'LineWidth',2); end end end D1 = 5; D2 = 10; D3 = 5; D4 = 10; for i = 1:len for j = 1:wid

if M(i,j) == 1

a = i; % delete short line b = j;

N = FP_FeaturePointsMatrix; flag = 1; while(flag)

if (N(a-1,b-1) == 2) || (N(a-1,b-1) == 1) N(a,b) = 0; a = a-1; b = b-1;

flag = 1;

elseif (N(a-1,b) == 2) || (N(a-1,b) == 1) N(a,b) = 0; a = a-1; b = b; flag = 1;

elseif (N(a-1,b+1) == 2) || (N(a-1,b+1) == 1) N(a,b) = 0; a = a-1;

b = b+1; flag = 1;

elseif (N(a,b+1) == 2) || (N(a,b+1) == 1) N(a,b) = 0; a = a;

b = b+1; flag = 1;

第35页

elseif (N(a+1,b+1) == 2) || (N(a+1,b+1) == 1) N(a,b) = 0; a = a+1; b = b+1; flag = 1;

elseif (N(a+1,b) == 2) || (N(a+1,b) == 1) N(a,b) = 0; a = a+1; b = b; flag = 1;

elseif (N(a+1,b-1) == 2) || (N(a+1,b-1) == 1) N(a,b) = 0; a = a+1;

b = b-1; flag = 1;

elseif (N(a,b-1) == 2) || (N(a,b-1) == 1) N(a,b) = 0; a = a; b = b-1; flag = 1; else

flag = 0; end end

T = -(a-i)/(b-j); if T >= 0

theta1 = atan(T); else

theta1 = atan(T)+pi; end

I = floor((i-1)/W)+1; J = floor((j-1)/W)+1;

theta2 = (FP_Orientation(I,J)-1)*pi*0.125; delta = abs(theta1-theta2);

if (sqrt((i-a)^2+(j-b)^2) < D1) && (delta < 0.1*pi) M(i,j) = 2; M(a,b) = 2; end end end end

figure;hold on; for i = 1:len

第36页

for j = 1:wid if M(i,j) == 1

plot(j,len+1-i,'ro','MarkerSize',10,'LineWidth',2); elseif M(i,j) == 2

plot(j,len+1-i,'k-','MarkerSize',10,'LineWidth',2); elseif M(i,j) == 3

plot(j,len+1-i,'bx','MarkerSize',15,'LineWidth',2); end end end N = M; D = D3; for i = 1:len for j = 1:wid

if M(i,j) == 3

Block = N(i-D:i+D,j-D:j+D); Block(D+1,D+1) = -1; for m = 1:2*D+1 for n = 1:2*D+1 if Block(m,n) == 1 if P < D M(i,j) = 2;

M(i-D-1+m,j-D-1+n) = 2; end end end end end end end

figure;hold on; for i = 1:len for j = 1:wid if M(i,j) == 1

plot(j,len+1-i,'ro','MarkerSize',10,'LineWidth',2); elseif M(i,j) == 2

plot(j,len+1-i,'k-','MarkerSize',10,'LineWidth',2); elseif M(i,j) == 3

plot(j,len+1-i,'bx','MarkerSize',15,'LineWidth',2); end end

P = sqrt((m-D-1)^2+(n-D-1)^2);

第37页

end N = M; D = D4; for i = 1:len for j = 1:wid

if M(i,j) == 3

Block = N(i-D:i+D,j-D:j+D); Block(D+1,D+1) = -1; for m = 1:2*D+1 for n = 1:2*D+1 if Block(m,n) == 3 if P < D M(i,j) = 2;

M(i-D-1+m,j-D-1+n) = 2; end end end end end end end

figure;hold on; for i = 1:len for j = 1:wid if M(i,j) == 1

plot(j,len+1-i,'ro','MarkerSize',10,'LineWidth',2); elseif M(i,j) == 2

plot(j,len+1-i,'k-','MarkerSize',10,'LineWidth',2); elseif M(i,j) == 3

plot(j,len+1-i,'bx','MarkerSize',15,'LineWidth',2); end end end

FP_DelFeaturePointsMatrix = M;

P = sqrt((m-D-1)^2+(n-D-1)^2);

本文来源:https://www.bwwdw.com/article/oz3o.html

Top