基于Nios的掌紋鑒別系統(tǒng)設(shè)計與實現(xiàn)_第1頁
基于Nios的掌紋鑒別系統(tǒng)設(shè)計與實現(xiàn)_第2頁
基于Nios的掌紋鑒別系統(tǒng)設(shè)計與實現(xiàn)_第3頁
基于Nios的掌紋鑒別系統(tǒng)設(shè)計與實現(xiàn)_第4頁
基于Nios的掌紋鑒別系統(tǒng)設(shè)計與實現(xiàn)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于Nios的掌紋鑒別系統(tǒng)設(shè)計與實現(xiàn)引 言     在信息化的當(dāng)今世界,信息安全不管是對企業(yè)還是個人都越來越重要。生物特征鑒別在信息安全身份認證領(lǐng)域占據(jù)著重要地位1。傳統(tǒng)的指紋鑒別系統(tǒng)已經(jīng)商用化,但由于指紋特征十分細小,對于采集圖像設(shè)備的分辨率要求很高導(dǎo)致設(shè)備成本居高不下。另外,大約有4的人由于指紋磨損而提取不出指紋特征(如一些老年人和體力勞動者)2,所以人們把目光投向了分辨率要求不高有可能實現(xiàn)低成本與大范圍應(yīng)用的掌紋鑒別領(lǐng)域。     掌紋識別和鑒別是1998年才出現(xiàn)的新興生物特征識別技術(shù),經(jīng)過幾年的研究已經(jīng)達到

2、了商用的要求(在低分辨率條件下識別率高于991)。掌紋鑒別的適用范圍廣泛,從特定領(lǐng)域來說,可以廣泛應(yīng)用在銀行、法院、刑偵、監(jiān)獄等需要保密性要求比較高的部門,從大眾領(lǐng)域來說,住宅小區(qū)和生產(chǎn)車間是重要的應(yīng)用場臺。上述應(yīng)用場臺除了要求本身算法的可靠性外,還要求識別設(shè)備小型化,便攜化以及可升級性.所以擺脫PC的束縛,在嵌人式系統(tǒng)上實現(xiàn)掌紋鑒別更加具有實際應(yīng)用價值,也勢必會將掌紋鑒別推向更廣闊的應(yīng)用領(lǐng)域,然而在當(dāng)前還沒有嵌入式掌紋鑒別系統(tǒng)問世。     Nlos是Altera公司推出的一款采用流水線技術(shù)、單指令流的32位RISC軟核處理器,并針對Altera公司的

3、可編程邏輯器件和片上可編程系統(tǒng)的思想做了相應(yīng)優(yōu)化3,4AlIera公司提供的SoPC Builder不僅可以創(chuàng)建和配置用戶的Ni0s,還可以添加自定義用戶指令。這使得Nios可以很容易的與用戶邏輯結(jié)合,構(gòu)成功能更加強大的SoC系統(tǒng)。本文提出了基于Nios軟核處理器的掌紋鑒別系統(tǒng)設(shè)計方案,并最終實際完成了該系統(tǒng)。1 系統(tǒng)結(jié)構(gòu)及功能概述     從邏輯功能來看,作為一個完整的掌紋鑒別系統(tǒng)應(yīng)該具備以下兩個基本功能:鑒別和注冊。鑒別功能即根據(jù)用戶的lD和采集到的掌紋圖像判定用戶身份是否與聲明的ID相符。如果當(dāng)前用戶是合法的,則記錄本次登錄,如果當(dāng)前用戶是不合法的

4、,則向系統(tǒng)管理員報告。注冊功能即將新用戶的掌紋特征添加到掌紋特征庫,并給此用戶一個新的ID。為了實現(xiàn)鑒別和注冊功能,將系統(tǒng)分為以下幾個模塊:圖像采集模塊、鑒別處理模塊、輸入輸出模塊和通信模塊。其中,鑒別處理模塊是整個系統(tǒng)的核心,它既要完成掌紋鑒別算法的運算,還要對其它的模塊進行控制和監(jiān)測。系統(tǒng)的結(jié)構(gòu)框圖如圖l所示     圖像采集模塊主要包括攝像頭和外擴SRAM。由于手掌凹凸不平及受壓力不同時,導(dǎo)致的形變較大,所以采集掌紋圖像,一般不使用像采集指紋時使用的掃描設(shè)備。而如果采用數(shù)碼相機,系統(tǒng)的體積和成本必然上升,喪失了莫優(yōu)越性。筆者采用OmniVvision公司的O

