鄭州廣播電視大學(xué) 王民川
指紋識(shí)別系統(tǒng)設(shè)計(jì)方法研究
鄭州廣播電視大學(xué) 王民川
生物識(shí)別技術(shù)是利用人的生物特征進(jìn)行身份認(rèn)證的技術(shù),人的指紋就是生物特征之一。隨著光學(xué)技術(shù)和光學(xué)儀器加工工藝的進(jìn)步,各種采集指紋圖案進(jìn)行身份認(rèn)證的系統(tǒng)和設(shè)備中需要配備的高清晰、無(wú)畸變光學(xué)采集儀也達(dá)到了很高的水平,確??梢陨筛哔|(zhì)量的指紋圖像。
該項(xiàng)目利用嵌入式軟件來(lái)實(shí)現(xiàn)系統(tǒng)的管理,利用硬件來(lái)實(shí)現(xiàn)識(shí)別算法,保證了系統(tǒng)功能的完整性和識(shí)別的正確性。而識(shí)別算法我們采用美國(guó)FBI推薦的特征點(diǎn)匹配算法來(lái)實(shí)現(xiàn)指紋的識(shí)別,保證了系統(tǒng)的實(shí)現(xiàn)。
系統(tǒng)采用xilinx公司Spartan-3E系列FPGA作為核心的控制和運(yùn)算芯片,數(shù)據(jù)采集模塊由富士通公司的MBF200電容式指紋傳感器來(lái)完成,MBF200指紋傳感器可以完成指紋圖像的采集并用其自帶的A/D轉(zhuǎn)換器將指紋圖像轉(zhuǎn)換成數(shù)字信號(hào),利用SPI接口傳送至FPGA進(jìn)行存儲(chǔ)。
系統(tǒng)操作時(shí)首先利用鍵盤選擇指紋存儲(chǔ)模式,將獲得的指紋圖像信息存儲(chǔ)到FLASH中作為指紋數(shù)據(jù)庫(kù),然后切換到指紋識(shí)別模式,再利用上述方法獲得指紋圖像信息。圖像預(yù)處理的主要步驟包括:灰度值歸一化、圖像分割、濾波、圖像增強(qiáng)、二值化和細(xì)化等。本設(shè)計(jì)結(jié)合細(xì)化圖像的特點(diǎn),提出了一種基于非徹底細(xì)化圖像的指紋細(xì)節(jié)提取算法。在不對(duì)紋線做任何修復(fù)處理的情況下,直接提取原始細(xì)節(jié)特征點(diǎn)集。然后分析圖像中存在的各類噪聲及其特點(diǎn),利用偽特征點(diǎn)在數(shù)學(xué)形態(tài)學(xué)上的分布規(guī)律,將各類噪聲引起的偽特征點(diǎn)分別予以刪除,將最終保留的特征點(diǎn)集合作為真正特征點(diǎn)的集合。
傳感器MBF200具有高性能、低功耗和低成本等優(yōu)點(diǎn),屬于電容性傳感器。其電容性傳感器陣列由二維金屬電極組成,所有金屬電極充當(dāng)一個(gè)電容板,接觸的手指充當(dāng)?shù)诙€(gè)電容板,器件表面的鈍化層作為兩板的絕緣層。當(dāng)手指觸摸傳感器表面時(shí),指紋的高低不平就會(huì)在傳感器陣列上產(chǎn)生變化的電容,從而引起二維陣列上電壓的變化,并形成指紋傳感圖像。
在設(shè)計(jì)中我們用EDK在FPGA內(nèi)部嵌入一個(gè)32位處理器,然后將此處理器作為一個(gè)子模塊,在ISE中引用此子模塊,來(lái)完成整個(gè)設(shè)計(jì)。在這里簡(jiǎn)要介紹ISE和EDK開發(fā)環(huán)境。其中,原理圖輸入可使用第3方軟件ECS來(lái)完成,測(cè)試臺(tái)輸入可使用圖形化的HDL Bencher來(lái)完成,狀態(tài)圖輸入可使用StateCAD來(lái)完成,前、后仿真則可使用Modesim XE來(lái)完成。一般在Synplify中建立工程、輸入文件和綜合,在Modelsim中新建工程并作仿真,用ISE的Design Manager來(lái)完成,再運(yùn)行JTAG編程器下載。
本設(shè)計(jì)中采用的是富士通的MBF200指紋傳感器,采用SPI模式,/S/C/S為MBF200的使能端,SCLK為MBF200的系統(tǒng)時(shí)鐘,當(dāng)需要采集指紋信號(hào)時(shí),F(xiàn)PGA向/S/C/S發(fā)送低電平,則MBF200開始工作。FPGA通過(guò)MOSI向MBF200發(fā)送控制命令,控制MBF200的數(shù)據(jù)輸出方式和傳輸模式。
本系統(tǒng)在Spartan-3E開發(fā)板上嵌入一個(gè)Microblaze軟核來(lái)進(jìn)行數(shù)據(jù)處理,首先將SPI口傳輸進(jìn)來(lái)的數(shù)據(jù)送入SDRAM進(jìn)行存儲(chǔ),開發(fā)板上帶有32M的SDRAM,完全可以存儲(chǔ)很多張指紋數(shù)據(jù)。RS232通信和鍵盤操作模塊的操作均可從EDK 9.1i開發(fā)軟件中獲得MicroBlaze控制器的IP核,然后直接將PC與Spartan-3E通過(guò)串口鏈接,鍵盤可以連接至Spartan-3E的PS2口。
MBF200具有19個(gè)控制寄存器,MBF200的初始化主要是對(duì)控制寄存器賦初值,CTRLB必須在程序的最開始對(duì)它的位0和位2置“1”,使能MBF200的CTRLB位也應(yīng)置為“1”,使能MBF200內(nèi)部震蕩時(shí)鐘也應(yīng)做出相應(yīng)的設(shè)置。
指紋數(shù)據(jù)采集通過(guò)軟件來(lái)實(shí)現(xiàn),工作流程如下:上電,初始化MBF200,拉低/S/C/S使能,F(xiàn)PGA由MISO發(fā)送0x02信號(hào),使能MBF200進(jìn)入寫狀態(tài)。在本設(shè)計(jì)中,寫入0x03至CTRLA,拉高/S/C/S使能,等待傳感器獲取圖像并進(jìn)行圖像轉(zhuǎn)換。可以通過(guò)判斷接收到數(shù)據(jù)的數(shù)量來(lái)判斷一行數(shù)據(jù)是否接受完畢。
MBF200的讀、寫2個(gè)狀態(tài)分為WRITE和READ。其中又分寫命令、寫地址、讀數(shù)據(jù)等幾種狀態(tài)。所以定義了write_data、write_cmd、write_adr、read_data等4個(gè)狀態(tài)機(jī)。在指紋數(shù)據(jù)存儲(chǔ)軟件實(shí)現(xiàn)設(shè)計(jì)中,數(shù)據(jù)采集至FPGA后,臨時(shí)存儲(chǔ)至開發(fā)板自帶的512Mb DDR SDRAM中。一般在上電過(guò)程中需設(shè)置MR,主要將突發(fā)長(zhǎng)度、突發(fā)類型、CAS延遲等信息存儲(chǔ)在MR中,CAS代表的時(shí)間當(dāng)列地址給出后,SDRAM需要多少個(gè)時(shí)鐘周期才能在數(shù)據(jù)線上給出數(shù)據(jù)。在指紋圖像預(yù)處理軟件實(shí)現(xiàn)設(shè)計(jì)中,Spartan-3E系列FPGA內(nèi)部能嵌入一個(gè)32位的RISC處理器,此處理器完全可以實(shí)現(xiàn)這些運(yùn)算,提高系統(tǒng)的執(zhí)行效率并降低系統(tǒng)的開發(fā)難度。
本文以FPGA作為核心控制器件,簡(jiǎn)單介紹了實(shí)現(xiàn)指紋圖像的采集、存儲(chǔ)、處理和比對(duì)的方法和過(guò)程,完成了對(duì)指紋圖像的有效識(shí)別,隨著網(wǎng)絡(luò)和現(xiàn)代化辦公的發(fā)展,該識(shí)別系統(tǒng)將具有更加廣泛的應(yīng)用前景。