1、摘要随着互联网和无线网络技术的发展,新兴的银行卡支付、网络支付和移动支付方式由 于其方便性,正在被越来越多的人群使用。然而这些新兴的支付业务给人们带来方便的同 时也带来了很多潜在的不安全性和不必要的麻烦。银行卡支付在忘记携带时影响交易,而 且银行卡的密码也很容易被窃取,带来了安全隐患。由于现代的互联网环境日益复杂,使 得人们在使用网络支付或移动支付业务时可能会导致身份资料、账户和密码泄露,从而带 来经济损失和麻烦。造成这些问题的主要原因是这些身份认证方式只是认证了用户身份的 绑定信息而不是真正的人,使得用户的身份很容易被第三方冒充。本文分析和研究了目前国内外支付方式的发展状况,并指出了目前被大
2、量使用的支付 方式的不足。基于此,本文提出并实现了基于指纹识别技术的支付终端。采用了真正能够 认证到人的指纹认证方式作为支付时的身份认证方式,并将该认证方式集成到移动终端中, 从而解决了现有的支付方式中容易出现的问题。本文的主要工作内容有:(1)分析研究了指纹的特征及其识别原理,实现了一套指纹识别算法,并改进了部分算法。(2)分析并设计了系统框架,搭建了基于 S5PV210 处理器的系统硬件平台,开发了用于快 速启动的 Bootloader、移植了 Android 系统和 Android 系统所采用的 Linux 内核以及相关设 备驱动程序。(3)开发了 MBF200 指纹传感器设备驱动程序、
3、中间件以及支付客户端。(4)设计并开发了用于处理支付终端和管理客户端各种请求的服务器系统以及管理客户 端。最后,在系统设计完成后,对指纹识别算法以及支付终端、管理客户端和服务器系统的 功能和性能进行测试。从系统测试结果来看,本文开发的指纹识别算法对指纹图像的处理 具有很好的效果,并且改进的算法比原算法具有更高的效率。指纹支付系统的功能以及速 度基本达到了预期的要求,具有一定的实用价值。关键字:指纹识别,支付终端,Android,驱动程序,服务器,客户端IABSTRACTWith the development of internet and wireless network technolog
4、y, bank cards, e-bank online and mobile payment are used by more and more people due to the convenience of these techniques. However, while these new payment services bring convenience to human, they also bring a lot of potentially unsafe and unnecessary troubles. It is easily for cardholder to forg
5、et to take bank cards when doing transaction.Moreover, the password of cards may easily be stolen, which brings security risks. Because of the increasing complexity of the modern Internet environment, cardholders identity, account and password may be leaked when tjey use the online payment or mobile
6、 payment services, making economic losses and troubles. The main reason for these problems is that these identity authentication just identified the binding information of user rather than a real person, so that the users identity could be simply pretend by a third party.This paper analyzes and stud
7、ies the current development situation of domestic and international payment methods, and points out the shortcomings of current payment methods widely used. Under this background, this paper proposed and implemented a payment terminal model based on fingerprint recognition technology. We adopt a met
8、hod to identify the fingerprint when paying and integrate the authentication to the mobile terminal,so as to solve some problems existing in the mode of payment.The main job contents are as follows:(1) Analyzes the characteristics and fingerprint recognition principle, realizing a set of fingerprint
9、 recognition algorithm, and improves part of the algorithm.(2) Analyzes and designes a system framework, building software and hardware platform based on S5PV210 processor. Developes Bootloader used for fast start and transplants the Linux kernel and associated device drivers adopted by the Android
10、system and Android system.(3) Developes MBF200 fingerprint sensor device drivers, middleware and payment clients.(4) Designes and developes server system and management client which can be used for handling various requests of payment terminal and management client.Finally, after the completion of t
11、he system design, the paper takes a test for the function and performance of fingerprint recognition algorithm, payment terminal, management client and server system.System test result demonstrates that the fingerprint identification fingerprint image processing algorithm this paper developed has a
12、good effect, and the improved algorithm has a higher efficiency than the original algorithm. Functionality and speed of fingerprint payment system basically reached the expected demand, which has some practical value on payment identify.Keywords: Fingerprint recognition, Android, Payment terminals,
13、Drivers, Server, ClientII目 录III摘要IABSTRACTII第 1 章 绪论11. 1 课题的研究目的和意义11.2 指纹支付技术的研究现状及发展趋势31.3 本文研究内容与目标4第 2 章 指纹识别算法研究与实现52.1 指纹识别基本原理52.1.1 指纹的特征52.1.2 指纹识别基本过程72.2 指纹图像预处理72.2.1 指纹图像的分割72.2.2 指纹图像的均衡82.2.3 指纹图像的收敛82.2.4 指纹图像的平滑92.2.5 指纹图像的增强92.2.6 指纹图像的二值化102.2.7 指纹图像的细化102.3 指纹图像特征点提取112.3.1 特征端点
14、提取112.3.2 特征叉点提取112.3.3 特征奇异点提取112.4 指纹图像匹配算法设计122.4.1 描述特征信息122.4.2 指纹特征配准132.4.3 相似度结构描述与计算132.4.4 匹配算法实现14第 3 章 系统架构设计与硬件电路153.1 系统总体框架设计153.2 支付终端系统硬件方案163.3 软件系统方案173.4 系统硬件电路183.4.1 内存扩展183.4.2 Flash 扩展183.4.3 触摸屏与 LCD 电路203.4.4 网卡电路203.4.5 SD 卡电路213.4.5 指纹传感器模块22第 4 章 Android 系统搭建244.1 Androi
15、d 系统概述244.2 Android 系统架构254.3 Android 系统配置与编译254.3.1 Linux 内核配置与编译254.3.2 Android 源代码配置与编译264.4 根文件系统制作264.5 启动代码设计274.6 Android 系统移植314.7 Linux 内核移植324.7.1 Nand Flash 驱动移植324.7.2 LCD 驱动移植364.7.3 触摸屏驱动程序开发384.7.4 DM9000 网卡驱动移植414.7.5 指纹识别模块驱动开发424.8 系统应用程序设计464.8.1 Android 应用程序硬件访问方法简介464.8.2 Androi
16、d 系统的 HAL 层定义464.8.3 指纹识别模块在 HAL 层的实现484.8.4 指纹识别模块硬件访问服务实现504.8.5 指纹识别模块上层应用程序实现534.9 本章小结53第 5 章 服务器系统搭建565.1 SQL Server 2008 数据库及其访问565.2 数据表设计565.3 数据库系统实现585.3.1 TCP/IP 协议585.3.2 通信协议定义585.3.3 服务器实现595.3.4 管理客户端设计625.4 本章小结62第 6 章 系统集成测试与分析636.1 指纹图像处理算法测试与分析636.2 指纹支付终端系统测试646.2.1 测试环境646.2.2
17、管理终端与服务器联合测试646.2.3 支付终端与服务器联合测试666.2.4 系统性能测试706.3 本章小结70第 7 章 总结与展望71致谢73参考文献74附录76V第 1 章 绪论1. 1 课题的研究目的和意义伴随着金融创新产品步伐的加快,银行卡业务走入人们的日常生活中,它们给人们的日 常金融消费带来了极大的便捷,同时带来了诸多不便。比如银行卡过多,携带不便;忘记携 带银行卡,影响正常交易等,银行卡遗失,不但补办费时费力,而且还存在着极大的安全隐 患1。客户在忘记携带银行卡或存折的情况下,存款、支出均无法得到满足。另外,银行卡 的密码也很容易被窃取,当用户在ATM终端进行业务处理输入口
18、令时,只要别人注意观察其 动作就可以猜测出其密码。由于密码不容易记住,日常生活中,人们经常使用诸如自己或亲 人的生日、年龄等信息作为密码或者密码的一部分,这样那些不法者就很容易通过这些信息 猜出用户的密码。密码还可以被破解,计算机系统在设计过程中难免出现一些漏洞,电脑黑客可以利用这 些漏洞进入银行服务器,再从服务器中盗取其中存放有密码信息的文件或数据库。如今计算 机处理的速度已经非常快,可以利用计算机或者其他工具从中破解出密码。为了加强系统的 安全性,一些银行服务器系统中采用了一些特殊的加密算法(以RSA算法为代表)来对用户的账 户信息进行加密处理。以现有的计算机水平上破解密码几乎是不可能的,
19、因为这些算法使得 破解密码的计算量非常大,远远超出了人类的生命周期。虽然这种方法确实起到一定作用, 同时也付出了一定的代价,增加加密算法后会一定程度的增加系统的负荷。为了足够大的增 加破解密码的计算量,密钥的位数同样被增加的相当长(典型为1024位)。显然,用户是无法 记住这么长的密钥的,因此使用时必须采取一些的手段把密钥分发给用户,这样在分发时密 钥时,黑客可以通过一定的手段秘密的截获密钥,所以这些问题并没有从根本上得到解决2。近年来,随着电脑和网络技术的发展,基于互联网的网络业务被得到了前所未有的扩展, 商业界出现了在线购物,金融业出现了网络银行,这在年轻一代人中非常受欢迎,他们开始 使用
20、网上银行进行在线购物、缴费等日常消费和开支。但是如今的互联网环境变得非常复杂病毒泛滥,木马横行,黑客猖獗,这使得用户的网络账户很不安全3。现在网络身份认 证基本上是用户名加密码形式。纵然保密系统做的非常完善,但是用户常常为了方便记住设 置的密码,密码往往不是随机数,更有用户为了便于记忆而设置的一些诸如生日类的强度很 弱的密码,其安全性可想而知。目前,几乎所有的银行规定用户的账户密码是六位数字,这 大大降低非法者破解密码的难度4。为了加强网络上合法用户的账户安全性,人们开始使用验证码。人类的大脑可以毫不费 力的识别验证码,但是机器却很难在有效的时间内识别,这确实可以有效的防止账户被机器 的暴力破
21、解和登录。验证码主要包括报文验证码、手机验证码、邮箱验证码、口令卡验证码、9图片验证码等。报文验证码基本上起不到这个作用;手机和邮箱验证码都有可能引发Dos攻击, 而且不具备实时性;虽然现在图片验证码是应用广泛的,但是现在有大量从图片高效准确提 取验证码字符的算法给图片验证码带来了潜在的较大的不安全因素。限制用户在某段时间内 对自己的账户的密码连续输入错误的次数被大多数银行系统采用(一般是三次),但是这样也 是不合理的,一旦有不法用户使用随机数密码尝试登录用户的账户多次会造成合法用户在这 段时间段内也无法登陆自己的账户,从而给合法用户带来不便,更严重的情况下会给用户带 来经济上的损失5。以上问
22、题说明,传统的基于密码、加密算法和验证码的安全机制在安全性和方便性方面 已经无法满足现有需求,甚至已经受到挑战。为了能够更好地确保系统的安全性和方便性, 迫切需要寻找其他的技术2。于是人们将目光转移到了生物特征识别技术上,因为人体某些生物特征各不相同并且不 会发生变化以及很难遗失和仿制。目前被使用的生物识别技术主要有指纹、虹膜、视网膜、 语音、面部、DNA以及签名,它们各自的性能以及优缺点如表1.1所示。表1.1 几种生物特征对比生物特征 类型生物特征属性唯一性欺骗性可获得性可接受性指纹高中高中虹膜高低低低视网膜高低低低语音低高高高面部低中高高DNA高低低低签名低高高高从表1.1可以看出,相对
23、于面部识别、视网膜识别等身份识别技术,指纹识别是一种更实 用、更理想的技术,具体原因如下6:每个人的指纹独一无二并且很难发生变化,并且不会丢失、被假冒或者盗取,因为对于绝 大多数人来说很难获取他人的活体指纹。此外,它不需要像密码那样需要记忆,真正做到了 随时随地使用。目前已经有很多品种的低成本的指纹采集传感器供选择。指纹在采集的过程中对硬件系统 的要求不高,指纹采集设备实现比较容易。目前已经有标准的指纹库供开发者使用,识别系 统开发相对比较容易,实用性强。随着现代电子集成制造技术的提高,可以制造体积较小并且精度更高的指纹图像传感器。 另外,快速可靠的指纹图像处理、识别算法也得到迅速发展,同时现
24、代计算机运算速度越来 越快,已经完全具备在微机上进行两个指纹的快速比对运算。可以说,目前指纹技术已经是非常成熟的生物识别技术,具有很大可靠性和实用性。 综上所述,当前指纹识别技术因其低成本识别率高而具有最为广阔的应用前景,已经达到实用化、产业化的程度。基于此,本文采用指纹识别技术设计了支付终端。支付终端可用 于普通的商场、超市甚至个人等,它带来的意义是显而易见的:无需使用密码,不需定期更换,没有记忆负担。无需再携带磁卡或IC卡就可以随时支付消费,给人们的生活带来了前所未有的方便,这样 就可以避免银行卡的丢失、被窃、被复制等不安全因素。一个人的每个手指的指纹特征各不相同,这样即可以利用多个手指指
25、纹构成多重口令以提 高系统的安全性,也方便一个人登记多个账户。一个指纹特征数据长度约为0.5-2Kbyte,其长度是普通密码无法比拟的,可以想象其数据强 度也是密码难以比拟的。由于在支付过程中在网络上传输的是指纹的特征数据,该特殊因人而异,属于一组信息量 很大的随机数,这样就提高了在网络中传输的安全性。即使别人通过非法手段获得这些数据, 破译指纹的难度就变得相当大。例如,对于一个4位数的密码有10000种组合,那么破解概率 为万分之一,入侵者可以利用计算机很容易地通过尝试所有的组合而破解。而你很难找10000 个人(误识率为万分之一)为你的企图入侵提供指纹(即便是10000个人将10个手指全部
26、用上)7。 1.2 指纹支付技术的研究现状及发展趋势指纹识别技术被广泛应用于支付终端,美国在指纹支付方面已经有非常大的进展,用 指纹轻轻一点来完成消费支付,这种新型应用在美国已经出现很多年。成立于 2002 年的 Paybytouch 公司是指纹支付领域的先驱,该公司将指纹采集设备放置在连锁超市,消费者 能够通过指纹进行身份认证和支付。这样的业务在提供安全性的同时能够减少客户的等待 时间,降低商家的交易成本,因而广受客户和商家的欢迎。这种方式同样适用于互联网上 的电子商务支付。反观国内,目前指纹技术的适用人群、可靠性等方面还不尽如人意的原因,指纹技术 在国内银行、证券等领域的应用还主要在员工的
27、管理、内部业务系统的安全登录等方面, 在存储、支付等领域基本上还是空白。国内很多指纹技术厂家都在做银行指纹认证系统, 但是真正成功的案例却不多,浙江中正是其中做得最好的一家,该公司是国内著名的生物 识别设备供应商和技术方案提供商,已经推出了一系列的指纹产品,其中包括银行柜员指 纹管理系统、银行押运指纹管理系统等。但是我们仍然能够看出,其实主要是银行内部流 程等认证管理,对于银行的对公、对私业务也并无案例,国内在这一块除了一些地方试点, 基本上还是空白。指纹产业是中国为数不多的用于自主知识产权以及核心技术的产业,当然,这种核心 技术更多的是体现在指纹算法上,在指纹传感器领域中国与美国、日本等国家
28、有相当大的 差距。但是中国指纹产业最大的优势在于庞大的市场,而指纹技术产业又具有一定的政策壁垒,很多外资通常较难进入银行、电子商务及电子政务领域。在指纹传感器以及支付、 电子商务等领域,国内企业有非常多的机会,谁能够在技术上取得突破,在业务模式上取 得突破,将在竞争中占有先机。指纹支付势必在不远的将来被广泛应用到银行及其用户的 支付结算活动中。1.3 本文研究内容与目标目前指纹识别技术已经非常的成熟,在众多领域得到了广泛的应用,其中包括指纹门禁、 考勤机等。基于此,本文采用指纹识别技术和Android 4.0.4系统开发了支付终端。本文的主要 工作如下:(1)研究并实现一套指纹图像处理算法以及
29、指纹特征匹配算法,并改进了增强算法。(2)分析系统的需求并设计了系统的软硬件框架。基于 S5PV210 处理器开发了指纹支付终 端硬件系统。(3)搭建 Android 系统开发环境,移植了 Android 系统及其所采用的 Linux 内核。(4)针对板载资源,为系统开发用于快速启动的 Bootloader,移植了 NAND Flash 驱动、 LCD 驱动及 DM9000 网卡驱动,开发了 Linux 内核不支持的触摸屏驱动和指纹识别传感器 驱动。(5)分析 Android 系统的 HAL 层并实现了 HAL 层模块,将本文开发的指纹识别算法集成 到 HAL 层。此外,分析并实现了硬件访问服
30、务以及上层面向用户的支付系统支付客户 端。(6)定义通信协议,并实现服务器系统和服务器管理客户端,从而保证了支付终端、服务 器管理客户端与服务器之间的正常通信。最后,为了能够验证最终设计出来的终端的功能与性能,使用在PC机上实现的服务器系 统模拟银行业务系统,利用指纹采集仪(BPS11)将指纹进行登记入库并且与个人账户绑定, 然后利用支付终端进行整个系统的模拟消费测试。测试结果表明,指纹支付系统的功能以及 速度基本达到了预期的要求,具有一定的实用价值。第 2 章 指纹识别算法研究与实现目前被广泛使用的指纹识别技术是指纹特征匹配和指纹图像匹配。指纹特征匹配是指先 从指纹图像中提取指纹的特征信息,
31、然后匹配这些特征信息。而指纹图像匹配则是从图像的 全局角度进行匹配,属于模式识别范畴。本文采用指纹特征信息匹配模式,因为它更简单实 用。2.1 指纹识别基本原理2.1.1 指纹的特征指纹特征可分为两类,一类是总体特征,另一类是局部特征。(1)总体特征总体特征是指从宏观上可以直接观察到的特征。其主要包括以下几种类型8-11:基本纹形:指纹纹形主要包括弓形、环形、螺旋形,如图 2.1 所示。其它纹形都是基于 这三种基本图案复合而成的。图 2.1 三种基本纹型 模式区:指纹图案上包括的总体特征区域,即从模式区可以分辨出指纹是属于哪一种类 型,如图 2.2 所示。图 2.2 模式区 核心点:位于指纹纹
32、路的渐进中心,它常用作指纹对比时的参考点,如图 2.3 所示。图 2.3 核心点 三角点:三角点位于从核心点开始的第一个分叉点或者断点或者两条纹路会聚处、孤立 点、转折处或者指向奇异点,如图 2.4 所示。图 2.4 三角点 纹线数:在模式区内指纹纹线的数量。在计算指纹的纹线数时,一般连接核心点和三角 点,这条连线与指纹纹线相交的数量即可认为是指纹的纹线数,如图 2.5 所示。(2)局部特征图 2.5 纹线数局部特征是指指纹上的细节点特征,这些具备某种特征的节点称为“特征点”。任意两 枚指纹可能会具有相同的总体特征,但它们的局部特征点绝对不可能完全相同。指纹纹线经 常出现中断、分叉或打折,这些
33、断点、分叉点和转折点就是上面所说的特征点。这些细节点 提供了指纹唯一性的确认信息12-14。特征点的分类如图2.6所示。曲率:描述纹线方向改变的速度。图 2.6 特征点类型位置:节点的位置可以通过(x,y)坐标来描述,可以是绝对的,也可以是相对于某个确定 的参考点的相对坐标。方向:节点可以朝着一定的方向。显然仅凭全局特征无法区分任意两枚指纹,还需要局部特征才能唯一确定。通过匹配指 纹的局部特征来识别身份,同时可以通过指纹的全局特征对指纹进行分类存储以缩小识别范 围,二者相结合可以有效的提高识别系统的效率。2.1.2 指纹识别基本过程通过指纹图像传感器采集到指纹图像经常会受到传感器本身误差、手指
34、压力不同以及 手指存在尘埃等众多因素影响,使得采集到的指纹图像的质量不够高。因此首先需要对指 纹图像进行预处理,以便获得较为清晰的指纹图像并为后期的匹配做好准备工作。经过预 处理后的指纹纹线被处理成单一象素点,接下来就可以对指纹图像进行特征提取以及特征 装配。最后将获得的特征信息与指纹特征数据库中的指纹特征模板做一一对比,如果有匹 配的指纹模板则提取出与之一一映射的身份信息,这样就可以进行身份论证。指纹识别基 本过程如图 2.7 所示。2.2 指纹图像预处理2.2.1 指纹图像的分割图 2.7 指纹识别过程指纹图像分为前景和背景两部分,所谓前景是指突起的指纹脊线,而背景指的是采集区 域中指纹图
35、像的指纹谷线、边缘部分以及纹线非常模糊的部分15。从指纹图像中分离出指纹 对象是为了能够有针对性地进行处理,从而节约处理时间,提高系统的效率。指纹图像的梯度场反应了指纹纹线突起及变化,可以通过计算指纹图像的梯度场来确定指纹对象16-17。具体而言,如果指纹图像的某个部分的梯度场较高则说明该部分为指纹纹线, 则可将其设置为前景,否则将其为背景。可以预先设定一个梯度阈值,当某点的梯度大于该 阈值则说明该点是前景,即设置该像素点灰度值为0(黑色);否则为背景,则设置该点的灰 度值为255(白色)。指纹图像分割算法具体描述如下:(1)设f(x,y)为二维指纹图像,T(x,y)为某位置(x,y)的梯度,
36、则T(x,y) = f(x,y) ,则可近似公式 计算梯度幅值为: f 2 f 2 x y + T =f + f =f (i + 1, j)- f (i, j) +f (i, j + 1)- f (i, j)(2.1)xy(2)选取阈值,阈值的选取与图像的质量相关。本文采用的半导体指纹图像传感器,其采集 到的指纹图像的质量较高,经过大量试验,阈值大约可取50,即Threshold=50。(3)若 T (x0 , y0 ) Threshold ,则可以判断出点 (x0 , y0 )是指纹图像的前景。若 T (x0 , y0 ) Threshold ,则可以判断出点 (x0 , y0 )是指纹图像
37、的背景。2.2.2 指纹图像的均衡指纹图像传感器采集到的原始指纹图像的灰度值,很难均匀分布在 0255 之间。这使 得指纹图像的对比度在某一段灰度范围内很差,不利于分辨,这种现象就是所谓的失衡。 将指纹图像中过于集中的灰度分布按一定规律将其均匀分布在这个给灰度区间称之为均 衡。对图像进行均衡处理可加大图像的反差,增强图像的对比度,从而有利于分辨。均衡 算法描述如下:统计指纹图像的灰度分布并根据灰度分布统计其灰度级,再计算出该灰度级上的象素 点个数并除以面积。将其重新转换给该灰度级获得新的灰度分布统计,从而实现了灰度均 衡,其数学表达式为:xCixf (x) = Dmax i =0 (2.2)0
38、 A0其中, x 为灰度级, Ci 为第 i 级灰度的象素个数, Dmax 为最大灰度值, A0 为图像的面积。2.2.3 指纹图像的收敛在指纹采集过程中,因受环境干扰、传感器势阱场效应等因素的影响,使得采集到的 指纹图像象素的灰度值和位置发生了改变,这种象素灰度值和位置的改变称之为发散。如 果此时直接使用计算机预先设定的分辨率去分辨位置和灰度值,就会导致分辨出的这些彼 此离散象素之间的关系存在很大误差。因此需要改变这些象素的位置和灰度值,使得这些 差异缩小到计算机预先设定的阈值范围之内,这样计算机就可以分辨出差异象素彼此之间 的关系。这种灰度和位置差异的缩小称为收敛。发散的指纹图像象素在一定
39、范围内呈现正态随机分布,那么可以用正态分布收敛方法 将这些象素收敛到一定程度。无论随机变量如何分布,若干个独立的随机变量抽样值之和2总是满足高斯分布。因此可采用高斯函数对指纹图像进行一定程度的收敛。 指纹图像 x 和 y 轴上的发散点高斯收敛函数为:G(x, y) = Se2s2= Se2s(2.3)其中, G(x, y)为坐标为 (x, y)的象素点的收敛函数值, S 为该点用灰度表示的发散振幅的的 的, e 2s2 为高斯函数模板算子。2.2.4 指纹图像的平滑在指纹图像采集过程中,指纹图像传感器会把传感器表面的尘埃、手指表面的污渍以 及汗液等干扰因素也采集进来形成污点或者指纹纹线边缘形成
40、毛刺,这些污点、毛刺等被 称为噪声。为了去除这些噪声,可以参考指纹纹线周围的象素,用其周围相关象素的平均 值对它进行平滑处理。设指纹图像区域内某象素点的灰度值为 F(x,y),其领域矩形窗口大小 为 WH,则平滑后的灰度值可通过如下式(2.4)计算。W -1H -1=() = 1 ( +,+ )()AF x, y22F xw yh2.4WHW -1H -1 w=-h =-222.2.5 指纹图像的增强在指纹图像采集过程中可能受到电路噪声干扰、手指破皮、按压力不均等多种因素的影 响使得很难采集到清晰的指纹图像。在指纹识别系统中,指纹特征匹配是否成功很大程度上 依赖于采集到的指纹图像的质量。质量不
41、高的指纹图像在特征提取时,不但会丢失真正的特 征信息,而且还会引入很多伪特征信息,从而严重影响到系统的识别精度。因此,需要对指 纹图像进行增强处理,经过增强处理后的指纹图像纹线边缘不但变得光滑,而且纹线变得更 黑,谷线变的更白,从而指纹图像显得更加清晰,为后期的指纹处理工作打下良好的基础18。本文采用基于Gabor滤波的指纹图像增强方法。对指纹图像中的每个像素点做Gabor滤波 即可实现图像增强19-20。二维Gabor滤波器的定义为:G(x, y, f ,q) = exp-1 x2+2 x2 ycos(2 f x )y (2.5)其中,x= xsin + ycos ,y= xcos - ys
42、in , 代表滤波器的方向因子,f 为指纹纹线在 角度上频率度的参数,即为1/ ( 为平均脊线宽度),x 和 y 分别表示高斯函数在 x 和 y 轴上的 标准差,通常两者均取值为4。对图像的滤波采用如下公式:RR22H (m, n) = G(a, b, f(m,n),(m, n)T(m - a, n - b)a =- R b=- R(2.6)22其中,R=16,为 Gabor 滤波器模板的大小。Gabor 滤波器是二维卷积运算,当滤波窗口比较大时,运算的时间是较长的。所以本文对滤波算法进行了改进,将二维的 Gabor 卷积运算分解为 3 个一维的实数卷积运行,分解后的 公式如下:12R 2H
43、(m, n) =R2exp(-22ab ) exp -cos(2fbsin ) cos(2facosq) T(m- a, a=-RR b=- R22R2 22 2 (2.7)2m- b) -2exp(-22ab ) exp -sin(2fbsinbsin(2facos) T(m- a, m- b) a=-R2b=-R22 22 2 其中, a = acos + bsin , b = -asin + bcos ,。当 Gauss 窗口为 MM 时,如果采用式(2.6)对每个象素做运算时,运算量为 MM 次乘 法和 MM-1 次加法,而使用式(2.7)运算时,运算量为 4M 次乘法和 4M-2 次
44、加法,这样就将 一个大小为 MM 的窗口的计算量从平方级降至线性级别。由此,可以看出对于较大的窗口 式(2.7)能够有效地减小运算量,从而提高了效率。2.2.6 指纹图像的二值化将指纹图像的纹线和谷线的灰度值分别转化为 0 和 255 的二值图像的过程被称为二值 化。二值化的目的是为了简化后续的指纹图像的处理。对指纹图像进行二值化,通常情况 下需要选取一个阈值,如果某个象素点的灰度值大于该阈值,则将该点的灰度值设置为 255, 否则设置为 0。阈值选取方法:首先求出指纹图像的最小灰度值和最大灰度值,然后将阈值 初始化为最小和最大灰度值之和的二分之一。根据此阈值分别统计大于和小于该阈值的像 素点
45、。求出所有小于该阈值的像素点的平均灰度值以及所有大于该阈值的像素点的平均灰 度值。最后阈值可取为这两个平均灰度值之和的二分之一。2.2.7 指纹图像的细化经过以上处理后的指纹图像变成了高质量的灰度图像,但是直接对二值化后的指纹图 像做特征提取仍然比较困难。因为指纹特征通常以点的形式表示,而二值化后的指纹的纹 线仍然比较宽,难以确定只有一个像素点的特征信息。所以需要对指纹做细化处理,去掉 纹线边缘的点,提取出其中轴线。指纹纹线的中轴线仍然保持纹线的方向、曲率以及连接 方式,也就是说这样处理并未改变指纹图像拓扑结构信息,所以并未改变指纹图像的特征 信息21。对于一个指纹像素点,如何判断该点是否去掉呢?可以把该点作为中心点,然后 考察其 8 个相邻点的情况来做出判断,举几个例子如图 2.8 所示。图 2.8 根据某点的 8 个相邻点的情况来判断该点是否删除图 2.8 中,(a)、(b)都是纹线内部点,不能去掉;(c)、(d)这的点样不是纹线内部点, 可以去掉;(e)不能去掉,因为删掉后改变了原来