指纹识别系统预处理算法的研究

指纹识别系统预处理算法的研究,第1张

Duing to the uniqueness and invariability of fingerprints, as well as the feasibility and pracTIcability of fringerprint idenTIficaTIon technique , fringerprint idenTIfication technique has become one of the most popular,convenient and reliable identity authentication techniques. Because the data of fingerprint image is huge,the automatic identification by contrastring the data of two images directly is not advisable.We should preprocess the image and extract its features,then we can implement the automatic identification by contrastring the features of two images. The preprocessing,as the first step of AFIS(Automatic Fingerprint Identification System), directly affects the result of AFIS. Commonly it includes filter,orientation,binarization,thinning and so on.
Firstly,this paper introduces the basic concept of biometric technologies,and describes the composition of the AFIS briefly.Moreover,the analysis of traditional methods for fingerprint identification system are described. This paper then uses a Gabor filter-based fingerprint image preprocessing method according to the characteristic of the fingerprint image.It lays a good foundation for minutia points extracting and fingerprint matching.
All algorithms are implemented on PC++ with Visual C++6.0.The test result shows that this method can achieve satisfactory preprocessing effects of fingerprint image.

KEY WORDS Fingerprint identification, Preprocessing, Directional image, Gabor filter, Binary
摘 要 I
ABSTRACT II
第一章 绪 论 1
1.1 生物特征识别技术 1
1.2 自动指纹识别技术简介 3
1.3 指纹识别系统发展现状 6
1.3.1 硬件技术 6
1.3.2 软件技术 6
1.4 本论文主要工作和内容安排 7
第二章 指纹图像预处理技术 9
2.1 图像平滑增强处理 9
2.1.1 邻域平均法 10
2.1.2 低通滤波法 10
2.1.3 中值滤波 11
2.1.4 直方图修整法 11
2.2 图像的数学形态学运算 13
2.2.1 数学形态学的基本符号和术语 13
2.2.2 数学形态学基本运算 14
2.3 二值化 16
2.3.1 指纹图像二值化的要求 16
2.3.2 几种二值化方法 16
2.4 细化 18
2.4.1 快速并行细化算法 19
2.4.2 串行OPTA串行算法 20
2.4.3 串并行混合细化 21
2.5 小结 22
第三章 指纹图像预处理系统设计和实现 23
3.1 指纹图像预处理总体设计 23
3.1.1 界面设计 24
3.1.2 模块设计 26
3.2 预处理组合算法过程 27
3.2.1 方向图的提取 27
3.2.2 Gabor滤波 29
3.2.3 二值化 32
3.2.4 二值图去噪 34
3.2.5 细化 34
3.2.6 细化后处理 36
第四章 实验结果分析 40
4.1 预处理算法小结 40
4.2 实验结果比较 41
4.2.1 方向滤波结果分析 41
4.2.2 二值化结果分析 42
4.2.3 细化结果分析 42
4.2.4 细化后处理结果分析 43
4.2.5 另一组实验结果分析 43
第五章 总结与展望 45
5.1 总结 45
5.2 展望 45
致 谢 47
参考文献 48
附 录 49
摘 要
由于指纹所具有的唯一性和不变性,以及指纹识别技术所具有的可行性和实用性,指纹识别成为目前最流行、最方便、最可靠的身份认证技术之一。指纹图像数据量大,通过直接比对指纹图像的方法来识别指纹是不可取的,应该先对指纹图像进行预处理,然后提取出指纹的特征数据,通过特征数据的比对来实现自动指纹识别。指纹图像预处理作为指纹自动识别过程的第一个环节,它的好坏直接影响着自动识别系统的效果。预处理通常包括滤波、方向图的求取、二值化、细化等几个步骤。
本文首先阐述了生物特征识别技术的基本概念,对自动指纹识别系统的组成也作了简要的介绍。然后对目前指纹图像预处理的一些常用算法进行了介绍,针对指纹图像的特征,采用了基于Gabor滤波器的指纹预处理方法,它为特征提取和比对奠定了良好的基础。
本文所提到的算法已在PC机上用Visual C++6.0编程实现,实验结果表明,这种方法能获得令人满意的指纹图像预处理效果。

关键词: 指纹识别,预处理,方向图,Gabor滤波器,二值化

ABSTRACT

第一章 绪 论
1.1 生物特征识别技术
在现代社会中,信息安全显示出前所未有的重要性。当前,个人身份鉴别主要依靠ID卡和密码等手段。但是这些手段存在携带不便,易丢失或损坏,密码易被破解等缺点。生物特征识别技术的出现能很好的解决这些问题。
生物识特征别技术是根据人体独特的生物特征进行身份认证的一种技术,人类利用生物特征识别的历史可追溯到古埃及人通过测量人体各部位的尺寸来进行身份鉴别,现代生物识别技术始于70年代中期,由于早期的识别设备比较昂贵,因而仅限于安全级别要求较高的原子能试验、生产基地等。现在由于微处理器及各种电子元件成本不断下降,精度逐渐提高,生物识别系统逐渐应用于商业上的授权控制如:门禁、企业考勤管理系统等安全认证领域。
生物识别技术可以在人们日常生活的各个地方使用,通过取代个人识别码和口令,生物识别技术可以阻止非授权的访问,可以防止盗用ATM,蜂窝电话、智能卡、桌面PC、工作站及其计算机网络,在通过电话、网络进行的金融交易中进行身份认证,在建筑物或工作场所,生物识别技术可以取代钥匙、证件、图章和卡阅读器等。
现代生物识别技术大体分为两个阶段[1]:1.学习阶段,在此阶段中注册用户的生物特征信息,通过生物识别传感器采样原始数据,如:指纹图像、语音数据、掌纹等等;随后进行特征提取,用专门算法为原始数据的特征生成特征代码,将代码存入数据库,形成识别数据库,2.识别阶段,当识别用户身份时,用相同的特征代码生成算法生成待识别原始数据的特征,再用专门的特征匹配算法在数据库中检索和匹配用户的特征信息,从而验证用户身份。目前人们主要研究的人体生物识别技术包括虹膜识别、人脸识别语音识别、耳纹识别、掌纹识别和指纹识别等等。
虹膜识别技术:虹膜是一个位于瞳孔和巩膜之间的环状区域,由一种随瞳孔直径的变化而拉伸的复杂的纤维状组织构成[2]。目前,大部分的自动虹膜识别系统采用Daugman核心算法。虹膜识别技术利用一个全自动照相机来采集包含虹膜的图像,Daugman算法先进行虹膜定位,将虹膜从整幅眼睛图像中分割出来,利用二维Gabor小波将虹膜图像编码为256字节的”虹膜码”,在匹配时,比较用户的”虹膜码”和数据库中的”虹膜码”的汉明距离来表示匹配度,这种匹配算法的计算量极小,可用于大型数据库中识别.虹膜的纹理结构是随机的,便于分析,且可以保持几十年不变,其识别系统不与人体相接触,使用方便,所以虹膜识别技术是目前诸多生物识别技术中发展得极为成熟的技术之一。
人脸识别[3]:人脸识别技术是根据人的脸面特征的唯一性特点而进行的个体识别和确认技术。基于这些脸面特征的识别是非常复杂的,需要人工智能和机器学习的知识。人脸识别的过程包括人脸检测定位和人脸特征提取两大部分。人脸检测定位的思想是首先为脸部建模,通过将所有待测区域与人脸模型比较,从而确定脸部在图像中的位置.由于人脸受人的表情、光照、图像质量等因素的影响,所以提取脸部特征的难度较大,目前主要的人脸特征提取和识别的方法有:(1)基于脸部几何特征的方法;(2)基于特征脸的方法;(3)神经网络的方法;(4)局部特征分析的方法;(5)d性匹配的方法。由于人脸识别的无侵害性和对用户最自然、最直观的方式,使人脸识别成为最容易被接受的生物特征识别方式。现在,人脸识别也是生物识别技术的一个热点问题。
语音识别:语音识别利用人的声音特征进行身份鉴别的生物特征识别技术,这种方法基于人的行为特征,因此受噪声、人的情绪、生理状态等因素的影响较大。一个语音识别系统主要包含三个部分:语音信号的分割,特征提取和说话人识别。语音识别首先将语音信号从混有背景噪声的声音信号中分离处理,再为人的发声部位建立一个由宽带信号激励的时变滤波器模型,大部分的语音特征都与模型的激励源和滤波器的参数有关,在进行说话人的识别时,主要采用参数模型和非参数模型来进行匹配[4]。
耳纹识别[5]:耳廓识别技术是近年来发展起来的一项新的生物识别技术,它主要通过对人的耳廓与外界客体接触所留痕迹的检验鉴定来识别人体和认定人身,有着可信的科学依据。人体耳廓是个体形态的组成部分,耳廓上的耳轮、耳屏、耳垂等多个部位的宽度、弧度、位置、形态、形状及其相互关系,构成了个体耳廓所固有的相对稳定的特征,成为此耳廓区别于他耳廓的重要标记。耳纹识别主要应用于刑事案件的侦破工作中。在某些盗窃、杀人、抢劫等案件中,作案者因偷听、撕扯、躺压等行为,往往将耳廓印痕留在门、窗、地面等物体上,技术人员经过技术处理和鉴定,便可根据现场耳廓印痕识别认定留痕者。
掌纹识别[6]:利用手腕和手指之间的手掌内侧纹理进行身份鉴别的生物特征识别技术。掌纹是指手掌中的主线、褶皱和脊线。在识别过程中,目前应用最多的是主线特征和褶皱特征。其他可应用的信息还包括手掌的长度、宽度和面积,三角区域特征、细节特征等等。人们对掌纹识别的研究历史并不长,但这种生物特征识别技术极具发展潜力。
指纹识别:指纹识别是生物识别技术中应用得最早的。每个人都有自己唯一的、持久不变的指纹。指纹识别技术正是利用指纹这种唯一性和稳定性,通过对在线提取的指纹与预先保存的指纹进行比较,从而进行身份识别。目前指纹识别、面部识别、语音识别等多种生物识别技术,都己经成熟并得以应用,在所有生物识别技术中,指纹识别是目前对人体最不构成侵犯,而又方便、实用、可靠、价格适中、最具有代表性和应用前景的一种技术。
生物特征识别技术作为基于个人独特的生理和行为特征进行自动身份鉴别的技术,它为信息社会日益加剧的安全需求提供了一个很好的解决方案,必将有非常好的发展前景[7]。
1.2 自动指纹识别技术简介
人类的手掌及其手指、脚、脚趾内侧表面的皮肤凸凹不平产生的纹路会形成各种各样的图案。人手指内侧表面的纹路就是指纹,19世纪20年代,科学研究发现了指纹的两个重要特征:一是唯一性,人人的指纹不同,一个人的十个手指的指纹也不相同。二是稳定性,指纹的图案永远不会改变,它不会随着人的年龄而改变指纹,也不会和主体分离。
自动指纹识别技术主要有两种:一种是基于指纹图像统计信息的方法,一种是基于指纹本身所固有的特征点结构的方法。基于图像统计匹配方法的自动指纹识别主要是通过直接或间接地比较两幅原始指纹图像的统计相似程度,从而达到判断两枚指纹是否是属于同一个人的目的。基于特征点匹配识别的指纹识别系统主要是通过比较两幅指纹图的结构特征信息来达到识别的目的,指纹的特征包括两类:全局特征和局部特征。
全局特征是指那些用人眼可直接观察到的特征,可以依照全局特征对指纹进行分类,Galton分类法是较著名的分类法,其将指纹分为三类:环形,弓形,螺旋型。图1.1为这三类纹型示例。
(1)环形 (2)弓形 (3)螺旋型
图1.1 指纹纹型示例

