基于FPGA的指纹识别系统设计.docx

上传人:b****7 文档编号:10553191 上传时间:2023-02-21 格式:DOCX 页数:19 大小:130.46KB
下载 相关 举报
基于FPGA的指纹识别系统设计.docx_第1页
第1页 / 共19页
基于FPGA的指纹识别系统设计.docx_第2页
第2页 / 共19页
基于FPGA的指纹识别系统设计.docx_第3页
第3页 / 共19页
基于FPGA的指纹识别系统设计.docx_第4页
第4页 / 共19页
基于FPGA的指纹识别系统设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

基于FPGA的指纹识别系统设计.docx

《基于FPGA的指纹识别系统设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的指纹识别系统设计.docx(19页珍藏版)》请在冰豆网上搜索。

基于FPGA的指纹识别系统设计.docx

基于FPGA的指纹识别系统设计

基于FPGA的指纹识别系统设计

第一章绪论

1.1设计背景

生物识别技术是利用人的胜物特征进行身份认证的技术,人的指纹就是生物特征之一。

此外,生物特征还包括虹膜、视网膜、声音和脸部热谱图等。

指纹识别是生物识别技术中最为成熟的,其唯一性、稳定性,一直都被视为身份鉴别的可靠手段之一。

由于最早的指纹识别技术仅仅依靠人工对比,工作效率低下、比对正确率低、对比对人员的要求高,从而使得指纹识别技术无法得到广泛应用。

但随着计算机的出现及其运算速度的迅速提高,使指纹对比鉴定的应用发生了革命性的变化。

使用计算机管理指纹数据库,极大提高了指纹对比的速度,同时由于计算机比对算法的不断改进提高,使指纹比对误识率已降到了10-6以下,不仅可以满足刑侦方面的需要,而且迅速进入了更多的应用领域。

随着光学技术和光学仪器加工工艺的进步,各种采集指纹图案进行身份认证的系统和设备中需要配备的高清晰、无畸变光学采集仪也达到了很高水平,确保可以生成高质量的指纹图像。

计算机运算速度的提高和计算机小型化的进展,使采用微机甚至单片机也可以进行指纹对比运算成为可能。

现代电子集成制造技术使得我们可以生产出相当小的指纹图像读取设备和指纹识别模块。

其成本下降得也很快,大大加快了指纹识别技术的推广速度。

同时人们对消费类产品的要求越来越趋向于小型化,并且对可携带设备的安全性要求也与日俱增。

传统的PC、MCU、或者DSP的处理平台移动性比较差,体积比较大,无法满足人们日益增长的需求。

所以,设计一套体积比较小、速度更快的嵌入式指纹识别系统是非常有意义的。

而本设计正是为了这一目的,选用具有高集成度、低功耗、短开发周期的FPGA来完成此项设计,以实现系统的ASIC为研究背景,具有很强的现实意义和广阔的市场空间。

本系统采用xilinx公司Spartan3E系列FPGA作为核心控制器件,这款器件采用90ns的先进工艺,最大容量50万门,可支持32位的RISC处理器,具有128Mbit并行Flash,足以满足设计的要求。

该项目利用嵌入式软核实现系统的管理,利用硬件实现识别算法,保证了系统功能的完整性与识别的正确性。

而识别算法我们采用美国FBI推荐的特征点匹配算法来实现指纹的识别,更保证了系统的实现。

1.2课题目标和研究内容

1.2.1课题目标:

以FPGA作为核心控制器件,实现指纹图像的采集、存储、处理和比对等,完成对指纹图像的有效识别。

1.2.2研究内容:

本系统采用xilinx公司Spartan3E系列FPGA作为核心控制芯片,通过富士通公司的MBF200指纹传感器实现对指纹图象的采集,利用SPI接口传输到FPGA进行数据的存储,利用内嵌的MicroBlaze处理器对指纹图象进行灰度滤波、二值化、二值去噪、细化等预处理,得到清晰的指纹图象,再从清晰的指纹图象中提取指纹特征点并存入指纹数据库作为建档模版。

指纹比对时,采用同样的方法,得到比对模版,然后将比对模版与建档模版利用指纹识别算法进行比对,得出比对结果。

该项目利用嵌入式软核实现系统的管理,利用硬件实现识别算法,保证了系统功能的完整性与识别的正确性。

该识别系统可用于门禁、考勤、证件管理等很多方面,具有很广泛的应用前景。

1.3研究意义

生物识别技术越来越多地被应用于身份验证领域。

指纹因其惟一性、终生不变性和较低的识别成本而成为目前使用最广泛的生物识别技术,在罪犯识别、社会保险、电子商务、信息安全等领域得到广泛的应用。

