《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 一種新型SoPC自動指紋識別系統(tǒng)設(shè)計(jì)
一種新型SoPC自動指紋識別系統(tǒng)設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2010年第8期
肖 芳,羅 軍,,王安文,,黃啟俊,常 勝
武漢大學(xué) 物理科學(xué)與技術(shù)學(xué)院電子科技系,,湖北 武漢430072
摘要: 設(shè)計(jì)了一種基于SoPC的新型結(jié)構(gòu)的自動指紋識別系統(tǒng),。通過對指紋處理整體流程的選擇和優(yōu)化,將耗時較多的指紋預(yù)處理部分整體硬件化,耗時較少的匹配部分軟件化,,使得系統(tǒng)處理速度有了顯著提高,1.5 s內(nèi)可以完成一幅指紋圖像的預(yù)處理,,3 s內(nèi)可以完成一幅指紋圖像的比對,。使用Quartus II軟件完成了系統(tǒng)模塊設(shè)計(jì)及仿真,使用Nios II IDE軟件完成了軟件代碼的實(shí)現(xiàn),,并在以Altera 公司的Cyclone II FPGA芯片為核心的DE2開發(fā)板上實(shí)現(xiàn)了整個系統(tǒng),。
關(guān)鍵詞: SoPC FPGA NIOS 指紋識別
中圖分類號: TP391
文獻(xiàn)標(biāo)識碼: A
A novel SoPC design of automated fingerprint identification system
XIAO Fang,LUO Jun,,WANG An Wen,,HUANG Qi Jun,,CHANG Sheng
Department of Electronic Science and Technology, School of Physics and Technology, Wuhan University,Wuhan 430072,China
Abstract: In this paper, a novel SoPC design of automated fingerprint identification system is presented. The SoPC system is partitioned as hardware part and software part, while the time-consuming process is implemented by hardware and the others is achieved by software. This optimization significantly improved system’s processing speed, for example, a rate of fingerprint image preprocessing can complete within 1.5 s and a whole fingerprint image comparison just need 3 s. The system of modular design and simulation is realized by Quartus II software, while the Nios Ⅱ IDE is used to complete the software code. The whole design is implemented on DE2, an Altera's Cyclone II FPGA based development board.
Key words : SoPC,;FPGA,;NiosⅡ;fingerprint identification

    目前,,基于FPGA的自動指紋識別系統(tǒng)主要有純硬件方式實(shí)現(xiàn)[1]和在以Nios II為CPU的軟核中實(shí)現(xiàn)[2-4]兩種方式,。以純硬件方式實(shí)現(xiàn)雖然速度較快,但由于指紋處理算法比較復(fù)雜,,實(shí)現(xiàn)困難,,同時算法精度差,設(shè)計(jì)周期長,;而以下載到FPGA的軟核Nios II為控制模塊,,具有靈活的設(shè)計(jì)方式,并具備軟硬件在系統(tǒng)可編程的功能,,較大程度上提高了系統(tǒng)速度,,但是該方案中軟硬件處理交替進(jìn)行,涉及到軟硬件之間頻繁的指紋數(shù)據(jù)傳輸,,限制了系統(tǒng)的速度,,同時增加了系統(tǒng)的復(fù)雜度。
    本文提出了一種基于SoPC的新型結(jié)構(gòu)的自動指紋識別設(shè)計(jì)方案,。具有以下特點(diǎn):
    (1)根據(jù)對指紋識別算法的分析和優(yōu)化,,在軟、硬件結(jié)合的基礎(chǔ)上將軟件設(shè)計(jì)和硬件設(shè)計(jì)分開,,把指紋識別系統(tǒng)中耗時較大的圖像預(yù)處理部分用硬件來實(shí)現(xiàn),,而耗時較少的特征提取、匹配和操作控制等部分則在NiosⅡ軟核中實(shí)現(xiàn),。從而使得系統(tǒng)結(jié)構(gòu)明晰,,處理性能得到提升。
    (2)用一塊SRAM作指紋處理中間數(shù)據(jù)的緩存,。指紋圖像前期處理以硬件實(shí)現(xiàn),,中間數(shù)據(jù)緩存于SRAM中;指紋圖像后期處理軟件從SRAM中將所有數(shù)據(jù)讀入NiosⅡ的數(shù)據(jù)存儲器,。這樣的存儲設(shè)計(jì)使得軟件處理和硬件處理之間不涉及大量的數(shù)據(jù)流傳輸,,使軟硬件數(shù)據(jù)接口簡單,數(shù)據(jù)流的控制更加簡單易行,,同時避免了頻繁的軟硬件數(shù)據(jù)傳輸帶來的時間消耗。
    (3)在軟硬件處理結(jié)合的基礎(chǔ)上使指紋處理時間大大降低,,1.5 s內(nèi)可以完成一幅指紋圖像的預(yù)處理,,3 s內(nèi)可以完成一幅指紋圖像的比對,。
