新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的指紋識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

基于FPGA的指紋識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò) 收藏

作為生物特征識(shí)別的一種方法,在身份識(shí)別上有著其他識(shí)別方法不可比擬的優(yōu)越性:指紋具有唯一性、終生不變性、難以復(fù)制、易獲取等優(yōu)點(diǎn)。傳統(tǒng)的系統(tǒng)基于PC機(jī),雖然系統(tǒng)的識(shí)別速度快,樣本存儲(chǔ)量大,但存在結(jié)構(gòu)體積大、成本高、移動(dòng)性能差的缺點(diǎn);采用DSP組成的識(shí)別系統(tǒng)又存在外圍電路復(fù)雜、設(shè)計(jì)開(kāi)發(fā)時(shí)間長(zhǎng)、系統(tǒng)可擴(kuò)展性差的問(wèn)題。

本文給出了一種基于Xilinx公司系統(tǒng)設(shè)計(jì)方法。利用Xilinx公司的EDK和SG(System Generator)開(kāi)發(fā)軟件,創(chuàng)建配置軟核,并添加自定義指令與系統(tǒng)邏輯相結(jié)合構(gòu)成完善的SoPC系統(tǒng)[1]。該方法采用硬件實(shí)現(xiàn)圖像的預(yù)處理以及識(shí)別的部分算法,具有靈活的設(shè)計(jì)方式,可裁剪、可擴(kuò)充,并具備系統(tǒng)軟硬件可協(xié)同設(shè)計(jì)的特點(diǎn),極大地提高了處理速度,滿足了系統(tǒng)的實(shí)時(shí)性要求。

1 指紋識(shí)別的基本原理

指紋識(shí)別是指從已得到的指紋數(shù)據(jù)庫(kù)中查找出與輸入指紋相同的指紋數(shù)據(jù),達(dá)到識(shí)別輸入者身份的目的。指紋識(shí)別系統(tǒng)主要包括指紋的采集、指紋圖像預(yù)處理和特征提取、特征模板存儲(chǔ)、指紋圖像的特征匹配以及輸出顯示匹配結(jié)果[2-3]。指紋識(shí)別系統(tǒng)的基本原理框圖如圖1所示。


2 指紋識(shí)別系統(tǒng)設(shè)計(jì)

本文引用地址:http://butianyuan.cn/article/201706/349193.htm

2.1 系統(tǒng)硬件總體設(shè)計(jì)

系統(tǒng)主要實(shí)現(xiàn)指紋的錄入和識(shí)別。先通過(guò)指紋傳感器獲取指紋圖像信息,再由指紋處理模塊進(jìn)行圖像的預(yù)處理、特征提取等相關(guān)操作,最后保存到存取單元中建立指紋庫(kù)。識(shí)別時(shí),同樣通過(guò)指紋傳感器錄入待識(shí)別的指紋,再經(jīng)過(guò)指紋處理模塊完成圖像處理以及特征提取,然后將提取出的指紋信息與指紋庫(kù)中信息進(jìn)行匹配,顯示匹配結(jié)果。

識(shí)別系統(tǒng)由指紋傳感器、系統(tǒng)控制模塊、指紋處理模塊、存儲(chǔ)模塊、通信接口模塊、輸入輸出模塊等部分組成。指紋的采集通過(guò)指紋傳感器完成,將指紋轉(zhuǎn)換成具有一定灰度級(jí)的數(shù)字圖像。在控制模塊的作用下,通過(guò)接口電路的控制,將錄入的指紋圖像輸入至識(shí)別系統(tǒng)。
指紋處理模塊主要完成指紋的預(yù)處理和指紋的特征提取功能。而輸出模塊則負(fù)責(zé)顯示輸入的測(cè)試者信息及指紋的比對(duì)結(jié)果。

存儲(chǔ)模塊分為靜態(tài)存儲(chǔ)器RAM和閃存Flash。其中靜態(tài)存儲(chǔ)器RAM作為系統(tǒng)存放臨時(shí)數(shù)據(jù)的單元;閃存Flash用于存放控制系統(tǒng)建檔后的指紋數(shù)據(jù)和識(shí)別比對(duì)程序。

控制系統(tǒng)用來(lái)協(xié)調(diào)各個(gè)外設(shè)的工作,實(shí)現(xiàn)狀態(tài)的控制以及設(shè)備間的數(shù)據(jù)通信等操作。主要操作包括:電路的輸入信號(hào)、對(duì)指紋傳感器的啟動(dòng)、指紋數(shù)據(jù)的讀取、指紋圖像的處理以及數(shù)據(jù)的存儲(chǔ)、匹配和結(jié)果的輸出。

2.2 系統(tǒng)軟件總體設(shè)計(jì)

