文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.10.013
中文引用格式: 徐智勇,唐根偉,姜新泉,等. 硬件友好型合成指紋鑒別算法的研究[J].電子技術(shù)應(yīng)用,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 引言
近年來,隨著生物識(shí)別技術(shù)的發(fā)展,自動(dòng)指紋識(shí)別系統(tǒng)(AFIS)被越來越廣泛地應(yīng)用于身份識(shí)別領(lǐng)域[1]。然而一些企圖不良的人開始攻擊自動(dòng)指紋識(shí)別系統(tǒng)的漏洞,利用偽造指紋替代真實(shí)指紋,從而侵入與指紋信息相關(guān)的各應(yīng)用系統(tǒng),給個(gè)人隱私與安全帶來了巨大的威脅。
常見的偽造指紋主要有3種:改造指紋、非活性指紋和合成指紋,如圖1所示。針對(duì)前兩種偽造指紋的鑒別,眾多科研機(jī)構(gòu)及學(xué)者都已做了非常深入的研究,成果豐富。例如,DERAKHSHANI R[2]通過檢測(cè)指紋汗?jié)n圖來鑒別非活性指紋,ANTONELLI A[3]通過對(duì)比非活性指紋和真實(shí)指紋的扭曲度來完成鑒別。
合成指紋則不同于以上兩種偽造指紋,它是通過合成算法在計(jì)算機(jī)上生成世上完全不存在的指紋圖像。目前,關(guān)于合成指紋的工作主要集中在合成方法的研究,以及使用合成指紋圖像作為指紋匹配數(shù)據(jù)庫(kù)。如CAPPELLI R[4]在2000年提出了五步合成法,隨后又提出添加干、濕和噪聲的方法來使得指紋圖像更加逼真,這種算法已經(jīng)被用在2004年的國(guó)際指紋識(shí)別競(jìng)賽中(FVC2004)。此外,胡瑾和田捷[5]從方向場(chǎng)、密度圖和脊線紋理3個(gè)方面來優(yōu)化指紋圖像,這種算法生成的指紋圖像已被用在中國(guó)生物特征識(shí)別競(jìng)賽中(BVC)。由于合成指紋和真實(shí)指紋十分相似,也可作為欺騙性指紋來攻擊AFIS,從而帶來巨大的安全隱患。但遺憾的是,目前還少有對(duì)合成指紋展開鑒別的研究,更未見相關(guān)的硬件系統(tǒng)實(shí)現(xiàn)的報(bào)道。
針對(duì)缺少合成指紋鑒別研究的現(xiàn)狀,本文提出了一種硬件友好型算法。通過對(duì)真實(shí)和合成指紋圖像的灰度均值、方差因子以及Harris角點(diǎn)數(shù)目因子的提取構(gòu)建特征向量,成功鑒別出合成指紋。以硬件友好的思路進(jìn)行算法構(gòu)架,充分發(fā)揮電路執(zhí)行速度快的優(yōu)勢(shì)。經(jīng)Qsys平臺(tái)上的驗(yàn)證,可在18 ms內(nèi)完成對(duì)一幅指紋圖像的鑒別,相比傳統(tǒng)軟件方式極大縮短了鑒別時(shí)間,鑒別準(zhǔn)確率可達(dá)97%以上。
1 合成指紋鑒別算法
選取指紋圖像的灰度均值、方差因子以及Harris角點(diǎn)數(shù)目因子來構(gòu)建特征向量,利用基于支持向量機(jī)(SVM)的智能計(jì)算模型可以很好地鑒別真實(shí)指紋和合成指紋,設(shè)計(jì)流程如圖2所示。真實(shí)指紋來自FVC2004 DB2,合成指紋從FVC2004 DB4和BVC中隨機(jī)選取。
1.1 灰度均值和方差因子
合成指紋的背景來源于Karhunen-Loeve變換的統(tǒng)計(jì)模型[6],與真實(shí)指紋圖像的背景存在一定差異。因此,可以考慮選擇指紋圖像灰度的均值Qgrayavg和方差Qgrayvar作為特征因子進(jìn)行辨別:
式中,f(i,j)表示指紋圖像點(diǎn)(i,j)的灰度值,H和L分別表示指紋圖像的長(zhǎng)和寬。隨機(jī)選取30幅真實(shí)指紋和合成指紋進(jìn)行灰度均值和方差的對(duì)比,結(jié)果如圖3所示。
可以看出,真實(shí)指紋圖像的灰度均值明顯大于合成指紋。在方差方面,真實(shí)指紋的灰度方差大于DB4指紋,但是明顯小于BVC指紋。因此可以把指紋圖像灰度均值和方差作為特征因子。
1.2 Harris角點(diǎn)數(shù)目因子
Harris算子對(duì)紋理信息豐富的圖像(例如指紋圖像)可以提取出大量的特征點(diǎn)[7]。由于真實(shí)指紋圖像比較平滑,而合成指紋是人為的添加白色氣孔作為噪聲,容易產(chǎn)生更多的角點(diǎn)。因此,推測(cè)Harris角點(diǎn)數(shù)目可以作為區(qū)分真實(shí)指紋和合成指紋的一個(gè)因子。將指紋圖像分割成W×W(W=8)的小塊,按如下公式計(jì)算角點(diǎn)量R:
式中,Gx(i,j)和Gy(i,j)分別代表(i,j)的水平梯度值和垂直梯度值。Ix′、Iy′和Ix′y′是對(duì)Ix、Iy和Ixy進(jìn)行高斯平滑濾波得出,目的是降低噪聲干擾。如果計(jì)算所得的R滿足以下條件:R是鄰域內(nèi)局部極大值及R大于設(shè)定的閾值,則認(rèn)為該點(diǎn)是Harris角點(diǎn)。真實(shí)指紋和合成指紋Harris角點(diǎn)的對(duì)比結(jié)果如圖4所示??梢钥闯龊铣芍讣y的Harris角點(diǎn)數(shù)目明顯多于真實(shí)指紋,與推測(cè)吻合,因此可以把它當(dāng)作特征因子。
1.3 支持向量機(jī)學(xué)習(xí)鑒別
支持向量機(jī)(SVM)是AT&T Bell實(shí)驗(yàn)室的V.Vapnik等人提出的一種針對(duì)分類和回歸問題的新型機(jī)器學(xué)習(xí)方法,具體鑒別流程如圖5所示。常用的支持向量機(jī)核函數(shù)有線性核、多項(xiàng)式核、徑向基核和Sigmoid核。考慮到硬件友好性,本文采用多項(xiàng)式核函數(shù)。
2 硬件友好型設(shè)計(jì)
2.1 系統(tǒng)框架與設(shè)計(jì)流程
根據(jù)合成指紋鑒別算法,將每個(gè)特征因子提取算法變換成硬件模塊,構(gòu)建完整的硬件系統(tǒng)。硬件驗(yàn)證平臺(tái)選擇Altera的Qsys,系統(tǒng)框架如圖6所示。
整個(gè)硬件系統(tǒng)設(shè)計(jì)流程為:首先在計(jì)算機(jī)的DSP Builder平臺(tái)完成硬件系統(tǒng)電路的設(shè)計(jì)、訓(xùn)練、仿真和綜合,生成VHDL代碼和TCL腳本,利用開發(fā)工具Quartus II在Qsys平臺(tái)完成算法的驗(yàn)證,最后通過USB-Blaster下載到FPGA開發(fā)板。
2.2 灰度均值和方差計(jì)算模塊
指紋圖像灰度均值和方差的計(jì)算采用建立灰度直方圖的方法。使用一個(gè)雙口RAM,直方圖橫坐標(biāo)表示RAM地址,即指紋圖像灰度值0~255,縱坐標(biāo)表示RAM存儲(chǔ)的數(shù)據(jù),即該灰度值下像素點(diǎn)的個(gè)數(shù)。直方圖建立完成后計(jì)算指紋圖像均值與方差,如圖7所示。其中:PN表示圖像中像素點(diǎn)的總數(shù),g表示直方圖的橫坐標(biāo)值,N表示對(duì)應(yīng)橫坐標(biāo)下的縱坐標(biāo)值。gmin=0,gmax=255,當(dāng)g達(dá)到gmax時(shí),求和并利用除法器計(jì)算指紋圖像均值和方差。
2.3 Harris角數(shù)目計(jì)算模塊
Harris角點(diǎn)計(jì)算時(shí)需要使用Prewitt算子分別計(jì)算水平方向和垂直方向的梯度值。以水平方向?yàn)槔齺碚f明,水平方向的Prewittx算子如式(5):
現(xiàn)使用Prewitt算子對(duì)每一像素點(diǎn)做卷積運(yùn)算,這里將算子變成3×3的窗口,將某一點(diǎn)的卷積變成窗口中系數(shù)與該點(diǎn)鄰域內(nèi)像素點(diǎn)乘積的和,用流水線的方式來實(shí)現(xiàn)窗口的平移。
可以推算出,水平方向和垂直方向共需要18個(gè)乘法器模塊,即18個(gè)dsp-9bit。同時(shí)高斯濾波模塊需要4個(gè)雙精度乘法器,而一個(gè)雙精度乘法模塊就需要18個(gè)dsp-9bit、345個(gè)lut和519個(gè)reg。此方式邏輯資源占用很大,且乘法器的較多運(yùn)用將會(huì)導(dǎo)致運(yùn)算效率的低下。為硬件友好性的考慮,根據(jù)Prewitt算子將梯度計(jì)算優(yōu)化,如圖8所示。
此方式中,在梯度計(jì)算模塊中只使用了簡(jiǎn)單的邏輯運(yùn)算和加法運(yùn)算,節(jié)約了大量的硬件資源,并且提高了系統(tǒng)的運(yùn)行效率。
2.4 SVM判別公式模塊
本文中使用的支持向量機(jī)是臺(tái)灣大學(xué)林智仁提出的LibSVM。在軟件平臺(tái)將特征因子進(jìn)行訓(xùn)練后得到一個(gè)訓(xùn)練模型,利用其中的參數(shù)來實(shí)現(xiàn)SVM判別公式硬件化:
式中,xi表示待判別的樣本,yi為對(duì)應(yīng)樣本的標(biāo)簽,x表示支持向量,ai表示拉格朗日系數(shù),b是偏置。經(jīng)Avalon總線提供到硬件模塊中,根據(jù)f(xi)的正負(fù)來判斷指紋樣本是真實(shí)指紋還是合成指紋。
3 驗(yàn)證和評(píng)價(jià)
搭建完成的硬件系統(tǒng)下載到DE2-35開發(fā)板,其資源占用情況如表1所示。
可以看出,本文提出的算法對(duì)硬件資源的占用較小,在常見的FPGA芯片上可以正常運(yùn)行。
此外,對(duì)本算法的鑒別性能進(jìn)行驗(yàn)證。采用如下的指紋數(shù)據(jù)庫(kù)進(jìn)行預(yù)測(cè):600幅FVC2004 DB2的真實(shí)指紋圖像、300幅FVC2004 DB和300幅BVC的合成指紋圖像。從軟件和硬件分別對(duì)比本鑒別算法的性能,結(jié)果如表2所示。
可以看出,在鑒別準(zhǔn)確率上硬件算法要略低于軟件算法,這是由于硬件模塊對(duì)浮點(diǎn)數(shù)的計(jì)算存在“四舍五入”的近似,所以提取的特征因子數(shù)值有偏差,但97.5%的準(zhǔn)確率在使用中仍然是可接受的;在鑒別時(shí)間上,硬件鑒別要明顯快于軟件鑒別,符合實(shí)際使用中的實(shí)時(shí)性要求??紤]指紋圖像的預(yù)處理時(shí)間,即特征因子提取時(shí)間,本系統(tǒng)在50 MHz的時(shí)鐘頻率下僅需18 ms就可以完成鑒別過程。
4 結(jié)論
本文提出了一種硬件友好型的合成指紋鑒別算法。通過對(duì)算法各模塊的硬件友好型設(shè)計(jì),極大減少了硬件電路的資源占用,提升了算法的處理能力。實(shí)驗(yàn)結(jié)果表明,本算法在具備較短鑒別時(shí)間的同時(shí)有著97%以上的鑒別準(zhǔn)確率,非常適合于嵌入式實(shí)時(shí)處理。本工作彌補(bǔ)了目前AFIS在合成指紋鑒別方面的缺陷,提高了指紋生物識(shí)別的可靠性。
參考文獻(xiàn)
[1] 肖芳,羅軍,王安文,等.一種新型SoPc自動(dòng)指紋識(shí)別系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,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] 胡瑾,田捷,陳新建,等.一種指紋合成的方法及其實(shí)現(xiàn)[J].軟件學(xué)報(bào),2007,18(3):517-526.
[6] 徐之海,馮華君,李奇,等.基于Karhunen—Loeve變換的人臉識(shí)別研究[J].光學(xué)工程,2001,28(6):48-51.
[7] HARRIS C,STEPHENS M.A combined corner and edge detector[C].Alvey Vision Conference,1988,15:50.