引言
指纹鉴定技术利用人类指纹稳定性和独特性的生理特征,将其作为人们的一种“活的身份证”,更因指纹具有的不可替代性,使通过指纹进行身份鉴定的安全性大大提高,且随着图像处理_模式识别方法的发展和指纹传感器技术的日臻成熟,指纹鉴定方法在金融、公安、门禁、户籍管理等领域都有着良好的应用前景。
本文利用TI公司的TMS320VC5409 DSP芯片为核心,设计并实现了一种基于DSP芯片的指纹鉴定系统。
系统功能描述
指纹身份鉴定系统是指确认用户声称的身份是否与其真实身份一致,只有两种可能的答案“是或否”。系统包含两个主要的功能模块:学习模块和鉴定模块。学习模块负责采集用户指纹数据,提取代表这些数据的特征,作为以后的比对模板存入数据库。鉴定模块则采集待鉴定用户指纹数据,提取特征后与数据库中的模板进行比对,决定两者是否匹配,然后做出“是或否”的判断。
FPS200指纹传感器工作原理和性能特点
Veridicom公司的FPS200指纹传感器是一种触摸式CMOS传感器件,其传感区域为1.28cm×1.50cm,256×300传感阵列,500dpi分辨率,内置有8位模数转换器,可直接输出数字化图像信号,用8位表征一个像素点,且有微处理器总线、SPI总线和USB总线三种接口模式可供选择,并可以方便的定义所需传感阵列的区域,工作电压为3.3V~5V。FPS200基于电容充放电原理,传感阵列的每一点是一个金属电极,相当于电容器的一个极,与传感区接触的手指充当电容器的另一个极,而两者之间的传感面形成电容两极之间的介电层,由于指纹的脊和谷导致了传感阵列各电容值的不同,传感器将电容值数字化之后输出。本指纹鉴定系统采用了传感器的微处理器总线模式,传感器的8位数据线直接与DSP的数据线接口。
硬件结构设计
系统核心处理器为TMS320VC5409 DSP,该款芯片具有良好的性能价格比,运算速度达100MIPS,片内有32K字节双向访问RAM,支持64K字节的数据空间,64K字节的IO空间和8M字节的程序空间,能够满足指纹鉴定系统的要求。选用了Xilinx公司的CPLDXC9572来完成整个系统的逻辑电路设计。实际系统中我们扩展了64k的SRAM,但因DSP最多支持外部扩展32K数据空间,因此SRAM的A15地址线由DSP通过CPLD中的逻辑电路来控制,从而决定选择SRAM的高地址段32K存储空间还是低地址段32K存储空间,这样就在符合DSP的外扩数据空间要求的基础上又增加了宝贵的数据存储资源。配置EEPROM以满足DSP引导装入程序的需要,系统程序联机调试成功后,将程序和有关数据信息存入EEPROM,系统上电后首先DSP执行引导装入程序将EEPROM里的程序搬移到DSP片内的RAM中高速执行,这样系统就完全脱机工作了。终端选用了液晶显示模块LCM,对感兴趣的图像或数据结果提供直观的显示,DSP将要显示的数据存入缓冲器,再由LCM读取,这样就解决了LCM和DSP读写速度相差悬殊的问题。该硬件平台已经调试运行成功。
算法介绍
指纹是比较复杂的,指纹鉴定算法最终都归结为在指纹图像上找到并比对指纹的特征点。指纹学指出,出现频率较高的指纹特征有八种,其中端点和分叉点占指纹特征的80%以上。本系统选用了这两种特征作为算法提取和比对的对象。对获得的指纹图像我们先进行预处理再进行二值化和细化,然后提取特征点数据,并去除伪特征点,将处理结果与数据库中已有的模板数据进行匹配判断。当然,模板是系统在学习功能阶段将用户的指纹数据经过上述相同的处理后保存下来的。预处理的目的是使指纹图像清晰,边缘明显,以便于提取特征进行识别,它包括平滑和锐化等。平滑处理的任务就是去除噪声,而不使图像失真;锐化处理是为了加强纹线的边界效果,突出边缘信息,以利于其后的二值化。二值化过程则需要采用一个“局部自适应的阀值”。提取特征值之前的最后一道工序是细化,是将指纹脊线的宽度降为单个像素的宽度,并保持原有的连续性。
指纹特征点的提取方法是算法中的核心。我们采用8邻域法对二值化后的指纹图像抽取特征点,这种方法将脊线上的点用“1”表示,背景用“0”表示,将待测点(i,j)的八邻域点(如图4所示)进行循环比较,若“0”,“1”变化有六次,则此待测点为分叉点,若变化两次,则为端点。实际上,因为指纹图像质量的影响和预处理产生的噪声使得上述提取的特征点中包含大量的伪特征点,这将使鉴定误识率上升,所以在匹配前要去除这些伪特征点 。指纹图像边缘的伪特征点较多,这部分特征点去除不要;若相同方向的两个特征点距离小于一定的阀值,就去除该两点;若一个端点与一个分叉点相连且间距小于一定的阀值,也去除这两点。然后对初步确定的端点和分叉点进行纹线跟踪以进一步验证特征点的可信度,对达不到可信度要求的特征点也予以去除。
指纹图像中心点的提取也是算法中的重要内容,我们以指纹最内层弧的顶点作为中心点,就是纹线上曲率最大处,若最内层弧顶点处有分叉线存在,且此分叉线走向与两旁纹线走向一致,则定义分叉点为中心点。指纹中心点确认后,也就可以容易的确定各特征点相对于中心点的方向,若为分叉点则取分叉点的三条纹线与中心点夹角的平均值作为此特征点方向;若为端点,则用端点两侧的两根纹线与中心点夹角的均值作为此特征点的方向。这样系统中我们就用特征点的类型,特征点与中心点的方向,特征点与中心点的纹线数这三个参量来表征一个特征点的特征信息。
两个指纹图像的匹配实际就是两幅图像特征点信息(三个参量)的比对,获取的指纹图像靠近中心点的是图像质量较好的,离中心点越远,特征信息准确度越差,所以比对时尽可能取中心点附近的特征点,若两幅指纹有10个以上的特征点匹配即可基本判定两幅指纹属同一个指纹。
系统首先与主机联机工作,将学习模块得到的用户指纹信息保存下来作为模板,然后系统脱机独立工作,对以后采集到的指纹做身份鉴定。
结语
本指纹鉴定系统外观小巧,工作性能稳定。算法开发前期使用C语言对算法进行功能性验证,验证成功后,使用面向TMS320VC5409 DSP的汇编语言在CCS环境中进行算法开发实现,并取得了良好的工作实时性。