5、V7649攝像頭作為圖像采集設(shè)備,OV7649是30萬像素的CMOS數(shù)字攝像頭,體積極小,價格便宜,分辨率足以達到掌紋鑒別的要求。因為OV7649輸出為8位數(shù)據(jù)寬度,所以SRAM采用了與OV7649的數(shù)據(jù)寬度相同的IDT7lV424,用來作為存儲掌紋圖像的緩沖區(qū)。    鑒別處理模塊采用的FPGA選擇Altera公司的APEX20K200F,配置了256KB的SRAM及1MB的Flash,另外我們還添置了32MB的SDRAM. SRAM和SDRAM用來為Ni0s運行程序和存儲相關(guān)數(shù)據(jù),F(xiàn)lash用來存儲提取好的掌紋樣本特征。選擇Nios軟核CPU作為核心處理模塊主

6、要考慮到它為設(shè)計帶來了高的集成度和靈活性,這樣再對設(shè)計方案作更改時比較方便,而且核心算法如果用Nios的用戶指令實現(xiàn),那么運算速度將會得到很大提高。AIIera也提供了一些免費的IP核,包括常用的UART、SRAM、F1ash和SDRAM控制器。這樣在S0PCBuilder里很容易定制好自己需要的Nios處理器,假如想更改其中的某些部分只需在S0PC Builder里重新配置即可。實踐證明,選擇Nios軟核處理器給后續(xù)的工作帶來很多便利。     輸入輸出模塊和通信模塊結(jié)構(gòu)相對簡單.前者包括一些按鍵和1塊16×2的漢字LCD,用來提示用戶操作和

7、顯示系統(tǒng)相關(guān)信息,后者采用的是西門子的slml00-tcp無線通信模塊。這樣可保證系統(tǒng)的報告直接可以發(fā)到系統(tǒng)管理員的手機上同時也為連接1naternaet提供了條件,這樣系統(tǒng)的擴展性就得以增強了。2 系統(tǒng)的硬件設(shè)計     系統(tǒng)硬件結(jié)構(gòu)如圖2所示可以看到在l片F(xiàn)PGA中包含了Nios處理器、SRAM控制器、SDRAM控制器、Flash控制器、uART以及攝像頭和外擴SRAM控制器、2維DCT變換的用戶邏輯模塊。這正體現(xiàn)了Nios的優(yōu)勢,將很多資源集中在FPGA中為設(shè)計PCB帶來了便利,而且對系統(tǒng)的更改也變得非常容易,只要重新在FPGA中添加不同的模塊就可

8、以了。筆者分別設(shè)計了2塊PCB,分別是圖像采集板和無線通信模塊,工作的重點主要在以下兩個方面。(1)Nios與OV7649的工作協(xié)調(diào)機制     OV7649控制信號線使用的是oMniVisn公司的SCCB總線。SCCB總線包括SIO_C和SIO_D兩條信號線,分別代表時鐘和串行數(shù)據(jù)I/O,無論是傳輸控制命令還是讀寫數(shù)據(jù),都是由不同的時序來區(qū)分不同的操作。筆者并沒有用Nios直接與OV7649相連而是獨立用VHDL編寫了一個控制模塊。這樣做的原因主要有兩方面:第一,OV7649輸出的像素同步時鐘頻率為24MHz,同時以30幀/s的速率輸出分辨率為640&

