毕业设计完成于2012年,现阶段关于图像的东西都是走神经网络了,本文仅可以作为背景知识和简单的课程设计参考,本文另附一个MFC演示程序见文末下载链接
摘要: 指纹识别技术作为生物识别技术中最为具有应用前景的技术之一,近年来取得了长足的发展,并广泛应用于各种场合。由于指纹所具有的唯一性和不变性,以及指纹识别技术具有很高的可行性和实用性,指纹识别成为目前最流行、最可靠的个人身份认证技术之一。所以对指纹识别技术的研究具有重要的理论和实际意义。
指纹识别的一般性过程分为三步:指纹图像的预处理,指纹特征提取以及特征匹配。本设计采用Visual Studio 2008 MFC依照软件开发自顶向下,逐步细化的经典模式,按上述步骤完成开发工作,成功实现了基于BMP格式指纹图像的增强,二值化,细化,特征提取以及对比分析工作。完成了具有一般性的指纹对比分析系统。
关键词: 指纹识别;MFC;图像增强
Abstract: The fingerprint identification technology act as the most promising application of biometric technologies, has made considerable development in recent years and is widely used in various occasions. Due to the uniqueness and invariability of fingerprints,the fingerprint recognition becomes the most popular and reliable personal authentication technology. As a consequence, the study of fingerprint identification technology is of great theoretical and practical significance.
Fingerprint identification can be divided into three periods: preprocessing of fingerprint images, feature extraction and feature matching In this design, we adopt the visual studio 2008 edition’s MFC, in accordance with software development which uses top-to-down process and the gradual refinement of the classic model , and successfully achieve enhancement ,binarization ,thinning of fingerprint image, based on the BMP format. Through the whole process, we finally complete a general fingerprint contrast and analysis system
Key words: Fingerprint identification; MFC; enhancement
@toc
指纹的对比分析系统
指纹识别学是一门古老的学科,它是基于人体指纹特征的相对稳定与唯一这一统计学结果发展起来的。随着计算机和网络的迅速发展,人们对身份认证的准确性、安全性与实用性提出了更高的要求。在众多的生物识别技术中,指纹识别技术是发展最早、应用最广泛的一种。指纹识别技术充分利用了指纹的普遍性、唯一性和永久性的生物特征,已逐步取代了传统的基于标志和数字的识别方式,目前在网络、银行、金融、医疗和安检等行业均得到了广泛应用。本文对指纹识别系统的原理和基本过程进行了分析研究,重点研究了指纹图像预处理,细化,特征点比对等算法,并且设计实现了指纹对比分析系统,进行了模拟验证等工作。
随着现代社会经济的不断发展,越来越多的场合需要身份的确认手段。生物识别技术(Biometric Identification Technology)——是利用人体生物特征进行身份认证的一种技术。而指纹识别是生物识别技术中最成熟也是最可靠的识别技术之一
相关资料显示,中国是世界上最早应用指纹识别技术的国家。在西安半坡出土的距今六千多年的陶器上已发现了指纹的痕迹。从有据可查的资料中显示,我国对指纹的应用最早出现在中国古代秦朝以前,诸如南郑春秋商城遗址出土的春秋战国时代陶豆柄上的指印等。唐代时,以“按指为书”为代表的“指纹捺印”已经在文书、契约等民用场合被广泛采用。著名学者海因德尔(Heinai)在其权威的《指纹鉴定》著作中断定:“根据我国《周礼义疏》及《仪礼义疏》记载,中国第一个提到指纹鉴别个人的是唐代的作家贾公彦。他的作品大约写于公元650年,他是着重提到指纹是确定个人身份方法的世界上最早的作家。”自宋朝起,指纹则开始被用作刑事诉讼的物证。指纹在中国古代的借贷契约、买卖文凭、婚约休书、狱辞供状等方面得到广泛应用。
我国在广泛应用指、掌纹的漫长历史中,随着对外文化的交流,应用指纹的传统习惯传播到了世界上许多国家。中国也是世界公认的指纹发源地。
公元1880年,福尔茨(Henry Fauld)发表了指纹认证的论文,第一次科学地提出了指纹的个体性和唯一性。指纹唯一性的发现,使得指纹作为一种更为有效的鉴别方法而得到采用。
到本世纪初,指纹学的研究基本成熟,这时的指纹鉴别,主要由指纹专家根据指纹知识凭经验判断。世界上许多国家都建立了指纹库,仅美国联邦调查局的指纹库中就存有二亿多张指纹卡。然而传统的指纹识别方法面临着从指纹库中人工查找、对比指纹卡速度慢、效率低、对人员要求高等问题。从二十世纪六十年代开始,随着计算机技术的发展,传统的指纹识别技术发生了重大变化。人们开始利用计算机来建立指纹识别系统。
目前有很多的生物测定技术可用于身份认证,包括虹膜识别技术、视网膜识别技术、面部识别、签名识别、声音识别技术、指纹识别等,具有安全、可靠的特点,其中指纹识别系统是目前研究最多、最有应用前景的生物识别系统。指纹识别技术的应用十分广泛,指纹因具有终生不变性及稳定性,而且不同人指纹相同的概率几乎为零,因此指纹自动识别系统被广泛应用于案例分析、商业活动中的身份鉴别等领域。指纹识别技术的发展得益于现代电子集成制造技术的进步和快速可靠的算法的研究。
表1-1 识别技术对比表一
类型 | 鉴别可靠度 | 可否运用一对一比照 | 可否运用一对多比照 | 传感器价格 | 尺寸 |
---|---|---|---|---|---|
虹膜 | 很好 | 是 | 是 | 高 | 较大 |
视网膜 | 很好 | 是 | 是 | 高 | 较大 |
面部 | 一般 | 是 | 否 | 低 | 中等 |
签名 | 一般 | 是 | 否 | 低 | 较小 |
语音 | 一般 | 是 | 否 | 极低 | 非常小 |
基因 | 最好 | 是 | 否 | 极高 | 很大 |
指纹 | 很好 | 是 | 是 | 较低 | 非常小 |
表 1-2 识别技术对比表二
可以看出,在众多生物特征识别技术中,指纹识别是一种比较理想的基于生物特征的身份认证方式,随着科技的进步指纹识别技术在实际应用中表现除了越来越大的作用。在美国,9·11以后,三个相关的法案(爱国者法案、边境签证法案、航空安全法案)都要求必须采用生物识别技术作为法律实施保证。总体上来说,应用己经进入了以政府级应用为主的阶段,有着极其广阔的应用前景,其主要应用领域包括:
1) 机场、旅客控制Airport S/Traye;
2) 政府部门Government;
3) 个人使用(门禁、考勤)Per Sonnel;
4) 执法机构Law EnforCement:
5) 消费者管理系统Consumer/Retail;
6) 金融管理服务系统Fi nancial serriCeS;
7) 计算机登陆系统Computer;
8) 医疗保健系统HIPAA;
另外对生物识别(指纹识别)技术来说,被广泛应用意味着它能在影响亿万人的日常生活的各个地方使用。通过取代个人识别码和口令,生物识别(指纹识别)技术可以阻止非授权的“访问”,可以防止盗用ATM、蜂窝电话、智能卡、桌面PC、工作站及其计算机网络;在通过电话、网络进行的金融交易时进行身份认证;在建筑物或工作场所生物识别技术(指纹识别)可以取代钥匙、证件、图章等。生物识别(指纹识别)技术的飞速发展及其广泛应用将开创个人身份鉴别的新时代。指纹所具有的唯一性、不变性、易于获取、分类存储有规律等特性使其成为生物鉴定学中最为成熟的方式。
指纹识别算法的研究方向主要分为:基于图像的识别算法和基于特征的识别算法。基于图像的识别算法认为,指纹图像的频域和空域信息可以用来唯一表示并识别不同的指纹。它是一种使用全局信息进行识别的方法,例如使用指纹图像的Fourier频谱来表示和识别指纹。这类算法的问题在于图像特征难以定义和匹配,因此算法的拒识率和误识率较高。基于特征的指纹识别算法是找到并比对指纹的特征。指纹特征的复杂度足以提供用于鉴别的足够特征。目前大多数的自动指纹识别系统使用的都是这类算法。指纹特征多种多样,有特征点、奇异点、域方向图、脊线数目,甚至脊线线型等。对应的匹配方法可以分为:基于点模式的匹配,基于脊线的匹配,基于纹理的匹配以及多种细节特征混合的匹配方法。
大多数基于特征的识别算法专注于脊线上的末梢点和分叉点,该方法根据各个特征点的位置和方向来表示和区分指纹,从而使指纹识别问题转化为判断两个特征点集间的最大相似度(最大重合度)的问题。提取该细节特征有多种方法:基于灰度指纹图像直接提取,基于二值图像的特征提取,基于细化图像的特征提取。
目前许多公司和研究所在指纹识别技术领域都取得了突破性的进展,推出许多指纹识别与传统IT技术完美结合的应用产品,这些产品已经被越来越多的用户所认可。
在欧洲,现代的指纹匹配技术主要是16世纪后期产生。Henry Faulds在1880年,第一次科学的提出了指纹的两个重要特征:一是任何两个不同手指的指纹脊线的式样(ridge pattern)不同,二是指纹脊线的式样在人的一生中不会改变。这一发现奠定了现代指纹识别技术的理论基础,也使得指纹识别在罪犯鉴定中得到应用。Francis Galton对指纹进行深入研究,并于1888年引入了特征点的分类技术。1899年,Edward Henry学习了Galton的指纹科学,建立了著名的“Henry System”用于指纹分类。使用精准的指纹索引给专家指纹识别带来极大的便利。早在20世纪初期,司法部门己经正式采用指纹作为有效的身份标记,一些指纹识别机构建立了世界范围的罪犯指纹档案库。
1923年Purkinje首次对指纹进行了分类; 1960年,美国联邦调查局、英国内务部(Home offiee in the UK)和法国巴黎警察局联合开始投巨资研发指纹识别系统,并于1975年成功推出了第一个商业化系统,随后,各国研究机构和许多大公司开始指纹识别技术的研究和产品开发工作。国际上著名的指纹识别系统有:美国联邦调查局的AFIS系统,日本NEC公司的指纹鉴定系统,北美英弗公司的指纹鉴别系统等。目前,随着数字化、信息化社会对自动身份鉴别技术的要求的不断提高和AFIS在司法领域取得了巨大成功,随着计算机硬件性能的飞速提高和价格的不断降低,随着普通大众对指纹识别了解的深入和接受,指纹识别技术已经突破了司法、侦探领域进入民用领域,并取得了快速的发展。传统指纹识别算法(主要用于司法、刑侦领域)主要考虑降低拒识率,一般需要人工协助处理,而且存在误识率高、计算速度慢、资源消耗大等问题,并不适合于民用领域。同时,民用市场对指纹识别算法在自动化程度、拒识率和误识率、响应时间、资源消耗等方面也提出了更高的要求。
2006年初,澳大利亚成功发行世界上第一本生物识别护照。2007年11月,美国国土安全部宣布所有入境美国的非美国公民都要接受数字拍照及双手十指指纹扫描。指纹识别即将迎来迅速普及的发展时期。2009年,美国成功对指纹识别系统进行了更新的研究[2]。
我国利用指纹识别身份的历史最早可以追溯到秦朝, 1903年,中国青岛市警察局首次应用汉堡式指纹法。此后我国相继开展了指纹的应用及研究,还曾建立过“指纹学会”。刘紫宛编写的《中华指纹法》一书是我国最早的指纹专著。全国解放后,我国对指纹研究一直比较重视。1955年编制了《中华人民共和国十指纹分析法》。这可以说是我国指纹的科学时期。
在国内,清华大学在80年代开始指纹识别的研究。中科院自动化所模式识别国家重点实验室自90年代以来,一直致力于“基于生物特征的身份鉴别”的研究,在指纹、虹膜、脸相识别等方面取得了很多的研究成果。北京大学视觉与听觉信息处理国家重点实验室先后承担了国家“七五”和“八五”,科技攻关项目,对指纹识别进行了长期的基础性研究,提出了一整套独创的理论和高效实用的算法。另外,自九十年代初以来,我国的北大方正集团、长春鸿达集团、西安青松集团等机构分别以所在地高校为技术依托,陆续开展了这方面的研究工作。总的来说,国内开展了很多研究,而且取得了很多成果。2002年,清华大学实现了在海量数据库上的人脸和指纹综合识别系统,在识别的过程采用的融合策略是先用人脸特征进行比对得到前n个候选,然后在这个范围内用指纹特征再进行比对。迄今为止,还没有综合生物特征的识别系统的产品问世,综合身份识别系统的研究有待于进一步发展。2009年中北大学信息与通信工程学院提出了一种基于傅立叶变换的指纹图像增强技术,大大提高了图像的清晰度。为后来的指纹识别技术作出了较大贡献。
与国外相比,我国在自动指纹识别技术的研究水平上还存在一定的差距。主要表现在:
(1)指纹录入设备的质量还不太过关:
(2)自动指纹识别算法研究水平还有待提高,在应用上的表现为产品适应性和易用性较差,对干、湿一些的指纹往往不能正确区别,对指纹录入时的旋转、平移比较敏感。
现在国内外指纹识别大都采用基于细节特征点的指纹识别技术,即采用基于图像处理的指纹识别算法,其中比较有代表性的有两种。一种是基于方向滤波增强,并在指纹细化图上提取特征点的算法,另一种是直接从指纹灰度图上提取特征点的算法。指纹识别作为一种热门的生物识别技术受到越来越多人的关注,国内外许多机构和学者都采用了很多不同的算法对指纹图像进行预处理和匹配。但有些算法会由于指纹图像的噪音、皮肤弹性引起的非线性形变等多方面因素,导致在识别过程中出现误差,影响识别率等。
当下指纹识别技术已经越来越成熟,其应用日益普遍。除了刑事侦查以外,民用方面,如指纹门禁系统,指纹考勤系统,银行指纹身份认证系统等。社会各个方面对指纹识别系统有很大的需求。
现代指纹识别源于16世纪后期。苏格兰医生Henry Fauld于1880年首次在英国《Nature》发表论文称,人的指纹各不相同且恒久不变,并可以利用现场指纹来鉴定罪犯。
相当数量的研究者在长期科学研究中发现两个人指纹相同的概率极小。单个手指指纹的概率小于七十亿分之一 。其次一个人指纹可以保持终生不变。美国最早于1963年首先开始指纹识别技术相关软件的研制。
当然指纹识别是一个复杂的过程。与人工处理不同,自动指纹识别技术并不直接储存指纹图像。多年来各个公司及其研究机构产生了许多数字化算法。但指纹识别算法的本质问题都归结为,在指纹图像上找到并对比指纹的特征。通过计算机模糊比较的办法,计算出它们的相似程度,并最终得到两个指纹的匹配结果。
实际应用中,人类指纹的纹形特征根据其形态的不同通常可以分为“弓型、箕型、斗型”三大类型,以及“孤形、帐形、正箕形、反箕形、环形、螺形、囊形、双箕形和杂形”等9种形态。根据上述模型特征比在计算机中建立数学模型进行数字匹配便是指纹识别的一般性原理。
本文以研究指纹识别中指纹图像分割、细化、特征提取、匹配等若干问题为研究主体,针对指纹识别技术中分割、细化和匹配进行了仿真和修正。其中分割部分采用了方差均值的方法,细化选取了一种伪特征较少的模板,匹配时以分叉点和端点信息进行匹配。具体的章节和各章的内容安排如下:
第一章:介绍了研究背景,对现在发展和应用的各种生物识别技术进行了概
述,尤其重点阐述了其中指纹识别技术的发展、应用、研究概况、市场前景和存
在的难题以及研究方向。同时,说明了本论文的研究目的及意义。
第二章:为后续的研究工作奠定基础,本章介绍了指纹学基础知识:名词解释,指纹的分类,以及指纹识别的基本原理。
第三章:指纹识别工作中最重要的工作,是对已经采集了的指纹图片进行的一系列预处理工作,包括增强,二值化,细化等。本章主要的介绍了指纹图像预处理的流程和方法,并给出了仿真得到的结果。
第四章:介绍了指纹图像细化的方法并仿真得到结果。主要介绍了指纹图像细化后的特征提取,需要哪些特征,去除哪些伪特征,以方便和正确地进行匹配工作。
第五章:介绍了指纹图像匹配的概念、匹配问题的困难所在和常用方法,给出了一种修改基础上验证用的匹配方法。
第六章:总结本文所取得的一些研究成果,并对课题发展进行了展望。
指纹:手指第一节(手指尖一节)指头表面乳突纹线。
指印:手指第一节乳突线与承受客体接触时留下的印痕。
脊线:是手指上的特殊的皮肤花纹的隆线。
谷线:两个脊线之间低陷的部分。
细节特征:指纹中出现的各种特征。而根据其出现的概率及在处理过程中的
稳定性,我们最常采用的就是脊线端点和分叉点,如图。
图2-1 两种基本的指纹细节特征
总体特征是指那些用人眼直接就可以观察到的特征,包括基本纹路图案:环型(loop),弓型(arch),螺旋型(whorl)。其他的指纹图案都基于这三种基本图案。
指纹的脊纹形式是适应之间的球状表面和半圆形顶端以及横行的指间屈基线生长的,除少数弓形纹之外,绝大多数是箕、斗型纹(约占95%),(三种纹形的大致分布概率如表2-1)
表2-1 纹形的大致分布概率
基本纹型 | 弓型 | 箕型 | 斗型 |
---|---|---|---|
分布概率 | 5% | 60% | 35% |
纹型是指纹的基本分类,是按中心花纹和三角的基本形态划分的。纹形从属于型,以中心线的形状定名。按我国是指纹分析法,指纹分三大类型(如图2-2),五大种形态。可见,型与形是类与种的关系。
箕型 斗型 弓型
图2-2 指纹的纹形
进一步的细化分类可将指纹分为六种主要的类型:拱形(arch)、帐型(tended arch)、左箕型(1eft loop)、右箕型(right loop)、双箕型(double whorl)和斗型(whorl)。图为上述六种类型的指纹图示。
图2-3 指纹细化分类
局部特征是指指纹上的节点的特征,这些具有某种特征的节点称为特征点。两枚指纹经常会具有相同的总体特征,但它们的局部特征—特征点(Minutia),却不可能完全相同。
指纹纹路并不是连续的、平滑笔直的,而是经常出现中断、分叉或打折。这些断点、分叉点和转折点就称为"特征点"。就是这些特征点提供了指纹唯一性的确认信息。特征点的分类有以下几种(如图2-4),最典型的是端点和分叉点。
图2-4指纹特征示意图
很多研究者试图解决指纹分类问题,其核心的问题就是指纹局部与整体特征的定义问题,至今分类算法的种类繁多,所以不同识别系统普遍存在误识率较高的问题。如何提高指纹分类的准确率在指纹识别研究中是一个较关键的问题。
1) 确定性:指纹纹线的轮廓(纹型)和细节特征是基本不变的。从胚胎学
角度考察,胎儿3—4个月即产生了指纹,至6个月左右的胎儿就形成了完整的
指纹,出生后随着年龄的增长,纹线会变粗,花纹的面积会增大,但到了成年以
后,这些变化即无显著表现,而花纹的类型结构、细节特征的总体布局、脊线的
总数目等方面,自胚胎六个月到出生至死亡腐败之前,始终是无明显变化的,这
就充分地表明了指纹的确定性
2) 唯一性:由于指纹脊线的连接关系千变万化,因此,即使两个不同的指纹
有着相同的轮廓和相同数量的细节特征,它们的细节位置也是不可能完全相的。
3) 可分类性:指纹的纹型,中心点和三角点之间的脊线数,以及细节特征
间的关系,都可作为分类的依据。
4) 触物留痕:从严格定义上讲,自动指纹识别应该为自动“指印”识别。
指纹接触物体后留下的痕迹即为指印。正是因为这些性质,指纹被国内外许多专家、学者称为“证据之首”。
一切指纹识别系统,都是基于以上这些性质,从而进行身份的鉴别和确认的。
指纹识别技术主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对。通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。软件从指纹上找到被称为“节点”(minutiae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。这些数据,通常称为模板。通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。
其一般性过程如下图所示:
图2-5 指纹识别的一般性过程
在图像形成,传输或变换的过程中,由于受到其它客观因素诸如系统噪声、曝光不足或过量、相对运动等影响,获取图像往往会与原始图像之间产生某种差异(称为降质或退化)。退化后的图像通常模糊不清或者经过机器提取的信息量减少甚至错误,这些在实际应用中,具体表现有:
1.指纹模糊不清造成指纹纹线间的粘连、模糊或断裂,会导致产生虚假的指
纹细节特征点。
2.遗漏或忽略了正确的细节特征点。
3.在有关描述细节特征点的位置和方向等属性时产生严重失真。
因此指纹图像质量的高低直接关系到细节特征点提取的有效性和可信性影响系统在匹配时的拒认率和误识率,从而最终影响整个系统识别的结果。
由此可知,在进行指纹分类和细节特征匹配之前一定要先对采集到的指纹图像进行针对性的预处理。预处理是指纹自动识别系统中的最重要的一步,它的好坏直接影响着指纹识别的效果。图像增强技术正是在此意义上提出的,目的就是为了改善图像的质量。
图像增强尚没有统一的理论方法,常用的图像增强技术有直方图修改、图像平滑滤波、图像锐化等。图像增强技术主要分为两类:频域增强法和空域增强法.频域增强法就是在图像的某种变换域中(通常是频率域内)对图像的变换值进行某种运算处理,然后变换回空间域。空域增强法是直接针对图像中的像素,对图像的灰度进行处理。空域法属于直接增强的方法,它包括扩展对比度的灰度变换和直方图变换、消除噪声的平滑法和增强边缘的锐化法。
指纹图像与处理的主要流程如下图所示:
图3-1 指纹图像预处理的主要流程
指纹图像预处理的过程核心就是人们通常所说的图像的滤波,既在图像增强前使用一些简单的图像处理手段对图像进行初加工。通常使用的预处理方法包括:
1.感性区域的分割,计算出指纹图像的边界,进行感性区域(ROI Region of Interest)的分割。
2.灰度均衡化:用以消除或减轻同一图像不同区域之间或者不同图像之间对比度的差异
3.方向场的计算:计算出指纹图像的方向场,这个步骤是指纹的滤波和增强所不可缺少的一个环节。
4.低通滤波,利用简单的低通滤波器去除图像中存在的椒盐,高斯等噪声。
上述方法将在后续章节中逐一介绍。
在指纹识别系统中,指纹图像分割是图像预处理的一部分。指纹分割的最基本的依据是图像某些特征和特征集合。图像特征是指纹图像的固有属性,如灰度值,邻域关系,纹线的扭曲程度等。特征集合则是几种的结合。通过提取图像特征,可将原始图像映射到特征空间,使图像特征在特征空间中呈现一定的分布。因此根据以上的的灰度值领域关系,纹线的扭曲程度,指纹图像分割大致分为三类:基于像素的图像分割,基于块特征的图像分割以及基于全局的图像分割。
基于全局的图像分割则是根据情况特别是某些特殊场合的利用,如残缺指纹。全局的图像分割可以是人工选定几个特定点后再根据全局的特点来处理,此法也可运用于匹配。基于全局的指纹识别仍处于实验室探索阶段,应用领域中尚不广泛。
在图像分割概述中,已经提到基于块特征的指纹图像分割。在这部分将重点介绍均值法差法的计算方法和在仿真中的运用。
该算法基于背景区灰度方差小,而指纹区方差大的思想,将指纹图像分成块,计算每一块的方差,如果该块的方差小于阈值为背景,否则为前景。具体步骤分以下三步:
(1)将低频图分成M×M大小的无重叠方块,方块的大小以一谷一脊为宜。
(2)计算出每一块的均值和方差。
设指纹图像I的大小为H×L,I(i,j)为像素点(i,j)的灰度,AVE和VAR分别为原指纹图像的均值和方差,AVE和VAR可以通过公式(3.1)和(3.2)计算得到。
公式 | 编号 |
---|---|
(3.1) | |
(3.2) |
(3)如果计算得到的方差几乎接近于0就认为是背景,对于方差不为零的区域在进行阈值分割算法,这种算法主要是根据计算得到的方差来决定其是否为背景区。
在使用方差均值法之前还要使用归一法将图变为低频图。归一化的目的是把不同原图像的对比度和灰度调整到一个固定的级别上,为后续处理提供一个较为统一的图像规格。指纹图像的归一化公式如式(3.3)所示,当大于平均值时为加。
公式 | 编号 |
---|---|
(3.3) |
其中和为期望的灰度均值和方差。
均衡化后效果如下图所示:
图3-2 增强对比度前后效果
众所周知,Gabor滤波器是带通滤波器,它以其在空域良好的方向选择性在频域有良好的频率选择性而在计算机视觉领域尤其纹理分析方面得到了广泛的应用。在指纹图像中对于灰度指纹图像,脊线和谷线在局部的小邻域可以认为是正弦波形状,具有一定的频率和方向。
利用Gabor滤波器良好的对方向和频率的选择性方向滤波是图像增强的一个很好的方案,实验表明,以Gabor函数的偶分量实部为模板,脊线于谷线形成的近似正弦波的频率为滤波器的频率,以指纹的局部方向构建的滤波器,去噪效果非常好,滤波后的指纹图像的灰度直方图以呈现明显的双峰性质。
Gabor滤波器的形式如下图所示:
图3-3 Gabor滤波器
滤波后的图像灰度值为:
图3-4 灰度值计算式
Gabor滤波增强后的效果图如下所示:
图3-5 Gabor增强局部效果图
由于分割后的图像质量仍然不是很好,所以需要对其进行滤波、消除毛刺、空洞处理和二值化处理,以使指纹图像清晰,消除不必要的噪声,以利于进一步的辨识。
指纹图像二值化作为指纹预处理过程的一部分,是进行指纹图像细化处理的基础。目前指纹细化方法都是基于二值指纹图像进行的。对指纹图像二值化的好处在于使得图像的几何性质只0和1的位置有关,不再涉及像素的灰度值,使处理变得简单,这给存储和处理带来了很大的方便,同时也提高了系统的经济实用。一个好的算法可以得到一个高质量的二值图像。反之,如果该阶段引入噪声,就会直接降低图像质量,影响识别精度。对指纹图像进行二值化,其基本要求就是二值化后的图像能真实地再现原指纹。具体要求为:
1.脊线中不出现空白;
2.二值化后的脊线基本保持原来指纹的特征;
3.指纹的纹线不应有太多的间断和相连;
4.指纹纹线间的间距应大致相同。
指纹图像首先要进行中值滤波处理,去除噪声。然后进行二值化过程,变成二值图像。由于原始指纹图像不同区域深浅不一,如对整幅图像用同一阈值进行二值分割,会造成大量有用信息的丢失。这里我们使用自适应阈值二值化的思想,对每块指纹图像,选取的阈值应尽量使该块图像内大于该阈值的像素点数等于小于该阈值的像素点数。
一般灰度图像二值化的变换函数用下列公式表示,见式(3.4):
公式 | 编号 |
---|---|
(3.4) |
公式(3.4)中为指定的阈值,为灰度值。
自适应阈值算法[9]首先是利用固定阈值算法的思想,然后根据图像中每一部分的明暗度来调整阈值。本文首先把图像分为若干个的方块,每一块根据自己的阈值进行二值化。这种算法充分利用了指纹图中脊线与谷线宽度大致相同的特点,即二值化后黑白像素的个数也应大致相同,首先利用固定阈值算法的特点对指纹图像中的每块确定一个大致的阈值,然后再利用自适应的思想对阈值进行准确的调整,即阈值的取值合适时图像是最光滑的,既没有“黑洞”阈值过大,也没有“白点”阈值过小,所以0-1之间的转换次数最少。下面为块区域阈值的选取算法:
1.将指纹图像划分为不重叠的大小为的块,求取该区域内所有像素的灰度平均值。在综合考虑算法速度和处理效果两方面的条件下,本文分块尺寸为8×8;为块的灰度平均值.见式(3.5):
公式 | 编号 |
---|---|
(3.5) |
自适应阈值二值化的流程图如图3-6所示:
图3-6 自适应阈值二值化流程图
细化是在不改变图像像素拓扑连接关系的条件下,连续擦除图像的边缘像素,把纹线粗细不均匀的指纹图像转化成线宽仅为一个像素的条纹中心线图像的过程。细化可以去除不必要的纹线粗细信息,使得指纹图像的数据量及连接结构更加突出,便于从指纹图像中提取细节特征,如图3-7从而在指纹特征提取和匹配环节上提高图像的处理速度和效率。
图3-7 纹线特征
指纹图像二值化后,纹线仍具有一定的宽度,而指纹识别只对纹线的走向感兴趣,不关心它的粗细。为了进一步压缩数据,得到更精确的细节特征,提高识别的准确性,对指纹图像进行细化处理是不可忽略的。
细化方法不同,细化结果就有差异。在指纹识别中要求在不改变原来指纹图像的拓朴连通性的同时,细化的结果应为严格的八邻域图像骨架;纹线中除去特征点以外,每个像素均只与相邻两个像素为八邻域,抹去任意一像素都将破坏纹线的连接性。概括起来说就是纹线细化处理要满足收敛性、连接性、拓朴性、保持性、细化性、中轴性、快速性的要求。
目前为止,关于细化方法的研究工作已有很多成果,所采用的方法从使用的观点来看,比较多的是采用模板匹配的方法(如迭代法、OPTA单连通法等)。这种方法是根据某个像素的局部邻域(如3×3,5×5等)的图像特征对其进行处理,此外也有采用边缘搜索编码、外轮廓计算以及神经网络等细化方法。从处理的过程来看,主要可以分为串行和并行两类,前者对图像中当前像素处理依据其邻域内像素的即时化结果,且不同的细化阶段采用不同的处理方法;后者对当前的像素处理该像素及其邻域内各像素的前一轮迭代处理的结果,自始至终采用相同的细化准则。
对于任意形状的区域,细化实质上是腐蚀操作的变体,细化过程中要根据每个像素点的八个相邻点的情况来判断该点是否可以剔除或保留。
图3-8 根据某点的八个相邻点的情况来判断该点是否能删除
图3-8给出了当前需要处理的像素点在不同的八邻域条件下的情况,可以看出:
(1)不能删,因为它是个内部点,我们要求的是骨架,如果连内部点也删了,骨架也会被掏空的;
(2)不能删,和(1)是同样的道理;
(3)可以删,这样的点不是骨架;
(4)不能删,因为删掉后,原来相连的部分断开了;
(5)可以删,这样的点不是骨架;
(6)不能删,因为它是直线的端点,如果这样的点删了,那么最后整个直线也被删了,剩不下什么;
(7)不能删,因为孤立点的骨架就是它自身。
总结上图,有如下的判据:
(1)内部点不能删除;
(2)孤立点不能删除;
(3)直线端点不能删除;
(4)如果P是边界点,去掉P后,如果连通分量不增加,则P可以删除。
我们可以根据上述的判据,事先做出一张表,从0到255共有256个元素,每个元素要么是0,要么是1。我们根据某点的八个相邻点的情况查表,若表中的元素是1,则表示该点可删,否则保留。查表的方法是,设白点为1,黑点为0;左上方点对应一个8位数的第一位(最低位),正上方点对应第二位,右上方点对应的第三位,左邻点对应第四位,右邻点对应第五位,左下方点对应第六位,正下方点对应第七位,右下方点对应的第八位,按这样组成的8位数去查表即可。考虑当前像素点的各种八邻域的情况,我们可以得到一个细化操作查找表,该表在下面的细化算法中详细介绍。
为了避免分裂指纹图像,细化的过程分为两个步骤,第一步是正常的腐蚀操作,但是它是有条件的,也就是说那些被标记的可除去的像素点并不立即消去;在第二步中,只将那些消除后并不破坏连通性的点消除,否则的话保留这些边界点。以上的步骤是在一个3×3邻域内运算,可以通过查表实现细化的操作。算法的实现步骤如下:
(1)定义一个3×3模板和一个查找表,模板和查找表分别如表3.1和图3.9所示:
表3-1 细化模板
1 | 2 | 4 |
---|---|---|
128 | 256 | 8 |
64 | 32 | 16 |
图3-9 细化查找表
(2)对二值图像从上到下、从左到右进行扫描;该过程结束后再对图像进行从左到右,从上到下的扫描;如果图像中当前像素点的灰度值为"0",且其左右(第一次扫描过程考虑左右像素点)或上下(第二次扫描过程考虑上下两个像素点)两个像素点中有任意一个为"255"则转至步骤(3),否则回转到步骤(2);
(3)该像素点为中心的3×3区域内的各个像素值和定义的模板中的权值进行卷积求和,得到查找索引值k;
(4)根据这个索引值k得到表里相应的数据,如果为"1",那么该像素点的灰度值设为"255",如果为"0",则该像素点的灰度值为"0"。
(5)图像从头至尾扫描二遍后,如果该次扫描修改了图像中的点,则跳转至步骤二,开始新的一轮扫描。否则图像细化结束。
图3-10 细化处理后的指纹图像
图3-10是一幅经过细化处理后的指纹图像,和原图像比较可知,细化后的指纹图像脊线的宽度由5到8个像素被压缩到一个像素,以便于后续特征提取的处理过程能够对脊线的断点和分叉点进行精确定位。
a | b |
---|---|
原始图像(a-1) | 原始图像(b-1) |
图3-11 原始图像
a | b |
---|---|
分割图像(a-2) | 分割图像(b-2) |
图3-12 分割后的图像
a | b |
---|---|
二值化图像(a-3) | 二值化图像(b-3) |
图3-13 二值化后的图像
a | b |
---|---|
细化图像(a-4) | 细化图像(b-4) |
图3-14细化后的图像
本章主要介绍了指纹图像预处理各个步骤的原理及实现,对各步骤的算法进行研究与实现,给出了各个算法的结果。在指纹分割的处理中采用了灰度方差发进行分割运算,得到了很好的效果,在细化的处理中采用了查表的方法进行细化并且比以往的常规算法要优越一些。
对于特征点提取的常用算法很多,如:
(1)基于二值化的特征提取方法:这种算法对于预处理和增强后得指纹图像进行二值化,然后再提取特征点。
(2)基于直接灰度的特征提取方法:这种方法直接从灰度图像出发,通过分析图像的纹理属性和拓扑结构提取特征点。
(3)基于细化图像的特征提取方法:这种方法是将指纹图像处理后得到细化图像,通过细化图像提取特征点。
为了比较两个指纹是否相同,需要从指纹图像中提取出能表示指纹唯一性的特征。Galton提出的指纹细节点是人工指纹匹配中最常用的特征。目前已定义的特征类型己达150多种,但是这些扩展的特征往往不易提取相互区分,并且它们都可以由端点和分叉点的组合进行描述,这使得端点和分叉点成为最常用的结构特征,也称为细节特征,它被认为是最稳定、最容易检查的,而且占全部特征点的80%以上。提取出的特征点还必须经过伪特征点的去除,尽可能地去除掉由于二值化、细化处理等过程引入的伪特征点。最后确定出特征点的类型、位置、方向。
本章就是根据端点和分叉点是最常用的结构特征,提取满足一定条件接近的点,再去除不是端点和分叉点的伪特征点,最终实现特征值的提取,有利于后面匹配的展开。
特征提取一般是指提取指纹图像的局部特征,也就是细节点特征。在基于细节点的指纹自动识别系统中,特征提取是在细化后的指纹图像上进行的。
特征提取的首要问题是确定细节点和它的位置,细节点的位置和细节点间的相对位置很重要,尽管每个指纹中包括将近80个细节,只要确定十几个细节点就己经足够用来识别了。
探测细节点的算法很简单, M是待检测的点,是它的八邻域,沿顺时针方向排列。是细化后图像在处的灰度。如果M是端点,则它的八邻域满足:
公式 | 编号 | |
---|---|---|
(3.13) |
如果M是分叉点,则它的八邻域满足:
公式 | 编号 | |
---|---|---|
(3.14) |
这样我们就可以在细化后的图像中找到细节点(端点和分叉点),并记录它们在图中的相对位置。
图4-1 指纹图像特征点提取结果
这样得到的特征中存在由指纹质量、摄入噪声等原因造成的很多假特征,如下图3-12所示(a)和(b)中产生了假的端点;(c)和(d)中形成了错误的断开和连接;(e)中显示的是一个由不平滑的脊引起的毛刺,出现了假端点和假分叉两种特征:(f)~(g)是几种错误连接的例子,分别称为桥形、三角形、梯形结构。
图4-2 伪特征点
造成伪特征的原因有很多,指纹提取、二值化及细化等过程均可能引入伪特征。伪特征的存在将影响指纹的比对,降低识别率.(1)伪特征的分析。对于取端点及叉点作为特征算法,伪特征主要指图4-1中所示的几种种:毛刺;假桥;岛屿;断脊;短脊。对于这些伪特征的消除,文献[10]提出了基于纹线跟踪的后处理方法,文献[13]提出了基于知识的指纹后处理方法,将指纹后处理与指纹原灰度图联系了起来,文献[14]提出了基于统计与结构的指纹后处理方法。
分析这几种种伪特征,它们带来的伪特征点总是成对在近距离内出现而且除断脊外均有短脊线相连接。毛刺、短脊及岛屿均为从一个特征点出发经过很小的步长到达另一个特征点,可以采用沿脊线搜索特征点的方法去除伪特征对。假桥、断脊则要考虑伪特征的角度关系。
伪特征的去除,由于提取的特征集合P(P1,P2...,P n)全为端点与叉点,端点的伪形态有毛刺端点、短脊端点与断脊端点;叉点的伪形态有毛刺叉点、假桥叉点与岛屿叉点。我们可以分别从端点与叉点出发搜索其邻域,判断其真伪,全部伪特征被分为伪端点与伪叉点予以去除。根据上面的分析,伪特征可按如下规则去除:
指纹匹配要解决的是对两幅给定指纹图像的特征模式进行比对,判断这两幅图像是否来自同一个人的同一手指。指纹匹配是自动指纹识别的最后一步,也是非常关键的一步。
指纹图像匹配方面,主要有基于图像,脊线结构和特征点的方法。基于特征点的匹配算法具有简单、快速、鲁棒性等优点。目前最为常用的方法是FBI提出的细节点坐标模型来做细节匹配。它利用脊线上的端点和分叉点这两种关键点来鉴定指纹。通过将细节点表示为点模式,一个指纹识别问题可以转化为一个点模式匹配问题。点匹配算法是通过某些变换,如平移变换、旋转变化、伸缩变换,可以把两个点集中的对应点匹配起来。对于基于细节点的匹配思路大体分两种:基于直角坐标系的特征识别和基于极坐标系的特征识别。
点模式匹配将注册指纹和待识指纹的特征点定义为两个点集和P和Q通过平移和旋转使得两个点集重合点数最多。点模式匹配是著名的数学难题。目前的指纹识别系统主要采用基于节点的匹配方法,即点模式匹配。从模板指纹和输入指纹中选取一个节点作为参考节点对,在进行节点匹配时先利用基准点将指纹对齐,然后再评估其它节点的匹配程度。很多情况下选用图片的中心点。当然,他所带来的难题有:
指纹匹配是模式识别中的一个有名的难题。它是对于两个含有不同数量的点集 和,如何找出它们之间的匹配关系。因此,一个好的指纹匹配算法应该能够有效地解决两个点集间的几何不变量问题。人们对一般的指纹匹配提出很多算法,比如松弛算法,其中有的文献只处理了点模式间因平移带来的偏差;也有文献处理了因平移和旋转带来的误差;另外有文献不仅考虑到位移和旋转误差,还处理了因伸缩尺度不同而带来的误差。
指纹图像匹配中的两个点集和,其中从第一幅图像抽取,有个特征点构成,从第二幅图像抽取,有个特征点构成,即和。因为在实际应用中,点的相对位置存在误差,所以它们之间的匹配就是对每一个特征点分别提取再相对于中心点取得的向量进行比对的过程,使两个点集有最大数量点对之间存在稳定的一一对应关系。
对于点集中的特征点,这里用方向和方向的坐标来描述,指纹图像每一特征点是一个五维向量,其中分别是该点的坐标位置,是特征点相对于中心点的方向向量,为特征点的类型(即是分叉点还是端点),为特征点相对于中心点的距离向量。
可以通过一些合适的算法,通过在一定范围搜索参数空间,计算其匹配支持数,也就是在该参数空间里,有多少指纹对匹配。当匹配支持数最大时,也就得到了所需要的结果。
算法步骤:
(1)分别读取两个特征点集合中的特征点;
(2)对特征点进行分类。定义取“1”时,属于特征点端点分类,取“2”时,属于特征点分叉点分类;
(3)分别计算他们相对于中心点的方向向量和距离向量;
(4)若两特征点的距离向量之差小于“2”且梁特征点的方向向量小于等于,则认为两特征点匹配;
(5)若不满足(4)的条件则认为不匹配,并删除。
一般能找到13个相同的特征就可以认为这两个指纹出自同一个手指,但从匹配来看,平均50个特征匹配点会有3~4个误配,于是将成功匹配点设置为>30个,认为是出自同一个手指。
匹配成功的特征点:端点用红色‘o’标注,分叉点用绿色标注‘o’。
提取细化后图像的中心点,用 ‘o’标注。如图5-1所示:
a | b |
---|---|
提取中心点(a-1) | 提取中心点(b-1) |
图5-1 提取中心点后的细化图像
指纹图像细化处理后,标注特征点和中心点。特征端点用'o'标注,特征分叉点用'+'标注,中心点用'*'标注。如图4-2所示:
a | b |
---|---|
特征提取图像(c-2) | 特征提取图像(d-2) |
图5-2特征点提取后的图像
一般能找到13个相同的特征就可以认为这些指纹出自同一个手指,但从匹配来看,平均50个特征匹配点会有3~4个误配,于是将成功匹配点设置为>30个,认为是出自同一个手指。匹配成功的特征点:端点用红色’o’标注,分叉点用绿色标注’o’。如图5-3所示:
图5-3 匹配后的图像
本论文完成了指纹识别算法的设计与一个简单的实现,该算法主要分为三大
部分:
指纹图像预处理过程主要分为三个部分:
灰度图像方向图滤波去噪、图像二值化及图像细化三个部分。自适应二值化方法将灰度图像转化为二值图像,灰度图滤波去噪后,我们采用局部阈值取值的二值图像,在处理过程中,我们充分考虑到指纹图像的分布特点,对图像进行分块处理,设立动态阈值,细化过程我们分析邻域象素点的连通情况,采用逐层迭代的方法,对图像进行扫描,由周边向中间逐层细化,这样大大加快了处理速度,降低了处理的复杂性,同时细化之后,对细化图像再进行去噪。
整个预处理过程结果如下图6-1所示:
图6-1
指纹的特征提取主要提取脊线端点和分叉点两种细节特征及它们的位置。首先通过脊线跟踪将每一条脊线上的所有像素点按顺序编为一组,提取出端点和分叉点;
然后,根据端点和分叉点的拓扑特点,去除伪特征点。考虑到输入的指纹图像存在着不可避免的平移、旋转、伸缩、扭曲,为了提高细节信息的可靠性,本文是求出细节特征点的相对中心点的相对位置和角度进行匹配。
匹配结果如下图6-2所示:
图6-2
在本次设计中,我发现指纹识别系统的设计过程中还存在着一些较难解决的瓶颈问题,阻碍了指纹识别系统的应用和普及。今后指纹识别整体的研究方向主要致力于解决这些问题,提高系统的识别率。这些问题如下:
1)指纹方向图(或方向场)的求取。
预处理的结果主要依赖于方向图的估计和求取。由于指纹图像中存在奇异点(中心点和三角点),在奇异点附近,方向的变化特别剧烈,此时要估计出正确的方向是有一定困难的。不仅如此,奇异点主要是利用检测方向场变化的剧烈程度实现的,而采用分区估计方向的方法有可能模糊方向场的这种剧烈变化,会对后面的奇异点检测造成一定的影响。此外,由于输入的指纹图像存在平移、旋转和尺度变化,而划分子块时并不考虑这种变化,因此同一个手指在不同时间获得的指纹图像,其所得到的方向场是不同的,这对后面的预处理过程、特征提取、指纹分类、指纹比对会产生巨大的影响。
2)细节特征的提取。
现有的几乎所有的细节提取算法的性能都严重依赖于输入的指纹图像的质
量。而由于诸多的因素(譬如,指纹表面的异常信息,胎记,偶然的污迹,取像
系统的问题等等),指纹图像中并不是总有完整的脊的结构。因此,可靠的细节
提取算法不能假定有很好的脊的结构,而应该对指纹图像的质量有很好的容忍
性。
3)匹配算法中的若干问题。
在基于细节的空间坐标以及细节点的方向,也就是细节的空间相对位置关系
的匹配方法中,初始匹配位置的对齐,即如何确定基准点或者说是坐标原点的定
位问题,包括原点和方向;尽管分类以及细分子类已经大大减少了匹配时搜索的
范围,但是对于大规模的指纹库来说,仍然需要进一步缩小指纹匹配的搜索范围,
同时引入辅助识别的信息;在指纹采集的过程中,指纹图像存在非线性变形,如
何克服这种变形。
当然,指纹识别的识别率以及识别速度的提高还取决于指纹采集设备精度以及处理速度的提高,但是算法的优劣仍然是影响系统性能的关键因素。
总的来说,本文在针对指纹识别的各个环节尤其是指纹图像的预处理进行了相当的探索工作,当然这只是一个开始,许多地方有待于进一步的研究改进,还有很多后续工作有待于完成,例如在指纹图像的特征匹配方面还有很多工作有待于完善。
指纹识别技术是国内外研究的热点问题,实现指纹识别系统的实时性、网络化、提高系统识别率是人们研究的目标。相信不久以后,指纹识别将广
泛应用于我们的生活,为人们提供更方便更快捷的服务。
https://download.csdn.net/download/wangyaninglm/10957731
如有需要,请加群免费赠送
[1] R Clarke.Human identification in information systems:Management challenges and public policy issues[J].Info.Technol.Peopie,1994.7(4):6~37.
[2] 张志涌.精通MATLAB 6.5版[M].北京:北京航空航天大学出版社.2003.3.
[3] 乔治宏.基于细节结构的指纹特征提取及匹配算法研究D.北京:北京工业大学硕士学位论文.2004,5.
[4] 罗希平,田捷.自动指纹识别中的图像增强和细节匹配算法[J].软件学报,2002.5.13(5):946~956.
[5] Dario Maio,Member,IEEE,and Davide Maltoni.Direct grayscale minutiae detection in fingerprints[J].IEEE transactions on pattern analysis and machine intelligence,1997,19(1):27~40.
[6] 王家文,曹字.图形图像处理[M].北京:国防工业出版社,2004.5.
[7] 田捷,杨鑫.生物特征识别技术理论与应用[M].北京:电子工业出版社,2005.
[8] 张显全,唐莹,郭明明.一种改进的指纹快速细化算法[J].广西科学院学报,2006,22(4):237~239.
[9] 刘文星,王肇圻,母国光.纹线跟踪及其在细化指纹后处理中的应用[J].光电子,激光,2002,13(2):184~187.
[10] 缪绍纲.数字图像处理——活用MATLAB[M].成都:西南交通大学出版社,2001
[11] 徐晓明.指纹图像的预处理及特征提取[硕士学位论文],大连:大连理工大学,2005
[12]苏彦华.Visual C++数字图像识别技术典型案例[M].北京:人民邮电出版社,2004.
[13]0'ORMANl, NICKERSONJN. An approach to fingerprintfilter design[J].Pattern Recognition,1989,22(1):29~38.
[14]林国清,李见为,王崇文.指纹图像预处理方法的研究[J].光电工程,2002,29(5):56—58.
[15]回红,陈祥献,周泓,等.Gabor函数实现基于结构的指纹识别[J].浙江大学学报(工学版),2004,38(6):712~716.
[16]郭桂容.模糊模式识别[M].长沙:国防科技大学出版社,1993.
[17]Kalle Kava.Fingerprint Classification[J].Pattern Recognition,1996,
29(3):389~404.
[18] 沈学宁.从指纹的原灰度图像上识别细节特征[J].模式识别与人工智能,I989,2(4):53~57.
[19] 简兵.基于脊线跟踪的指纹图细节提取算法[J].电路与系统学报,2001,6(3):1~5.
2002,16(1):53~67
[20]QingHan Xiao.Fingerprint Image Post—Processing:A Combined Sta—iistical and Structural Approach[J].Pattern Recognition,1991,24(10):985~992.
[21] 韩伟红.指纹自动识别系统中的预处理技术[J]计算机研究与发展,1997,34(2):913~920.
[22] 马笑潇.指纹自动识别系统中的关键技术—— 方向图[J],重庆大学学报,2001,24(3).91~94.
[23]JAIN A K.FARROKHNIA.F.Unsupervised Texture Segmentation Using Gabor Filters[J].Pattern Recognition,1991,24(12):l167~1186,
[24] 赵书兰.MATLAB R2008数字图像处理与分析实例教程[M].北京:化学工业出版社.2009,6.