文档库 最新最全的文档下载
当前位置:文档库 › (强烈推荐)基于单片机的指纹识别系统设计毕业论文设计

(强烈推荐)基于单片机的指纹识别系统设计毕业论文设计

(此文档为word格式,下载后您可任意编辑修改!)

本科毕业论文

基于单片机的指纹识别系统设计

摘要

科学技术的发展在让社会进步的同时,也让传统的安全管理系统受到威胁。生物识别技术的出现给身份识别的研究带来了突飞猛进的发展。每个人都有着自己特有的特征,用本身的特征来验证身份有着得天独厚的优势。本文概述了自动指纹识别系统的研究现状和指纹识别系统的算法流程,以及在此基础上的指纹图像的分割算法和指纹图像细化算法,并完成基于单片机的指纹识别系统硬件电路设计。

应用TFS-M51指纹识别模块,设计基于单片机的指纹识别硬件电路,形成一个独立的指纹识别系统。该系统实现单片机和指纹模块之间的串口通信。通过操作独立式键盘按键,向指纹模块的DSP芯片发送相应指令,从而执行添加用户、删除指定用户、删除全部用户、认证用户,以及管理用户权限等功能。

关键词:生物识别技术;指纹识别;串口通信;单片机

ABSTRACT

The development of science and technology made the social go forward, but at the same time it also makes the traditional safety management system under threaten at the same time. The emergence of biometric technologies brought a rapid development for the research of identification. For everyone special features, with the characteristics of itself to verify identity technology widely used in public security, such as the customs, the bank, the network security and other places which need identification. This article provides an overview of the research of fingerprint identification system in present situation and the algorithm flow of it. On this basis, to do an analysis of the fingerprint image segmentation algorithm and the fingerprint image thinning algorithm, including the microcontroller-based fingerprint identification system .

With the application of TFS-M51 fingerprint module, I designed a based on the MCU, in order to form an independent fingerprint identification system. The means of communication between MCU and fingerprint module in the system is based on serial communication. MCU sends a corresponding instruction to the fingerprint DSP chip module through stand-alone keyboard keys, in order to execute the functions, such as Add User, Delete the Specified User, Delete All Users, Authenticated Users, and Manage User Permissions and so on.

Key words: Biometric technology; Fingerprint identification; Serial Communications; MCU (Microcontroller Unit)

目录

1.绪论 (1)

1.1.研究的背景及意义 (1)

1.2.指纹识别技术 (1)

1.2.1.指纹识别技术特点 (1)

1.2.2.指纹识别技术发展现状 (2)

1.3.系统概述 (3)

2.指纹识别原理 (4)

2.1.指纹图像的分割 (4)

2.1.1.指纹图像分割概述 (4)

2.1.2.均值方差法 (4)

2.2.指纹图像的细化 (6)

2.2.1.指纹图像细化的预处理 (6)

2.3.指纹图像的特征提取 (8)

2.3.1.指纹特征提取概述 (8)

2.3.2.指纹特征提取和去伪特征 (8)

2.4.指纹图像的匹配 (9)

3.硬件系统设计 (10)

3.1.系统总体设计 (10)

3.1.1.系统功能简述 (10)

3.1.2.系统电路设计 (10)

3.2.系统核心部件单片机 (11)

3.3.其他模块电路 (14)

3.3.1.电源模块 (14)

3.3.2.时钟模块 (14)

3.3.3.按键模块 (15)

3.3.4.显示模块 (15)

3.3.5.复位模块 (16)

3.3.6.下载口模块 (16)

3.4.指纹模块 (17)

3.4.1.TFS-M51指纹识别模块 (17)

3.4.2.TMS320VC5501 芯片 (18)

4.软件系统设计 (20)

4.1.TFS-M51指纹识别模块指令系统 (20)

4.1.1.通信方式 (20)

4.1.2.主要通讯协议命令说明 (21)

4.2.单片机的程序设计 (24)

4.2.1.键盘管理及指示灯响应程序设计 (24)

4.2.2.LED显示模块设计 (27)

4.2.3.通信模块程序设计 (28)

5.调试 (30)

5.1.单片机的程序下载 (30)

5.2.串口调试 (30)

6.总结和展望 (35)

参考文献 (36)

致谢 (38)

附录 (39)

附录A 单片机最小系统电路图 (39)

附录B PCB图 (40)

附录C 元器件布局图 (41)

附录D 单片机最小系统实物图 (42)

附录E 单片机最小系统元器件清单 (43)

附录F 程序清单 (44)

1.绪论

1.1. 研究的背景及意义