指纹是由脊线和谷线交替出现的模式构成的,指纹的脊线并不是连续的、平滑笔直的,而是经常出现中断、分叉和打折,这些断点、分叉点和转折点就称为局部特征,又称为细节特征点,就是这些特征点提供了指纹唯一性的确认信息,一枚指纹可能有十几种类型的特征点,在其中出现频率较高的细节特征点有五种:
纹线端点(ending):指一条纹线在此点终结;
分叉点(bifurcation):指一条纹线在此点分成两条纹线;
小桥(bridge):指两条平行的纹线在此处连接了;
双叉(crossing):指两条纹线在此点相互交错;
孔形(hole):指一条纹线一分为二后,又合并而一条纹线所形成的孔洞。
如图1.2为一个典型的自动指纹识别系统(Automatic Fingerprint Identification System,AFIS)方框图。它包含两个模块:训练模块和鉴别模块。训练模块完成注册指纹的功能,鉴别模块完成识别指纹的功能。由于隐私和节约储存量的原因,所以在数据库中储存的数据是指纹的特征点信息,而不是指纹图像,训练模块和鉴别模块由同一套特征提取算法提取出特征信息,两个模块其实对应指纹识别的两个阶段,即注册阶段和识别阶段。

图1.2 自动指纹识别系统方框图

指纹图像采集位于指纹识别系统的前端,一般有两种方法来采集指纹:一种是使用墨水和纸的方法,将手指浸入墨水中,然后按在纸上,再通过照相机拍摄下来处理,由于墨水会使全部或部分指纹图像模糊不清,所以这种方法并不可靠。另一种方法是利用专用指纹传感器,大体可以分为光学传感器晶体传感器和超声波传感器。光学传感器由于耐用性好、价格低,所以自动指纹识别系统大都是采用光学传感器来作为指纹采集器,其原理是:光线照到压有指纹的玻璃表面,反射光由电荷耦合器件获得,通过反射光的强度及分布获得压在玻璃表面指纹的脊线和谷线的深度等,从而得到指纹信息。
指纹采集进来后,在指纹图像中往往含有大量噪声,为了提高特征提取的效率,还必须对图像进行预处理。图1.3为自动指纹识别预处理的一般过程图。图像分割是把指纹图像从背景区域中分离出来,以使图像处理集中在指纹区域中进行,提高处理的效率;图像增强用以滤除指纹图像中的噪声,在视觉上体现为得到一幅纹路清晰的指纹图;二值化用以二值化增强了的指纹图,方便细化处理;细化则是为了便于提取特征点和得到精确的特征点信息。预处理是指纹识别系统中比较占用时间的处理过程,所以有人提出了一些不用预处理就直接从原始指纹图像中提取特征点的方法,但总得看来,这种方法对图像质量较差的指纹图的识别率是较低的。
图1.3 自动指纹识别预处理一般过程图

特征提取就是指在经过预处理后的指纹图中提取出指纹的特征点信息,一般地,提取特征点的三种信息:特征点位置、特征点类型和特征点的方向。特征点的位置是指特征点在指纹图像中的绝对坐标;特征点类型是指该特征点是端点还是分叉点;特征点的方向是指该特征点所在脊线的方向,端点的方向就是所在脊线的走向,而分叉点的方向是三条脊线中与另外两条脊线所成角为钝角的脊线的反方向。图1.4是端点和分叉的方向示例,其中(x,y)表示特征点的坐标, 就是特征点的方向,它是脊线和水平线所成的方向,取值范围为 。

(x,y) (x,y)

图1.4 指纹端点和分叉的方向示例

指纹的特征匹配就是比较两幅指纹图像的特征点信息,从而得出两幅指纹是否来自同一个人的识别结果,现在己经提出了很多指纹特征匹配的方法,其根本思想是比较两幅指纹图的特征点有多少对是相同的,通常只要有13对特征点重合,就可以认为两幅指纹来自同一个人。
1.3 指纹识别系统发展现状
1.3.1 硬件技术
自动指纹识别系统技术的进步依赖于指纹传感器技术的进步。指纹传感器主要有三类:光学传感器、晶体传感器,超声波传感器。
光学传感器有最悠久的历史,可以追溯到20世纪70年代。当时,这种传感器结构复杂,价格昂贵,体积庞大,所以AFIS价格通常非常昂贵。这时的AFIS仅仅在公安,银行等特殊部门应用。随着光电技术的发展,光学传感器的价格和体积逐渐下降,AFIS开始进入民用领域。
晶体传感器的历史并不长,但是其价格低廉,体积小,耗电低等优点获得了人们的喜爱。这些含有微型晶体的平面通过多种技术来绘制指纹图象。晶体电容式传感器能结合大约100,000个金属导体电容阵列,其外面是绝缘的表面,当用户的手指放在上面时,皮肤组成了电容阵列的另一面。电容器的电容值由于金属间的距离而变化,这里指的是脊(近的)和谷(远的)之间的距离。晶体压感式传感器的表面是具有d性的压感介质材料,能将指纹的外表地形(凹凸)转化为相应的电子信号。晶体温度感应传感器被设计为感应压在设备上的脊和远离设备的谷温度的不同。
超声波传感器是以上三种传感器中成像效果最好的一种。超声波扫描指纹的表面。紧接着,接收设备获取了其反射信号,测量他的范围,得到脊的深度。不象光学扫描,积累在皮肤上的脏物和油脂对超音速获得的图象影响不大,所以这样的图像是实际脊地形(凹凸)的真实反映[8]。
目前,基于PC进行指纹识别的技术己经很成熟,并且己经开始大规模推广。 许多大公司都致力于该项技术的开发和研究。基于WINDOWS *** 作系统的指纹识别软件和通过USB接口与PC机相连的指纹采集器已经非常普遍。然而,基于嵌入式系统特别是DSP系统的指纹识别技术才刚刚起步,在识别性能上还难以令人满意。随着移动通信蓬勃发展和便携式设备的推陈出新,指纹识别技术在今后将被更多的应用于嵌入式设备。因此,基于DSP平台的指纹识别系统是现在新的研究热点。