9、#215;480的圖像數(shù)據(jù),如此高的數(shù)據(jù)率直接用Nios提取其中一幀圖像是不好實現(xiàn)的,因此必須編寫提取圖像寫入外擴sRAM的VHDL模塊,直接用FPGA將掌紋圖像數(shù)據(jù)寫入外擴SRAM;第二,Nios只占用了FPGA資源的三分之一左右,完全可以利用剩下的資源,這樣編寫C代碼的時候就不必考慮SCCB總線的時序。對于Nios來說,圖像采集只需發(fā)啟動和配置命令就可以實現(xiàn)然后等待控制模塊的完成信號返回,直接到外擴SRAM取數(shù)據(jù)即可。    攝像頭控制模塊首先對攝像頭進行初始化配置。初始設(shè)定為 自動增益控制、自動白平衡、VGA格式(640 x80)、30幀/s、YuV 4:2

10、:2數(shù)字視頻信號輸出、設(shè)置默認的圖像對比度、亮度及飽和度。然后接收OV7649產(chǎn)生的數(shù)字視頻信號、控制信號和狀態(tài)信號,即把幀同步信號VREF、行同步信號HREF、復(fù)位信號RST、像素時鐘信號PCLK等引腳連接到FPGA,根據(jù)這些信號將數(shù)據(jù)寫入外擴SRAM。圖3和圖4是OV7649輸出的各種同步信號的時序圖。(2)外擴SRAM的讀寫控制     如前所述,開發(fā)板上配有256KB的SRAM和IMB的Flash。因為提取的每幀掌紋圖像至少為320×40×2=150KB同時圖像處理的相關(guān)代碼和掌紋樣本庫也有相當(dāng)?shù)娜萘?,所以還需要外擴1MB的S

11、RAM作為存儲采集圖像的緩沖區(qū)。為了和攝像頭的數(shù)據(jù)寬度匹配,外擴的SRAM選用了IDT7lV424,作為FPGA從OV7649輸出視頻中提取一幀圖像的存儲器。這2片SRAM必須達到以下要求 在采集圖像時為FPGA中的攝像頭控制模塊迅速將圖像數(shù)據(jù)寫入,其余時間則將資源釋放,被Ni0s統(tǒng)一管理。為此,一方面根據(jù)輸出視頻數(shù)據(jù)的高速時鐘信號利用FPGA的資源編寫了VHDL模塊;另一方面,根據(jù)SOPC Builder提供的配置文件修改寫出了控制IDT71424的IP,并將其集成到SOPC Builder中。3 系統(tǒng)的軟件設(shè)計(1)軟件開發(fā)環(huán)境與用戶指令     N

12、ios的軟件開發(fā)環(huán)境叫做Nios SDK SHELL,它提供了一個基于命令行婁似于Nnix的界面,用戶在此環(huán)境下可以和Nios進行通信。我們需要先將編寫好的.c文件用nios-builder命令生成srec文件。這個過程是由Nlos SDKSHELL調(diào)用GNUpro編譯器來完成,GNUpro負責(zé)完成C代碼和相關(guān)的頭文件及庫函數(shù)的編譯、鏈接等工作。編譯通過后就可以用nios-run命令將生成的.srec文件通過串口下載到N1os上運行。在SOPC Builder中配置好Nios后,會得到為用戶生成的CPU_SDK文件夾,其中有個名為excalibur.h的頭文件,它包括Nios所有資源的地址映射

13、和一些庫函數(shù)。    用戶指令是Nios的最大特點之一,也是硬核處理器無法提供給用戶的。使用好用戶指令可以給系統(tǒng)速度帶來極大的提升。掌紋鑒別算法有很多種,對掌紋特征提取通常包括提取掌紋幾何特征、變換域特征和代數(shù)統(tǒng)計特征三大婁。在本系統(tǒng)的設(shè)計過程中,對算法的選擇主要是從如何發(fā)揮Nios的優(yōu)勢出發(fā),爭取能在系統(tǒng)的實時性、可靠性及軟硬件結(jié)合三方面拽到一個平衡點。對掌垃圖像進行DCT變換是這個處理過程中運算量最大的部分,同時這也恰恰是利用用戶指令的機會。2維DCT的處理模塊是在1維DCT的基礎(chǔ)上加以改善得到的,并且在SOPC Builder中添加為用戶指令。用戶指令的引人