根據(jù)系統(tǒng)的設(shè)計(jì)要求,需要建立相配套的指紋識(shí)別庫(kù)并對(duì)需要識(shí)別的指紋進(jìn)行識(shí)別。設(shè)計(jì)中將預(yù)處理過(guò)程中耗時(shí)較大的部分用實(shí)現(xiàn),將處理過(guò)程復(fù)雜的運(yùn)算用軟件編程的形式實(shí)現(xiàn),最終由軟核完成軟件的執(zhí)行以及軟硬件之間的協(xié)調(diào)。指紋識(shí)別系統(tǒng)的軟件運(yùn)行流程如圖2所示。


3 指紋識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)


3.1 指紋傳感器的設(shè)計(jì)與實(shí)現(xiàn)[4]

指紋采集卡是指紋識(shí)別系統(tǒng)硬件的重要組成部分,由指紋傳感器及其外圍電路組成,其功能是采集指紋紋理圖像。本系統(tǒng)采用美國(guó)富士通公司的MBF200電容指紋采集傳感器實(shí)現(xiàn)對(duì)指紋圖像的采集。該指紋傳感器最大優(yōu)點(diǎn)是在保證指紋圖像高分辨率的同時(shí)減少了傳感器的尺寸。

MFB200芯片內(nèi)置的SPI接口可以極大地降低芯片對(duì)硬件的依賴,只需要5條信號(hào)線就可以與微處理器通信,因此使用SPI接口方式將MBF200作為從設(shè)備與相互連接。

3.2 控制模塊的設(shè)計(jì)與實(shí)現(xiàn)

協(xié)調(diào)各個(gè)指紋處理子模塊的運(yùn)行,實(shí)現(xiàn)各個(gè)指紋處理子模塊與系統(tǒng)片內(nèi)嵌入式處理器以及存儲(chǔ)設(shè)備之間的通信,是控制模塊的主要功能。

設(shè)計(jì)時(shí)指紋控制模塊預(yù)留PLB總線主從端口各一個(gè)。在MICOBLAZE處理器通過(guò)指紋采集器取指紋圖像數(shù)據(jù),存儲(chǔ)到靜態(tài)存儲(chǔ)單元RAM后,處理器通過(guò)PLB總線訪問(wèn)指紋控制模塊的總線從端口,設(shè)定控制模塊的操作地址和操作類(lèi)型。完成配置后,控制單元獲得總線使用權(quán),通過(guò)主端口發(fā)送相關(guān)指令給圖像處理模塊,讓其根據(jù)處理器規(guī)定的處理方式,從給定的地址單元取出圖像數(shù)據(jù)進(jìn)行處理。最后將處理完成后的新數(shù)據(jù)存儲(chǔ)到片內(nèi)的FLASH或存儲(chǔ)器中。

3.3 指紋圖像處理模塊的設(shè)計(jì)與實(shí)現(xiàn)

指紋圖像處理模塊包括:圖像的預(yù)處理和圖像的特征提取兩個(gè)子模塊。這些模塊的計(jì)算量大,但是算法不是很復(fù)雜。為了提高對(duì)圖像信息的處理速度,將這些處理過(guò)程用硬件實(shí)現(xiàn),即通過(guò)System Generator完成該模塊的硬件電路設(shè)計(jì)。

圖像預(yù)處理子模塊包括:平滑、銳化、二值化以及細(xì)化四個(gè)部分[5]。指紋圖像平滑處理是指紋預(yù)處理的第一步??紤]到在去除輸入噪聲的同時(shí)要較好地保證圖像的清晰度,本模塊采用了中值濾波的方法。中值濾波器的定義如式(1):

其中g(shù)(x,y),f(x,y)為像素的灰度值,即把f(x,y)領(lǐng)域所有像素灰度值排序,求處于中間位置的值代替f(x,y)。在SG中實(shí)現(xiàn)框框圖及平滑后的指紋圖像如圖3所示。

經(jīng)過(guò)平滑處理后的指紋圖像會(huì)變得模糊,通過(guò)圖像銳化技術(shù),使圖像的邊緣、輪廓線以及圖像的細(xì)節(jié)變得清晰。模塊采用Sobel微分算子進(jìn)行銳化處理,處理模板如式(2)所示:

在SG中實(shí)現(xiàn)框框圖及銳化處理后的指紋圖像如圖4所示。

圖像的二值化,就是把灰度圖像轉(zhuǎn)變?yōu)楹诎紫嚅g的二值圖像,由于采集到的指紋圖像在不同區(qū)域深淺不一,如對(duì)整幅圖像使用同一閾值進(jìn)行二值分割,會(huì)造成大量有用信息的丟失。故二值化子模塊使用自適應(yīng)局部閾值二值化的思想[6-7],既將圖像分割成多個(gè)小塊,對(duì)每個(gè)小塊進(jìn)行分別計(jì)算,局部閾值的選取參考局部塊的各個(gè)像素,而且選取的閾值應(yīng)盡量使該塊圖像內(nèi)大于該閾值的像素點(diǎn)數(shù)等于小于該閾值的像素點(diǎn)數(shù),從而保持大量有用信息。在SG中實(shí)現(xiàn)框框圖,及二值化后的指紋圖像如圖5所示。

