引言
指纹以其唯一性、稳定性及非遗失性而成为个人身份识别的有效手段。计算机图像处理和模式识别技术的发展使指纹自动识别技术更加成熟。指纹识别技术主要是通过分析指纹的局部特征,从中抽取详尽的特征点,从而可靠地确认个人身份。目前的多数指纹识别系统是将指纹图像采集到计算机中,然后利用计算机进行识别。但该方法不但占用了主机系统的资源,同时也限制了指纹图像处理的速度。而本文介绍的基于DSP的指纹识别系统不但可脱机工作,也可通过接口进行二次开发,并可快捷地整合到其它系统中。该系统采用TI公司生产的DSP芯片TMS320VC5416(以下简称:C5416)作为核心处理器,同时选择Veridicom公司的固态指纹传感器件FPS200。
1、指纹识别原理
1.1 指纹识别系统的组成
指纹识别是用取像设备读取指纹图像,并通过识别软件提取指纹图像中的特征数据,然后根据匹配算法得到的结果来鉴别指纹所有人的身份,这种生物特征识别技术主要涉及指纹图像采集、图像预处理、特征提取、特征匹配等过程。识别时,可由计算机对预存的模板与当前获得的特征数据进行比较,以计算出它们的相似程度,从而得到两幅指纹图像的匹配结果。指纹自动识别系统(AFIS)的简单流程如图1所示。
1.2 指纹采集的操作原理
FPS200指纹传感器由256×300个电容传感阵列组成,其分辨率高达500 dpi,工作电压范围为3.3~5 V,传感器内部有8位ADC,并具有两组采样保持电路。FPS200的结构框图如图2所示。
FPS200是一种基于电容充放电原理的触摸式CMOS传感器,其外面是绝缘表面,传感器阵列的每一点都是一个金属电极,手指则充当电容器的另一极,而两者之间的传感面形成电容两极之间的介电层。由于指纹的脊和谷相对于另一极之间的距离不同,导致硅表面电容阵列的各个电容值不同,这样,电容阵列值就描述了一幅指纹图像。FPS200的每一列都有两组采样保持电路。纹采集按行实现,选定一行,对该行所有电容充电,并用采样保持电路保存电压值;然后放电,再用另一组采样保持电路保存剩余电压值。两组电压值通过内置的8位模数转换器,便可以获得具有灰度等级的指纹图像。
2、系统硬件设计
本指纹识别系统中的特征匹配和数据库模块可在主机上通过软件实现,指纹采集、图像的预处理以及特征提取部分则可由DSP+CPLD完成。系统的硬件结构如图3所示。
该指纹自动识别系统由DSP、CPLD、FPS200指纹传感器、SRAM、FLASH和USB接口等硬件组成。图3中的CPLD可作为系统中的接口和逻辑控制器件,控制着整个系统的逻辑,同时负责协调取指器、DSP和USB三部分之间的工作;FPS200指纹传感器负责现场采集用户的指纹,CPLD则可将指纹图像存储到SRAM中,并在采集完一幅图像后通知DSP数据已准备好。进行数据处理时,由DSP将SRAM中的数据分块取到其内部的128 KB RAM中,以进行指纹图像预处理及特征提取,再由DSP将指纹模板经USB接口上传给PC,然后与指纹库中的特征指纹进行匹配,最后显示匹配结果。
2.1 系统存储空间的分配
指纹图像的数据量大(FPS200采集的指纹图像为256×300象素),因此,运行指纹识别算法和存储特征模板均需大量存储空问。本系统对存储资源进行了合理的分配管理。系统外部存储器包括256 KB的FLASH和256 KB的SRAM。程序代码放在FLASH中;算法运行过程中的临时指纹图像数据则存放于片外SRAM,最后的指纹特征模板则存储于FLASHEEPROM中。
TMS320VC5416有23根地址线可以用来对程序空间进行寻址,并可直接对8 MB空间进行寻址,本系统只需512 KB的寻址空间,所以只需使用其中19根地址线。设计时可利用高位地址A19来区分FLASH和SRAM,可将DSP地址线中低15位直接与FLASH中的A0~A14相连,地址高3位通过CPLD来控制寻址。为了对存储器进行统一的逻辑控制,本系统由CPLD并完成片选、中断、复位、读写使能等功能。
2.2 CPLD电路的设计
CPLD作为接口和逻辑控制器件,其内部集成有地址发生器和与DSP的握手控制电路,可用于完成整个系统的片选、中断、通用I/O的配置等功能,同时可将指纹图像直接存储到SRAM中,并在采集完一幅图像后通知DSP数据已准备好。本设计中的CPLD选用美国Altera公司的MAX3000系列EPM3128ATC100-10。
2.3 键盘与LCD电路的设计
LCD模块采用FM12864I作为指纹图形和处理结果显示的用户界面。FM12864I是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成,可完成图形显示,也可以显示8×4个(16×16点阵)汉字。本设计为了便于调试,将DSP输出与LCD连接的控制引脚一起连人CPLD,便以灵活地调整时序。键盘上有12个按键,可用10 kΩ电阻拉高组成3×4键盘,输出的逻辑电平与CPLD的I/O相连,并通过VHDL程序来控制键值的读入。
2.4 USB接口电路
USB接口芯片选用Cypress公司EZ-USB FX2系列USB芯片CY7C68013。该芯片集USB2.0收发器、串行接口引擎SIE、增强的8051内核、I2C总线接口以及通用可编程接口GPIF于一体,该电路既能完成USB事务处理,又具备微处理器的控制功能,还可用作USB外设的主控制芯片,其最高传输速率可达480 Mbps。
3、软件设计
指纹图像预处理是指纹自动识别过程中的第一步,它的好坏直接影响着指纹自动识别系统的效果。图像预处理包括滤波、锐化、二值化、细化和去噪。由于在局部范围内,指纹图中的纹线具有方向性一致、宽度基本相等、间距基本相同等特性,所以可采用方向图滤波来对指纹图像进行处理。
锐化就是指示强化指纹纹线间的界线,以便突出边缘信息,增强脊和谷间的对比度,以利于二值化。设计时可采用拉普拉斯单一掩模算法来实现锐化。
二值化处理是指整幅图像处理成仅黑(灰度值为0)和白(灰度值为1)的过程。二值化的方法很多,关键在于阈值T的选取。采用以边缘强度为权值的灰度平均法可直接得到分割阈值,其具体实现步骤如下:
(1)将指纹图像分为w×w子块,然后根据图像的边沿强度算子公式分别计算每一子块的边缘强度;其图像的边缘强度算子可以定义为:
细化是将纹线粗细不均匀的指纹图像转化为线宽仅为1个像素的条纹中心线图像的过程。细化可以减少冗余信息,突出纹线的主要特征,以便于后续处理。采用快速细化算法对二值化图像进行处理,可得到一幅指纹图像的骨架。
特征提取与匹配主要是选择脊线端点和分歧点作为特征点,来记录每一特征点的类别、位置和方向信息,从而得到特征点集(特征模板)。可采用8邻域法来抽取二值化后的指纹图像特征点,同时提取分叉点和端点,并去除伪特征点。可以指纹最内层弧的顶点作为中心点,也就是纹线上曲率最大之处。若最内层弧顶点处有分叉线存在,且此分叉线走向与两旁纹线走向一致,则定义分叉点为中心点,并进一步确定各特征点相对于中心点的方向。本系统中就是用特征点的类型、特征点与中心点的方向、特征点与中心点的纹线数这三个参量来表征一个特征点的特征信息。两个指纹图像的匹配实际就是两幅图像特征点信息(3个参量)的比对。若两幅指纹有12个以上的特征点匹配即可基本判定两幅指纹属同一个指纹。
本文选用的是TI公司的DSP集成开发工具CCS2.0集成开发环境,调试工具选用JTAG仿真器。指纹图像的预处理和匹配程序先用软件仿真,仿真环境为Simulator;应当说明的是通常应当在算法正确的情况下,再进行硬件仿真。
4、结束语
本文给出了DSP+FPS200指纹传感器的指纹识别系统设计方案,实验证明,该系统能实现快速的指纹采集,并可利用USB接口方便地与计算机进行通信。本系统既能脱机工作,又可以通过接口进行二次开发,因而可拓宽指纹识别系统的应用范围。