随着社会越来越发达,大家都选择在网络上汲取相关知识内容,比如DIY你自己的指纹识别系统,硬件原理,软件流程,算法选择,为了更好的解答大家的问题,小编也是翻阅整理了相应内容,下面就一起来看一下吧!
本系统采用Xilinx公司Spartan 3E系列FPGA作为核心控制芯片,通过FPC1011C指纹传感器实现对指纹图象的采集,利用SPI接口传输到FPGA进行数据的存储,在内嵌的MicroBlaze处理器的管理下,使用硬件电路对指纹图象进行指纹中心点求取、图像修剪、可视化扇形、归一化、Gabor滤波、特征编码等处理,从而得到指纹特征点并存入指纹数据库作为建档模版。指纹比对时,采用同样的方法,得到比对模版,然后将比对模版与建档模版利用指纹识别算法进行比对,得出比对结果。该项目利用嵌入式软核实现系统的管理,利用硬件实现识别算法,保证了系统功能的完整性与识别的正确性。其识别速度将明显快于通常使用的基于软件实现的指纹识别系统,且系统更加简单。该识别系统可用于门禁、考勤、证件管理等很多方面,具有很广泛的应用前景。
1、 硬件框图及各模块介绍:
(相关资料图)
系统采用xilinx公司Spartan-3E 系列FPGA作为核心的控制和运算芯片,数据采集模块由FPC1011C电容式指纹传感器来完成,FPC1011C指纹传感器可以完成指纹图像的采集并用其自带的A/D转换器将指纹图像转换成数字信号,利用SPI接口传送至FPGA进行处理。当处理图像数据时,FPGA将通过其逻辑单元执行指纹中心点求取、图像修剪、可视化扇形、归一化、Gabor滤波、特征编码等一系列操作,从而获得重要的指纹图像信息。
处理之后的图像会根据当前的操作模式被存入FLASH中作为建档模板,或者与当前模板进行匹配。工作前可用键盘对工作模式进行选择,另附带有LCD显示器用来显示模式选择和识别结果。
系统框图如图1所示。
图1 系统总体设计框图
软件流程图如图2所示:
图2 系统软件流程图
2、 项目关键技术及创新性:
2.1 传感器的选择
FPC1011C电容式指纹传感器是瑞典FingerPrint Card公司推出的目前最先进的电容式指纹传感器。该款电容式指纹传感器利用了该公司拥有专利的反射式探测技术(以往的电容式指纹传感器采用的一般是直接式探测技术),使指纹传感器的表面保护层厚度可以达到普通电容式指纹传感器的100倍左右,因此使指纹传感器具有更高的对干湿手指的适用性和更长的使用寿命。
如表1所示,显示了两种主流电容式传感器各自的优缺点:
表1 指纹传感器比较
参数
MBF200固态电容传感器
FPC1011C电容式指纹传感器
采集原理
电容式,直接探测法
电容式,反射式探测法
分辨率
508DPI
363DPI
点阵数
256×300
152×200
单幅图像大小
76K
30K
采集窗口大小
24×24mm
15×12mm
抗静电指标
±10 kV
±15 kV
操作温度
-20°C to +85°C
-20°C to +85°C
使用寿命
未公布
一百万次
环境湿度
未公布
95%
干手指适应性
一般
良好
湿手指适应性
较差
良好
2.2 指纹算法选择
指纹图像有两种结构,即全局结构和局部结构。全局结构是指指纹脊线和谷线的全局模式,局部结构是指在细节点处的具体的模式。传统的指纹识别大都设法提取细节点,而这种方法有一些不足之处:第一,它只利用了指纹图像中的一小部分信息(细节点),丢失了丰富的结构信息,指纹的纹线结构不能由细节点完全表达出来;第二,细节点提取过程中,由于噪声的影响,很容易产生虚假细节点和丢失真正的细节点,在指纹的受损区域这种现象更为突出;第三,由于每个指纹的细节点数都不相同,产生出了特征向量长度不同,不利于快速匹配;第四,特征匹配时细节点的相对未知随指纹的弹性变形而改变,影响了匹配精度。为了克服基于细节点的指纹识别算法的局限性,我们这里采用了基于指纹全局和局部特征的匹配算法,这种方法对指纹的表达充分利用了指纹的纹理结构特征,不仅包含了指纹的全局特征还包含了脊和谷的局部特征。
我们所采用的算法主要有两大优点:
快速性:依据算法是否依赖中心点,指纹细节匹配算法可分为两类:基于中心点的匹配算法和非中心点匹配算法。由于大多数非中心点匹配算法都非常耗时,因此不适合大规模在线应用。故本次算法采用基于中心点的匹配算法,能够极大的提高匹配速度,但是,这类算法极度依赖于中心点的定位精度,中心点的求取成为该算法的关键,而本文的第二大优点采用了新的中心点定位方法,中心点定位精度远远高于传统的定位方法。稳定性:本次算法,根据指纹图像的特点,分别在空间与和频域增强图像,并采用了一种复合滤波器对增强后的图像进行滤波处理,把指纹图像的局部信息和全局信息有机的结合起来,是一种非常高效而准确的中心点提取算法。最重要的一点,在实际应用中,同一个指纹两次采集到的图像必然会有一定的平移和旋转,传统的方法对这两种的情况所求出的中心位置均有一定的偏差,而中心点的偏差将导致整个指纹识别的失败。另外,传统的方法,如Poincar index算法及类似的方向场的算法对于一些低质量的图像,如有裂纹和创伤的图像,干燥的皮肤取得的图像,脊线和谷线对比度小的图像效果甚差,而本次算法对于平移旋转以及低质量的图像依然可以求得准确而稳定的中心,这对于整个算法的稳定性起到了核心作用。算法流程如图3所示:
图3 指纹数据处理算法流程