武伟基于FPGA的指纹识别系统设计.doc_第1页
武伟基于FPGA的指纹识别系统设计.doc_第2页
武伟基于FPGA的指纹识别系统设计.doc_第3页
武伟基于FPGA的指纹识别系统设计.doc_第4页
武伟基于FPGA的指纹识别系统设计.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西华大学毕业设计说明书 毕业设计说明书题 目: 基于FPGA的指纹识别系统 设计 学院(直属系): 机械工程与自动化学院 年级、 专业: 2007级 自动化 姓 名: 武 伟 学 号: 312007080602104 指 导 教 师: 宋 春 华 完 成 时 间: 2011年5月25日 - 36 -目 录目 录- 1 -摘 要- 3 -Abstract- 4 -1前言- 5 -1.1 设计背景- 5 -1.2课题目标和研究内容- 6 -1.2.1课题目标- 6 -1.2.2 研究内容- 6 -1.3 研究意义- 6 -2 系统总体设计- 7 -2.1 硬件框图及各模块介绍:- 7 -2.2 项目关键技术及创新性:- 8 -2.2.1 传感器的选择- 8 -2.2.2 指纹图像的预处理- 8 -2.2.4 指纹图像匹配- 14 -3 开发工具及器件简介- 18 -3.1传感器介绍- 18 -3.3 开发环境介绍- 20 -4 硬件设计- 22 -4.1 指纹采集模块- 22 -4.2 指纹数据处理模块- 23 -4.3 指纹数据存储模块- 24 -4.4 RS232通信和键盘操作模块- 25 -5 软件设计- 26 -5.1 MBF200初始化- 26 -5.2 指纹数据采集软件实现- 27 -5.3 指纹数据存储软件实现- 27 -5.4 指纹图像预处理软件实现- 29 -5.4.1 指纹图像的规一化- 29 -5.4.2 指纹图像的分割- 30 -5.4.3 指纹图像的二值化- 31 -5.4.4 指纹图像的细化- 32 -5.4.5 MicroBlaze处理核的嵌入- 32 -5.5 指纹图像的特征点提取- 32 -5.5.1 特征值分类- 33 -5.5.2 去除伪端点- 34 -5.5.3 去除小孔- 34 -5.5.4 去除毛刺- 34 -5.6 指纹图像匹配- 34 -结 论- 36 -总结与体会- 37 -致谢词- 38 -【参考文献】- 39 -摘 要本系统采用xilinx公司Spartan 3E系列FPGA作为核心控制芯片,通过富士通公司的MBF200指纹传感器实现对指纹图像的采集,利用SPI接口传输到FPGA进行数据的存储,利用内嵌的MicroBlaze处理器对指纹图像进行灰度滤波、二值化、二值去噪、细化等预处理,得到清晰的指纹图像,再从清晰的指纹图像中提取指纹特征点并存入指纹数据库作为建档模版。指纹比对时,采用同样的方法,得到比对模版,然后将比对模版与建档模版利用指纹识别算法进行比对,得出比对结果。该项目利用嵌入式软核实现系统的管理,利用硬件实现识别算法,保证了系统功能的完整性与识别的正确性。该识别系统可用于门禁、考勤、证件管理等很多方面,具有很广泛的应用前景。而识别算法我们采用美国FBI推荐的特征点匹配算法来实现指纹的识别,更保证了系统的实现。以FPGA作为核心控制器件,实现指纹图像的采集、存储、处理和比对等,完成对指纹图像的有效识别。需要具有单片机和C语言基础.【关键词】FPGA、指纹识别、传感器、Spartan 3E、MBF200AbstractThe system uses xilinx Spartan 3E Series FPGA company as a core control chip, through the Fujitsu fingerprint sensors to achieve MBF200 fingerprint image acquisition, the use of SPI interface transfer to the FPGA for data storage, using the embedded MicroBlaze processor fingerprint image gray filter, binary, binary denoising, thinning preprocessing, get clear fingerprint image, and then clear the fingerprint image from the fingerprint feature points extracted and stored in the fingerprint database as a filing template. Fingerprint matching, the same method used to obtain matching template, and then filing template than the use of templates and fingerprint recognition algorithm to compare, compare the results obtained. The project uses the embedded soft-core for system management, the use of hardware to achieve recognition algorithm to ensure the integrity of the system function and recognition accuracy. The recognition system can be used for access control, time and attendance, document management and many other areas, with a very wide range of applications. The recognition algorithm used by the U.S. FBI recommended that we feature point matching algorithm to achieve fingerprint identification, but also to ensure the systems implementation. FPGA as the core control device to achieve fingerprint image acquisition, storage, processing and comparison, etc, to complete the effective recognition of the fingerprint image. Requires a microcontroller and C language based.【Key words】FPGA、Fingerprint、Sensors、Spartan 3E、MBF2001前言1.1 设计背景生物识别技术是利用人的生物特征进行身份认证的技术, 人的指纹就是生物特征之一。此外, 生物特征还包括虹膜、视网膜、声音和脸部热谱图等。指纹识别是生物识别技术中最为成熟的, 其唯一性、稳定性, 一直都被视为身份鉴别的可靠手段之一。由于最早的指纹识别技术仅仅依靠人工对比,工作效率低下、比对正确率低、对比对人员的要求高,从而使得指纹识别技术无法得到广泛应用。但随着计算机的出现及其运算速度的迅速提高,使指纹对比鉴定的应用发生了革命性的变化。使用计算机管理指纹数据库,极大提高了指纹对比的速度,同时由于计算机比对算法的不断改进提高,使指纹比对误识率已降到了10-6以下,不仅可以满足刑侦方面的需要,而且迅速进入了更多的应用领域。随着光学技术和光学仪器加工工艺的进步,各种采集指纹图案进行身份认证的系统和设备中需要配备的高清晰、无畸变光学采集仪也达到了很高水平,确保可以生成高质量的指纹图像。计算机运算速度的提高和计算机小型化的进展,使采用微机甚至单片机也可以进行指纹对比运算成为可能。现代电子集成制造技术使得我们可以生产出相当小的指纹图像读取设备和指纹识别模块。其成本下降得也很快,大大加快了指纹识别技术的推广速度。同时人们对消费类产品的要求越来越趋向于小型化,并且对可携带设备的安全性要求也与日俱增。传统的PC、MCU、或者DSP的处理平台移动性比较差,体积比较大,无法满足人们日益增长的需求。所以,设计一套体积比较小、速度更快的嵌入式指纹识别系统是非常有意义的。而本设计正是为了这一目的,选用具有高集成度、低功耗、短开发周期的FPGA来完成此项设计,以实现系统的ASIC为研究背景,具有很强的现实意义和广阔的市场空间。本系统采用xilinx公司Spartan 3E系列FPGA作为核心控制器件,这款器件采用90ns的先进工艺,最大容量50万门,可支持32位的RISC处理器,具有128 Mbit 并行Flash,足以满足设计的要求。该项目利用嵌入式软核实现系统的管理,利用硬件实现识别算法,保证了系统功能的完整性与识别的正确性。而识别算法我们采用美国FBI推荐的特征点匹配算法来实现指纹的识别,更保证了系统的实现。1.2课题目标和研究内容1.2.1课题目标以FPGA作为核心控制器件,实现指纹图像的采集、存储、处理和比对等,完成对指纹图像的有效识别。 1.2.2 研究内容本系统采用xilinx公司Spartan 3E系列FPGA作为核心控制芯片,通过富士通公司的MBF200指纹传感器实现对指纹图象的采集,利用SPI接口传输到FPGA进行数据的存储,利用内嵌的MicroBlaze处理器对指纹图象进行灰度滤波、二值化、二值去噪、细化等预处理,得到清晰的指纹图象,再从清晰的指纹图象中提取指纹特征点并存入指纹数据库作为建档模版。指纹比对时,采用同样的方法,得到比对模版,然后将比对模版与建档模版利用指纹识别算法进行比对,得出比对结果。该项目利用嵌入式软核实现系统的管理,利用硬件实现识别算法,保证了系统功能的完整性与识别的正确性。该识别系统可用于门禁、考勤、证件管理等很多方面,具有很广泛的应用前景。1.3 研究意义生物识别技术越来越多地被应用于身份验证领域。指纹因其惟一性、终生不变性和较低的识别成本而成为目前使用最广泛的生物识别技术,在罪犯识别、社会保险、电子商务、信息安全等领域得到广泛的应用。便携式的指纹识别技术对我们的生活也具有深远的意义。例如,今后警察可在一个犯罪高发区截住一名嫌疑人,要求其提供指纹而不是身份证或汽车驾照。此人则将其右手的第一、二或第三个手指置于一个与无线PDA相连的传感器上,可以迅速将嫌疑人与以前的犯罪记录进行对比确认。 这种识别技术对于被盗的手机用户也有好处。手机开机时要求用户通过一个快速的认证过程,用户将其手指划过传感器,如果通过认证则授权使用手机的各项功能。如果不是授权用户,手机便继续保持锁住。如果连续几次认证无法通过,则手机会删除存储器中的关键信息然后关机。 在语音邮件的应用中,当拨出一个语音邮件号码后,用户只需将手指划过传感器便可令系统识别。有了指纹识别后,便无需使用邮箱密码或个人识别号码。 在今后的汽车应用中,用户可输入家庭成员指纹样本,经鉴权才能驾驶。注册过程十分简单:每个授权驾驶的成员将其手指置于传感器上,并将汽车的各种参数按个人爱好进行设置,然后将这些设置存入车载的电脑存储器中。 当驾驶者进入汽车时,他/她将手指置于传感器上,启动识别过程。不到一秒钟,电脑将检测到的指纹模板与存储的模板进行比较,并建立一个与驾驶者相符的相关设置。指纹模板和匹配软件保存在汽车内的一个嵌入式模块中。当指纹匹配成功时,汽车便按已编程设定的内部参数来控制后视镜、汽车座椅、无线基站以及车内空气环境。此外,还可控制驾驶速度,如果驾驶者仅为十来岁的孩子,则将速度限制在每小时55公里。这些功能的实现具有非常多的用处。可见,指纹识别技术的应用可以使我们的生活更加方便安全。同时本项目重点研究基于FPGA的指纹识别系统,利用FPGA高集成度化,低功耗,短开发周期等优点,实现系统的ASIC,具有更加深远的意义和广阔的市场商机。2 系统总体设计2.1 硬件框图及各模块介绍:系统采用xilinx公司Spartan3E 系列FPGA作为核心的控制和运算芯片,数据采集模块由富士通公司的MBF200电容式指纹传感器来完成,MBF200指纹传感器可以完成指纹图像的采集并用其自带的A/D转换器将指纹图像转换成数字信号,利用SPI接口传送至FPGA进行存储。由FPGA处理采集来的数据,由于FPGA内部存储空间太小,无法存储一张完整的指纹图像,所以将指纹数据暂时存储在SDRAM中。当处理图像数据时,FPGA通过读取SDRAM的指纹数据,并在其逻辑单元中进行滤波、灰度归一化、二值化、细化和特征值提取等操作,从而获得重要的指纹图像信息。系统操作时首先利用键盘选择指纹存储模式,将获得的指纹图像信息存储到FLASH中作为指纹数据库,然后切换到指纹识别模式,再利用上述方法获得指纹图像信息。通过FPGA调用指纹数据库中的数据,寻找与之匹配的指纹信息,最后将比对结果在LCD中显示。本系统还可利用RS232与计算机进行通讯,可以方便扩展,使得系统可以应用到更多的领域。系统框图如下图1。图1 系统框图2.2 项目关键技术及创新性:2.2.1 传感器的选择目前,市面上存在很多种类的指纹传感器,应用最广泛的有光学、电容、电磁波、压力、微电机和热学指纹传感器。而本系统采用富士通公司的MBF200电容指纹采集传感器来实现对指纹图像的采集,该款指纹传感器采用标准的CMOS技术,含有8位A/D转换器,工作在3.3V5V的宽电压范围,能自动检测是否有指纹到达传感器,并实现在线采集,它的最大优点是在保证指纹图像高分辨率(500dpi)的同时大大减少了传感器的尺寸。利用此传感器可以完全满足系统的设计任务。2.2.2 指纹图像的预处理图像预处理的主要步骤包括:灰度值归一化、图像分割、滤波、图像增强、二值化、细化等。预处理的目的是改善输入指纹图像的质量,以提高特征提取的准确性。原始指纹图像一般存在噪声污染、脊线断裂或脊线模糊等问题,需要进行图像增强(使用滤波技术)以改善质量。由于指纹特征仅包含在脊线的形状结构中,所以,通过归一化、二值化和细化把深浅不一、宽度不同的脊线变成灰度相同、单像素宽的细脊线,以便于特征提取。图像归一化归一化处理是对原始指纹灰度图像上每一象素点的一种操作,人为改变它的灰度值,消除指纹录入传感器表面的残留噪音以及手指按压力差异对指纹图像的影响,把图像分为的子块,对于每一子块求其灰度均值Mi和方差Vi。子块灰度均值和方差的计算按如下公式: (1) (2)其中I(x,y)为子块中象素(x,y)的灰度值,子块归一化的目的是调整均值和方差到一个期望的范围,如果用G(i,j)表示(x,y)点的归一化后的值,那么第I个子块归一化后灰度值为: (3)如果:,则把灰度值为全部归0作为背景处理,这样可以有效地去除传感器表面残留纹印引入的噪声。其中,均为期望的均值和方差,M为实验后得到的门槛值,为像素点的灰度幅度,经比率调制后,加到期望的均值上。使得原来方差大的点归一化后幅度更大,反之相反;而灰度值大或者小于均值的点,归一化后继续大或小于期望均值,而且归一化为点操作,不会改变指纹的纹理结构。(2)图像分割在采集到指纹图像后,首先要进行指纹图像分割,即把图像分割为指纹区与非指纹区,目的是割除白背景区和背景区,保留前景区,尽可能保留模糊区中能恢复的部分,以便后续处理能够集中于有效区域,这不仅能提高特征提取的精确度,还能大大减少指纹预处理的时间。目前常用的指纹图像分割的一般方法是:一种是基于图像灰度特性的灰度均值分割,这种分割容易把有效部分割除掉,而把用力重的模糊不清的区域保留;另一种是基于灰度方差的阈值分割,这种单一分割方法不适合低对比度的图像;第三种是基于指纹纹理的方向性,利用方向图对指纹图像进行分割。这种方法的分割效果依赖于所求点方向图及块方向图的可靠性,对图像灰度的对比度的高低并不敏感。但是对于指纹不连续、单一灰度等难以正确估计的区域及中心、三角附近,方向变化剧烈的区域,方向图分割则难以取得令人满意的效果。我们将指纹图像分为前景区、背景区、模糊区和白背景区,其中白背景区是指指纹图像中不含指纹纹线的边界区域,这类区域也是应该包括在割除的区域,所以为了能正确划分这4类区域,更准确地割去白背景区和背景区,并保留前景区和模糊区中可恢复的区域,把整个分割过程分为3级,分割的基本单元为大小不相交叠的块。第一级分割为白背景区分割,第二级分割为模糊区分割,第三级分割为背景区分割,白背景区灰度均值很低,而且由于没有纹线峰和谷的变化,方差也很小,因此白背景区的判断采用:(1) 块灰度均值: (2) 块灰度方差第一级分割的判决为:当mean小于预定义的阈值T1且variance也小于预定义的阈值T2即同时满足上述两个条件时,该块为白背景块,删除掉。第二级分割的判决区域为1级分割后保留下来的非白背景区域,其目的是找出模糊区,其判决方法为:设定特征量:表示块中灰度值大于或等于块灰度均值的点数;:表示块中灰度小于块灰度均值的点数;:块中灰度值大于或等于块灰度均值的所有点灰度之和;:块中灰度值小于块灰度均值的所有点灰度值之和。当Z小于预定义的阈值T3时说明该块为墨迹很浓,峰和谷被墨迹粘连混淆的区域应去除。第三级分割设定特征量,当对比度contrast1的值小于预定义的阈值T时,将其设定为背景区域;否则,作为前景区域,保留其灰度值,以作后续处理。(3)指纹图像二值化二值化,就是把灰度图像转变为黑白相间的二值图像,通过设定一个全局阈值对增强后的指纹图像转变为用0、1两种灰度表示,0代表脊线,为黑象素,作为前景。1代表谷线,作为白象素。处理方式如下: 由于采集到的指纹图像不同区域深浅不一,如对整幅图像使用同一阈值进行二值分割,会造成大量有用信息的丢失。 这里我们使用自适应局部阈值二值化的思想,既将图像分割成多个小块,对每个小块进行分别计算,局部阈值的选取参考局部块的各个像素,而且选取的阈值应尽量使该块图像内大于该阈值的像素点数等于小于该阈值的像素点数,这样可以使阈值具有自适应性,不会使大量有用信息丢失。自适应局部阈值二值化的流程图如图2:图2 自适应局部阈值二值化流程图图2中T为该块指纹图像的平均灰度值Nh、Nl分别为第(k,l)块指纹图像中灰度值大于等于T和小于T的像素点数,= w w 10 % ,w 是分块尺寸(像素) 。 (4) 图像的细化细化是把清晰但纹线粗细不均的二值指纹图像转化成线宽为一个象素的条纹中心点线图像的过程,以便后续的特征提取过程能精确定位。细化算法中的OPTA算法满足收敛性、连续性、拓扑性和保持性,有较好的细化效果。但该算法在三叉点处不能完全细化,且细化后的图像不够平滑,毛刺较多,扭曲较大。针对其算法的不足进行改进,重新构造模板,采用统一模板,左上角区域为消除模板区域。000X1X1110X10110X1111X1X0001X01101X0X00110X1X00X011X1XX1X01100XX1X110X00 图3:指纹图像消除模板X000110XX1XXXXXX1X00110X1X0XXXXXX1X0110XX00XXXXX0XX111XX1XX000XX0XXX1XX110XX00XX0XXX1XX011X00XX图4 指纹图像细化保留模块保留模板和消除模板如图3、4所示,1表示前景区,0表示背景区。细化时,对每个像素抽取其临域所需的像素点。先依次与消除模板比较,如果与任意一个都不匹配则保留,否则删除。整个改进算法克服了原算法的不足,有效清除了毛刺,对指纹图像能进行充分细化。2.2.3 指纹图像特征提取本设计结合细化图像的特点,提出了一种基于非彻底细化图像的指纹细节提取算法。在不对纹线做任何修复处理的情况下,在细化指纹图像上直接提取原始细节特征点集,得到初步的特征提取结果;然后分析图像中存在的各类噪声及其特点,结合指纹细节特征点固有的分布规律和局部纹线方向信息,针对不同的噪声采用针对性算法,并利用伪特征点在数学形态学上的分布规律,将各类噪声引起的伪特征点分别予以删除,而将最终保留的特征点集作为真正特征点的集合。改进的细节特征提取算法的具体思想如下:(1) 原始细节特征点集的提取首先在细化指纹图像上直接进行细节特征提取,得到原始的细节特征点集P1和P2,其中P1 为纹线端点集合,P2为分叉点集合。这些点集中可能含有大量的伪特征点需进一步处理。(2) 短线与纹线间断的删除对细节特征点集P中任意两个纹线端点i1 P1, i2 P1 , 如果它们之间的距离(像素点数) 小于D1 ,且0,则认为该两点为伪特征点,予以删除。(3) 小孔的删除对细节特征点集P中任意两个纹线分叉点j 1 P1 , j2 P2,如果它们之间的距离(像素点数) 小于D2,则认为该两点为伪特征点,予以删除。(4) 小毛刺的删除对细节特征点集P中任一纹线端点i P1和任一分叉点j P2 , 如果它们之间的距离小于D3 ,且有纹线连接该两点, 则认为该两点为伪特征点,予以删除。(5) 较长毛刺的删除对细节特征点集P中任一纹线端点i P1和任一分叉点j P2, 如果它们之间的距离小于D4,且有纹线连接该两点, 并且/4, 则认为该两点为伪特征点,予以删除。(6) 纹线叉连的删除对细节特征点集P中任意两个纹线分叉点j 1 P1, j2 P2,如果它们之间的距离大致等于D5,且有纹线连接该两点, 并且/2, 则认为该两点为伪特征点,予以删除。其中Ang ( i , j ) 为两特征点i、j 的连线与水平坐标轴方向的夹角(弧度) ,( i , j ) 为特征点i、j 所在的局部邻域的纹线方向(弧度) ,为Ang ( i , j) 与( i , j) 之差的绝对值。 D1、D2 、D3 、D4 为距离门槛值(像素点数) ,本设计中经多次实验,分别取7 、3 、4 、8。 D5 为指纹图像平均纹线宽度,可通过计算得到。2.2.4 指纹图像匹配指纹图像的匹配就是对两个输入指纹的特征集合(模板指纹集和输入指纹集)进行判断,看是否属于同一指纹。指纹图像匹配算法很多,主要包括基于图像的匹配、脊模式匹配、点模式匹配以及基于图形的匹配。而基于特征点的(细节点)的匹配算法具有简单、快速、鲁棒性等优点。目前最常用的是FBI提出的细节点坐标模式来做细节匹配。它利用脊末梢和脊线分叉点来鉴定指纹。通过将细节点表示为点模式,一个自动指纹认证问题可以转化为一个点模式匹配问题。如Sanjay Ranande and AzrielRosenfeld3 利用松弛法进行点匹配,Shih2hsu Chang4 等人利用二维聚类进行匹配。本设计采用了一种矢量三角法来确定参照点的点模式匹配算法。该算法利用矢量三角形法快速确定指纹的参考点和旋转参数,然后将直角坐标系中的细节点转换到极坐标系中进行点匹配,避免了在一般的点模式匹配算法中选取参照点进行的逐点反复搜索而消耗大量时间的弊病,所用的方法不依赖指纹图像的中心区域,有较强的抵抗噪声与非线性变形的能力。两幅指纹图的匹配,主要是解决旋转、平移和形变等问题。在对两幅图像进行匹配之前就先估计它们之间的形变参数,并以此对这两幅图像进行校准。正如Anil Jain7 等指出,在极坐标中进行细节匹配有很多的优点:指纹图像的非线性形变往往表现为放射状,即这种形变呈非线性地向外扩张。因而,使用极坐标比直角坐标能更好地描述这种非线性形变。在极坐标中,我们不需要考虑输入图像与模板图像参照点之间的平移,因为输入图像与模板图像间的平移是固定的,也就是说对应点的坐标在参照点转换为极坐标时,平移就被抵消掉了。由于两幅指纹图像是用同一个仪器采集的,可以假定它们间的尺度变化参数为1 ,也就是说可以不考虑尺度形变的因素。因此,本设计选择在极坐标系中做细节匹配,而且只需考虑输入图像与模板图像间的旋转形变参数。为了把细节点转换到极坐标系中去,需要在模板细节点集和输入细节点集中各选一个参照点作为相应的极坐标系中的原点,并计算出其它细节点相对于参照点的极坐标。在本设计中采用矢量三角形法来确定参照点。1. 选取参照点的矢量三角形法定义两个点集P 和Q , 其中一个点集Q 表示从输入的指纹图中提取出来的N 个细节点,另一个点集P 表示从模板图像中提取出来的M 个细节点。我们把这两个点集分别表示为:P = ( xP1 , yP1 ,P1 ) , . . . , ( xPM, yPM,PM) Q = ( xQ1, yQ1,Q1) , . . . , ( xQN, yQN,QN) 其中( xPi , yPi ,Pi ) 记录了点集P 中第i 个特征点的三条信息:X 坐标, Y 标与方向,同样( xQj, yQj,Qj) 记录了点集Q 中第j个特征点的三条信息: X 坐标, Y 坐标与方向。定义1 若直角坐标系下的不在同一条直线上的三个有向点按逆时针次序排列,称这三个点按标准向系排列,所构成的三角形为标准系下矢量三角形。定义2 如果两个同为标准系下的矢量三角形满足如下条件,则称两个矢量三角形全等。(1) 三对对应边长分别相等。(2) 三对对应顶点间的方向角相等。(3) 三对对应点的类型相同。(4) 三对对应边所穿过的脊线数目相同。对模板集中的每一点A , 在指纹图上寻找与其最近的两个特征点,其一记为R , 另一个记为S , 按逆时针方向把它们连接起来组成一个三角形。把点A 、点R 与点S 的类型(末梢点或分支点) 分别记为nType1 , nType2 与nType3;其方向角分别记为nBeta1 , nBeta2 与nBeta3。把连接点A 与点R 、点A 与点S 、点R 点S 的三条虚拟的线段长度分别记为nDist1、nDist2和nDist3; 其所跨越的脊线数分别记为nCrossNum1、nCrossNum2 和nCrossNum3。通常情况下,纹线数目比距离、相对角更具有鲁棒性,因此,这里我们在判断两个矢量三角形是否全等时,增加了这个条件。我们把点类型、方向角、边长信息与跨越脊线数记入点A 的对象中。如果A 属于点集Q , B 属于点集P ,并且下面式子均成立:( abs ( A. nDist1 - B . nDist1) Td and abs ( A. nDist2 -B . nDist2) Td and abs ( A. nDist3 - B . nDist3) Td) (1)( abs ( A. nBeta1 - B . nBeta1) T and abs ( A. nBeta2 -B . nBeta2) T and abs ( A. nBeta3 - B . nBeta3) T) (2)( A. nType1 = = B . nType1 and A. nType2 = = B . nType2and A. nType3 = = B . nType3) (3)( Abs ( A. nCrossNum1 - B . nCrossNum1) +abs ( A. nCrossNum2 - B . nCrossNum2) + abs ( A. nCrossNum3 -B . nCrossNum3) Tc) (4)则认为两个矢量三角形全等,且点A 和点B 分别是模板图像和输入图像的参照点。这里在判断两点的对应跨越脊线数、方向角、边长是否相等时, 都留下了一定的松弛量( Tc 、T 和Td) 。由于最后要将细节点都转换到极坐标系下, 我们仅仅计算了输入图像与模板图像间的旋转角度, 而不考虑两幅图像间的平移,只需将输入细节点与模板细节点都分别相对于参照点A 和B 转换到极坐标系中,然后在所有输入细节点的极角上加一个角度。也就是说,将输入细节点与模板细节点都分别相对于参照点A 和B 用下式转换到极坐标系中: (5)其中( xi , yi ,i ) T 是待转换细节点的坐标, ( xr , yr ,r) T 是参照细节点的坐标, ( ri , ei ,i) T 是细节点在极坐标中的表示( ri 表示极半径, ei 表示极角,i 表示细节点相对于参照点的方向) 。表示旋转角度,满足:即: (6)式中,。然后将极坐标中的模板细节点和输入细节点按极角递增的方向排序,并连接成串,并进行相似匹配,并将匹配的细节点数进行统计,若对应点的数量大于设定的阈值则可以认为输入指纹图像和模板指纹图像是匹配的,否则,不匹配。3 开发工具及器件简介3.1传感器介绍本设计中采用的MBF200是富士通公司推出的一款先进的固态指纹传感器芯片,它除可自动检测指纹外,还带有SPI,MCU,USB等多种接口模式。MBF200具有高性能、低功耗和低成本等特点,属于电容性传感器。其电容性传感器阵列由二维金属电极组成,所有金属电极充当一个电容板,接触的手指充当第二个电容板,器件表面的钝化层作为两板的绝缘层。当手指触摸传感器表面时,指纹的高低不平就会在传感器阵列上产生变化的电容,从而引起二维阵列上电压的变化,并形成指纹传感图像。MBF200内部具有A/D转换模块,在控制寄存器的控制下,进行A/D转换,将采集到的电容信号变成数字信号,便于数据的传输。而且,MBF200的图像采集还支持子图获取,可以根据控制寄存器相映的配置,获取大小符合需要子图。通过配置MBF200内部控制寄存器,可以选择芯片将要用到的时钟。MBF200内部集成了多频振荡器,可以为芯片提供内部时钟,也可以采用外部输入的时钟作为芯片工作时钟。MBF200作为一款可编程的传感器芯片,其内部设置了19个控制寄存器,以完成多种功能。其具体结构框图如图5所示图5 MBF200内部结构其中256x 300点传感阵列用于产生感应电压,功能寄存器用于对芯片进行操作控制,控制电路用于传感器与外部接口电路的控制,主要负责数据的读出与写人,地址索引寄存器与数据寄存器分别用于对功能寄存器的地址选择及数据的读写,采样保持及AD转换电路用于对传感阵列所产生的电压进行采样。本设计采用的是SPI接口模式传输只用到MOSI,MISO两个接口进行数据的读取。MBF200的256X300传感器阵列每一列有两个采样保持电路,每次捕获一行指纹图像数据。行捕获分为两个阶段,第一阶段,将电容板的被选行充电到3.3V或5V,在充电的同时,一个内部信号使能一个采样保持电路以采样被选行的电容单元电压;第二阶段是传感器板放电阶段,放电快慢由放电电流寄存器决定。放电阶段结束后,可由一个内部信号使能另一个采样保持电路去采样电容单元的最后电压,充电电压与放电电压之差就是所要测量的有用传感信号电压。行捕获结束之后,接着对该信号进行数字化,从而完成一次采样。实际上,该芯片的灵敏度是由放电电流和放电时间寄存器来调节的。在实际应用当中,可以通过给MBF200内部控制寄存器赋值,来调整指纹图像的清晰程度。3.2 Spartan-3E开发板介绍Spartan-3E开发板的主要特征如下:1) 多达232个用户I/O口,320个FPGA封装管脚超过10000个逻辑单元。2) 4Mbit的Flash 配置PROM。3) 64个宏单元的XC2C64A CoolRunner CPLD。4) 64 M Byte (512 Mbit) of DDR SDRAM, 16 数据接口, 100+ MHz。5) 16 M Byte (128 Mbit) of 并行NOR Flash (Intel StrataFlash): FPGA配置存储,MicroBlaze代码存储/映射。6) 16 M bits of SPI serial Flash (STMicro):FPGA配置存储,MicroBlaze代码存储/映射。7) 16字符2线式LCD显示屏。8) PS/2鼠标或键盘接口,VGA显示接口。9) 10/100以太PHY(要求FPGA内部具有以太MAC)。10) 2个9管脚的RS232端口(DTE和DCE两种类型)。11) FPGA/CPLD下载/调试USB接口。12) 50Hz时钟晶振。13) 1线式的SHA-1位流复制保护串行EEPROM。14) Hirose FX2扩展连接口。15) 3个管脚扩展连接器。16)4个SPI-DAC转换器输出管脚。17) 2个SPI带可编程增益ADC输入管脚。18) ChipScope软件调试接口。19) 带按钮的旋转编码器。20) 8个单独的LED输出。21) 4个滑动开关,4个按钮开关。22) SMA时钟输入。23) 8管脚插槽辅助晶振。3.3 开发环境介绍本设计采用的开发环境有Xilinx的集成软件环境ISE和32位嵌入式处理器集成开发环境EDK,两者配合适用,本设计中我们用EDK在FPGA内部嵌入一个32位处理器,然后将此处理器作为一个子模块,在ISE中引用此子模块,来完成整个设计。在这里简要介绍ISE和EDK开发环境。ISE是Xilinx公司CPLD,FPGA的集成开发软件,它提供给用户从设计输入到综合、布线、仿真、下载的全套解决方案,方便与其他EDA工具借口。通过新的局部时钟布线功能,支持再200Mhz以上的高速存储器接口。同时还提供Red Hat Linux的支持、高速设计能力、易于使用的布局规划和引脚管理增强特性。这些特性结合起来极大的缩短了客户的总体设计周期和设计成本。与Foundation相比,ISE除了增强新器件支持和优化性能外,有如下一些方面的改进:(1)XST和Synplify流程均可以支持语言的混合输入。(2)在Process窗口可以直接选择添加或创建新的设计文件。(3)便捷的库元件信息查询。使用原理图编辑器时,在Symbols栏中选中一个库元件,单击Symbol Info按钮,系统就会从在线文档中找到并显示该元件的详细信息(4)把波形编辑器Testbencher集成到Project Navigator中。(5)支持第三方的文本编辑器(如UltraEdit、CodeWright等)。其中,原理图输入可使第三方软件ECS,HDL综合可使Xilinx开发的XST, Synopsys的FPGA Express和Synplicity的Synplify/Synplify Pro,测试台输入可使用图形化的HDL Bencher,状态图输入可使用StateCAD,前、后仿真则可使用Modesim XE(Xilinx Edition)或Modelsim SE。一般在Synplify中建立工程、输入文件和综合,在Modelsim中新建工程并作仿真,用ISE的Design Manager,再运行JTAG编程器下载。4 硬件设计4.1 指纹采集模块本设计中采用的是富士通的MBF200指纹传感器,MBF200硬件框图如图6所示,采用SPI模式,所以MBF200与FPGA只通MISO,MOSI,/S/C/S,SCLK四个端口相连接。/S/C/S为MBF200的使能端,SCLK为MBF200的系统时钟,当需要采集指纹信号时,FPGA向/S/C/S发送低电平,则MBF200开始工作。FPGA通过MOSI向MBF200发送控制命令,控制MBF200的数据输出方式及传输模式。VDD3:1为数字电源输入,VDDA2:1为模拟电源输入,VSS3:1为数字地,VSSA2:1为模拟地,所以如图所接。而为了防止数字信号对模拟信号的干扰,用10欧电阻隔开。并且数字电源输入与相应的数字地之间均接有电容用来阁除非直流信号。为了防止数字地与信号地之间的干扰,本设计采用0欧电阻隔离。0欧电阻相当于很窄的电流通路,能够有效地限制环路电流,使噪声得到抑制。电阻在所有频带上都有衰减作用(0欧电阻也有阻抗),这点比磁珠强。 图6 MBF200硬件连接电路MODE1:0引脚是用来设定MBF200所用接口模式的,在本设计中,置MODE1:0为01,选定SPI传输模式。在SPI模式当中,AIN,ISET,FEST三个接口都不会用上,但根据MBF200内部电路结构,最好接电阻与地相接。4.2 指纹数据处理模块由于指纹数据处理涉及很多算法,运算量大,所以本系统在Spartan3E开发板上嵌入一个Microblaze软核来进行数据处理,首先将SPI口传输进来的数据送人SDRAM进行存储,开发板上带有32M的SDRAM,完全可以存储很多张指纹数据。在创建指纹数据库时,系统从SDRAM中取出数据,放入Microblaze进行处理,再将处理后的指纹数据信息存入FLASH组建指纹数据库。在比对模式时,利用Microblaze进行数据处理后的数据扔存入SDRAM,然后从FLASH和SDRAM分别提取指纹图像特征数据进行比对,得出比对结果。4.3 指纹数据存储模块图7 FLASH输入存储模块硬件连接图strataFlash与FPGA管脚连接图如图7所示。CE2:0为strataFlash使能信号输入端口当只用一个片子时,CE2:1接地只用CE0控制。由于在本设计中,FPGA与FLASH之间的数据传输D0与FPGA对MBF200的控制线MISO复用,所以从FLASH里取数据与控制MBF200产生冲突,时序不好控制,所以本设计中将会给BYTE#置高关闭A0,将strataFlash置于X16模式。D7:0在写模式下,传送控制命令在写CUI时,在缓冲器写和编程模式下。在读模式下,D7:0发送CFI、数据阵列和标志数据。状态寄存器的数据将不通过这8位传输。VPEN是锁定使能输入,当VPENVPRNLK时,内存将不允许写入数据或者命令。图8 FPGA从FLASH中读取数据信息的时序图单字读时序图如图8所示,FPGA使能读FLASH后,发送所要读取数据的地址,OE#置低使能FLASH输出,经过输出延时R4,由DATAD/Q输出数据。要向控制寄存器CUI中写入控制命令时,置WE#为低使能,下降沿有效。一个写控制可以用CEX或者WE#之中的任何一个控制它的开始和终止。4.4 RS232通信和键盘操作模块 RS232通信和键盘操作均可从EDK 9.1i 开发软件同样可以获得MicroBlaze 控制器的IP核,然后直接将PC与Spartan-3E通过串口连接,键盘可以连接至Spartan-3E PS2口。5 软件设计5.1 MBF200初始化MBF200具有19个控制寄存器,这些控制寄存器的地址、标识、及功能简介如下表。地址标识功 能0x00RAH行地址高位0x01RAL行地址低位0x02CAL列地址低位0x03REH行末地址高位0x04REL行末地址低位0x05CEL列末地址低位0x06DTR放电时间寄存器0x07DCR放电电流寄存器0x08CTRLA控制寄存器A0x09CTRLB控制寄存器B0x0ACTRLC控制寄存器C0x0BSRA状态寄存器0x0CPGC可编程增益控制寄存器0x0DICR中断控制寄存器0x0EISR中断状态寄存器0x0FTHR门限寄存器0x10CIDH芯片标识高0x11CIDL芯片标识低0x12TST测试模式寄存器表 1MBF200的初始化主要是对这些控制寄存器赋初值,CTRLB必须在程序的最开始对它的位0和位2置“1”,以使能MBF200,CTRLB的位1也应置为“1”。使能MBF200内部震荡时钟。对PGC、DTR、DCR置初值需要调试,这三个寄存器决定了MBF200得到的指纹图像的清晰程度,图像细节。可以采用多次赋值,试验得出PGC、DTR、DCR的初值。本设计经过初步调试得出初值PGC 00000110 , DTR 00111111,DCR 00000001。对于门限寄存器THR赋初值“00101100”,ISR赋“00000011”清空中断,ICR赋 “01011001”使能自动检测。5.2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论