<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的指紋識別系統的設計與實(shí)現

基于FPGA的指紋識別系統的設計與實(shí)現

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

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

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

1 指紋識別的基本原理

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


2 指紋識別系統設計

本文引用地址:http://dyxdggzs.com/article/201706/349193.htm

2.1 系統硬件總體設計

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

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

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

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

2.2 系統軟件總體設計

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


3 指紋識別系統的設計與實(shí)現


3.1 指紋傳感器的設計與實(shí)現[4]

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

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

3.2 控制模塊的設計與實(shí)現

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

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

3.3 指紋圖像處理模塊的設計與實(shí)現

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

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

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

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

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

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

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

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


3.4 指紋識別系統的軟件設計與實(shí)現

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

4 系統性能分析及測試結果


4.1 系統的性能分析

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

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

4.2 系統的測試結果

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

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



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>