文獻標識碼: A
文章編號: 0258-7998(2011)04-0055-03
指紋識別作為生物特征識別的一種方法,在身份識別上有著其他識別方法不可比擬的優(yōu)越性:指紋具有唯一性,、終生不變性,、難以復(fù)制、易獲取等優(yōu)點,。傳統(tǒng)的指紋識別系統(tǒng)基于PC機,,雖然系統(tǒng)的識別速度快,樣本存儲量大,,但存在結(jié)構(gòu)體積大,、成本高、移動性能差的缺點,;采用DSP組成的識別系統(tǒng)又存在外圍電路復(fù)雜,、設(shè)計開發(fā)時間長、系統(tǒng)可擴展性差的問題,。
本文給出了一種基于Xilinx公司FPGA的指紋識別系統(tǒng)設(shè)計方法,。利用Xilinx公司的EDK和SG(System Generator)開發(fā)軟件,創(chuàng)建配置MICOBLAZE軟核,,并添加自定義指令與系統(tǒng)邏輯相結(jié)合構(gòu)成完善的SoPC系統(tǒng)[1],。該方法采用硬件實現(xiàn)圖像的預(yù)處理以及識別的部分算法,具有靈活的設(shè)計方式,,可裁剪,、可擴充,并具備系統(tǒng)軟硬件可協(xié)同設(shè)計的特點,,極大地提高了處理速度,,滿足了系統(tǒng)的實時性要求。
1 指紋識別的基本原理
指紋識別是指從已得到的指紋數(shù)據(jù)庫中查找出與輸入指紋相同的指紋數(shù)據(jù),,達到識別輸入者身份的目的,。指紋識別系統(tǒng)主要包括指紋的采集、指紋圖像預(yù)處理和特征提取,、特征模板存儲,、指紋圖像的特征匹配以及輸出顯示匹配結(jié)果[2-3]。指紋識別系統(tǒng)的基本原理框圖如圖1所示,。
2 指紋識別系統(tǒng)設(shè)計
2.1 系統(tǒng)硬件總體設(shè)計
系統(tǒng)主要實現(xiàn)指紋的錄入和識別,。先通過指紋傳感器獲取指紋圖像信息,再由指紋處理模塊進行圖像的預(yù)處理,、特征提取等相關(guān)操作,,最后保存到存取單元中建立指紋庫,。識別時,同樣通過指紋傳感器錄入待識別的指紋,,再經(jīng)過指紋處理模塊完成圖像處理以及特征提取,,然后將提取出的指紋信息與指紋庫中信息進行匹配,顯示匹配結(jié)果,。
識別系統(tǒng)由指紋傳感器,、系統(tǒng)控制模塊、指紋處理模塊,、存儲模塊,、通信接口模塊、輸入輸出模塊等部分組成,。指紋的采集通過指紋傳感器完成,,將指紋轉(zhuǎn)換成具有一定灰度級的數(shù)字圖像。在控制模塊的作用下,,通過接口電路的控制,,將錄入的指紋圖像輸入至識別系統(tǒng)。
指紋處理模塊主要完成指紋的預(yù)處理和指紋的特征提取功能,。而輸出模塊則負責顯示輸入的測試者信息及指紋的比對結(jié)果,。
存儲模塊分為靜態(tài)存儲器RAM和閃存Flash。其中靜態(tài)存儲器RAM作為系統(tǒng)存放臨時數(shù)據(jù)的單元,;閃存Flash用于存放控制系統(tǒng)建檔后的指紋數(shù)據(jù)和識別比對程序,。
控制系統(tǒng)用來協(xié)調(diào)各個外設(shè)的工作,實現(xiàn)狀態(tài)的控制以及設(shè)備間的數(shù)據(jù)通信等操作,。主要操作包括:電路的輸入信號,、對指紋傳感器的啟動、指紋數(shù)據(jù)的讀取,、指紋圖像的處理以及數(shù)據(jù)的存儲,、匹配和結(jié)果的輸出。
2.2 系統(tǒng)軟件總體設(shè)計
根據(jù)系統(tǒng)的設(shè)計要求,,需要建立相配套的指紋識別庫并對需要識別的指紋進行識別,。設(shè)計中將預(yù)處理過程中耗時較大的部分用FPGA實現(xiàn),將處理過程復(fù)雜的運算用軟件編程的形式實現(xiàn),,最終由MICOBLAZE軟核完成軟件的執(zhí)行以及軟硬件之間的協(xié)調(diào),。指紋識別系統(tǒng)的軟件運行流程如圖2所示。
3 指紋識別系統(tǒng)的設(shè)計與實現(xiàn)
3.1 指紋傳感器的設(shè)計與實現(xiàn)[4]
指紋采集卡是指紋識別系統(tǒng)硬件的重要組成部分,,由指紋傳感器及其外圍電路組成,,其功能是采集指紋紋理圖像。本系統(tǒng)采用美國富士通公司的MBF200電容指紋采集傳感器實現(xiàn)對指紋圖像的采集,。該指紋傳感器最大優(yōu)點是在保證指紋圖像高分辨率的同時減少了傳感器的尺寸,。
MFB200芯片內(nèi)置的SPI接口可以極大地降低芯片對硬件的依賴,,只需要5條信號線就可以與微處理器通信,因此使用SPI接口方式將MBF200作為從設(shè)備與FPGA相互連接,。
3.2 控制模塊的設(shè)計與實現(xiàn)
協(xié)調(diào)各個指紋處理子模塊的運行,,實現(xiàn)各個指紋處理子模塊與系統(tǒng)片內(nèi)MICOBLAZE嵌入式處理器以及存儲設(shè)備之間的通信,是控制模塊的主要功能,。
設(shè)計時指紋控制模塊預(yù)留PLB總線主從端口各一個。在MICOBLAZE處理器通過指紋采集器取指紋圖像數(shù)據(jù),,存儲到靜態(tài)存儲單元RAM后,,處理器通過PLB總線訪問指紋控制模塊的總線從端口,設(shè)定控制模塊的操作地址和操作類型,。完成配置后,,控制單元獲得總線使用權(quán),通過主端口發(fā)送相關(guān)指令給圖像處理模塊,,讓其根據(jù)處理器規(guī)定的處理方式,,從給定的地址單元取出圖像數(shù)據(jù)進行處理。最后將處理完成后的新數(shù)據(jù)存儲到片內(nèi)的FLASH或存儲器中,。
3.3 指紋圖像處理模塊的設(shè)計與實現(xiàn)
指紋圖像處理模塊包括:圖像的預(yù)處理和圖像的特征提取兩個子模塊,。這些模塊的計算量大,但是算法不是很復(fù)雜,。為了提高對圖像信息的處理速度,,將這些處理過程用硬件實現(xiàn),即通過System Generator完成該模塊的硬件電路設(shè)計,。
圖像預(yù)處理子模塊包括:平滑,、銳化、二值化以及細化四個部分[5],。指紋圖像平滑處理是指紋預(yù)處理的第一步,。考慮到在去除輸入噪聲的同時要較好地保證圖像的清晰度,,本模塊采用了中值濾波的方法,。中值濾波器的定義如式(1):
其中g(shù)(x,y),,f(x,,y)為像素的灰度值,即把f(x,,y)領(lǐng)域所有像素灰度值排序,,求處于中間位置的值代替f(x,y),。在SG中實現(xiàn)框框圖及平滑后的指紋圖像如圖3所示,。
經(jīng)過平滑處理后的指紋圖像會變得模糊,,通過圖像銳化技術(shù),使圖像的邊緣,、輪廓線以及圖像的細節(jié)變得清晰,。模塊采用Sobel微分算子進行銳化處理,處理模板如式(2)所示:
在SG中實現(xiàn)框框圖及銳化處理后的指紋圖像如圖4所示,。
圖像的二值化,,就是把灰度圖像轉(zhuǎn)變?yōu)楹诎紫嚅g的二值圖像,由于采集到的指紋圖像在不同區(qū)域深淺不一,,如對整幅圖像使用同一閾值進行二值分割,,會造成大量有用信息的丟失。故二值化子模塊使用自適應(yīng)局部閾值二值化的思想[6-7],,既將圖像分割成多個小塊,,對每個小塊進行分別計算,局部閾值的選取參考局部塊的各個像素,,而且選取的閾值應(yīng)盡量使該塊圖像內(nèi)大于該閾值的像素點數(shù)等于小于該閾值的像素點數(shù),,從而保持大量有用信息。在SG中實現(xiàn)框框圖,,及二值化后的指紋圖像如圖5所示,。
細化是把清晰但紋線粗細不均的二值指紋圖像轉(zhuǎn)化成線寬為一個像素的條紋中心點線圖像的過程,以便后續(xù)的特征提取過程能精確定位,。細化算法中將OPTA算法進行了優(yōu)化,,即滿足收斂性、連續(xù)性,、拓撲性和保持性,,又能在三叉點處完全細化,使圖像平滑,,保護紋線的特征,。
在圖像的特征提取個子模塊中,結(jié)合細化圖像的特點,,不對紋線做任何修復(fù)處理,,在細化指紋圖像上直接提取原始細節(jié)特征點集。在SG中實現(xiàn)框框圖及二值化后的指紋圖像如圖6所示,。特征端點用‘O’標注,,特征分叉點用‘+’標注,中心點用‘*’標注,。
3.4 指紋識別系統(tǒng)的軟件設(shè)計與實現(xiàn)
軟件設(shè)計包括:各個系統(tǒng)外設(shè)的驅(qū)動程序,,去偽特征點程序以及特征點匹配比對程序。通過C語言完成這些程序的編寫,然后通過EDK中自帶的嵌入式編譯器SDK完成相關(guān)的調(diào)試,。最后可以將編譯好的BIT文件下載到FPGA中,,完成相關(guān)的功能。由于本文討論的是SoPC的設(shè)計,,在這里就不做詳細介紹,。
4 系統(tǒng)性能分析及測試結(jié)果
4.1 系統(tǒng)的性能分析
在設(shè)計時,將系統(tǒng)劃分成了若干小的模塊,,便于實現(xiàn)和調(diào)試,。其次將運算量大、但是實現(xiàn)相對簡單的模塊用硬件實現(xiàn),;主要通過SG完成相關(guān)的編程,,在簡單電路設(shè)計時通常使用Verilog語言直接編寫,而有些特定算法實現(xiàn)時則通過Matlab語言輔助編寫完成設(shè)計,。此外SG使用了Xilinx經(jīng)過優(yōu)化的IP核和庫函數(shù),很好地完成系統(tǒng)的圖像平滑,、銳化,、細化以及特征點提取算法所要用到的運算操作。在保證系統(tǒng)實時性的同時,,達到優(yōu)化設(shè)計的效果,;而且整個設(shè)計都是以圖形化界面為主,可以根據(jù)設(shè)計需要輕松完成模塊的添加與裁剪,。
在實現(xiàn)比較復(fù)雜的算法,,如匹配比對算法、去偽特征點算法時,,考慮到算法的復(fù)雜,,通過硬件實現(xiàn)需要占用大量的資源,所以將其以C語言的方式實現(xiàn),。并將其下載到MICOBLAZE軟核中,,便于處理器調(diào)用和實現(xiàn)。
4.2 系統(tǒng)的測試結(jié)果
表1是輸入不同指紋情況下,,即分別將左右手拇指和中指錄入100次后的系統(tǒng)測試結(jié)果,。從表1可以看出系統(tǒng)的平均識別率在93%左右,而誤識率和拒識率都在3%以下,,表明在性能上基本滿足設(shè)計需要,。
本文采用EDK與System Generator平臺,實現(xiàn)了基于FPGA的指紋識別系統(tǒng),。設(shè)計中利用Xilinx公司的EDK和SG(System Generator)開發(fā)軟件,,完成MICOBLAZE軟核的設(shè)計,并添加自定義指令與硬件邏輯,構(gòu)成完善的識別系統(tǒng),。該方法由于采用了可編程邏輯器件,,使得設(shè)計靈活、易于修改,,大大縮短了設(shè)計的周期,。此外該系統(tǒng)中指紋圖像處理部分的實現(xiàn)都是采用硬件設(shè)計思想進行設(shè)計和編寫,較大地改善了系統(tǒng)的運行速度,,使系統(tǒng)在滿足實時性要求的同時,,也滿足了數(shù)據(jù)高速處理的需要。
參考文獻
[1] 郭書軍,,王玉花,,葛紉秋.嵌入式處理器及應(yīng)用[M].北京:清華大學(xué)出版社,2004.
[2] 朱智平,,胡榮強,,陳尚志.基于SoPC的指紋識別系統(tǒng)設(shè)計[J].電子元器件,2007(4):41-43.
[3] 郭海波,,王金海,,劉長春,等.基于NIOS II的高速嵌入式指紋識別系統(tǒng)[J].國外電子元器件,,2007(1):24-26.
[4] 普措才人,,馮旭.基于含DSP的ARM嵌入式指紋識別系統(tǒng)的設(shè)計與實現(xiàn)[J].自動化與儀器儀表,2010(3):44-46.
[5] 李晨丹,,徐進.指紋圖像預(yù)處理和特征提取算法的Matlab實現(xiàn)[J].計算機工程與科學(xué),,2009(11):61-64.
[6] 羅文淵,祝忠明,,劉勇.用FPGA實現(xiàn)優(yōu)化的指紋識別預(yù)處理算法[J].電子技術(shù)應(yīng)用,,2009(7):71-74.
[7] 胡國安,艾明晶,,駱志勇.基于SoPC的指紋識別系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,,2006(8):96-186.