14、為系統(tǒng)速度帶來極大的提升。首先在SOPC Builder配置Nios時,分別使用MSEP和MuL兩種乘法,運行C代碼實現(xiàn),然后又用2維DCT的用戶指令來做相同圖像的處理對比.下文會有具體的測試數(shù)據(jù)。(2)代碼流程分析     參照圖5所示,現(xiàn)在開始分析流程圖中各操作的具體步驟。    用nr_installuserisr(na_button_pio_irq,palm_isr,(int)pi0)函數(shù)來建立一個用戶中斷服務(wù),對按鍵中斷響應(yīng)進入中斷服務(wù)程序palm_isr.然后向攝像頭控制模塊發(fā)送指令,需要用的函數(shù)有 v

15、old mitSCCBMPodule() void WriteSCCB(unsigned char id_addr,unsigned char sub addr,unsigend char data); unsigned char ReadSCCB(unsigned char id_addr,un-signed char sub_addr) void EndSCCBModule();     首先用initSCCBModule函數(shù)對攝像頭控制模塊初始化,然后用WriteSCCB函數(shù)寫入需要的攝像頭配置EndSCCBModul

16、e表示結(jié)束配置,還可以用RemdSCCB來讀取攝像頭的寄存器配置,檢查與吸入的配置是否相同。檢測到攝像頭控制模塊的完成信號,就可以從外擴SRAM讀取數(shù)據(jù)了。接著對圖像數(shù)據(jù)做一些預(yù)處理,包括提取圖像的Y分量并找到掌紋的感興趣區(qū)域。然后提取掌紋特征,這部分的運算量主要集中在DCT變換,需要使用用戶指令nm_det_2.在用戶指令執(zhí)行完畢后,既是對特征的處理,并將處理結(jié)果顯示。對于提取的掌紋特征如果需要寫入Flash儲存起來,那就需要調(diào)用int nr_flash erase sector(unsigned short*flash base,unsigned short*sector address)

17、 int nr_flash write(unsigned short*lash base unsigned short*address,unsigned short value) 無線通信模塊需要與Nios的串口連接,用AT命令來控制打電話、發(fā)短信和訪問Internet。需要調(diào)用的串口控制函數(shù)是voidnr txstring(char*s)和int nr_rxchar(vpid)這兩個函數(shù)就是發(fā)送AT命令和接收無線模塊返回的狀態(tài)信息。4 測試與分析     實驗主要分為兩個部分:正確鑒別率測試(如表1所列)和鑒別時間測試(如表2所列)

18、。從表1的數(shù)據(jù)來分析,可以看出在樣本數(shù)不大的范圍內(nèi)隨著閾值為130時得到了96.7的正確鑒別率對于在Nios平臺下的掌紋鑒別來說這個結(jié)果是完全可以接受的,但是此時對擴展測試集有3.3的錯誤接受率。筆者取的擴展測試集規(guī)模與樣本數(shù)相同,假設(shè)將此系統(tǒng)用于住宅小區(qū)門禁系統(tǒng),這就意味著此小區(qū)區(qū)外的31名人員中有1個可能能夠進人該小區(qū)。為了保證安全性筆者將閾值減小至100,系統(tǒng)對擴展測試集的鑒別效果相當(dāng)好,樣本之外的掌紋不會錯識為樣本庫中的掌紋,付出的代價就是正確鑒別率下降為93.5。眾所周知,嵌入式處理器的運算能力有限,所以對特征提取時間比較關(guān)注,這也是系統(tǒng)能否邁向?qū)嵱没年P(guān)鍵之一。表2是系統(tǒng)實時性的測試,從中可以看出在配置Nios時選用不同的乘法器(MSTEP是Nios的標準乘法器,MUL是Nios的全硬件乘法器)運算時間有所縮短,而使用用戶指令對運算的加速效果相當(dāng)明顯,以上數(shù)據(jù)是使用函數(shù)hr_timer_milliseconds測試得到的。結(jié) 語   

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論