《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的指紋識別系統的設計與實現
基于FPGA的指紋識別系統的設計與實現
來源:電子技術應用2011年第4期
鄭 駿,張 丹,潘 靜
南京工業大學 電子與信息工程學院,江蘇 南京210009
摘要: 為了提高指紋識別系統的實時性和處理速度,設計和實現了一種基于FPGA的嵌入式指紋識別系統。該系統采用處理器結合自定義硬件邏輯的方法,以下載到FPGA的MICOBLAZE嵌入式軟核為系統控制模塊,運用FPGA路基單元實現指紋圖像的處理。在設計中,指紋圖像處理的算法通過SG(System Generator)軟件設計,采用Matlab語言和Verilog語音混合編寫的方式實現專用的處理模塊,較大地提高了系統的處理速度。
中圖分類號: TP311
文獻標識碼: A
文章編號: 0258-7998(2011)04-0055-03
Design and implementation of a fingerprint identification system based on FPGA
Zheng Jun,Zhang Dan,Pan Jing
Electronic and Information Engineering Institute Nanjing University of Technology, Nanjing 210009,China
Abstract: To improve the high speech requirement and efficiency of the fingerprint identification system, a kind of fingerprint identification system based on FPGA is presented. The CPU integrating with user's self-defining logic is appeared in the system. MICOBLAZE embedded IP core CPU which has been downloaded to FPGA(field programmable gate array) acts as the controller of the system, and FPGA’s logic units are used to implement the special-purpose of fingerprint image manipulation. The most of the fingerprint image manipulation modules are designed in the SG(system generator) by Matlab language and Verilog language. It greatly raises the system speed.
Key words : fingerprint identification;FPGA;MICOBLAZE;embedded


 指紋識別作為生物特征識別的一種方法,在身份識別上有著其他識別方法不可比擬的優越性:指紋具有唯一性、終生不變性、難以復制、易獲取等優點。傳統的指紋識別系統基于PC機,雖然系統的識別速度快,樣本存儲量大,但存在結構體積大、成本高、移動性能差的缺點;采用DSP組成的識別系統又存在外圍電路復雜、設計開發時間長、系統可擴展性差的問題。
    本文給出了一種基于Xilinx公司FPGA的指紋識別系統設計方法。利用Xilinx公司的EDK和SG(System Generator)開發軟件,創建配置MICOBLAZE軟核,并添加自定義指令與系統邏輯相結合構成完善的SoPC系統[1]。該方法采用硬件實現圖像的預處理以及識別的部分算法,具有靈活的設計方式,可裁剪、可擴充,并具備系統軟硬件可協同設計的特點,極大地提高了處理速度,滿足了系統的實時性要求。
1 指紋識別的基本原理
    指紋識別是指從已得到的指紋數據庫中查找出與輸入指紋相同的指紋數據,達到識別輸入者身份的目的。指紋識別系統主要包括指紋的采集、指紋圖像預處理和特征提取、特征模板存儲、指紋圖像的特征匹配以及輸出顯示匹配結果[2-3]。指紋識別系統的基本原理框圖如圖1所示。

2 指紋識別系統設計
2.1 系統硬件總體設計

    系統主要實現指紋的錄入和識別。先通過指紋傳感器獲取指紋圖像信息,再由指紋處理模塊進行圖像的預處理、特征提取等相關操作,最后保存到存取單元中建立指紋庫。識別時,同樣通過指紋傳感器錄入待識別的指紋,再經過指紋處理模塊完成圖像處理以及特征提取,然后將提取出的指紋信息與指紋庫中信息進行匹配,顯示匹配結果。
    識別系統由指紋傳感器、系統控制模塊、指紋處理模塊、存儲模塊、通信接口模塊、輸入輸出模塊等部分組成。指紋的采集通過指紋傳感器完成,將指紋轉換成具有一定灰度級的數字圖像。在控制模塊的作用下,通過接口電路的控制,將錄入的指紋圖像輸入至識別系統。
    指紋處理模塊主要完成指紋的預處理和指紋的特征提取功能。而輸出模塊則負責顯示輸入的測試者信息及指紋的比對結果。
    存儲模塊分為靜態存儲器RAM和閃存Flash。其中靜態存儲器RAM作為系統存放臨時數據的單元;閃存Flash用于存放控制系統建檔后的指紋數據和識別比對程序。
    控制系統用來協調各個外設的工作,實現狀態的控制以及設備間的數據通信等操作。主要操作包括:電路的輸入信號、對指紋傳感器的啟動、指紋數據的讀取、指紋圖像的處理以及數據的存儲、匹配和結果的輸出。