1.3.2 软件技术
指纹识别算法是AFIS系统的核心,这方面的研究早在19世纪初就开始了,但直到上个世纪60年代才随着计算机技术的发展而引起人们的兴趣。早期的算法都是在高性能计算机上实现的,主要用于离线的指纹图像研究。20世纪80年代到九十年代的指纹识别算法是建立在光学传感器的。研究的方向也由离线指纹图像处理转向联机处理。由于光学传感器价格昂贵,所以这时的AFIS系统主要用于银行,公安等特殊部门。90年代末,随着半导体传感器的出现,AFIS系统逐渐民用化,许多个人电脑,手机,掌上电脑等都集成了AFIS系统。指纹识别算法的重点从基于光学传感器转向了基于半导体传感器。
在应用方面,从70年代末开始,一些实用系统已经出现。70年代末加拿大警方首次应用激光进行指纹检验;日本立石电机公司80年代研制出了指纹核对机;美国联邦调查局1975年就通过罗克韦尔国际公司进行自动指纹识别系统的研制生产,其产品先后被加拿大、巴西、美国迈阿密、休斯顿等地的警察机构采用。日本NEC公司在1982年首次向警方提供了AFIS系统,目前日本NEC公司的AFIS系统销售量世界排名第一,该系统使用了众多的专用硬件设备来提高速度,但体积庞大,价格昂贵。法国1985年研制成功的Morpho系统也被美国纽约、密苏里州、新泽西州和夏威夷的警察部门采用。
我国80年初才开始进行AFIS系统的研究,目前已取得了很大的进展。北京大学、清华大学、北京市刑侦所、公安部二所、哈尔滨工业大学、浙江大学以及中国科学院自动研究所等单位在AFIS系统的研究方面作出了很大的贡献。北京大学在七五科技攻关项目中研制成功了实用化的指纹自动鉴定系统Delta-s,用于公安刑侦破案,并将此系统在美国市场出售。
近年来,IBM,Compaq,Sony等著名公司都投入了指纹自动识别系统的研制与开发,从而大大推动了指纹识别的民用化。在英国政府的重要部门已广泛使用了指纹识别系统;在澳大利亚,ATM机上普遍使用了AFIS系统;在美国,除了军事设施外,五角大楼、政府实验室、银行、监狱和商业部门也广泛采用了自动指纹识别系统;在我国,指纹识别系统也已经迅速地进入了民用化,如广东省的社会养老金的发放已经采用了指纹识别作为身份鉴别;湖南省社会保障卡项目采用了中控科技提供的自主知识产权的指纹识别技术及设备。尽管指纹信息技术在社会保障卡中的应用目前虽然尚有局限性,但是随着中国社会保障体系改革的大面积推广,指纹信息有望成为中国国民社会保障中的基本信息之一。在安全保卫领域内,指纹门禁、指纹汽车锁己经逐步步入大众社会之中;在公司管理及其他部门管理方面,指纹考勤系统、血库献血身份确认等也开始得到应用。
可以看出,自动指纹识别技术从诞生开始就充满着活力。在不久的将来,AFIS系统将得到更加广泛的应用。
1.4 本论文主要工作和内容安排
目前,自动指纹识别的预处理技术仍然是一个技术难点。本文重点研究了指图像预处理过程中的各种算法,针对低质量的指纹图像,采用一种基于Gabor滤波器的预处理系统,该系统主要包含以下几个部分:(1)指纹图像增强;(2)指纹图像二值化;(3)指纹图像细化;(4)指纹图像细化后处理。
全文共由五章组成。
第一章首先介绍了生物识别的概况,然后引出自动指纹识别技术原理,研究意义及发展。
第二章研究了指纹图像预处理的一些常用算法,比较了这些预处理算法各自的优缺点。
第三章利用指纹图像的方向特点,设计了一种基于Gabor滤波器的指纹识别预处理系统。
第四章对系统进行了一系列测试,并给出了实验结果及分析。
第五章是对全文工作的总结及展望。
第二章 指纹图像预处理技术
在指纹识别过程中,由于采集设备探头处有污物或手指上有污物、手指有刀伤或局部纹理被磨平等因素的影响,采集到的指纹图像通常是含有较多噪音的灰度图像。同时,这种灰度图像的数据量很大,不利于自动指纹识别系统的实时性处理。为了消除这些噪声,减小指纹图像的数据量,应该先对指纹图像进行预处理,然后提取出指纹的特征数据,通过特征数据的比对来实现自动指纹识别。本章主要介绍了一些常用的指纹预处理算法。
2.1 图像平滑增强处理
图像增强是指按照特定的需要突出一幅图像中的某些信息,同时削弱或去除某些不需要的信息的处理方法。通过图像增强可以使图像更符合人的视觉特性或机器的识别。图像增强技术主要包括图像灰度变换方法,直方图修整方法,图像平滑处理,图像锐化,以及彩色处理技术等。在实际应用中可以采用其中的一种或多种技术。
图像增强技术可以分为两类:频域处理法和空域处理法。
频域处理法的基本思想是:先将图像通过傅里叶变换转换到频率域,再进行增强处理。由卷积定理可知,如果原始图像是 ,处理后的图像是 , 是处理系统的冲击响应,那么处理过程为:
公式(2.1)
公式(2.1)中 “*”表示卷积。如果G(u,v), ,F(u,v)分别表示 , , 的傅里叶变换,那么,上面的卷积关系可以变成频域的乘积关系:
公式(2.2)
公式(2.2)中, 为传递参数。选择合适的 ,使得:
公式(2.3)
得到的 比 在某些性能上更鲜明,突出。
空域法就是直接对图像的像素进行处理,基本上以灰度映射变换为基础的。所用的映射变换取决于增强的目的。例如增加图像对比度,改善图像的灰度层次等处理均属于空域法处理。图像的质量好坏主要由人的视觉来评定,有一定的主观因素,所以很难对各种处理定出一个通用标准。
一幅图像在传输或量化等处理过程中会产生寄生效应,图像平滑增强处理的目的就是为了削弱或消除这些寄生效应。在空域处理中,图像平滑主要有邻域平均法,低通滤波法,多图像平均法[9]。

2.1.1 邻域平均法
邻域平均法是一种最简单的图像平滑处理方法。该方法利用几个像素的灰度平均值代替每个像素的灰度。对于一幅有N N个像素的图像 ,平滑处理后得到图像 。 由公式(2.4)决定:
x=0,1,2,…..N-1 公式(2.4)
公式(2.4)中S是以 为中心点邻域的集合,但其中不包括 点。M是集合内坐标点的总数。公式(2.4)说明,平滑图像 中每个像素的灰度值均由包含在 的预定邻域中的 的几个像素的灰度平均值来决定。
例如半径为1的邻域可以表示为
公式(2.5)
且M=4。
而半径为 的邻域可以表示为
公式(2.6)
且M=8。
邻域平均法可以有效的消除麻点状噪声,但是经过平滑处理后的图像会出现一定程度的模糊效应。由于指纹图像具有脊线和谷线交替的特点,在脊线边缘灰度变化剧烈,当对这些纹线边缘像素取邻域平均时不可避免会造成脊线边缘模糊,从而削弱了脊线,故此方法不适合处理指纹图像。
2.1.2 低通滤波法
这是一种频域处理方法。在分析图像信号的频域特性时,一幅图像的边缘,跳跃部分以及颗粒噪声代表着图像信号的高频分量,而大面积的背景区域则代表图像信号低频分量。用滤波方法滤掉高频分量就能去除噪声,使图像得到平滑。根据卷积定理:
公式(2.7)
公式(2.7)中 是含有噪声的图像傅里叶变换, 是平滑后的图像傅立叶变换, 是传递参数。显然 应当具有低通特性,得到 后再进行傅立叶反变换,就能得到平滑后的图像 。
常用的低通滤波器有:理想低通滤波器,巴特沃斯低通滤波器,指数低通滤波器,梯形低通滤波器。
低通滤波器虽然能有效滤除指纹图像脊线中的小孔洞和背景噪声,滤波后脊线边缘清晰,但却不能对纹线的断裂点进行连接。
2.1.3 中值滤波
对受到噪声污染的图像复原可以采用线性滤波,但多数线性滤波在去除噪声的同时也使图像边缘模糊了。中值滤波可以在一定条件下既去除噪声又保护图像边缘清晰度。中值滤波是一种非线性滤波,其基本原理是数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替。
中值的定义如下:
一组数 ,把这n个数按值的大小顺序排列:

公式 (2.8)
y称为序列 的中值。把一个点的邻域作为窗口,在一维情况下,中值滤波器是一个含有奇数个像素的滑动窗口。窗口正中间像素的值由窗口内各像素的中值决定。
将中值滤波的概念推广到二维,设 表示数字图像各点的灰度值,滤波窗口为A的二维中值滤波可以定义为:
公式(2.9)
二维中值滤波的窗口可以取方形,也可以取近似圆形或十字形。如果要强调中间点或距离中间点最近的几个点的作用,还可以增加这些点的权值。
中值滤波可以去除脉冲型噪声,保护图像边缘。但它也存在一些缺陷,如果使用不当,会丢失很多图像细节。在处理指纹图像时,必须根据指纹纹线的宽度选取合适的滤波窗口,根据指纹图像灰度分布选择权值,这样才能避免脊线边缘模糊。
2.1.4 直方图修整法
图像直方图是图像处理中一种十分重要的图像分析工具,它描述了一幅图像的灰度级内容,任何一幅图像的直方图都包含了丰富的信息。从数学统计学上讲图像直方图统计了一幅图像中各个灰度级出现的次数或概率。
假设图像f的灰度范围为 ,P(Z)表示 内所有灰度级出现的相对频率,显然P(Z)是Z的函数,通常称P(Z)的图形为图像f的直方图。从图形上来看,它是一个二维图,横坐标表示图像中各个像素点的灰度级,纵坐标为各个灰度级上图像像素点出现的次数或概率。图2.1所示即为图像灰度直方图示意图。

