引言
在信息安全領(lǐng)域,身份識別的需求越來越突出,生物特征作為身份識別依據(jù)越來越受到重視。聲音、指紋、人臉、虹膜等生物特征已經(jīng)逐漸應(yīng)用于銀行、國家保密機關(guān)、網(wǎng)上交易等領(lǐng)域。靜脈識別是近年來新興的一種生物識別方法,是一種具有獨特優(yōu)勢的非接觸式的識別技術(shù),具有廣泛的市場前景。
人體靜脈識別具有如下的優(yōu)點:
⒈很強的普遍性和唯一性[1];⒉血管位于體表內(nèi)部,采用非接觸性的認證方式,不會使人產(chǎn)生抵觸情緒,采集過程十分友好;⒊很好的穩(wěn)定性,不易收污染和輕傷等情況影響;⒋由于是身體內(nèi)部的血管特征,很難偽造;⒌由于靜脈的穩(wěn)定性和捕捉影像的清晰性,設(shè)備成本低。
因此靜脈識別在身份鑒別領(lǐng)域中越來越受青睞。在部分國家,靜脈識別技術(shù)已經(jīng)進入了實用領(lǐng)域。在我國,雖然靜脈識別技術(shù)的研究已經(jīng)起步,但市場上幾乎沒有擁有自主知識產(chǎn)權(quán)的實用產(chǎn)品,靜脈識別技術(shù)必將是以后身份鑒別技術(shù)的熱點,擁有更廣闊的市場和發(fā)展空間。手部的靜脈識別主要有:指靜脈,手掌靜脈和手背靜脈,由于指靜脈信息量過少,手掌靜脈采集難度大,易受掌紋影響,故選擇合適的手背靜脈作為識別生物特征對象,進而來開發(fā)系統(tǒng)。
本套手背靜脈身份驗證系統(tǒng)(VAS)作品,較好解決了圖像采集、圖像處理、特征提取與匹配等方面的難題,并在基于NetFPGA的嵌入式開發(fā)板上,實現(xiàn)了靈活友好的人機交互界面。創(chuàng)新點在于:安全、魯棒的認證方式;算法硬件化,流水線工作方式;軟硬件并行協(xié)同設(shè)計;系統(tǒng)多功能,具有擴展性。
系統(tǒng)方案
實現(xiàn)原理
手背靜脈身份認證系統(tǒng)的基本原理是根據(jù)血液中的血紅素有吸收近紅外線光的特質(zhì),使用專用的裝置采集手背靜脈圖樣。然后通過濾波、圖像二值化、細化等手段處理,即可提取到數(shù)字圖像特征。在認證匹配時,實時采集手背靜脈圖,先進行圖像預(yù)處理,提取特征值,同存儲注冊的靜脈特征值比對,采用優(yōu)化的匹配算法對靜脈特征進行匹配,從而對個人進行身份認證。系統(tǒng)采用非接觸式采集,具有采集友好、難以偽造、穩(wěn)定性高等優(yōu)勢。
系統(tǒng)硬件結(jié)構(gòu)
嵌入式系統(tǒng)模塊
本系統(tǒng)放棄了NetFPGA系統(tǒng)的傳統(tǒng)配置方案,采用以Virtex II Pro上集成的硬核控制器PowerPC為核心,在Virtex II Pro上配置和開發(fā)了相應(yīng)的IP核來控制相應(yīng)的硬件,主要IP核包括UART、SPI、IIC串行通信IP核,MPMC存儲控制器IP核,VGA顯示IP核,視頻輸入采集IP核等。主控制硬核PowerPC與各功能IP核之間采用PLB46總線相連。同時利用Spartan II實現(xiàn)了相應(yīng)的I/O口擴展。改造后的NetFPGA系統(tǒng)的結(jié)構(gòu)圖如圖2所示。
算法的硬件實現(xiàn)
系統(tǒng)圖像處理需要大量的緩存,同時需要頻繁的訪問和操作數(shù)據(jù)。通常的嵌入式系統(tǒng)存儲單元不是很多,較低的系統(tǒng)工作頻率也制約了圖像處理的速度。對FPGA來說,若只用它的硬核PowerPC做軟件開發(fā)效果肯定不佳,故通過將算法硬件化來達到所需要的系統(tǒng)性能。
1. 流水線處理
流水線處理是高速設(shè)計中的一個常用手段。如果某個設(shè)計的處理流程分為若干步驟且數(shù)據(jù)處理都是單流向的,前一個步的輸出作為下一個步的輸入;那么就可以采用流水線設(shè)計方法提高系統(tǒng)的工作效率。對于我們的圖像處理算法來說,存在很多同一條指令連續(xù)處理很長一段數(shù)據(jù)的情況,此時提高吞吐率就顯得非常有意義。另外,主處理芯片Virtex-II Pro的邏輯門資源相對富裕,對流水線的實現(xiàn)規(guī)模約束很小。圖像的預(yù)處理不存在迭代式的反饋回路,使得單元結(jié)構(gòu)更加規(guī)則,也非常適合通過Virtex-II Pro實現(xiàn)[2]。
圖像預(yù)處理過程分為濾波、閾值分割、開操作、閉操作這四個步驟。開始處理時,預(yù)處理流水線每個時鐘周期讀入一個像素數(shù)據(jù),流水線填滿后,每個時鐘周期內(nèi),預(yù)處理流水線再輸出一個處理完的像素數(shù)據(jù),各個模塊間連接,無需緩存。其中開操作由一次腐蝕和一次膨脹構(gòu)成,閉操作由一次腐蝕和一次膨脹實現(xiàn)。圖3以膨脹運算為例說明了流水線處理過程。
以圖像膨脹流水線模塊為例說明:像素數(shù)據(jù)流進入模塊后,先進入三行緩沖器,每行緩沖器輸出接到一個三像素緩沖器,相當于把圖像信息送入了鄰域。這樣就可以在每一個時鐘周期都進行一次或操作,得到一個像素點的新數(shù)據(jù),完成了膨脹算法。其他模塊與之類似,在此不再贅述[3-4]。
2. 軟硬協(xié)同處理[5]
圖像匹配是一項運算量大且耗時的工作。采用軟硬協(xié)同處理的設(shè)計策略,利用硬件模塊完成大部分運算,軟件負責(zé)控制和調(diào)度,系統(tǒng)效率大為提升。匹配算法需要進行多次迭代運算(主要針對于平移和旋轉(zhuǎn)),不適合流水線處理。匹配過程中需要讀取返回值進行控制(如控制模板平移的位置,對每次匹配的結(jié)果做比較等),由PowerPC軟件程序完成。在硬件系統(tǒng)中,BRAM資源非常有限,不可能同時用很大的內(nèi)存空間做點集匹配。我們采用BRAM的空間并行化方法。通過改變BRAM的地址來讀取的圖像信息就可達到平移圖像的目的。匹配算法的軟硬協(xié)同實現(xiàn)框架如圖4所示:
系統(tǒng)測試方案及測試結(jié)果
匹配認證結(jié)果測試
測試方法:對該系統(tǒng)做多樣本的綜合輸入測試,計算拒識率、誤識率,建立樣本庫為50的數(shù)據(jù)庫,反復(fù)測試并記錄結(jié)果。
錯誤輸入1:使用沒有注冊的手,用正確的方式(位移+3mm,角度+5度,上下+10度以內(nèi))如表1。
錯誤輸入2:使用已經(jīng)注冊的手,用錯誤的方式(平移,旋轉(zhuǎn)隨機)如表2。
正確輸入:使用已經(jīng)注冊的手,用正確的方式(位移+3mm,角度+5度,上下+10度以內(nèi))如表3。
出現(xiàn)拒識現(xiàn)象,主要是因為輸入物體的錯誤或是系統(tǒng)使用時,忽視固定裝置,隨意擺放造成的。因此,當正確擺放手時,系統(tǒng)有極高的匹配率。
系統(tǒng)優(yōu)化性能測試
程序中可優(yōu)化的算法模塊包括:高斯濾波,局部閾值二值化,形態(tài)學(xué)操作,細化去刺,特征匹配5個部分。本次測試分別把這些算法運行環(huán)境設(shè)為:PC機(Linux下的C)和 FPGA上的軟硬件協(xié)同。
在程序中添加計數(shù)器函數(shù)對程序運行時間進行精確計數(shù),對比結(jié)果如表4。由表4分析可得,在時鐘頻率為125MHz的FPGA上實現(xiàn)的性能幾乎等同于2.0GHz的PC機,而效率為PC機的16倍,并有進一步優(yōu)化的潛力。
小結(jié)
通過對NetFPGA平臺的改造和擴展,增加了多路模擬視頻輸入、VGA視頻輸出、基于SPI總線的SD卡擴展、RS232串行總線等外部I/O接口,將NetFPGA應(yīng)用于視頻處理和嵌入式開發(fā),實現(xiàn)了手背靜脈身份認證。