摘要:本文以指纹识别认证系统的ASIC化为应用背景,提出了一种基于FPGA的指纹识别系统。重点研究了指纹识别系统的硬件组成和指纹图像预处理的软件实现。经验证本系统的设计完全能满足系统的需要。
关键词:FPGA;指纹识别;指纹传感器;指纹图像预处理
1.引言
生物识别技术是利用人的生物特征进行身份认证的技术, 人的指纹就是生物特征之一。此外, 生物特征还包括虹膜、视网膜、声音和脸部热谱图等。指纹识别是生物识别技术中最为成熟的, 其唯一性、稳定性, 一直都被视为身份鉴别的可靠手段之一。随着计算机性能的提高和应用的增加,人们开始使用计算机来处理指纹,自动指纹识别系统(AFIS)在法律实施方面的研究与应用由此展开。而近几年随着电子商务的发展和消费类电子的普及,越来越多的领域需要指纹识别系统。指纹识别系统已经成功应用于考勤、门禁、安检等领域[1]。
同时人们对消费类产品的要求越来越趋向于小型化,并且对可携带设备的安全性要求也与日俱增。传统的PC、MCU、或者DSP的处理平台移动性比较差,体积比较大,无法满足人们日益增长的需求。所以,设计一套体积比较小、速度更快的嵌入式指纹识别系统是非常有意义的。而本设计正是为了这一目的,选用具有高集成度、低功耗、短开发周期的FPGA来完成此项设计,以实现系统的ASIC为研究背景,具有很强的现实意义和广阔的市场空间。
2.基本原理
自动指纹识别系统AFIS(Autornatic Fingerprint Identification System)一般包括指纹的采集、指纹图像预处理和特征提取、指纹图像的特征匹配。图1是自动指纹识别系统(AFIS)的简单流程。
图1 自动指纹识别系统的简单流程
在指纹登陆过程中,每一枚指纹从指纹传感器录人若干次(默认为3次),算法模块对每次录人的图像进行处理,再对处理后的图像进行特征提取,之后对该若十次特征数据进行处理,得到最能体现该特征的一组数据,作为该枚指纹的模板(即指纹匹配的依据) [2]。最终将该模板存储于Flash中并输出显示是否保存成功。
在指纹比对时,指纹图像从指纹传感器录人,然后提取该图像的特征数据,用这些特征数据与指纹登录时生成的模板进行比较,计算它们的相似度,产生pass或者fail两种结果并输出显示。
3.硬件设计
系统采用xilinx公司Spartan-3E系列FPGA作为核心的控制和运算芯片,数据采集模块由富士通公司的MBF200电容式指纹传感器来完成[3],MBF200指纹传感器可以完成指纹图像的采集并用其自带的A/D转换器将指纹图像转换成数字信号,利用SPI接口传送至FPGA进行存储。由FPGA处理采集来的数据,由于FPGA内部存储空间太小,无法存储一张完整的指纹图像,所以将指纹数据暂时存储在SDRAM中。当处理图像数据时,FPGA通过读取SDRAM的指纹数据,并在其逻辑单元中进行滤波、灰度归一化、二值化、细化和特征值提取等操作,从而获得重要的指纹图像信息。
系统操作时首先利用键盘选择指纹存储模式,将获得的指纹图像信息存储到FLASH中作为指纹数据库,然后切换到指纹识别模式,再利用上述方法获得指纹图像信息。通过FPGA调用指纹数据库中的数据,寻找与之匹配的指纹信息,最后将比对结果在LCD中显示。本系统还可利用RS232与计算机进行通讯,可以方便扩展,使得系统可以应用到更多的领域。
系统硬件框图如下图2。
图2 系统硬件框图
3.1 指纹采集模块
本设计中采用的是富士通的MBF200指纹传感器,MBF200硬件框图如图3所示,采用SPI模式,所以MBF200与FPGA只通过MISO,MOSI,/S/C/S,SCLK四个端口相连接[4]。
图3 MBF200硬件连接电路图
3.2 指纹数据处理模块
由于指纹数据处理涉及很多算法,运算量大,所以本系统在Spartan-3E开发板上嵌入一个Microblaze软核来进行数据处理,首先将SPI口传输进来的数据送人SDRAM进行存储,开发板上带有32M的SDRAM,完全可以存储很多张指纹数据。在创建指纹数据库时,系统从SDRAM中取出数据,放入Microblaze进行处理,再将处理后的指纹数据信息存入FLASH组建指纹数据库。在比对模式时,利用Microblaze进行数据处理后的数据扔存入SDRAM,然后从FLASH和SDRAM分别提取指纹图像特征数据进行比对,得出比对结果。