P(Z)

Z

图2.1 图像灰度直方图示意图

为了研究的方便,先将直方图归一化,即将源图像灰度范围 归一化为[0,1].设其中任一灰度级Z归一化为r,变换后的图像的任一灰度级Z,归一化为s,显然r,s应当满足: , 。
因此直方图修整就是对公式(2.10)或公式(2.11)的计算过程:
公式(2.10)
公式(2.11)
公式(2.10)中T(r)为变换函数,它必须满足下列两个条件:
(1)T(r)在 区域内是单值函数,且单调增加;
(2)T(r)在 区域内满足 。
条件(1)保证了灰度级从黑到白的次序,条件(2)保证变换的像素灰度级仍在允许的灰度级范围内。
公式(2.11)中 为逆变换函数,也需要满足上述两个条件。
假定用 和 分别表示源图像和变换后图像的灰度级概率密度函数,则 可由公式(2.12)求出:
公式(2.12)
可见,使用直方图修整法进行图像增强技术的实质就是选用合适的变换函数 来修整图像灰度级概率密度函数 ,从而得到灰度级按 分布的新图像。
直方图均衡化是直方图修整法中一种最常用的方法。一张灰度图像,在因对比度不高而导致图像效果不清晰,甚至难以辨别的情况下,可以采用直方图均衡化技术,把原始图像的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果,提高图像质量。为了对图像进行直方图均衡化,常常要求 =1。对于一幅数字图像而言,其变换函数通常为:
公式(2.13)
公式(2.13)中L是图像灰度级数; 是第j个灰度级出现的概率; 是图中第j个灰度级的像素数;n是图像总像素数。
对于某些灰度级集中在暗区的指纹图像,其许多图像细节往往无法看清。直方图修整法能通过修正灰度级别分布在人眼合适的亮度区域使这些细节清晰可见。虽然这种方法能很好的增强指纹图像的细节信息,但却很难消除图像的背景噪声,因此还需要配合其他方法才能获得较好的图像增强效果。
2.2 图像的数学形态学运算
数学形态学是一门新兴的图像分析学科。这门学科在计算机文字识别,计算机显微图像分析,医学图像处理,图像压缩编码,工业检测,材料科学等方面都取得了非常成功的应用。它的基本思想是用具有一定形态的结构元素去度量和提取图像中对应形状以达到对图象分析和认识的目的。数学形态学是在集合论的基础上发展起来的,它的运算都由集合运算来定义,所有的图像都必须以合理的方式转换为集合。
2.2.1 数学形态学的基本符号和术语
数学形态学中常用的基本符号和关系术语主要包括元素、包含、击中、不击中、补集、对称集、结构元素、平移等。
1.元素:设有一幅图像X,若点a在X的区域以内,则称a为X的元素,记作 。
2.包含于:设有两幅图像A,X。对于A中所有元素 ,都有 ,则称A包含于X,记作 。
3.击中:设有两幅图像A,X。若存在一个这样的点,它既是A的元素,又是X的元素,则称A击中(hit)X,记作 。
4.不击中:设有两幅图像A,X。若不存在任何一点,它既是A的元素,又是X的元素,即A和X的交集是空,则称A不击中(miss)X,记作 。
5.补集:设有一幅图像X,所有X区域以外的点构成的集合称为X的补集,记作 。
6.结构元素:设有两幅图像A,X。若 X是被处理的图像,而A是用来处理X的,则称A为结构元素(也叫刷子)。结构元素通常为一些较小的图像。
7.对称集:设有一幅图像A,将A中所有元素坐标取反,即令(x,y)变成(-x,-y),所有这些点构成的新集合称为A的对称集,记作 。
8.平移:设有一幅图像A,有一个点 ,将B平移a后的结果是把A中所有元素的横坐标加 ,纵坐标加 ,即令(x,y)变成 ,所有这些点构成的新的集合称为A的平移,记作 。
2.2.2 数学形态学基本运算
数学形态学的基本运算有四个:膨胀(或扩张),腐蚀(或侵蚀),开启和闭合。
1.腐蚀
腐蚀的运算符为 ,A用B来腐蚀写作 ,其定义为:
公式(2.14)
公式(2.14)表示把结构元素B平移a后得到 ,若 包含于A,就记下这个A点,那么所有满足上述条件的a点组成的集合称为A被B腐蚀的结果。其过程如图2.2所示。

Y
Y
X
B
X
(1) 被处理元素A (2) 结构元素B
Y

A
B X

(3)腐蚀运算
图2.2 腐蚀运算示意图

图2.2中A是被处理对象,B是结构元素,原点指定为B的圆心位置。对于任意一个在阴影位置的点a, 包含与A,所以A被腐蚀的结果就是那个阴影部分。阴影部分在A区域之内,且比A小,所以腐蚀具有收缩图像的作用。
2.膨胀
膨胀的运算符为 ,A用B来膨胀写作 ,其定义为:
公式(2.15)
公式(2.15)表示把结构元素B平移a后得到 ,若 击中A,记下这个a点。所有满足上述条件的a点组成的集合称做A被B膨胀的结果。图2.3是膨胀运算示意图,A表示的大长方形是被处理对象,小正方形B是结构元素,原点指定为B的中心。不难看出,对任意一个在阴影部分的点a, 击中A,所以A被B膨胀的结果就是那个阴影部分。膨胀具有扩大图像的作用。

Y Y
X

X

(1) 被处理元素A (2) 结构元素B
Y

A
X
(3)膨胀运算
图2.3 膨胀运算示意图

3.开运算和闭运算
开运算的运算符为 ,A用B来作开运算写作 ,其定义为:
公式(2.16)
闭运算的运算符为 ,A用B来作闭运算写作 ,其定义为:
公式(2.17)
开运算能平滑图像的轮廓,削弱狭窄部分,去掉细的突出;闭运算也能平滑图像轮廓,与开运算相反,它能融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。
基于膨胀,腐蚀,开启和闭合这四个基本运算可以推导和组合成各种数学形态学算法,用他们可以进行图像形状和结构的分析处理,包括图像分割,特征提取,边缘检测,图像滤波,图像增强和恢复等等。
2.3 二值化
指纹图像是一种只包含脊线和谷线的灰度图像,自动指纹识别系统在处理指纹图像时只关心当前被处理点是在脊线上还是谷线上。所以可以将在脊线上的点值置为0,而谷线上的点值为255,即将指纹图像从灰度图象变成了二值图象。二值化并不改变指纹图像所包含的脊线和谷线这种特征。
对指纹图像二值化的好处在于使得图像的几何性质只与0和1的位置有关,不再涉及像素的灰度值,使处理变得简单,而且能够压缩数据量。对于我们的指纹传感器采集到的图像而言,二值化以后的数据量只有原始数据量的1/8。图像二值化过程中的阈值选择是关键。
2.3.1 指纹图像二值化的要求
目前,己有不少图像的二值化算法,一个针对指纹特点的二值化算法需要满足以下几点要求:
a.脊线中不出现空白;
b.二值化后的脊线基本保持原来指纹的特征;
c.指纹的纹线不应有太多的间断和粘连;
d.指纹纹线间的间距应大致相同;
e.由于指纹识别系统的特性,二值化算法的速度也应是一个评价指标。
2.3.2 几种二值化方法
1.整体阈值二值化
整体阈值二值化是由灰度级直方图或者经验函数法给出一个针对整幅图像的阈值T,指纹图像中,所有大于T的像素点都被二值化为1,小于T的像素点都被二值化为0。算法步骤为:
a.计算出整幅指纹图像的灰度直方图。
b.求出灰度直方图的峰值,由于录入的指纹图像脊线和谷线的数目接近相等,因此,理论上,指纹灰度直方图应有两个峰值。
c.以所求出的两个峰值中间的灰度值作为整体阈值进行二值化:即将指纹图像中所有灰度值大于阈值T的像素点置为1,小于等于T的像素点置为0。
但大多数指纹图像的原始灰度直方图(即使录入质量好的指纹图像)并不是一条平滑的曲线,用肉眼观察不能看出其峰值和谷值的分界线,这样直接在直方图中寻找谷值是难以求出阈值的。
2.局部阈值二值化
由像素点灰度值和该点邻域内其他点的局部灰度特性来确定阈值从而进行二值化的方法叫做局部阈值二值化。显然,在一幅二值指纹图像中,如果在一个区域内为”1″的像素的总数多于为”0″的像素的总数,那么二值指纹图像的脊线就容易相连:如果为”0″的像素的总数多于为”l”像素的总数,那么二值指纹图像的脊线就容易断开;如果为” l”像素的总数等于为” 0″像素的总数那么就可兼顾两方面,二值指纹图像的脊线既不容易相连,又不容易断开。
该算法步骤为:
a. 如公式(2.18)采取 (n为奇数)的窗口作为小区域,求出窗口内所有像素的灰度值均值m:
公式(2.18)
公式(2.18)中 为像素点 的灰度值,n为窗口的宽度。
b. 设窗口中心的灰度值为p,比较窗口中心像素的灰度值p与所求出的窗口的灰度值均值m,如果p大于或等于 m,则将该像素二值化为”0″(即背景像素);否则将该像素二值化为”1″(即前景像素)。
窗口宽度的选择是这样考虑的:如果宽度选择的很大,不仅窗口边缘的像素点与窗口中心的关系不大,而且计算量也很大;如果宽度选择的很小,则窗口可能完全落在指纹的脊线或谷线上,会引起脊线的中断或粘连。
3.快速方向图二值化
方向图是用每一个像素点的方向来表示指纹图像,像素点的方向是指其灰度值保持连续性的方向,可以根据像素点邻域的灰度分布来判断,我们设定了8个方向,各方向之间夹角为 。
利用指纹图像每一个像素的灰度值分布确定方向,其基本原理如图2.3所示,用 表示方向待求的像素(图2.4中用11表示第一个方向的第一个像素值,12表示第一个方向的第二个像素值,……,86表示第八个方向的第六个像素值,依此类推来),以 为中心选取13×13的窗口,通过邻域像素的值可以求得 各方向上的灰度值和,首先计算标号为i 的方向上的6个像素的灰度和 , i=1,…,8。令
公式(2.19)
公式(2.20)
公式(2.21)
当满足公式(2.22)时, 点处于脊线上,赋值为0(即黑色);否则为背景点,赋值为255(即白色)。
公式(2.22)