科学技术的迅猛发展为人类的生产生活带来了极大的便利,大大地推动了社会的进步和发展。以往我们采用各种钥匙来保护安全,如门锁钥匙,汽车钥匙,保险柜钥匙等;在网络化的社会中,每个人都拥有大量的认证密码,比如设备开机密码、邮箱密码、银行密码、论坛登陆密码等等,但这些都是传统的安全系统所采用的方式,容易被遗忘、丢失,甚至是遭人破解,随着社会的发展,其安全性越来越脆弱。而我们的生活随时都需要进行个人身份的确认和权限的认定。

生物识别技术的发展让这一问题得到很好地解决。指纹特征是人终生不变的特征之一,而且不同人的指纹特征相同的可能性几乎为零。人体指纹含有天然的密码信息,它具有作为密码信息必须具备的四个重要性质:

(1)广泛性,指每一个正常的人都有指纹。

(2)唯一性,指每一个人的指纹都不同。指纹的细节由细微纹点和纹线的起点、终点、分叉等组成。正是这些无穷无尽的细节特征组合构成了指纹的唯一性.事实上,甚至包括双胞胎,世界上两个指纹相同的概率小于1109,几乎为零。

(3)终生不变性,即指纹的图案永远不会改变,从人的出现到死后的分解为止(除非指纹受到伤害)。

(4)指纹与主体的不可分离性:即指纹不存在丢失、遗忘、被窃取的可能。

因此,指纹识别技术,作为一种可靠的生物识别技术,受到了人们的

重视。尽管人们已经对自动指纹识别技术作了深入广泛的研究,指纹识别技术也获得了不少应用,但是其应用在目前并没有获得普及,这主要是因为指纹识别在识别准确性和识别速度方面还远远不能满足很多实际应用的要求。这就需要研究指纹识别环节中若干问题,以助问题的解决。

1.2. 指纹识别技术

相对于其它生物识别认证技术而言,自动指纹识别是一种更为理想的身份确认技术,指纹识别中使用的模板并非最初的指纹图,而是由指纹图中提取的关键特征,这样使系统对模板库的存储量较小。另外,对输入的指纹图提取关键特征后,可以大大减少网络传输的负担,便于实现异地确认,支持计算机的网络功能。

1.2.1.指纹识别技术特点

指纹的使用比起其它证卡来说更快捷、安全、准确、无干扰,可实现快速登录注册,系统兼容性好,也就是说可以独立或者通过联网构成系统并且很容易并入各类证卡和定义识别系统中。因此,指纹识别技术的应用范围极广。

在实际应用中,有相当一部分要处理的指纹图像的质量是比较差的。指纹识别系统主要包括5部分:指纹图像采集,指纹图像预处理,指纹图像二值化及细化,指纹特征提取和指纹特征匹配,如图1所示。就现有文献和产品来看,对低质量的指纹图像的处理效果还远不能令人满意,对于质量很差的图像,如果不经过特殊的增强处理,是很难正确地进行特征提取的。

图1 指纹识别流程图

指纹匹配算法的性能主要取决于所提取到的特征点的数目、位置和相互关系的可靠性。要想设计一个对较多真正特征点缺失、较多伪特征点出现和较大形变均不敏感的指纹匹配算法,也是一件十分困难的事。计算复

杂性是自动指纹识别技术中一个重要的研究课题。实际应用要求最好自动指纹识别系统能对识别任务实时做出响应,而让指纹匹配算法同时达到高速度和高准确率也是一个难题。

1.2.2.指纹识别技术发展现状

指纹识别算法的研究方向主要分为:基于图像的识别算法和基于特征的识别算法。

基于图像的识别算法认为,指纹图像的频域和空域信息可以用来唯一表示并识别不同的指纹,它是一种使用全局信息进行识别的方法。这类算法的问题在于图像特征难以定义和匹配,因此算法的拒识率和误识率较高。

基于特征的指纹识别算法是找到并比对指纹的特征。指纹特征的复杂度足以提供用于鉴别的足够特征。目前大多数的自动指纹识别系统使用的都是这类算法。指纹特征多种多样,有特征点、奇异点、域方向图、脊线数目,甚至脊线线型等。对应的匹配方法可以分为:基于点模式的匹配,基于脊线的匹配,基于纹理的匹配以及多种细节特征混合的匹配方法。

大多数基于特征的识别算法专注于脊线上的末梢点和分叉点,该方法根据各个特征点的位置和方向来表示和区分指纹,从而使指纹识别问题转化为判断两个特征点集间的最大相似度(最大重合度)的问题。提取该细节特征有多种方法:基于灰度指纹图像直接提取,基于二值图像的特征提取,基于细化图像的特征提取。