2.2 系統軟件總體設計
    根據系統的設計要求,需要建立相配套的指紋識別庫并對需要識別的指紋進行識別。設計中將預處理過程中耗時較大的部分用FPGA實現,將處理過程復雜的運算用軟件編程的形式實現,最終由MICOBLAZE軟核完成軟件的執行以及軟硬件之間的協調。指紋識別系統的軟件運行流程如圖2所示。

3 指紋識別系統的設計與實現
3.1 指紋傳感器的設計與實現[4]

    指紋采集卡是指紋識別系統硬件的重要組成部分,由指紋傳感器及其外圍電路組成,其功能是采集指紋紋理圖像。本系統采用美國富士通公司的MBF200電容指紋采集傳感器實現對指紋圖像的采集。該指紋傳感器最大優點是在保證指紋圖像高分辨率的同時減少了傳感器的尺寸。
    MFB200芯片內置的SPI接口可以極大地降低芯片對硬件的依賴,只需要5條信號線就可以與微處理器通信,因此使用SPI接口方式將MBF200作為從設備與FPGA相互連接。
3.2 控制模塊的設計與實現
    協調各個指紋處理子模塊的運行,實現各個指紋處理子模塊與系統片內MICOBLAZE嵌入式處理器以及存儲設備之間的通信,是控制模塊的主要功能。
    設計時指紋控制模塊預留PLB總線主從端口各一個。在MICOBLAZE處理器通過指紋采集器取指紋圖像數據,存儲到靜態存儲單元RAM后,處理器通過PLB總線訪問指紋控制模塊的總線從端口,設定控制模塊的操作地址和操作類型。完成配置后,控制單元獲得總線使用權,通過主端口發送相關指令給圖像處理模塊,讓其根據處理器規定的處理方式,從給定的地址單元取出圖像數據進行處理。最后將處理完成后的新數據存儲到片內的FLASH或存儲器中。
3.3 指紋圖像處理模塊的設計與實現
    指紋圖像處理模塊包括:圖像的預處理和圖像的特征提取兩個子模塊。這些模塊的計算量大,但是算法不是很復雜。為了提高對圖像信息的處理速度,將這些處理過程用硬件實現,即通過System Generator完成該模塊的硬件電路設計。
    圖像預處理子模塊包括:平滑、銳化、二值化以及細化四個部分[5]。指紋圖像平滑處理是指紋預處理的第一步??紤]到在去除輸入噪聲的同時要較好地保證圖像的清晰度,本模塊采用了中值濾波的方法。中值濾波器的定義如式(1):

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

    經過平滑處理后的指紋圖像會變得模糊,通過圖像銳化技術,使圖像的邊緣、輪廓線以及圖像的細節變得清晰。模塊采用Sobel微分算子進行銳化處理,處理模板如式(2)所示:
    
    在SG中實現框框圖及銳化處理后的指紋圖像如圖4所示。

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

    細化是把清晰但紋線粗細不均的二值指紋圖像轉化成線寬為一個像素的條紋中心點線圖像的過程,以便后續的特征提取過程能精確定位。細化算法中將OPTA算法進行了優化,即滿足收斂性、連續性、拓撲性和保持性,又能在三叉點處完全細化,使圖像平滑,保護紋線的特征。
    在圖像的特征提取個子模塊中,結合細化圖像的特點,不對紋線做任何修復處理,在細化指紋圖像上直接提取原始細節特征點集。在SG中實現框框圖及二值化后的指紋圖像如圖6所示。特征端點用‘O’標注,特征分叉點用‘+’標注,中心點用‘*’標注。

3.4 指紋識別系統的軟件設計與實現
    軟件設計包括:各個系統外設的驅動程序,去偽特征點程序以及特征點匹配比對程序。通過C語言完成這些程序的編寫,然后通過EDK中自帶的嵌入式編譯器SDK完成相關的調試。最后可以將編譯好的BIT文件下載到FPGA中,完成相關的功能。由于本文討論的是SoPC的設計,在這里就不做詳細介紹。