73 83 13 26 36

72 82 12 25 35
63 46
62 71 81 11 24 34 45
61 44
53 52 51
54 55 56
41 64
42 31 21 14 84 74 65
43 66
32 22 15 85 75

33 23 16 86 76

图2.4 13×13的窗口方向示意图
2.4 细化
指纹图像二值化后,纹线仍具有一定的宽度,平均宽度为6~8个像素。由于人们关心的是指纹纹线的走向与结构,而不是它的粗细,所以可以通过细化将纹线变为单像素宽度的”点线”。细化能去除不必要的纹线粗细信息,节省内存,便于从指纹中提取细节特征,从而提高指纹图像的处理速度。一种好的细化算法应该满足下列条件:
a.迭代必须收敛(收敛性);
b.不破坏纹线的连接(连通性);
c.不引起纹线的逐步吞食(拓扑性);
d.保护指纹的细节特征(保持性);
e.骨架纹线的宽度为1个像素(细化性);
f.骨架尽可能接近条纹中心线(中轴性);
g.算法简单、速度快(快速性)。
细化算法的种类很多,按细化处理过程可分为串行细化、并行细化和串并行混合细化。串行细化一次只能处理一个像素,下次 *** 作由上次的 *** 作结果决定。并行细化算法是同时对满足给定条件的像素进行处理,即一次处理所有像素的一个子集。按细化后图像的连通性可将细化算法分为4连通细化、8连通细化和混合连通细化。4连通指的是细化后图像在水平垂直4个方向上的连通,8连通是细化后图像在水平垂直4个方向再加上正反45度共8个方向上的连通,混合连通是指细化后图像既有4连通也有8连通。其它常用于指纹细化的算法还有方向图中心扫描细化算法 、纹线跟踪细化算法等。
这里预先给出几个定义:
目标点和背景点:目标点指像素值为1的点,与此对应,背景点像素值为0。8邻点和4邻点:如图2.5所示,设有任意像素点P,P的8邻点即为以P为中心的3×3区域中除了P点以外的8个点P1、P2、P3、P4、P5、P6、P7、P8,其中P2、P4、P6、P8 为其4邻点。

P1 P2 P3
P8 P P4
P7 P6 P5
图2.5 点P的邻点分布示意图

单像素宽:考察纹线上每一点的8邻点,纹线端点的8邻点中只有1个目标点,纹线连续点的8邻点有两个目标点,纹线分叉点有3个目标点,且每点8邻点最多只有3个目标点。符合上述条件即为单像素宽。
边界点:属于目标点,且其4邻点中至少有一个为背景点。
端点:属于边界点,且其8邻点中只有一个属于目标点。
关键点:删除该点后会引起纹线的不连通,又叫做断点。
2.4.1 快速并行细化算法
快速细化的算法描述如下:
a.遍历整个指纹图像,找出纹线的边界点。
b.判断该边界点是否应删除。对边界点P定义两个特征量nsum和tsum。
公式(2.23)
公式(2.24)
公式(2.23)和公式(2.24)中 。如果P点同时满足: 且 , ,则可将其删除。
c.继续寻找下一个边界点,直到没有可删除的点为止。
快速细化算法的运行速度很快,但存在一个严重的缺陷,由于该算法是4连通算法,因此由该算法得出的细化结果图像很多不是单像素宽,细化不彻底。
2.4.2 串行OPTA串行算法
OPTA细化算法从图像的左上角元素开始进行,每个像素均抽取如图2.6所示的10个相邻像素,并且与图2.7所示的8个模板相比较,如果8个邻域像素( 、 、 、 、 、 、 、 )与细化模板中的一个匹配(模板中非” “处的元素与此元素所对应的8邻域中的像素值都相等时成为匹配,下同),则去除 ,否则保留。

图2.6 OPTA算法中抽取的像素

0 1

0 1 1
0 1
1

1 1 1
0 0 0

1 0
1 1 0

1 0
0 0 0
1 1 1

1
0 0

0 1 1

1
1

0 1 1
0 0

(1) (2) (3) (4)

0 0
1 1 0

1
1

1 1 0

0 0

(5) (6) (7) (8)
图2.7 8个删除模板(” “处可取0或1)

为了保持连通性,抽取的元素再和图2.8的两个保留模板进行比较,若与其中一个匹配,则 仍保留,只有当与两个模板都不匹配的时候, 才真正删去。
0
1
1
0

0 1 1 0

(1) (2)
图2.8 2个保留模板(” “处可取0或1)

算法按从左上角到右下角的顺序进行,处理完以上过程为一次迭代,将迭代反复进行,直到没有一个像素值改变为止。OPTA算法能满足收敛性、连接性、拓扑性和保持性,能得到较好的细化效果。但该算法得到的细化骨架在分叉点处细化不彻底,细化后的纹线不光滑,纹线有较多毛刺,且纹线扭曲不在纹线中心。因此不满足细化的中轴性和细化性,并且因为使用多个模板,算法速度也比较慢。
2.4.3 串并行混合细化
该算法中将既不是关键点也不是端点的点称为可删除点。图2.6为串并行细化用到的模板。

1
1
0

1 1 0
0 1 1
0
1
1
(1) (2) (3) (4)
图2.9 串并行混合细化算法中用到的模板

图2.9中各个模版具体表示为:
(1) ;(2) ;
(3) ;(4) ;
算法只对满足4个模板其中之一的点进行处理。对应上述4个模板分别给出关键点的判断条件如下:
(1)对匹配模板的像素,若满足( )||( ),则P为关键点。
(2)对匹配模板的像素,若满足( )||( ),则P为关键点。
(3)对匹配模板的像素,若满足( )||( ),则P为关键点。
(4)对匹配模板的像素,若满足( )||( ),则P为关键点。
对满足某个模板的目标像素,使用上述判断条件判断此点是否为关键点,若为关键点,则不可删除,若此点不是关键点,则再判断此点是否为端点,若是端点则将P点保留,否则将P点删除。
算法分为4次迭代,每次迭代对应一个模板,先使用图2.9中模板(1)对图像中满足(1)模板的像素的进行处理,删除可删除的点。将输出图像再使用图2.9中模板 (2),对满足模板(2)的像素进行处理,删除可删除点。依此类推。直至第4次迭代输出即为细化图像。算法每次迭代内部处理是并行的,各迭代之间是串行的,因此叫做串并行混合算法。
串并行细化算法执行速度快,跟快速细化差不多,能满足收敛性、连接性、拓扑性、中轴性和保持性,能得到较好的细化效果。但该算法得到的细化骨架在分叉点处细化不彻底,使后续步骤不能正确地提取细节点。
2.5 小结
指纹图像由交替出现的脊和谷组成。对于一幅灰度指纹图像,脊和谷形成一个正弦面,从频域角度来看,指纹图像中的有用信息包含在一定的通带内。指纹图像的脊线有方向性,该方向在局部区域具有连续性,在某个尺寸的局部区域中,可以认为脊线方向是不变的。指纹图像处理的方法应该利用指纹图像的特点,脱离指纹的特点进行处理是很难得到较好的处理效果的。本章首先探讨了一些图像平滑增强方法,由于这些方法没有考虑到指纹图像自身的特点,所以处理效果都不够理想。本章还介绍了数学形态学的一些基本概念和运算,它是一种新兴的被广泛用于图像分析和处理的数学工具。最后研究了指纹图像常用的二值化及细化算法,并就这些算法的优缺点进行了简单的比较。