便携式的指纹识别技术对我们的生活也具有深远的意义。

例如,今后警察可在一个犯罪高发区截住一名嫌疑人,要求其提供指纹而不是身份证或汽车驾照。

此人则将其右手的第一、二或第三个手指置于一个与无线PDA相连的传感器上,可以迅速将嫌疑人与以前的犯罪记录进行对比确认。

这种识别技术对于被盗的手机用户也有好处。

手机开机时要求用户通过一个快速的认证过程,用户将其手指划过传感器,如果通过认证则授权使用手机的各项功能。

如果不是授权用户,手机便继续保持锁住。

如果连续几次认证无法通过,则手机会删除存储器中的关键信息然后关机。

在语音邮件的应用中,当拨出一个语音邮件号码后,用户只需将手指划过传感器便可令系统识别。

有了指纹识别后,便无需使用邮箱密码或个人识别号码。

在今后的汽车应用中,用户可输入家庭成员指纹样本,经鉴权才能驾驶。

注册过程十分简单:

每个授权驾驶的成员将其手指置于传感器上,并将汽车的各种参数按个人爱好进行设置,然后将这些设置存入车载的电脑存储器中。

当驾驶者进入汽车时,他/她将手指置于传感器上,启动识别过程。

不到一秒钟,电脑将检测到的指纹模板与存储的模板进行比较,并建立一个与驾驶者相符的相关设置。

指纹模板和匹配软件保存在汽车内的一个嵌入式模块中。

当指纹匹配成功时,汽车便按已编程设定的内部参数来控制后视镜、汽车座椅、无线基站以及车内空气环境。

此外,还可控制驾驶速度,如果驾驶者仅为十来岁的孩子,则将速度限制在每小时55公里。

这些功能的实现具有非常多的用处。

可见,指纹识别技术的应用可以使我们的生活更加方便快捷,更加安全。

同时本项目重点研究基于FPGA的指纹识别系统,利用FPGA高集成度化,低功耗,短开发周期等优点,实现系统的ASIC,具有更加深远的意义和广阔的市场商机。

第二章系统总体设计

2.1硬件框图及各模块介绍:

系统采用xilinx公司Spartan-3E系列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.3V~5V的宽电压范围,能自动检测是否有指纹到达传感器,并实现在线采集,它的最大优点是在保证指纹图像高分辨率(500dpi)的同时大大减少了传感器的尺寸。

利用此传感器可以完全满足系统的设计任务。

2.2.2指纹图像的预处理

图像预处理的主要步骤包括:

灰度值归一化、图像分割、滤波、图像增强、二值化、细化等。

预处理的目的是改善输入指纹图像的质量,以提高特征提取的准确性。

原始指纹图像一般存在噪声污染、脊线断裂或脊线模糊等问题,需要进行图像增强(使用滤波技术)以改善质量。

由于指纹特征仅包含在脊线的形状结构中,所以,通过归一化、二值化和细化把深浅不一、宽度不同的脊线变成灰度相同、单像素宽的细脊线,以便于特征提取。

(1)图像归一化

归一化处理是对原始指纹灰度图像上每一象素点的一种操作,人为改变它的灰度值,消除指纹录入传感器表面的残留噪音以及手指按压力差异对指纹图像的影响,把图像分为

的子块,对于每一子块求其灰度均值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算法满足收敛性、连续性、拓扑性和保持性,有较好的细化效果。

但该算法在三叉点处不能完全细化,且细化后的图像不够平滑,毛刺较多,扭曲较大。

针对其算法的不足进行改进,重新构造模板,采用统一

模板,左上角

域为消除模板区域。

0

0

0

X

1

X

1

1

1

0

X

1

0

1

1

0

X

1

 

1

1

1

X

1

X

0

0

0

1

X

0

1

1

0

1

X

0

 

X

0

0

1

1

0

X

1

X

0

0

X

0

1

1

X

1

X

 

X

1

X

0

1

1

0

0

X

X

1

X

1

1

0

X

0

0

 

X

X

0

0

0

1

1

0

X

X

1

X

X

X

X

X

图3:

指纹图像消除模板

X

1

X

0

0

1

1

0

X

1

X

0

X

X

X

X

X

X

1

X

0

1

1

0

X

X

0

0

X

X

X

X

X

0

X

X

1

1

1

X

X

1

X

X

0

0

0

X

 

X

0

X

X

X

1

X

X

1

1

0

X

X

0

0

X

X

0

X

X

X

1

X

X

0

1

1

X

0

0

X

X

 

图4指纹图像细化保留模块

保留模板和消除模板如图3、4所示,1表示前景区,0表示背景区。

