《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的指紋識別系統(tǒng)的設(shè)計與實現(xiàn)
基于FPGA的指紋識別系統(tǒng)的設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第4期
鄭 駿,張 丹,潘 靜
南京工業(yè)大學(xué) 電子與信息工程學(xué)院,江蘇 南京210009
摘要: 為了提高指紋識別系統(tǒng)的實時性和處理速度,設(shè)計和實現(xiàn)了一種基于FPGA的嵌入式指紋識別系統(tǒng)。該系統(tǒng)采用處理器結(jié)合自定義硬件邏輯的方法,以下載到FPGA的MICOBLAZE嵌入式軟核為系統(tǒng)控制模塊,運用FPGA路基單元實現(xiàn)指紋圖像的處理。在設(shè)計中,指紋圖像處理的算法通過SG(System Generator)軟件設(shè)計,采用Matlab語言和Verilog語音混合編寫的方式實現(xiàn)專用的處理模塊,較大地提高了系統(tǒng)的處理速度。
中圖分類號: TP311
文獻(xiàn)標(biāo)識碼: 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


 指紋識別作為生物特征識別的一種方法,在身份識別上有著其他識別方法不可比擬的優(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ù),達(dá)到識別輸入者身份的目的。指紋識別系統(tǒng)主要包括指紋的采集、指紋圖像預(yù)處理和特征提取、特征模板存儲、指紋圖像的特征匹配以及輸出顯示匹配結(jié)果[2-3]。指紋識別系統(tǒng)的基本原理框圖如圖1所示。

2 指紋識別系統(tǒng)設(shè)計
2.1 系統(tǒng)硬件總體設(shè)計

    系統(tǒng)主要實現(xiàn)指紋的錄入和識別。先通過指紋傳感器獲取指紋圖像信息,再由指紋處理模塊進(jìn)行圖像的預(yù)處理、特征提取等相關(guān)操作,最后保存到存取單元中建立指紋庫。識別時,同樣通過指紋傳感器錄入待識別的指紋,再經(jīng)過指紋處理模塊完成圖像處理以及特征提取,然后將提取出的指紋信息與指紋庫中信息進(jìn)行匹配,顯示匹配結(jié)果。
    識別系統(tǒng)由指紋傳感器、系統(tǒng)控制模塊、指紋處理模塊、存儲模塊、通信接口模塊、輸入輸出模塊等部分組成。指紋的采集通過指紋傳感器完成,將指紋轉(zhuǎn)換成具有一定灰度級的數(shù)字圖像。在控制模塊的作用下,通過接口電路的控制,將錄入的指紋圖像輸入至識別系統(tǒng)。
    指紋處理模塊主要完成指紋的預(yù)處理和指紋的特征提取功能。而輸出模塊則負(fù)責(zé)顯示輸入的測試者信息及指紋的比對結(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è)計要求,需要建立相配套的指紋識別庫并對需要識別的指紋進(jìn)行識別。設(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ù)進(jìn)行處理。最后將處理完成后的新數(shù)據(jù)存儲到片內(nèi)的FLASH或存儲器中。
3.3 指紋圖像處理模塊的設(shè)計與實現(xiàn)
    指紋圖像處理模塊包括:圖像的預(yù)處理和圖像的特征提取兩個子模塊。這些模塊的計算量大,但是算法不是很復(fù)雜。為了提高對圖像信息的處理速度,將這些處理過程用硬件實現(xiàn),即通過System Generator完成該模塊的硬件電路設(shè)計。
    圖像預(yù)處理子模塊包括:平滑、銳化、二值化以及細(xì)化四個部分[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ù),使圖像的邊緣、輪廓線以及圖像的細(xì)節(jié)變得清晰。模塊采用Sobel微分算子進(jìn)行銳化處理,處理模板如式(2)所示:
    
    在SG中實現(xiàn)框框圖及銳化處理后的指紋圖像如圖4所示。

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

    細(xì)化是把清晰但紋線粗細(xì)不均的二值指紋圖像轉(zhuǎn)化成線寬為一個像素的條紋中心點線圖像的過程,以便后續(xù)的特征提取過程能精確定位。細(xì)化算法中將OPTA算法進(jìn)行了優(yōu)化,即滿足收斂性、連續(xù)性、拓?fù)湫院捅3中裕帜茉谌纥c處完全細(xì)化,使圖像平滑,保護紋線的特征。
    在圖像的特征提取個子模塊中,結(jié)合細(xì)化圖像的特點,不對紋線做任何修復(fù)處理,在細(xì)化指紋圖像上直接提取原始細(xì)節(jié)特征點集。在SG中實現(xiàn)框框圖及二值化后的指紋圖像如圖6所示。特征端點用‘O’標(biāo)注,特征分叉點用‘+’標(biāo)注,中心點用‘*’標(biā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è)計,在這里就不做詳細(xì)介紹。
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)的圖像平滑、銳化、細(xì)化以及特征點提取算法所要用到的運算操作。在保證系統(tǒng)實時性的同時,達(dá)到優(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è)計思想進(jìn)行設(shè)計和編寫,較大地改善了系統(tǒng)的運行速度,使系統(tǒng)在滿足實時性要求的同時,也滿足了數(shù)據(jù)高速處理的需要。
參考文獻(xiàn)
[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] 李晨丹,徐進(jìn).指紋圖像預(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 天堂的男人 | 色客成人网 | 欧美精品手机在线 | 国偷自产一区二区免费视频 | 美女视频一区二区三区在线 | 五月婷婷之综合激情 | 国产成人久久综合漫画 | 久久r精品| 色播五月婷婷 | 99久久国内精品成人免费 | 久久亚洲国产 | 邱淑贞三级艳电影全集 | 国产在线观看免费 | 四虎4hutv永久在线影院 | 99在线视频观看 | 黄视频免费在线观看 | 四虎影视永久在线 | 爱爱一区 | 国产在线观看一区二区三区四区 | 伊人成人在线观看 | 国产男女爱视频在线观看 | 激情视频综合网 | 久久久精品中文字幕 | 99精品免费在线观看 | 天天摸天天看天天做天天爽 | 奇米777影院| 99成人国产精品视频 | 五月一区二区久久综合天堂 | 四色在线观看 | 777影视电视剧免费看 | 视频久久 | 成片免费观看视频在线网 | 国产成人综合在线视频 | 亚洲国产系列久久精品99人人 | 99久久精品免费看国产免费软件 | 国产一区二区在线视频 | 精品久久久久久国产91 | 国产com| 免费一级性片 | 久久久午夜视频 | runaway韩国电影免费完整版 |