第三章 指纹图像预处理系统设计和实现
在指纹自动识别过程中,首先要对指纹图像进行特征提取,然后根据这些特征集在指纹档案库中进行匹配,从而检索有关信息。在预处理过程中,必须尽量保证既不出现伪特征又不损失真实特征。预处理是指纹自动识别过程中关键的一步。
3.1 指纹图像预处理总体设计
在指纹图像采集过程中,由于采集设备的参数设置不理想,周围环境变化,皮肤干燥等影响,大约10%的指纹图像是含噪音较多的低质量灰度图像。这些噪音严重影响了细节特征的提取,并有可能产生一些伪特征。
通过指纹图像预处理,可以削弱这些噪声。通过对指纹图像进行增强,二值化及细化,将原始指纹图像变成一幅清晰的”点线”图,可以使特征提取的精确度得到提高,为特征匹配提供更加可靠的特征数据,从而提高指纹识别的准确率。好的指纹预处理算法必须兼顾运算效率与准确性,使系统响应时间和正确识辨率控制在人们允许的范围内。指纹图像预处理过程如图3.1所示。
图3.1 指纹图像预处理过程图

普通灰度图像处理方法由于没有考虑到指纹图像的方向性,因此并不适合用于处理指纹图像。本文采用了一套基于Gabor滤波的组合算法,并在VC++6.0上实现。此算法较好的利用了指纹的方向性,实验证明,该算法对低质量指纹图像也十分有效。图3.2为本文采用的指纹预处理系统框图。
图3.2 本文采用的指纹预处理系统框图

3.1.1 界面设计
图3.3为进入系统时的欢迎界面。左上角为四个 *** 作菜单按钮:打开图像、图像增强、图像恢复、保存图像。

图3.3 系统的欢迎界面

打开图像:当用户点击”打开图像”按钮时,程序会d出一个对话框,询问用户打开哪一幅指纹图像。用户作出选择后在该界面的左边显示所选择的指纹图像。
图像预处理:如图3.4所示,点击”图像预处理”按钮后,程序出现一个下拉菜单,菜单选项从上至下分别为:直方图均衡化、邻域平均、方向滤波、二值化、细化、细化后去噪、组合算法。用户点击相应选项就对所选择的指纹图像进行相应的处理。其中,”组合算法”就是本文提出的一整套算法的组合,包括:基于Gabor的方向滤波、二值化、细化和细化后处理四个过程。
图3.4 点击”图像预处理”后的下拉菜单

图像恢复:当用户要取消对图像进行的 *** 作时,点击此按钮,图像恢复为原始指纹图像。
保存图像:点击此按钮将保存指纹图像处理结果。
图3.5是对一幅指纹图像进行 *** 作时的界面,其中左边显示的是原始指纹图像,右边显示了对其进行二值化处理后的效果。

图3.5 系统 *** 作界面

3.1.2 模块设计
预处理系统由直方图均衡模块、邻域平均模块、归一化模块、方向滤波模块、二值化模块、细化模块组成。各个模块功能相对独立,单独编写和调试,最后将其中某些模块组合成预处理系统,剩下的模块用以进行对比实验。
a.直方图均衡模块:由ZhiFangtu_Junhenghua()函数构成,该模块完成对指纹的直方图均衡化处理。
b.邻域平均模块:由函数RouHua()组成,利用邻域平均算法完成对图像的平滑处理。
c.方向滤波模块:由函数fang_xiang_tu()组成,用于对指纹图像进行Gabor滤波,包括方向图的求取和Gabor滤波两个步骤。该模块为本系统最重要的模块,并且由于该模块存在复杂的卷积运算,所以系统大部分处理时间花费在这一模块上。
d.二值化模块:由w_b_hua()和Enforce_BMP()两个函数组成。函数w_b_hua()用于指纹图像二值化处理;函数Enforce_BMP()用于二值化后小孔的填充。
e.细化模块:由Thin_BMP(),lian_jie(),gen_zong(),xihua_quzao_1()四个函数组成。Thin_BMP()函数完成指纹图像的细化,lian_jie()函数用于由于细化或其它原因引起的断裂纹线的连接。在此基础上,函数gen_zong()将过短的纹线以及毛刺删除,函数xihua_quzao_1()用于孤立点的删除。
采用不同的模块组合方式会产生不同的预处理效果,通过对比这些效果就能找出一套最佳的预处理组合算法。
3.2 预处理组合算法过程
本文在VC++6.0上实现了一系列算法,并对这些算法进行了不同的组合,根据实验得到了一套较好的预处理组合算法,该套算法步骤如下:
a.将图像分为若干个9x9大小的子块,分别计算各个子块方向;
b.建立Gabor滤波器,利用提取的块方向对各个子块进行滤波;
c.采用改进的局部阈值二值化法对图像进行二值化;
d.采用Zhang和Suen的细化算法得到细化图;
e.对细化后图像去除短线和毛刺等,进一步减少图像伪特征;
以下是本文提出的这套算法的详细过程。
3.2.1 方向图的提取
本文采用的Gabor滤波器是一种方向滤波器,在对子块进行滤波之前必须求出其方向图。
图3.6是某一指纹的局部纹线结构。指纹图像最重要的特征之一就是具有明显的方向性,指纹由脊线和谷线排列而成,在局部区域内成平行结构。因此,在每一个局部区域内指纹有确定的方向。这种方向性反应了指纹的本质特征。正确的方向图的提取有利于获得好的图像增强效果,去除噪声;而错误的方向图最终将导致错误的图像增强。目前指纹方向图已被广泛应用于指纹图像增强、纹线特征的提取、指纹的自动分类、方向模板匹配、编码重构等许多关键处理环节[10]。
图3.6 指纹局部纹线结构

指纹像素点灰度值的分布具有一定的规律性,脊线上的点具有较大的灰度值,而谷线上的点具有相对较小的灰度值。如果作一条垂至于脊线的直线,用直线上的点的灰度值作灰度分布曲线,那么随着脊线和谷线的交替,曲线上也表现出波峰波谷的交替。如果所作的直线方向与脊线方向相同,灰度分布曲线则近似是一条波动极小的直线。这表明,垂直于脊线方向的直线上的点的灰度值方差大,平行脊线方向的直线上的点的灰度值方差小。换言之,方差最小的方向就是脊线方向。详细算法如下:
a.图像分块。将原始指纹图像分成若干大小为wxw的子块。w一般为1~1.5个脊线宽度,实验中取w=9。
b.块方向估计。预先定义8个方向(范围从0~ ,每个方向角度相差 /8),如图3.7所示。

图3.7 指纹方向图的8个预定方向

c.对像素点 分别沿8个方向跟踪,跟踪长度为8个像素宽度,计算其方差 (即沿 d 方向的灰度变化), 的大小由公式(3.1)决定:
, 公式(3.1)
公式(3.1)中 是点 的灰度值, 是d方向上第k个点,N是所取方向的方向数,n是所取的邻点数。本系统中N=8,n=8,即对每个点分别在8个预定方向上取8个邻点计算其灰度方差。
d.比较这8个方向的灰度方差 ,使 最小的方向d就是点 方向。
e.对每个小块内点的方向进行统计,小块中较多点同时具有的方向即为该块的块方向。
经实验测试,这种提取块方向的方法在处理指纹纹线较模糊的区域时误差较大。这是因为公式(3.1)在运算中反复用到了点 ,当该点为噪音点时就可能错误估计该点的方向,进而影响块方向图的提取。
为了获得较为准确的块方向图,系统对上述算法进行了改进。该改进算法并不计算点方向图而是直接计算块方向图:
a.与上述方法相同,仍然将图像分为若干9x9大小的子块,并且预先定义8个方向。
b.直接计算各个子块方差 (即沿 d 方向的灰度变化)。对于子块A, 的大小由公式(3.2)决定:
公式(3.2)
公式(3.2)中 和 是子块A中的点, 和 是点 和 灰度值,并且 和 是d方向上的相邻的两点。即对某一方向K,计算子块A内所有在K方向上相邻两点的灰度方差,并将该方差累加。
c.使 最小的方向d即为该块的块方向。
例如,对于如图3.8所示的一个9x9大小的子块(图中方框内的标注为点的坐标),按照公式(3.2),则以点(x,y)为中心的子块在0度方向的灰度方差 为:
公式(3.3)
而该子块在45度方向上的灰度方差 为:
公式(3.4)
公式(3.3)和公式(3.4)中 为点 的灰度值。
实验结果表明,该改进算法能更为准确的提取块方向图。