目前许多公司和研究机构在指纹识别技术领域都取得了突破性的进展,推出许多指纹识别与传统IT技术完美结合的应用产品,这些产品已经被越来越多的用户所认可。中科院自动化所智能生物信息系统研究组和北京数字指通软件技术有限公司对自动指纹识别技术进行了长期的理论研究和应用系统开发,指纹图像的识别准确率和识别速度已达到国际先进水平。另外,一些公司和机构结合社会应用的实际需求,开发了各种类型的

具有独立知识产权的嵌入式指纹识别模块、指纹应用系统软件等,用户反映良好。指纹识别技术多用于对安全性要求比较高的领域,丽在商务移动办公领域颇具建树的富圭通、三星及IBM等国际知名品牌都拥有技术与应用较为成熟的指纹识别系统。

与国外相比,我国在自动指纹识别技术的研究水平上还存在一定的差距。主要表现在:指纹录入设备的质量还不太过关;自动指纹识别算法研究水平还有待提高,在应用上的表现为产品适应性和易用性较差,对干、湿一些的指纹往往不能正确区别,对指纹录入时的旋转、平移比较敏感。

1.3. 系统概述

本系统主要由指纹识别模块、单片机、电源、复位电路、时钟电路、指示灯、按键和数码显示管等构成,在无需上位机参与管理的情况下,构成具有指纹录入、指纹对比、搜索和管理等功能的智能型模块。并采用C 语言构建系统程序,通过执行不同的按键动作,使单片机向模块发送相应指令,以完成对应功能。完成后整体可构成一个独立的指纹识别系统,或作为一个完整的外部设备。

2. 指纹识别原理

2.1. 指纹图像的分割

2.1.1. 指纹图像分割概述

在指纹识别系统中,指纹图像分割是图像预处理的一部分。指纹分割的最基本的依据是图像某些特征和特征集合。图像特征是指纹图像的固有属性,如灰度值,邻域关系,纹线的扭曲程度等。特征集合则是几种的结合。通过提取图像特征,可将原始图像映射到特征空间,使图像特征在特征空间中呈现一定的分布。这里主要分析基于块特征的图像分割。

代表块特征的指纹图像分割目前研究趋势为多种块基本特征如灰度均值、块灰度方差、块方向图等综合运用和重新定义块特征。其中块指的是将图像分个成一个个小的图像块。图像均值就是对每一个单位块的灰度值取均值,方差则反映该块中各点与均值的偏差性,这可以很好的反映纹理的变化趋势。一般来说,常见的方向场的计算分为掩模法和公式法两大类。Lin Hong 等人开发的基于最小均方估计算法,即公式法如下:

