引言
在信息安全领域,身份识别的需求越来越突出,生物特征作为身份识别依据越来越受到重视。声音、指纹、人脸、虹膜等生物特征已经逐渐应用于银行、国家保密机关、网上交易等领域。静脉识别是近年来新兴的一种生物识别方法,是一种具有独特优势的非接触式的识别技术,具有广泛的市场前景。
人体静脉识别具有如下的优点:
⒈很强的普遍性和唯一性[1];⒉血管位于体表内部,采用非接触性的认证方式,不会使人产生抵触情绪,采集过程十分友好;⒊很好的稳定性,不易收污染和轻伤等情况影响;⒋由于是身体内部的血管特征,很难伪造;⒌由于静脉的稳定性和捕捉影像的清晰性,设备成本低。
因此静脉识别在身份鉴别领域中越来越受青睐。在部分国家,静脉识别技术已经进入了实用领域。在我国,虽然静脉识别技术的研究已经起步,但市场上几乎没有拥有自主知识产权的实用产品,静脉识别技术必将是以后身份鉴别技术的热点,拥有更广阔的市场和发展空间。手部的静脉识别主要有:指静脉,手掌静脉和手背静脉,由于指静脉信息量过少,手掌静脉采集难度大,易受掌纹影响,故选择合适的手背静脉作为识别生物特征对象,进而来开发系统。
本套手背静脉身份验证系统(VAS)作品,较好解决了图像采集、图像处理、特征提取与匹配等方面的难题,并在基于NetFPGA的嵌入式开发板上,实现了灵活友好的人机交互界面。创新点在于:安全、鲁棒的认证方式;算法硬件化,流水线工作方式;软硬件并行协同设计;系统多功能,具有扩展性。
系统方案
实现原理
手背静脉身份认证系统的基本原理是根据血液中的血红素有吸收近红外线光的特质,使用专用的装置采集手背静脉图样。然后通过滤波、图像二值化、细化等手段处理,即可提取到数字图像特征。在认证匹配时,实时采集手背静脉图,先进行图像预处理,提取特征值,同存储注册的静脉特征值比对,采用优化的匹配算法对静脉特征进行匹配,从而对个人进行身份认证。系统采用非接触式采集,具有采集友好、难以伪造、稳定性高等优势。
系统硬件结构
嵌入式系统模块
本系统放弃了NetFPGA系统的传统配置方案,采用以Virtex II Pro上集成的硬核控制器PowerPC为核心,在Virtex II Pro上配置和开发了相应的IP核来控制相应的硬件,主要IP核包括UART、SPI、IIC串行通信IP核,MPMC存储控制器IP核,VGA显示IP核,视频输入采集IP核等。主控制硬核PowerPC与各功能IP核之间采用PLB46总线相连。同时利用Spartan II实现了相应的I/O口扩展。改造后的NetFPGA系统的结构图如图2所示。
算法的硬件实现
系统图像处理需要大量的缓存,同时需要频繁的访问和操作数据。通常的嵌入式系统存储单元不是很多,较低的系统工作频率也制约了图像处理的速度。对FPGA来说,若只用它的硬核PowerPC做软件开发效果肯定不佳,故通过将算法硬件化来达到所需要的系统性能。
1. 流水线处理
流水线处理是高速设计中的一个常用手段。如果某个设计的处理流程分为若干步骤且数据处理都是单流向的,前一个步的输出作为下一个步的输入;那么就可以采用流水线设计方法提高系统的工作效率。对于我们的图像处理算法来说,存在很多同一条指令连续处理很长一段数据的情况,此时提高吞吐率就显得非常有意义。另外,主处理芯片Virtex-II Pro的逻辑门资源相对富裕,对流水线的实现规模约束很小。图像的预处理不存在迭代式的反馈回路,使得单元结构更加规则,也非常适合通过Virtex-II Pro实现[2]。
图像预处理过程分为滤波、阈值分割、开操作、闭操作这四个步骤。开始处理时,预处理流水线每个时钟周期读入一个像素数据,流水线填满后,每个时钟周期内,预处理流水线再输出一个处理完的像素数据,各个模块间连接,无需缓存。其中开操作由一次腐蚀和一次膨胀构成,闭操作由一次腐蚀和一次膨胀实现。图3以膨胀运算为例说明了流水线处理过程。
以图像膨胀流水线模块为例说明:像素数据流进入模块后,先进入三行缓冲器,每行缓冲器输出接到一个三像素缓冲器,相当于把图像信息送入了邻域。这样就可以在每一个时钟周期都进行一次或操作,得到一个像素点的新数据,完成了膨胀算法。其他模块与之类似,在此不再赘述[3-4]。
2. 软硬协同处理[5]
图像匹配是一项运算量大且耗时的工作。采用软硬协同处理的设计策略,利用硬件模块完成大部分运算,软件负责控制和调度,系统效率大为提升。匹配算法需要进行多次迭代运算(主要针对于平移和旋转),不适合流水线处理。匹配过程中需要读取返回值进行控制(如控制模板平移的位置,对每次匹配的结果做比较等),由PowerPC软件程序完成。在硬件系统中,BRAM资源非常有限,不可能同时用很大的内存空间做点集匹配。我们采用BRAM的空间并行化方法。通过改变BRAM的地址来读取的图像信息就可达到平移图像的目的。匹配算法的软硬协同实现框架如图4所示:
系统测试方案及测试结果
匹配认证结果测试
测试方法:对该系统做多样本的综合输入测试,计算拒识率、误识率,建立样本库为50的数据库,反复测试并记录结果。
错误输入1:使用没有注册的手,用正确的方式(位移+3mm,角度+5度,上下+10度以内)如表1。
错误输入2:使用已经注册的手,用错误的方式(平移,旋转随机)如表2。
正确输入:使用已经注册的手,用正确的方式(位移+3mm,角度+5度,上下+10度以内)如表3。
出现拒识现象,主要是因为输入物体的错误或是系统使用时,忽视固定装置,随意摆放造成的。因此,当正确摆放手时,系统有极高的匹配率。
系统优化性能测试
程序中可优化的算法模块包括:高斯滤波,局部阈值二值化,形态学操作,细化去刺,特征匹配5个部分。本次测试分别把这些算法运行环境设为:PC机(Linux下的C)和 FPGA上的软硬件协同。
在程序中添加计数器函数对程序运行时间进行精确计数,对比结果如表4。由表4分析可得,在时钟频率为125MHz的FPGA上实现的性能几乎等同于2.0GHz的PC机,而效率为PC机的16倍,并有进一步优化的潜力。
小结
通过对NetFPGA平台的改造和扩展,增加了多路模拟视频输入、VGA视频输出、基于SPI总线的SD卡扩展、RS232串行总线等外部I/O接口,将NetFPGA应用于视频处理和嵌入式开发,实现了手背静脉身份认证。