文獻(xiàn)標(biāo)識(shí)碼: A
目前,,基于FPGA的自動(dòng)指紋識(shí)別系統(tǒng)主要有純硬件方式實(shí)現(xiàn)[1]和在以Nios II為CPU的軟核中實(shí)現(xiàn)[2-4]兩種方式,。以純硬件方式實(shí)現(xiàn)雖然速度較快,但由于指紋處理算法比較復(fù)雜,,實(shí)現(xiàn)困難,,同時(shí)算法精度差,設(shè)計(jì)周期長(zhǎng),;而以下載到FPGA的軟核Nios II為控制模塊,,具有靈活的設(shè)計(jì)方式,并具備軟硬件在系統(tǒng)可編程的功能,,較大程度上提高了系統(tǒng)速度,,但是該方案中軟硬件處理交替進(jìn)行,涉及到軟硬件之間頻繁的指紋數(shù)據(jù)傳輸,,限制了系統(tǒng)的速度,,同時(shí)增加了系統(tǒng)的復(fù)雜度。
本文提出了一種基于SoPC的新型結(jié)構(gòu)的自動(dòng)指紋識(shí)別設(shè)計(jì)方案,。具有以下特點(diǎn):
(1)根據(jù)對(duì)指紋識(shí)別算法的分析和優(yōu)化,,在軟、硬件結(jié)合的基礎(chǔ)上將軟件設(shè)計(jì)和硬件設(shè)計(jì)分開(kāi),,把指紋識(shí)別系統(tǒng)中耗時(shí)較大的圖像預(yù)處理部分用硬件來(lái)實(shí)現(xiàn),,而耗時(shí)較少的特征提取,、匹配和操作控制等部分則在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ù)存儲(chǔ)器。這樣的存儲(chǔ)設(shè)計(jì)使得軟件處理和硬件處理之間不涉及大量的數(shù)據(jù)流傳輸,,使軟硬件數(shù)據(jù)接口簡(jiǎn)單,,數(shù)據(jù)流的控制更加簡(jiǎn)單易行,同時(shí)避免了頻繁的軟硬件數(shù)據(jù)傳輸帶來(lái)的時(shí)間消耗,。
(3)在軟硬件處理結(jié)合的基礎(chǔ)上使指紋處理時(shí)間大大降低,,1.5 s內(nèi)可以完成一幅指紋圖像的預(yù)處理,3 s內(nèi)可以完成一幅指紋圖像的比對(duì),。
1 設(shè)計(jì)思路
1.1 指紋系統(tǒng)結(jié)構(gòu)
從整個(gè)指紋處理系統(tǒng)的角度來(lái)考慮,,根據(jù)各算法處理特性仔細(xì)地劃分系統(tǒng)子模塊。通過(guò)對(duì)指紋處理算法的分析發(fā)現(xiàn),,指紋的預(yù)處理部分使用到多次數(shù)據(jù)循環(huán)運(yùn)算,,運(yùn)算量較大而且單一,,使用硬件實(shí)現(xiàn)明顯降低時(shí)間消耗,,所以選擇對(duì)指紋的預(yù)處理部分實(shí)行整體硬件化;對(duì)于指紋匹配部分,,運(yùn)算量相對(duì)較少但算法復(fù)雜多樣,,使用軟件算法相對(duì)比較簡(jiǎn)單而且可以達(dá)到很高的精度,所以使用Nios II軟件算法來(lái)實(shí)現(xiàn),。選擇預(yù)處理部分整體硬件化,,匹配部分整體軟件化的另外一個(gè)好處是軟硬件處理不需要進(jìn)行頻繁的數(shù)據(jù)交換傳輸,節(jié)省時(shí)間的同時(shí)降低了系統(tǒng)的復(fù)雜度,。
如圖1所示,,系統(tǒng)工作流程主要分為指紋硬件采集、指紋圖像硬件預(yù)處理和指紋軟件匹配,。其中SRAM作為指紋數(shù)據(jù)的緩存設(shè)備,,F(xiàn)lash做為指紋特征數(shù)據(jù)的存儲(chǔ)設(shè)備,對(duì)指紋數(shù)據(jù)的處理步驟按照箭頭所指示的方向進(jìn)行,。
1.2 NiosⅡ軟件功能
Nios II作為主要控制模塊,,通過(guò)Avalon總線協(xié)調(diào)指紋處理各個(gè)子模塊的運(yùn)行。其中預(yù)處理硬件模塊由于處理中各算法步驟順序執(zhí)行,,所以以一個(gè)整體掛在Avalon總線上,,方便模塊的控制,。指紋圖像預(yù)處理后的特征提取匹配使用NiosⅡ軟件實(shí)現(xiàn),指紋數(shù)據(jù)儲(chǔ)存于程序的數(shù)據(jù)存儲(chǔ)器中,,按照軟件處理流程調(diào)用各個(gè)函數(shù)進(jìn)行處理,。為了方便觀察調(diào)試結(jié)果,在Avalon上掛有VGA和LCD顯示,,每一步算法完成后調(diào)用VGA顯示查看處理結(jié)果,,使用LCD提示處理步驟。
1.3 硬件優(yōu)化技術(shù)
針對(duì)FPGA算術(shù)運(yùn)算中的乘法,、除法易出現(xiàn)的時(shí)序問(wèn)題,,對(duì)浮點(diǎn)數(shù)運(yùn)算、開(kāi)方算法,、反正切算法等耗費(fèi)大量資源的通用性問(wèn)題,,特別做了如下優(yōu)化:
(1)乘除法均采用Quartus自帶的IP核進(jìn)行運(yùn)算,IP核采用流水線結(jié)構(gòu),,減少系統(tǒng)中時(shí)序不滿足情況的發(fā)生,,提高系統(tǒng)的穩(wěn)定性;
(2)浮點(diǎn)數(shù)運(yùn)算均通過(guò)擴(kuò)大倍數(shù)后轉(zhuǎn)為定點(diǎn)數(shù)再進(jìn)行運(yùn)算,,可以在降低運(yùn)算復(fù)雜度的同時(shí)降低時(shí)間消耗,;
(3)開(kāi)方算法采用不恢復(fù)余數(shù)開(kāi)方算法實(shí)現(xiàn),只涉及加減和移位,,處理時(shí)間只有輸入位寬的1/2,,可降低系統(tǒng)消耗,減少處理時(shí)間,;
(4)反正切運(yùn)算采用CORDIC算法,,采用狀態(tài)機(jī)結(jié)構(gòu),通過(guò)反復(fù)迭代實(shí)現(xiàn),,算法簡(jiǎn)單,。
2 系統(tǒng)實(shí)現(xiàn)
2.1 MBF200硬件采集模塊
MBF200開(kāi)啟自動(dòng)檢測(cè)功能采集整幅指紋圖像。通過(guò)設(shè)置芯片內(nèi)部的閾值寄存器THR使芯片適應(yīng)不同的外部環(huán)境,。改變內(nèi)部的PGC,、DTR、DCR三個(gè)寄存器的值可以調(diào)整圖像的清晰度,,提高采集到的圖像質(zhì)量,。
2.2 預(yù)處理模塊的實(shí)現(xiàn)
圖像預(yù)處理主要分為指紋圖像平滑、背景分離和濾波增強(qiáng)三大部分,。通過(guò)硬件處理控制狀態(tài)機(jī)實(shí)現(xiàn)各個(gè)硬件模塊的處理,。預(yù)處理的指紋數(shù)據(jù)均存于SRAM中,根據(jù)硬件狀態(tài)控制來(lái)選擇SRAM與各個(gè)硬件模塊的連接,。圖像平滑采用歸一化處理,,背景分離采用方差法,,濾波增強(qiáng)采用方向?yàn)V波圖像增強(qiáng)算法來(lái)實(shí)現(xiàn)[5]。
2.3 Nios算法實(shí)現(xiàn)
軟件算法的主要模塊分別為二值化,、細(xì)化,、特征提取和特征匹配。其中二值化處理中同時(shí)包括二值化后的填充和刪除算法,;細(xì)化算法包括細(xì)化后的去偽算法,。二值化算法采用閾值法;細(xì)化算法采用Hilditch細(xì)化算法,,同時(shí)采用基于8鄰域特征點(diǎn)的特征提取算法和基于中心點(diǎn)的匹配算法,。
3 系統(tǒng)實(shí)現(xiàn)
3.1 指紋處理VGA顯示結(jié)果
圖2(a)為MBF200采集效果圖,圖中指紋圖像的紋線清晰,,與背景區(qū)域?qū)Ρ让黠@,。
歸一化處理的作用是使圖像中的黑白點(diǎn)對(duì)比更加明顯,同時(shí)改變圖像灰度的均勻程度,。如圖2(b)所示為采集后的指紋歸一化處理情況,,從圖中可以看出指紋脊線明顯加強(qiáng)。由于背景區(qū)域較少,,因而跳過(guò)了背景分離這一步,。
采用基于方向圖的增強(qiáng)算法,處理效果如圖2(c)所示,。從圖中可以看出,,對(duì)指紋圖像脊線具有很好的連接效果,能較好地去除指紋圖像中的噪聲干擾使指紋更清晰,、真實(shí),。
二值化是在濾波的基礎(chǔ)上進(jìn)行的,,包括二值化后的刪除和填充算法,,處理效果如圖2(d)所示。二值化后圖像只剩余黑白兩色,。
細(xì)化主要是去除不必要的紋線粗線信息,,便于之后提取特征點(diǎn)。細(xì)化處理如圖2(e)所示,,細(xì)化后的指紋圖像的紋線只剩下一個(gè)像素點(diǎn),。細(xì)化后去除了偽特征點(diǎn),明顯去除了斷點(diǎn)和短線,。
3.2 指紋處理性能說(shuō)明
系統(tǒng)的處理時(shí)間消耗分為硬件預(yù)處理和軟件算法處理兩部分,。
硬件處理包括指紋采集塊、歸一化塊,、背景分離塊和增強(qiáng)濾波塊四個(gè)部分,;軟件處理包括二值化,、細(xì)化、特征提取和特征匹配四個(gè)部分,。系統(tǒng)處理時(shí)間消耗如表1所示,。
本文根據(jù)指紋識(shí)別算法的特點(diǎn)設(shè)計(jì)了一種基于SoPC的新型結(jié)構(gòu)的自動(dòng)指紋識(shí)別系統(tǒng),通過(guò)對(duì)指紋識(shí)別算法的具體分析和優(yōu)化,,設(shè)計(jì)了將指紋處理劃分為硬件處理和軟件處理兩大部分的結(jié)構(gòu),,用一塊SRAM作指紋處理中間數(shù)據(jù)的緩存,軟件和硬件之間不涉及大的數(shù)據(jù)流的傳輸,,節(jié)約了數(shù)據(jù)傳輸時(shí)間,。此結(jié)構(gòu)將耗時(shí)較多的預(yù)處理部分使用全硬件模式,大大提高了系統(tǒng)的運(yùn)算速度,;將耗時(shí)較小的匹配算法部分由NiosⅡ軟件完成,,縮短了設(shè)計(jì)周期,提高了設(shè)計(jì)精度,。這種設(shè)計(jì)結(jié)構(gòu)降低了系統(tǒng)的復(fù)雜度,,使得系統(tǒng)結(jié)構(gòu)明晰,處理性能得到提升,,便于單獨(dú)處理模塊的優(yōu)化以及系統(tǒng)的升級(jí),。
參考文獻(xiàn)
[1] 郭娟.基于FPGA硬件方式實(shí)現(xiàn)的指紋識(shí)別系統(tǒng)研究[D].上海:中國(guó)科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所.2007.
[2] 李瑩,艾明晶.基于NiosⅡ的自動(dòng)指紋識(shí)別系統(tǒng)設(shè)計(jì)[J]. 新器件新技術(shù).2005(6):49-51.
[3] 郭海波,,王金海,,劉長(zhǎng)春,等.基于NiosⅡ的高速嵌入式指紋識(shí)別系統(tǒng)[J].國(guó)外電子元器件,,2007(11):24-27.
[4] 張君安.基于NiosⅡ軟核處理器的嵌入式指紋數(shù)據(jù)識(shí)別系統(tǒng)研究[D].上海:華東師范大學(xué),,2007.
[5] 羅軍,肖芳,,毛雪瑩,,等.基于FPGA的方向?yàn)V波指紋圖像增強(qiáng)算法實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2010,,36(6):13-16.