图3.8 9x9子块坐标
3.2.2 Gabor滤波
早期的指纹增强算法是在细化的指纹图像上进行的。这种算法首先采用简单的图像处理技术,如低通滤波或中值滤波等对灰度图像进行处理,再二值化及细化指纹图像,然后通过对拓扑结构的分析,结合纹线方向、距离等特征进行修正。这种方法基本上没有图像增强环节,真实信息的损失以及虚假信息的引入非常严重,效果比较差。
1985年,Daugman提出了二维Gabor滤波器理论,并指出二维Gabor滤波器可以同时在空域、频域和方向上获得最佳的分辨率。二维Gabor滤波器可以很好的模拟人的视觉神经细胞的感受视野轮廓。二维Gabor函数的数学表达式如公式(3.5):
公式(3.5)
公式(3.5)中 、 为高斯包络面常数;f为纹线频率。Gabor滤波器是一种在x方向上带通,y方向上低通的滤波器[11]。在对指纹图像进行滤波时,只需对滤波器进行旋转,使其与指纹方向一致,就可以使沿着指纹纹线的信息得以很大程度地增强,垂直于纹线方向的信息则相对减弱。
根据欧拉公式:
公式(3.6)
公式(3.6)可以转化为:
公式(3.7)
公式(3.7)中:
公式(3.8)
公式(3.9)
分析公式(3.8)与公式(3.9),不难看出公式(3.8)为偶函数,而公式(3.9)为奇函数。当使用公式(3.8)时,由于其偶对称性,在作用区域为以当前点(x,y)中心对称时,当前点信息将得到增强,而如果使用公式(3.9),则效果相反。由此,可以使用简化了的Gabor滤波器对指纹图像进行增强。其数学表达式如下:
公式(3.10)
将公式(3.10)所增强的方向旋转到与指纹方向一致。图3.8为Gabor滤波器沿指纹方向旋转示意图,图中 为当前 *** 作点指纹方向,旋转前的Gabor滤波器主要增强x轴方向上的信息,为了对当前 *** 作点指纹方向进行滤波增强,必须将Gabor滤波器的坐标旋转 ,X,Y分别为旋转前的坐标横轴,纵轴; , 为旋转后的坐标横轴,纵轴。
根据图3.9则有:
公式(3.11)
公式(3.11)中 , 为当前 *** 作点指纹方向,然后利用公式(3.12)对输入指纹图像进行处理。
公式(3.12)
公式(3.12)中Input为输入原始指纹图像;Output为增强后的指纹图像灰度值; 为分块大小。

Y

(i,j)
y 纹线方向
o x X

图3.9 Gabor滤波器沿指纹方向旋转示意图

当用Gabor滤波器完成滤波之后,像素的灰度值可能超出了[0,255]的范围,所以还应该对滤波后结果进行归一化处理,使像素灰度值介于0与255之间。具体做法是对Output(x,y)乘上某个常系数C。
实验中,取 =9, = =4,f=0.1,C=6时效果最好。Gabor滤波流程图如图3.10。
图3.10 Gabor滤波流程图
3.2.3 二值化
通常计算机很难直接从灰度图像中提取特征点,而且灰度图像占用较大的存贮空间。二值化的目的就是将灰度指纹图像变成只有0和1的取值的二值图像。通过指纹二值化处理,可以进一步对图像信息进行压缩,便于计算机存贮和处理,为特征提取和匹配做好准备。例如,一幅300x300x8Bit的灰度图像,二值化以后的数据量只有300x300x1Bit,这给存储和处理都带来了很大的方便,同时也提高了系统的经济实用性。二值化应尽量去除图像中的噪声。
二值化的难点在于阈值的选取。传统的整体阈值法二值化在处理高质量指纹图像时效果较好,速度很快,但是对于低质量指纹图像效果往往较差。本系统设计并实现了改进的局部阈值自适应二值化算法,取得了很好的二值化效果。
本文采用的改进局部阈值自适应二值化算法首先利用了传统局部阈值自适应二值化算法的思想,即根据指纹图像中每一部分的明暗度来调整阈值,每一块根据自己的阈值进行二值化,并在此基础上引入了局部灰度方差用以判断前景与背景区域。图3.11为改进的局部阈值自适应二值化算法流程图。具体算法如下:
a.将经过Gabor滤波后的图像划分成 的块;
b.计算第K块中各个像素点的灰度值总和 ,则这一块的灰度均值 为
公式(3.13)
c.计算第K块中的灰度方差 :
公式(3.14)
d.第K块的每个点(设坐标为(x,y))作以下处理:
公式(3.15)
其中 为点 的原始灰度值, 为点 新的灰度值。实验中 =9时效果最好。
N
Y

图3.11 改进的局部阈值自适应二值化算法流程图
3.2.4 二值图去噪
从二值图中可以发现脊线中有许多小孔,如不填充的话,细化后将会出现许多假特征点信息(如图3.12所示),因此必须填充小孔,使之变为脊线。其处理步骤为:
a.如图3.13所示,设P1为当前处理点,若P1=0,则执行步骤c;若P1=255,则令Sum=P2+P3+P4+P5+P6+P7+P8+P9,执行步骤b;
b.若Sum=0,则令P1=0,执行步骤c;否则P1不处理。执行步骤c。
c.将处理窗口移向下一个点,判断图像所有点是否都已处理过。如果每个点都处理过,则结束程序;否则执行步骤a。

(1)端点 (2)叉点 (3)断点形成假端点 (4)小孔形成假叉点
图3.12 小孔形成假特征点示意图
P9 P2
P3
P8 P1 P4
P7 P6 P5
图3.13 3 3窗口内像素点编号

通过这个算法,脊线当中的小孔得到有效消除,这为指纹图像的细化创造了良好的条件。
3.2.5 细化
经过二值化的指纹图像,纹线都具有一定的宽度,而系统处理时关心的只是线条的有无,纹线的粗细可以作为冗余信息通过细化去除掉。经过细化处理后的指纹图像将变成点线图,即纹线都是由一个象素宽的”点线”组成。细化的主要作用是去除不必要的纹线粗细信息节省内存,便于从指纹图像中提取细节特征。从而提高指纹图像的处理速度和效率。
细化时应保证纹线的连接性、方向性和特征点不变及纹线的中心基本不变。
传统的细化算法有Hilditch细化算法[12],Pavlidis细化算法,Posenfeld细化算法等。细化方法不同,细化结果就有差异。文献[13]中提到的纹线跟踪算法在细化速度和细化效果上较传统算法都有很大提高,但仍需花费较多的时间(对一幅512×512象素点的指纹图像进行细化需要25秒时间)。本文采用了Zhang和Suen的方法来细化指纹图像[14],该方法以3 3的图像块来进行细化处理,对每个像素都进行两步处理,从而决定是保留还是删除中间的点。如图3.13所示,P1为中心像素,P2,……,P9为周围的像素。对P1作如下处理:
第一步,如果满足以下条件,就删除中间的点:
(a)
(b)
(c)
(d) ;
其中 ,即P1周围不为0的像素点个数。
S(P1)是按{ }的顺序从0到1变化的次数。
第二步,条件(a)和(b)保持第一步中的不变,条件(c)和(d)修改如下:

第一步中的条件(c)和(d)用于去除不是轮廓像素的东南像素边界点和西北拐角像素点;第二步中的条件 和 用于去除西北边界像素点和东南拐角像素点。上述两个步骤重复执行,直到没有再能删除的点为止。
为了得到较高质量的细化图像,本系统共进行了四个方向的子细化过程:从左到右,从上到下,从右到左,从下到上。程序流程图如图3.14所示。
N

Y

N

Y
N

Y

图3.14 细化流程图
3.2.6 细化后处理
由于图像采集和预处理过程中不可避免的会引入一些噪声,细化后的图像会出现一些毛刺和短线,孤立点等伪特征。如果不删除这些伪特征,将给后续的特征提取和匹配产生不利的影响[15]。本文在3x3窗口上采用纹线跟踪技术,跟踪记录指纹上某一局域的结构,然后根据记录的像素数据对该局域指纹结构做出判断,决定是否进行滤除处理。
1.毛刺的删除
毛刺:一端为端点,另一端为三叉点或端点,通常毛刺是很短的。根据毛刺的这种特点,可以设计这样的处理算法:对细化后的图像逐点扫描,如果该点是纹线的端点,则从该端点出发,沿着细化后的纹线跟踪,若在距离step(实验中step=5)内遇到了另一个端点或三叉点,则可以判断所跟踪的纹线是毛刺,将此纹线删除。图3.15为毛刺删除算法流程图。

N
Y

搜索挡墙
Y N

Y
N
Y
图3.15 毛刺删除算法流程图

2.断点的连接
对细化后的图像逐点扫描,对某个像素点P,若P灰度值为零且与P的8个邻点中有且仅有7个点灰度值为255时,可以判断P点为纹线端点,则对以P为中心,三个象素点长度为半径的区域进行搜索,如果在此区域搜索到另一个端点 ,就将从P到 的直线上点的灰度值置零。否则不对P做任何处理,并搜索下一个象素点,直到图像中所有点都被扫描过为止。图3.16为断点连接的流程图。
N

Y
N

N Y
Y

图3.16 断点连接流程图