細(xì)化是把清晰但紋線粗細(xì)不均的二值指紋圖像轉(zhuǎn)化成線寬為一個(gè)像素的條紋中心點(diǎn)線圖像的過(guò)程,以便后續(xù)的特征提取過(guò)程能精確定位。細(xì)化算法中將OPTA算法進(jìn)行了優(yōu)化,即滿足收斂性、連續(xù)性、拓?fù)湫院捅3中?,又能在三叉點(diǎn)處完全細(xì)化,使圖像平滑,保護(hù)紋線的特征。

在圖像的特征提取個(gè)子模塊中,結(jié)合細(xì)化圖像的特點(diǎn),不對(duì)紋線做任何修復(fù)處理,在細(xì)化指紋圖像上直接提取原始細(xì)節(jié)特征點(diǎn)集。在SG中實(shí)現(xiàn)框框圖及二值化后的指紋圖像如圖6所示。特征端點(diǎn)用‘O’標(biāo)注,特征分叉點(diǎn)用‘+’標(biāo)注,中心點(diǎn)用‘*’標(biāo)注。


3.4 指紋識(shí)別系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)

軟件設(shè)計(jì)包括:各個(gè)系統(tǒng)外設(shè)的驅(qū)動(dòng)程序,去偽特征點(diǎn)程序以及特征點(diǎn)匹配比對(duì)程序。通過(guò)C語(yǔ)言完成這些程序的編寫(xiě),然后通過(guò)EDK中自帶的嵌入式編譯器SDK完成相關(guān)的調(diào)試。最后可以將編譯好的BIT文件下載到FPGA中,完成相關(guān)的功能。由于本文討論的是SoPC的設(shè)計(jì),在這里就不做詳細(xì)介紹。

4 系統(tǒng)性能分析及測(cè)試結(jié)果


4.1 系統(tǒng)的性能分析

在設(shè)計(jì)時(shí),將系統(tǒng)劃分成了若干小的模塊,便于實(shí)現(xiàn)和調(diào)試。其次將運(yùn)算量大、但是實(shí)現(xiàn)相對(duì)簡(jiǎn)單的模塊用硬件實(shí)現(xiàn);主要通過(guò)SG完成相關(guān)的編程,在簡(jiǎn)單電路設(shè)計(jì)時(shí)通常使用Verilog語(yǔ)言直接編寫(xiě),而有些特定算法實(shí)現(xiàn)時(shí)則通過(guò)Matlab語(yǔ)言輔助編寫(xiě)完成設(shè)計(jì)。此外SG使用了Xilinx經(jīng)過(guò)優(yōu)化的IP核和庫(kù)函數(shù),很好地完成系統(tǒng)的圖像平滑、銳化、細(xì)化以及特征點(diǎn)提取算法所要用到的運(yùn)算操作。在保證系統(tǒng)實(shí)時(shí)性的同時(shí),達(dá)到優(yōu)化設(shè)計(jì)的效果;而且整個(gè)設(shè)計(jì)都是以圖形化界面為主,可以根據(jù)設(shè)計(jì)需要輕松完成模塊的添加與裁剪。

在實(shí)現(xiàn)比較復(fù)雜的算法,如匹配比對(duì)算法、去偽特征點(diǎn)算法時(shí),考慮到算法的復(fù)雜,通過(guò)硬件實(shí)現(xiàn)需要占用大量的資源,所以將其以C語(yǔ)言的方式實(shí)現(xiàn)。并將其下載到MICOBLAZE軟核中,便于處理器調(diào)用和實(shí)現(xiàn)。

4.2 系統(tǒng)的測(cè)試結(jié)果

表1是輸入不同指紋情況下,即分別將左右手拇指和中指錄入100次后的系統(tǒng)測(cè)試結(jié)果。從表1可以看出系統(tǒng)的平均識(shí)別率在93%左右,而誤識(shí)率和拒識(shí)率都在3%以下,表明在性能上基本滿足設(shè)計(jì)需要。

本文采用EDK與System Generator平臺(tái),實(shí)現(xiàn)了基于FPGA的指紋識(shí)別系統(tǒng)。設(shè)計(jì)中利用Xilinx公司的EDK和SG(System Generator)開(kāi)發(fā)軟件,完成MICOBLAZE軟核的設(shè)計(jì),并添加自定義指令與硬件邏輯,構(gòu)成完善的識(shí)別系統(tǒng)。該方法由于采用了可編程邏輯器件,使得設(shè)計(jì)靈活、易于修改,大大縮短了設(shè)計(jì)的周期。此外該系統(tǒng)中指紋圖像處理部分的實(shí)現(xiàn)都是采用硬件設(shè)計(jì)思想進(jìn)行設(shè)計(jì)和編寫(xiě),較大地改善了系統(tǒng)的運(yùn)行速度,使系統(tǒng)在滿足實(shí)時(shí)性要求的同時(shí),也滿足了數(shù)據(jù)高速處理的需要。



關(guān)鍵詞: 指紋識(shí)別 MICOBLAZE FPGA

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