细化时,对每个像素抽取其临域所需的像素点。

先依次与消除模板比较,如果与任意一个都不匹配则保留,否则删除。

整个改进算法克服了原算法的不足,有效清除了毛刺,对指纹图像能进行充分细化。

2.2.3指纹图像特征提取

本设计结合细化图像的特点,提出了一种基于非彻底细化图像的指纹细节提取算法。

在不对纹线做任何修复处理的情况下,在细化指纹图像上直接提取原始细节特征点集,得到初步的特征提取结果;然后分析图像中存在的各类噪声及其特点,结合指纹细节特征点固有的分布规律和局部纹线方向信息,针对不同的噪声采用针对性算法,并利用伪特征点在数学形态学上的分布规律,将各类噪声引起的伪特征点分别予以删除,而将最终保留的特征点集作为真正特征点的集合。

改进的细节特征提取算法的具体思想如下:

(1)原始细节特征点集的提取

首先在细化指纹图像上直接进行细节特征提取,得到原始的细节特征点集P1和P2,其中P1为纹线端点集合,P2为分叉点集合。

这些点集中可能含有大量的伪特征点需进一步处理。

(2)短线与纹线间断的删除

对细节特征点集P中任意两个纹线端点i1∈P1,i2∈P1,如果它们之间的距离(像素点数)小于D1,且Δθ≈0,则认为该两点为伪特征点,予以删除。

(3)小孔的删除

对细节特征点集P中任意两个纹线分叉点j1∈P1,j2∈P2,如果它们之间的距离(像素点数)小于D2,则认为该两点为伪特征点,予以删除。

(4)小毛刺的删除

对细节特征点集P中任一纹线端点i∈P1和任一分叉点j∈P2,如果它们之间的距离小于D3,且有纹线连接该两点,则认为该两点为伪特征点,予以删除。

(5)较长毛刺的删除

对细节特征点集P中任一纹线端点i∈P1和任一分叉点j∈P2,如果它们之间的距离小于D4,且有纹线连接该两点,并且Δθ<π/4,则认为该两点为伪特征点,予以删除。

(6)纹线叉连的删除

对细节特征点集P中任意两个纹线分叉点j1∈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提出的细节点坐标模式来做细节匹配。

它利用脊末梢和脊线分叉点来鉴定指纹。

通过将细节点表示为点模式,一个自动指纹认证问题可以转化为一个点模式匹配问题。

如SanjayRanandeandAzrielRosenfeld[3]利用松弛法进行点匹配,Shih2hsuChang[4]等人利用二维聚类进行匹配。

本设计采用了一种矢量三角法来确定参照点的点模式匹配算法。

该算法利用矢量三角形法快速确定指纹的参考点和旋转参数,然后将直角坐标系中的细节点转换到极坐标系中进行点匹配,避免了在一般的点模式匹配算法中选取参照点进行的逐点反复搜索而消耗大量时间的弊病,所用的方法不依赖指纹图像的中心区域,有较强的抵抗噪声与非线性变形的能力。

两幅指纹图的匹配,主要是解决旋转、平移和形变等问题。

在对两幅图像进行匹配之前就先估计它们之间的形变参数,并以此对这两幅图像进行校准。

正如AnilJain[7]等指出,在极坐标中进行细节匹配有很多的优点:

指纹图像的非线性形变往往表现为放射状,即这种形变呈非线性地向外扩张。

因而,使用极坐标比直角坐标能更好地描述这种非线性形变。

在极坐标中,我们不需要考虑输入图像与模板图像参照点之间的平移,因为输入图像与模板图像间的平移是固定的,也就是说对应点的坐标在参照点转换为极坐标时,平移就被抵消掉了。

由于两幅指纹图像是用同一个仪器采集的,可以假定它们间的尺度变化参数为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)

(1)

(abs(A.nBeta1-B.nBeta1)

(2)

(A.nType1==B.nType1andA.nType2==B.nType2andA.nType3==B.nType3)(3)

(Abs(A.nCrossNum1-B.nCrossNum1)+abs(A.nCrossNum2-B.nCrossNum2)+abs(A.nCrossNum3-B.nCrossNum3)

则认为两个矢量三角形全等,且点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.1传感器介绍

本设计中采用的MBF200是富士通公司推出的一款先进的固态指纹传感器芯片,它除可自动检测指纹外,还带有SPI,MCU,USB等多种接口模式。

MBF200具有高性能、低功耗和低成本等特点,属于电容性传感器。

其电容性传感器阵列由二维金属电极组成,所有金属电极充当一个电容板,接触的手指充当第二个电容板,器件表面的钝化层作为两板的绝缘层。

当手指触摸传感器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1