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