()()()()())1,1()1,(21,11,11,21,1,++-+-+---++-+--=?j i G j i G j i G j i G j i G j i G j i x

(1)

()()()()())1,1(),1(21,11,11,21,1,++-+--+-+-+++--=?j i G j i G j i G j i G j i G j i G j i y

(2)

()),(,2),(2/2/2

/2/v u v u j i r w i w i w j w j x ∑∑+-+-??=

(3)

()22/2/2

/2/2),(,),(v u v u j i r w i w i w j w j y ∑∑+-+-?-?=

(4)

它是利用正交坐标系下,原点到它们组成的坐标点的有向线段与X 的正半轴的夹角可来表示该子块的块方向。这种方法最大的优点是易实现,很好体现出纹理,但缺点是对于变化太快的部分出错。此方法的实现是利用方向滤波器。

2.1.2. 均值方差法

在图像分割概述中,已经提到基于块特征的指纹图像分割。在这部分将重点介绍均值法差法的计算方法。

该算法基于背景区灰度方差小,而指纹区方差大的思想,将指纹图像分成块,计算每一块的方差,如果该块的方差小于阈值为背景,否则为前景。具体步骤分以下三步:

首先,将低频图分成M×M 大小的无重叠方块,方块的大小以一谷一脊为宜。

然后,计算出每一块的均值和方差。

设指纹图像I 的大小为H×L ,I(i ,j)为像素点(i ,j)的灰度,A VE 和V AR 分别为原指纹图像的均值和方差,A VE 和V AR 可以通过公式(5)和公式(6)计算得到。

(5)

21-H 010AVE -),( L H 1VAR )(∑∑=-=?=i L j j i I (6)

最后,如果计算得到的方差几乎接近于零就认为是背景,对于方差不为零的区域再进行阈值分割算法,这种算法主要是根据计算得到的方差来决定其是否为背景区。

在使用方差均值法之前还要使用归一法将图变为低频图。归一化的目

的是把不同原图像的对比度和灰度调整到一个固定的级别上,为后续处理提供一个较为统一的图像规格。指纹图像的归一化公式如式(7)所示,当大于平均值时为加。

???????---+=VAR AVE y x I VAR VAR AVE y x I VAR y x 2002

00)),((AVE )),((AVE ),I ( (7)

其中A VE 0和V AR 0为期望的灰度均值和方差。下面的图像为指纹图像归一化和分割后的结果。

a 指纹原始图片

b 归一处理图片

c 分割后图像

图2 指纹图像的归一及分割处理结果

从图中可以看到用方差均值法分割既适用于比较圆滑的指纹,又适用纹线变化很大的指纹图像。在归一化处理降频和通过区域均值方差的后得到的图像条纹清晰,轮廓分明,对于后面的细化和匹配有很大的帮助。

2.2. 指纹图像的细化

2.2.1. 指纹图像细化的预处理

这部分预处理主要为二值化。由于指纹图像脊、谷相间,因此指纹图像的处理常是将指纹图像二值化。灰度图像二值化是将灰度图变换为只有黑和白两种灰度的图像。这样不仅可以压缩原指纹图像的数据量,而且也

方便后面的细节特征的提取。灰度图二值化的基本思想是选取适当的灰度阈值,将灰度图像转化为二值图像。根据是否将图像分块处理,又分全局阈值算法和局部阈值算法两种,全局阈值算法是将整幅图像以一个阈值处理,而局部阈值算法则把原图分成若干个子图,在每个子图中确定闽值,在进行二值化,由于指纹图像在不同区域的亮度和对比度是有差别的,因而全局阈值算法不适用。

灰度图二值化的基本思路是选取适当的灰度阈值,将灰度图像转化为二值图像。一般的图像处理中的二值化算法主要是计算整幅图像的灰度平均值,然后将该值作为门限,高于该门限的像素点就置1,反之置0。这种方法虽然简单,但是对噪声较大,图像质量不好的指纹会产生较大的二值化噪声。

采用动态局部阈值,即满足这种条件下的灰度值为128,不满足则灰度值为255。再根据前面判断的是否为背景即Icc值的来修正:灰度值为128且Icc为1时(非背景指纹纹线时),Icc值为0,像素值置为0。背景和灰度值为255的纹线像素置为1,这做法的目的是去除不确切的点。此时背景为白,纹线为黑。

二值化后的图像中的点还要进行修改,修改条件为:当像素为1时,它周围点不大于3个为像素1点则修改为0;当像素为0时,它周围不小于7个点为像素1的点,则修改为1。这种修改是为了使图像连续圆滑。

指纹图像细化处理

由于灰度过渡区的存在,指纹细化是指纹图像预处理中的一个重要环节,因为一般的特征提取都是在细化的基础上进行的,如果细化不好,将无法使用常规的特征提取算法提取细节特征信息。细化可以便我们得到绞线的单像素的骨架。所谓“骨架”,是指图像中央的骨骼部分,是描述图像几何及拓扑性质的重要方法之一。获取一个图像骨架的过程通常称为对图

像“细化”的过程。在文字识别、地质构造识别、工业零件形状识别或图像理解中,先对被处理图像进行细化有助于突出形状特点和减少冗余信息。

细化处理是指在指纹图像二值化以后,在不影响纹线连通性的基础上,删除纹线的边缘像素,直到纹线为单像素宽为止。理想细化后的纹线骨架应该是原始纹线的中间位置,并保持纹线的连通性、拓扑结构和细节特征。一种好的细化算法应该满足下列条件:

(1)收敛性:迭代必须是收敛的。

(2)连通性;不破坏纹线的连接性。

(3)拓扑性:不引起纹线的逐步吞食,保持原图像的基本结构特性。

(4)保持性:保护指纹的细节特征。

(5)细化性:骨架纹线的宽度为1个像素,即单像素宽。

(6)中轴性:骨架尽可能接近条纹中心线。

(7)快速性:算法简单,速度快。

已有的算法迭代按迭代方式的不同分为串行算法和并行算法。在串行细化算法中,当前迭代的结果不仅取决于前一次的迭代图像,而且与当前处理情况有关;而在并行方式中,当前迭代仅仅是由前一次的迭代情况决定,串行细化算法的处理结果依赖于对像素处理的先后顺序,因而像素点的消除或保留不可预测。并行细化算法对图像进行细化时利用相同的条件同时检测所有像素点,其结果具有各向同性,因此从算法原理上并行算法优于串行算法。

不同的文献上有不同的关于细化方法,如王家隆等以及王业琳等的细化模板,制约细化的直观表现在计算速度、毛刺和断点上。因而细化中选择一个好的模板是关键。模板分为保留模板和消除模板,消除模板就是根据条件判定这点去除作为背景的模板;保留模板则是根据条件判定这点保留作为前景的模板。这样就可以将较粗的图像曲线细化成很细的以像素为

单位的线,大大减少了图像的信息量,有利于匹配的高效进行。细化结果如图3所示:

图a 指纹分割图像图b 指纹二值化图像图c 指纹细化图像

图3 指纹图像的二值化及细化结果

从分割后的二值化处理图像中,我们可以看到,整个灰度变成了黑白的二值图像图,图像的条纹比较清楚,它的实现有助于压缩数据量和细化的实现。

细化将黑白二值图像细化成了单个像素带宽的指纹图像,由于模板的选择不同,上图中的细化图像一定程度上存在毛刺、分叉、断点等不理想的情况。所以在特征提出前还需稍加处理,细化好的模板选择可以提高图片的质量和细化运算的速度。

2.3. 指纹图像的特征提取

2.3.1.指纹特征提取概述

特征提取就是对细化后的指纹图像提取表示其特征的信息的操作。前面所叙述的指纹图像预处理目的就是为指纹的特征提取和最终识别建立一个良好的基础,以保证整个系统识别率比较高。对于自动指纹识别技术而言,选择一种合适的、能表达指纹唯一性的特征量是非常关键的。一般说来,这种特征应有以下性质:

(1)单一性:要求这种特征能够充分体现指纹的唯一性。

(2)可测试性:适用于指纹匹配算法,便于在匹配算法中应用。

(3)紧凑性:要求提取的特征不应包含指纹唯一性以外的冗余信息,并且信息量要尽量小,便于存储、管理和计算。

(4)鲁棒性:要求这种特征对噪声的存在与指纹形变不敏感。

对于特征点提取的常用算法很多,如:

(1)基于二值化的特征提取方法:这种算法对于预处理和增强后得指纹图像进行二值化,然后再提取特征点。

(2)基于直接灰度的特征提取方法:这种方法直接从灰度图像出发,通过分析图像的纹理属性和拓扑结构提取特征点。

(3)基于细化图像的特征提取方法:这种方法是将指纹图像处理后得到细化图像,通过细化图像提取特征点。

为了比较两个指纹是否相同,需要从指纹图像中提取出能表示指纹唯一性的特征。Galton提出的指纹细节点是人工指纹匹配中最常用的特征。指纹由脊线和谷线交替构成,在大多数地方纹线连续且相互平行,而某些局部不连续的地方构成了细节点。Galton定义了4种细节点类型:分叉点,端点,环、岛,并指出细节点具有唯一性,可以用于指纹匹配。

目前已定义的特征类型己达150多种,但是这些扩展的特征往往不易

提取相互区分,并且它们都可以由端点和分叉点的组合进行描述,这使得端点和分叉点成为最常用的结构特征,也称为细节特征,它被认为是最稳定、最容易检查的,而且占全部特征点的80%以上。提取出的特征点还必须经过伪特征点的去除,尽可能地去除掉由于二值化、细化处理等过程引入的伪特征点。最后确定出特征点的类型、位置、方向。

2.3.2.指纹特征提取和去伪特征

目前在细化二值图像中提取细节特征多是用8邻域法,该方法比较简单,在得到可靠的细化二值图像后,只需要一个3×3的模板便可将端点和分叉点提取出来。对于细化二值图像,像素点的灰度值只有两种情况。

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

图4 通过判断后得到的特征点分布图

这个特征点分布结果图包含了特征点和伪特征点。在匹配前还需对毛刺、小桥等伪特征点加以识别和处理,这样有助于后面匹配的进行,使匹配更加精确无误和快速。

2.4. 指纹图像的匹配

指纹匹配要解决的是对两幅给定指纹图像的特征模式进行比对,判断这两幅图像是否来自同一个人的同一手指。指纹匹配是自动指纹识别的最后一步,也是非常关键的一步。

指纹图像匹配方面,主要有基于图像,脊线结构和特征点的方法。基

于特征点的匹配算法具有简单、快速、鲁棒性等优点。目前最为常用的方法是FBI提出的细节点坐标模型来做细节匹配。它利用脊线上的端点和分叉点这两种关键点来鉴定指纹。通过将细节点表示为点模式,一个指纹识别问题可以转化为一个点模式匹配问题。点匹配算法是通过某些变换,如平移变换、旋转变化、伸缩变换,可以把两个点集中的对应点匹配起来。

相关文档