1 設(shè)計(jì)思路
1.1 指紋系統(tǒng)結(jié)構(gòu)

    從整個指紋處理系統(tǒng)的角度來考慮,根據(jù)各算法處理特性仔細(xì)地劃分系統(tǒng)子模塊,。通過對指紋處理算法的分析發(fā)現(xiàn),,指紋的預(yù)處理部分使用到多次數(shù)據(jù)循環(huán)運(yùn)算,運(yùn)算量較大而且單一,,使用硬件實(shí)現(xiàn)明顯降低時間消耗,,所以選擇對指紋的預(yù)處理部分實(shí)行整體硬件化;對于指紋匹配部分,,運(yùn)算量相對較少但算法復(fù)雜多樣,,使用軟件算法相對比較簡單而且可以達(dá)到很高的精度,所以使用Nios II軟件算法來實(shí)現(xiàn),。選擇預(yù)處理部分整體硬件化,,匹配部分整體軟件化的另外一個好處是軟硬件處理不需要進(jìn)行頻繁的數(shù)據(jù)交換傳輸,節(jié)省時間的同時降低了系統(tǒng)的復(fù)雜度,。
    如圖1所示,,系統(tǒng)工作流程主要分為指紋硬件采集、指紋圖像硬件預(yù)處理和指紋軟件匹配,。其中SRAM作為指紋數(shù)據(jù)的緩存設(shè)備,,F(xiàn)lash做為指紋特征數(shù)據(jù)的存儲設(shè)備,對指紋數(shù)據(jù)的處理步驟按照箭頭所指示的方向進(jìn)行,。

1.2 NiosⅡ軟件功能
    Nios II作為主要控制模塊,,通過Avalon總線協(xié)調(diào)指紋處理各個子模塊的運(yùn)行。其中預(yù)處理硬件模塊由于處理中各算法步驟順序執(zhí)行,,所以以一個整體掛在Avalon總線上,,方便模塊的控制。指紋圖像預(yù)處理后的特征提取匹配使用NiosⅡ軟件實(shí)現(xiàn),,指紋數(shù)據(jù)儲存于程序的數(shù)據(jù)存儲器中,,按照軟件處理流程調(diào)用各個函數(shù)進(jìn)行處理。為了方便觀察調(diào)試結(jié)果,,在Avalon上掛有VGA和LCD顯示,,每一步算法完成后調(diào)用VGA顯示查看處理結(jié)果,使用LCD提示處理步驟,。
1.3 硬件優(yōu)化技術(shù)
    針對FPGA算術(shù)運(yùn)算中的乘法,、除法易出現(xiàn)的時序問題,對浮點(diǎn)數(shù)運(yùn)算,、開方算法,、反正切算法等耗費(fèi)大量資源的通用性問題,特別做了如下優(yōu)化:
    (1)乘除法均采用Quartus自帶的IP核進(jìn)行運(yùn)算,IP核采用流水線結(jié)構(gòu),,減少系統(tǒng)中時序不滿足情況的發(fā)生,,提高系統(tǒng)的穩(wěn)定性;
    (2)浮點(diǎn)數(shù)運(yùn)算均通過擴(kuò)大倍數(shù)后轉(zhuǎn)為定點(diǎn)數(shù)再進(jìn)行運(yùn)算,,可以在降低運(yùn)算復(fù)雜度的同時降低時間消耗,;
    (3)開方算法采用不恢復(fù)余數(shù)開方算法實(shí)現(xiàn),只涉及加減和移位,,處理時間只有輸入位寬的1/2,,可降低系統(tǒng)消耗,減少處理時間,;
    (4)反正切運(yùn)算采用CORDIC算法,,采用狀態(tài)機(jī)結(jié)構(gòu),通過反復(fù)迭代實(shí)現(xiàn),,算法簡單,。
2 系統(tǒng)實(shí)現(xiàn)
2.1 MBF200硬件采集模塊

    MBF200開啟自動檢測功能采集整幅指紋圖像。通過設(shè)置芯片內(nèi)部的閾值寄存器THR使芯片適應(yīng)不同的外部環(huán)境,。改變內(nèi)部的PGC,、DTR、DCR三個寄存器的值可以調(diào)整圖像的清晰度,,提高采集到的圖像質(zhì)量,。
2.2 預(yù)處理模塊的實(shí)現(xiàn)
    圖像預(yù)處理主要分為指紋圖像平滑、背景分離和濾波增強(qiáng)三大部分,。通過硬件處理控制狀態(tài)機(jī)實(shí)現(xiàn)各個硬件模塊的處理,。預(yù)處理的指紋數(shù)據(jù)均存于SRAM中,根據(jù)硬件狀態(tài)控制來選擇SRAM與各個硬件模塊的連接,。圖像平滑采用歸一化處理,,背景分離采用方差法,濾波增強(qiáng)采用方向?yàn)V波圖像增強(qiáng)算法來實(shí)現(xiàn)[5],。