4 系統性能分析及測試結果
4.1 系統的性能分析

    在設計時,將系統劃分成了若干小的模塊,便于實現和調試。其次將運算量大、但是實現相對簡單的模塊用硬件實現;主要通過SG完成相關的編程,在簡單電路設計時通常使用Verilog語言直接編寫,而有些特定算法實現時則通過Matlab語言輔助編寫完成設計。此外SG使用了Xilinx經過優化的IP核和庫函數,很好地完成系統的圖像平滑、銳化、細化以及特征點提取算法所要用到的運算操作。在保證系統實時性的同時,達到優化設計的效果;而且整個設計都是以圖形化界面為主,可以根據設計需要輕松完成模塊的添加與裁剪。
    在實現比較復雜的算法,如匹配比對算法、去偽特征點算法時,考慮到算法的復雜,通過硬件實現需要占用大量的資源,所以將其以C語言的方式實現。并將其下載到MICOBLAZE軟核中,便于處理器調用和實現。
4.2 系統的測試結果
    表1是輸入不同指紋情況下,即分別將左右手拇指和中指錄入100次后的系統測試結果。從表1可以看出系統的平均識別率在93%左右,而誤識率和拒識率都在3%以下,表明在性能上基本滿足設計需要。

    本文采用EDK與System Generator平臺,實現了基于FPGA的指紋識別系統。設計中利用Xilinx公司的EDK和SG(System Generator)開發軟件,完成MICOBLAZE軟核的設計,并添加自定義指令與硬件邏輯,構成完善的識別系統。該方法由于采用了可編程邏輯器件,使得設計靈活、易于修改,大大縮短了設計的周期。此外該系統中指紋圖像處理部分的實現都是采用硬件設計思想進行設計和編寫,較大地改善了系統的運行速度,使系統在滿足實時性要求的同時,也滿足了數據高速處理的需要。
參考文獻
[1] 郭書軍,王玉花,葛紉秋.嵌入式處理器及應用[M].北京:清華大學出版社,2004.
[2] 朱智平,胡榮強,陳尚志.基于SoPC的指紋識別系統設計[J].電子元器件,2007(4):41-43.
[3] 郭海波,王金海,劉長春,等.基于NIOS II的高速嵌入式指紋識別系統[J].國外電子元器件,2007(1):24-26.
[4] 普措才人,馮旭.基于含DSP的ARM嵌入式指紋識別系統的設計與實現[J].自動化與儀器儀表,2010(3):44-46.
[5] 李晨丹,徐進.指紋圖像預處理和特征提取算法的Matlab實現[J].計算機工程與科學,2009(11):61-64.
[6] 羅文淵,祝忠明,劉勇.用FPGA實現優化的指紋識別預處理算法[J].電子技術應用,2009(7):71-74.
[7] 胡國安,艾明晶,駱志勇.基于SoPC的指紋識別系統的設計與實現[J].計算機工程與設計,2006(8):96-186.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美乱子伦xxxx96 | 亚州va | 一级一级人与动毛片 | 久久国产免费观看精品1 | 在线观看嗯啊成人动作片 | 五月天婷婷免费观看视频在线 | 麻豆成人在线视频 | 欧美日韩亚洲视频 | 国产精品h片在线播放 | 成人在线视频播放 | 男女一级毛片免费播放 | 国产精品成人一区二区 | 亚欧免费视频 | 免费乱理伦片在线观看八戒 | 欧美性大战久久久久久久蜜桃 | 日本黄色大片免费观看 | 成人国产在线视频在线观看 | 国产最强大片免费视频 | 免费一级黄 | 欧美特黄特刺激a一级淫片 欧美特黄视频在线观看 | 亚洲欧美人成综合导航 | 欧美成人高清视频 | 老湿影院在线播放 | free性欧美69| 欧美精品在线免费 | 国产成人精品在线 | 中文字幕在线观看一区 | 亚洲激情影院 | 毛片段| 亚洲精品人成网在线播放影院 | 欧美色成人 | 国产成人久久精品激情91 | 亚洲欧美一区二区三区图片 | 日韩一区二区三区精品 | 国产一级特黄aa大片在线 | 亚洲精品手机在线 | 欧美激情图区 | 国产高清在线精品一区a | 操操免费视频 | 一本大道道无香蕉综合在线 | 国产大臿蕉香蕉大视频女 |