文献标识码: A
DOI:10.16157/j.issn.0258-7998.2016.10.013
中文引用格式: 徐智勇,唐根伟,姜新泉,等. 硬件友好型合成指纹鉴别算法的研究[J].电子技术应用,2016,42(10):54-57.
英文引用格式: Xu Zhiyong,Tang Genwei,Jiang Xinquan,et al. Research of a hardware-friendly synthetic fingerprint discrimination algorithm[J].Application of Electronic Technique,2016,42(10):54-57.
0 引言
近年来,随着生物识别技术的发展,自动指纹识别系统(AFIS)被越来越广泛地应用于身份识别领域[1]。然而一些企图不良的人开始攻击自动指纹识别系统的漏洞,利用伪造指纹替代真实指纹,从而侵入与指纹信息相关的各应用系统,给个人隐私与安全带来了巨大的威胁。
常见的伪造指纹主要有3种:改造指纹、非活性指纹和合成指纹,如图1所示。针对前两种伪造指纹的鉴别,众多科研机构及学者都已做了非常深入的研究,成果丰富。例如,DERAKHSHANI R[2]通过检测指纹汗渍图来鉴别非活性指纹,ANTONELLI A[3]通过对比非活性指纹和真实指纹的扭曲度来完成鉴别。
合成指纹则不同于以上两种伪造指纹,它是通过合成算法在计算机上生成世上完全不存在的指纹图像。目前,关于合成指纹的工作主要集中在合成方法的研究,以及使用合成指纹图像作为指纹匹配数据库。如CAPPELLI R[4]在2000年提出了五步合成法,随后又提出添加干、湿和噪声的方法来使得指纹图像更加逼真,这种算法已经被用在2004年的国际指纹识别竞赛中(FVC2004)。此外,胡瑾和田捷[5]从方向场、密度图和脊线纹理3个方面来优化指纹图像,这种算法生成的指纹图像已被用在中国生物特征识别竞赛中(BVC)。由于合成指纹和真实指纹十分相似,也可作为欺骗性指纹来攻击AFIS,从而带来巨大的安全隐患。但遗憾的是,目前还少有对合成指纹展开鉴别的研究,更未见相关的硬件系统实现的报道。
针对缺少合成指纹鉴别研究的现状,本文提出了一种硬件友好型算法。通过对真实和合成指纹图像的灰度均值、方差因子以及Harris角点数目因子的提取构建特征向量,成功鉴别出合成指纹。以硬件友好的思路进行算法构架,充分发挥电路执行速度快的优势。经Qsys平台上的验证,可在18 ms内完成对一幅指纹图像的鉴别,相比传统软件方式极大缩短了鉴别时间,鉴别准确率可达97%以上。
1 合成指纹鉴别算法
选取指纹图像的灰度均值、方差因子以及Harris角点数目因子来构建特征向量,利用基于支持向量机(SVM)的智能计算模型可以很好地鉴别真实指纹和合成指纹,设计流程如图2所示。真实指纹来自FVC2004 DB2,合成指纹从FVC2004 DB4和BVC中随机选取。
1.1 灰度均值和方差因子
合成指纹的背景来源于Karhunen-Loeve变换的统计模型[6],与真实指纹图像的背景存在一定差异。因此,可以考虑选择指纹图像灰度的均值Qgrayavg和方差Qgrayvar作为特征因子进行辨别:
式中,f(i,j)表示指纹图像点(i,j)的灰度值,H和L分别表示指纹图像的长和宽。随机选取30幅真实指纹和合成指纹进行灰度均值和方差的对比,结果如图3所示。
可以看出,真实指纹图像的灰度均值明显大于合成指纹。在方差方面,真实指纹的灰度方差大于DB4指纹,但是明显小于BVC指纹。因此可以把指纹图像灰度均值和方差作为特征因子。
1.2 Harris角点数目因子
Harris算子对纹理信息丰富的图像(例如指纹图像)可以提取出大量的特征点[7]。由于真实指纹图像比较平滑,而合成指纹是人为的添加白色气孔作为噪声,容易产生更多的角点。因此,推测Harris角点数目可以作为区分真实指纹和合成指纹的一个因子。将指纹图像分割成W×W(W=8)的小块,按如下公式计算角点量R:
式中,Gx(i,j)和Gy(i,j)分别代表(i,j)的水平梯度值和垂直梯度值。Ix′、Iy′和Ix′y′是对Ix、Iy和Ixy进行高斯平滑滤波得出,目的是降低噪声干扰。如果计算所得的R满足以下条件:R是邻域内局部极大值及R大于设定的阈值,则认为该点是Harris角点。真实指纹和合成指纹Harris角点的对比结果如图4所示。可以看出合成指纹的Harris角点数目明显多于真实指纹,与推测吻合,因此可以把它当作特征因子。
1.3 支持向量机学习鉴别
支持向量机(SVM)是AT&T Bell实验室的V.Vapnik等人提出的一种针对分类和回归问题的新型机器学习方法,具体鉴别流程如图5所示。常用的支持向量机核函数有线性核、多项式核、径向基核和Sigmoid核。考虑到硬件友好性,本文采用多项式核函数。
2 硬件友好型设计
2.1 系统框架与设计流程
根据合成指纹鉴别算法,将每个特征因子提取算法变换成硬件模块,构建完整的硬件系统。硬件验证平台选择Altera的Qsys,系统框架如图6所示。
整个硬件系统设计流程为:首先在计算机的DSP Builder平台完成硬件系统电路的设计、训练、仿真和综合,生成VHDL代码和TCL脚本,利用开发工具Quartus II在Qsys平台完成算法的验证,最后通过USB-Blaster下载到FPGA开发板。
2.2 灰度均值和方差计算模块
指纹图像灰度均值和方差的计算采用建立灰度直方图的方法。使用一个双口RAM,直方图横坐标表示RAM地址,即指纹图像灰度值0~255,纵坐标表示RAM存储的数据,即该灰度值下像素点的个数。直方图建立完成后计算指纹图像均值与方差,如图7所示。其中:PN表示图像中像素点的总数,g表示直方图的横坐标值,N表示对应横坐标下的纵坐标值。gmin=0,gmax=255,当g达到gmax时,求和并利用除法器计算指纹图像均值和方差。
2.3 Harris角数目计算模块
Harris角点计算时需要使用Prewitt算子分别计算水平方向和垂直方向的梯度值。以水平方向为例来说明,水平方向的Prewittx算子如式(5):
现使用Prewitt算子对每一像素点做卷积运算,这里将算子变成3×3的窗口,将某一点的卷积变成窗口中系数与该点邻域内像素点乘积的和,用流水线的方式来实现窗口的平移。
可以推算出,水平方向和垂直方向共需要18个乘法器模块,即18个dsp-9bit。同时高斯滤波模块需要4个双精度乘法器,而一个双精度乘法模块就需要18个dsp-9bit、345个lut和519个reg。此方式逻辑资源占用很大,且乘法器的较多运用将会导致运算效率的低下。为硬件友好性的考虑,根据Prewitt算子将梯度计算优化,如图8所示。
此方式中,在梯度计算模块中只使用了简单的逻辑运算和加法运算,节约了大量的硬件资源,并且提高了系统的运行效率。
2.4 SVM判别公式模块
本文中使用的支持向量机是台湾大学林智仁提出的LibSVM。在软件平台将特征因子进行训练后得到一个训练模型,利用其中的参数来实现SVM判别公式硬件化:
式中,xi表示待判别的样本,yi为对应样本的标签,x表示支持向量,ai表示拉格朗日系数,b是偏置。经Avalon总线提供到硬件模块中,根据f(xi)的正负来判断指纹样本是真实指纹还是合成指纹。
3 验证和评价
搭建完成的硬件系统下载到DE2-35开发板,其资源占用情况如表1所示。
可以看出,本文提出的算法对硬件资源的占用较小,在常见的FPGA芯片上可以正常运行。
此外,对本算法的鉴别性能进行验证。采用如下的指纹数据库进行预测:600幅FVC2004 DB2的真实指纹图像、300幅FVC2004 DB和300幅BVC的合成指纹图像。从软件和硬件分别对比本鉴别算法的性能,结果如表2所示。
可以看出,在鉴别准确率上硬件算法要略低于软件算法,这是由于硬件模块对浮点数的计算存在“四舍五入”的近似,所以提取的特征因子数值有偏差,但97.5%的准确率在使用中仍然是可接受的;在鉴别时间上,硬件鉴别要明显快于软件鉴别,符合实际使用中的实时性要求。考虑指纹图像的预处理时间,即特征因子提取时间,本系统在50 MHz的时钟频率下仅需18 ms就可以完成鉴别过程。
4 结论
本文提出了一种硬件友好型的合成指纹鉴别算法。通过对算法各模块的硬件友好型设计,极大减少了硬件电路的资源占用,提升了算法的处理能力。实验结果表明,本算法在具备较短鉴别时间的同时有着97%以上的鉴别准确率,非常适合于嵌入式实时处理。本工作弥补了目前AFIS在合成指纹鉴别方面的缺陷,提高了指纹生物识别的可靠性。
参考文献
[1] 肖芳,罗军,王安文,等.一种新型SoPc自动指纹识别系统设计[J].电子技术应用,2010,36(8):14-16.
[2] DERAKHSHANI R,SCHUCKERS SAC,Hornak LA,et al.Determination of vitality from a non-invasive biomedical measurement for use in fingerprint scanners[J].Pattern Recognition,2003,36(2):383-396.
[3] ANTONELLI A,CAPPELLI R,MAIO D,et al.Fake finger detection by skin distortion analysis[J].Information Forensics and Security,IEEE Transactions on,2006,1(3):360-373.
[4] CAPPELLI R,MAIO D,MALTONI D.Synthetic fingerprint-database generation[C].Pattern Recognition,2002.Proceedings 16th International Conference on.IEEE,2002:744-747.
[5] 胡瑾,田捷,陈新建,等.一种指纹合成的方法及其实现[J].软件学报,2007,18(3):517-526.
[6] 徐之海,冯华君,李奇,等.基于Karhunen—Loeve变换的人脸识别研究[J].光学工程,2001,28(6):48-51.
[7] HARRIS C,STEPHENS M.A combined corner and edge detector[C].Alvey Vision Conference,1988,15:50.