3.短线的删除
短线删除算法与毛刺删除算法相类似,在此不再赘述。只是纹线跟踪最大距离Step变为13,即长度小于13的纹线都视为短线删除。
4.孤立点的删除
对细化后的图像逐点扫描,设当前处理点为P,P1~P8为其相邻的8个点,若P=0且P1=P2=P3=P4=P5=P6=P7=P8=1(”0″表示该点为黑点,”1″表示为白点),则删除P,否则不对P作处理,扫描下一个点,重复执行以上步骤直到所有点都被扫描过为止。
通过上述 *** 作步骤,细化后指纹图像的伪特征可以得到有效的去除。
第四章 实验结果分析
4.1 预处理算法小结
对于指纹图像的预处理一直是指纹识别系统的难点技术之一。从原理上分析,指纹图像是脊线和谷线组成的线条状图像,因此其灰度直方图应表现明显的双峰性质,但是由于指纹采集时受到各种噪声的影响,使得实际得到的灰度直方图往往并不呈现双峰性质,因此一般的基于灰度的图像增强方法如直方图修整、中值滤波等很难取得明显的效果。对于指纹图像,局部区域的纹线分布具有较稳定的方向和频率,根据这些方向和频率数值,设计出相应的带通滤波器就能有效地在局部区域对指纹进行修正和滤波。Gabor滤波器可以同时在空域和频域上获得最佳的分辨率,具有良好的带通性和方向选择性。因此,本文采用了基于Gabor滤波的指纹识别预处理算法,对输入的含有较多噪音的指纹图像进行滤波、二值化、细化及细化后处理等 *** 作,有效的改善了指纹图像的质量,获得了较好的预处理效果。
在方向图的提取上,将脊线方向量化为8个方向,并对块方向图的求取方法进行了改进,获得了较为准确的块方向图;接着利用Gabor滤波器在8个方向上进行滤波。采用平滑阈值自适应二值化算法把灰度图像转变为二值图像,并对获得的二值图像进行了简单的去噪,包括脊线中的小孔洞的填充和边缘毛刺的删除。然后利用细化算法将指纹脊线细化到一个像素宽度,去除大部分噪声之后获得了较为清晰的点线图。
在该预处理系统中还存在着一定的问题。一个是系统优化问题,尽管对程序做了许多优化工作,但仍然存在程序重复执行的现象。还需要对程序的结构进行一定的改进。二是算法有待改进。Gabor滤波器虽然能获得较好的滤波效果,但是该算法存在卷积运算,会花费较长时间。采用简化的Gabor滤波器以后,处理时间得到了一定的减小,但仍然需要较长的处理时间。当系统对实时性要求较高时,Gabor滤波就很难满足要求了。Gabor滤波器一共包含四个可变参数:高斯包络面常数 、 、纹线频率f、块方向 ,在进行Gabor滤波时,系统只是求出了块方向 ,而其他参数采用的都是经验值( = =4,f=0.1)。这样处理的好处是能够大大减小系统处理的时间;缺点是这些经验值都是对有限的指纹库中的数据进行处理时总结得到的,但对于千变万化的指纹图像而言,其适用性不高。为了让系统具有更好的鲁棒特性,可以在系统中加入求取高斯包络面常数 、 、纹线频率f的程序,但这样会增加系统处理时间。
4.2 实验结果比较
4.2.1 方向滤波结果分析
系统对几种滤波效果作了对比。执行程序,打开任意一幅未经处理的指纹图像,分别用邻域平均滤波算法,频域滤波算法和Gabor滤波算法处理该图象。图4.1为滤波效果的对比,其中图(1)是质量较好的原始指纹图像;图(2)是采用邻域平均滤波以后的图像,滤波窗口大小为7 7;图(3)是通过频域滤波以后的结果,频域滤波算法是在Matlab 6.5平台上实现的,滤波器为理想低通滤波器,滤波半径为50;图(4)是Gabor滤波的效果,滤波窗口大小为9 9。
从图中可以看出采用邻域平均法滤波会使脊线的边缘变得模糊,有的地方会发生粘连,这给后续的二值化阈值选取带来了一定的困难,而频域滤波能较好的去除噪音,并且脊线边缘清晰,但是未能将断裂的纹线很好的连接起来。采用Gabor滤波能很好去掉噪音,脊线与谷线边缘都较清晰,同时一些小的断点也被连接起来了。可见,Gabor滤波器能起到很好的滤波效果。

(1)原始指纹图像 (2)邻域平均滤波效果

(3)频域滤波效果 (4) Gabor滤波效果
图4.1 滤波效果对比

4.2.2 二值化结果分析
选择图4.1的图(2),分别采用整体阈值二值化算法和改进的局部阈值自适应二值化算法对其进行处理。图4.2为这两种二值化算法处理效果对比,其中图(1)为整体阈值二值化后的效果,图(2)为改进的局部阈值自适应二值化后的效果。
从处理时间上看,两种二值化算法都很快,但整体阈值二值化算法略快于局部阈值自适应二值化算法,后者多出的那部分处理时间主要用于计算子块灰度均值和方差。从处理效果上看,整体阈值二值化法很难找到适合的阈值,灰度分布不均匀的指纹图像极易出现断点和粘连,从图(1)明显可以看出,部分区域脊线和谷线之间粘连十分严重;而改进的局部阈值自适应二值化使脊线和谷线清晰的分离开来,处理效果显著优于整体阈值法。
综上,当系统对实时性要求不高而对图像处理效果要求较高时,应当首选改进的局部阈值自适应二值化算法。
(1)整体阈值二值化效果 (2)改进的局部阈值自适应二值化效果
图4.2 二值化效果对比

4.2.3 细化结果分析
对于图4.1中图(4),选择程序中”指纹预处理”菜单中的”二值化”按钮,即通过改进的局部阈值自适应二值化算法对其进行二值化处理;再选择”指纹预处理”菜单中的”细化”按钮,得到如图4.3所示的细化处理效果图。细化处理后纹线基本都是一个像素宽度,且纹线位于原来脊线的中心位置。该细化算法处理速度(对一幅512×512像素点的指纹图像进行细化约1秒左右)比文献[13]中提到的纹线跟踪算法(对一幅512×512象素点的指纹图像进行细化需要25秒时间)快很多。本系统的细化是令人满意的。
细化后的图像仍存在着一些短线和毛刺,有必要对细化后的图像进行后处理。

图4.3 细化处理结果图
4.2.4 细化后处理结果分析
细化处理后的图像仍然存在着毛刺,短线和一些孤立点,严重影响了特征的提取和比对。为此,系统设计了细化后处理模块。针对图4.3,点击程序中”图像预处理”菜单内”细化后处理”按钮,程序将依次执行断点的连接,毛刺的删除,短线的删除,孤立点的删除四个步骤。图4.4是得到的细化后处理的结果图。可以看出,短线和毛刺基本都被删除掉了。至此,系统预处理全部完成,我们也获得了较为清晰的点线图。
图4.4 细化后处理结果图
4.2.5 另一组实验结果分析
为了进一步观察该系统对低质量指纹图像的预处理效果,实验还另外选择了一幅指纹图像。图4.5为低质量指纹图像预处理效果图。其中图(1)为质量较差的原始指纹图像,图像中有较多的断点和孔洞;图(2)为Gabor滤波后效果,滤波后一些断点得到了连接,且孔洞被很好的过滤掉了,图(3)为二值化处理效果,图(4)是细化效果,图(5)是细化后处理效果;从图(5)可以看出,该系统对低质量指纹图像也能获得较好的预处理效果。
(1)原始指纹图像 (2)Gabor滤波后效果

(3)二值化处理效果 (4)细化效果
(5)细化后处理效果
图4.5 低质量指纹图像预处理效果图
第五章 总结与展望
5.1 总结
指纹图像预处理是自动指纹识别系统中一项艰巨而又极关键的任务。其处理时间大约为整个系统运行时间的95%以上,而后续的指纹特征提取和比对的准确性也依赖于预处理的结果。指纹图像预处理的研究对提高AFIS系统的性能有着重要的意义。
本文简单阐述了生物识别技术和AFIS系统的概貌,着重介绍了指纹图像预处理的一些基本概念和算法,对针对这些算法进行了比较。利用指纹图像的方向性,采用了一套基于Gabor滤波器的指纹预处理算法。该预处理算法主要包括方向图的提取、Gabor滤波、二值化、细化等步骤。
1.在方向图的提取中,将指纹方向离散到8个预先设定的方向,在9 9窗口上利用改进的方向提取方法获得了较为准确的块方向。
2.建立了简化的Gabor滤波器,大大缩短了滤波时间;此外,为了进行比较,还编程实现了另外几种传统滤波算法,通过对多幅指纹图像滤波的比较,证明了Gabor滤波算法效果明显优于传统的滤波算法。
3.在二值化过程中采用了改进的局部阈值自适应二值化算法。编程实现了整体阈值二值化算法用于效果的比较,实验证明,改进的局部阈值自适应二值化算法效果最优。
4.采用了Zhang和Suen提出的细化算法对图像进行细化,得到了令人满意的细化效果。对细化后的图像进行了去噪处理,包括断点的连接,毛刺和短线的删除,孤立点的删除。通过这些处理,去除了大部分的伪特征,得到了较为清晰的二值点线图。
总之,本文通过大量的研究和实验,给出了一套有效的指纹预处理系统软件实现部分。
5.2 展望
本文所提出的指纹预处理算法虽然取得了一定的效果,但还存在着许多需要改进的地方。
必须指出,改进的方向图提取方法在指纹图像纹线太模糊或断裂太多时会使方向图提取不准确,进而影响后续的Gabor滤波效果。由于纹线方向在局部区域的连续性,可以在获得方向图之后加入方向图平滑的步骤,这样可以在一定程度上校正错误的纹线方向。
另外,Gabor滤波器的参数选择上也存在着尚未解决的问题。本文中Gabor函数的参数除了滤波方向 外,全部都使用的是经验值。这些经验值是对有限的指纹库中的数据进行处理时总结得到的,但对于千变万化的指纹图像而言,其适用范围还有待商榷。可以在系统中加入Gabor参数测定模块,针对所处理的图像,通过一
定的算法求得纹线频率 和高斯包络面常数 , ,这样滤波效果将更好。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2484530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存