2.3 Nios算法實(shí)現(xiàn)
    軟件算法的主要模塊分別為二值化,、細(xì)化、特征提取和特征匹配,。其中二值化處理中同時包括二值化后的填充和刪除算法,;細(xì)化算法包括細(xì)化后的去偽算法。二值化算法采用閾值法,;細(xì)化算法采用Hilditch細(xì)化算法,,同時采用基于8鄰域特征點(diǎn)的特征提取算法和基于中心點(diǎn)的匹配算法。
3 系統(tǒng)實(shí)現(xiàn)
3.1 指紋處理VGA顯示結(jié)果

    圖2(a)為MBF200采集效果圖,,圖中指紋圖像的紋線清晰,,與背景區(qū)域?qū)Ρ让黠@,。

    歸一化處理的作用是使圖像中的黑白點(diǎn)對比更加明顯,同時改變圖像灰度的均勻程度,。如圖2(b)所示為采集后的指紋歸一化處理情況,,從圖中可以看出指紋脊線明顯加強(qiáng)。由于背景區(qū)域較少,,因而跳過了背景分離這一步。
    采用基于方向圖的增強(qiáng)算法,,處理效果如圖2(c)所示,。從圖中可以看出,對指紋圖像脊線具有很好的連接效果,,能較好地去除指紋圖像中的噪聲干擾使指紋更清晰,、真實(shí)。
    二值化是在濾波的基礎(chǔ)上進(jìn)行的,,包括二值化后的刪除和填充算法,,處理效果如圖2(d)所示。二值化后圖像只剩余黑白兩色,。
    細(xì)化主要是去除不必要的紋線粗線信息,,便于之后提取特征點(diǎn)。細(xì)化處理如圖2(e)所示,,細(xì)化后的指紋圖像的紋線只剩下一個像素點(diǎn),。細(xì)化后去除了偽特征點(diǎn),明顯去除了斷點(diǎn)和短線,。
3.2 指紋處理性能說明
    系統(tǒng)的處理時間消耗分為硬件預(yù)處理和軟件算法處理兩部分,。
    硬件處理包括指紋采集塊、歸一化塊,、背景分離塊和增強(qiáng)濾波塊四個部分,;軟件處理包括二值化、細(xì)化,、特征提取和特征匹配四個部分,。系統(tǒng)處理時間消耗如表1所示。

    本文根據(jù)指紋識別算法的特點(diǎn)設(shè)計(jì)了一種基于SoPC的新型結(jié)構(gòu)的自動指紋識別系統(tǒng),,通過對指紋識別算法的具體分析和優(yōu)化,,設(shè)計(jì)了將指紋處理劃分為硬件處理和軟件處理兩大部分的結(jié)構(gòu),用一塊SRAM作指紋處理中間數(shù)據(jù)的緩存,,軟件和硬件之間不涉及大的數(shù)據(jù)流的傳輸,,節(jié)約了數(shù)據(jù)傳輸時間。此結(jié)構(gòu)將耗時較多的預(yù)處理部分使用全硬件模式,,大大提高了系統(tǒng)的運(yùn)算速度,;將耗時較小的匹配算法部分由NiosⅡ軟件完成,縮短了設(shè)計(jì)周期,提高了設(shè)計(jì)精度,。這種設(shè)計(jì)結(jié)構(gòu)降低了系統(tǒng)的復(fù)雜度,,使得系統(tǒng)結(jié)構(gòu)明晰,處理性能得到提升,,便于單獨(dú)處理模塊的優(yōu)化以及系統(tǒng)的升級,。
參考文獻(xiàn)
[1] 郭娟.基于FPGA硬件方式實(shí)現(xiàn)的指紋識別系統(tǒng)研究[D].上海:中國科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所.2007.
[2] 李瑩,艾明晶.基于NiosⅡ的自動指紋識別系統(tǒng)設(shè)計(jì)[J]. 新器件新技術(shù).2005(6):49-51.
[3] 郭海波,,王金海,,劉長春,等.基于NiosⅡ的高速嵌入式指紋識別系統(tǒng)[J].國外電子元器件,,2007(11):24-27.
[4] 張君安.基于NiosⅡ軟核處理器的嵌入式指紋數(shù)據(jù)識別系統(tǒng)研究[D].上海:華東師范大學(xué),,2007.
[5] 羅軍,肖芳,,毛雪瑩,,等.基于FPGA的方向?yàn)V波指紋圖像增強(qiáng)算法實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2010,,36(6):13-16.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。