DIY你自己的指紋識(shí)別系統(tǒng),硬件原理,軟件流程,算法選擇
本系統(tǒng)采用Xilinx公司Spartan 3E系列FPGA作為核心控制芯片,通過(guò)FPC1011C指紋傳感器實(shí)現(xiàn)對(duì)指紋圖象的采集,利用SPI接口傳輸?shù)紽PGA進(jìn)行數(shù)據(jù)的存儲(chǔ),在內(nèi)嵌的MicroBlaze處理器的管理下,使用硬件電路對(duì)指紋圖象進(jìn)行指紋中心點(diǎn)求取、圖像修剪、可視化扇形、歸一化、Gabor濾波、特征編碼等處理,從而得到指紋特征點(diǎn)并存入指紋數(shù)據(jù)庫(kù)作為建檔模版。指紋比對(duì)時(shí),采用同樣的方法,得到比對(duì)模版,然后將比對(duì)模版與建檔模版利用指紋識(shí)別算法進(jìn)行比對(duì),得出比對(duì)結(jié)果。該項(xiàng)目利用嵌入式軟核實(shí)現(xiàn)系統(tǒng)的管理,利用硬件實(shí)現(xiàn)識(shí)別算法,保證了系統(tǒng)功能的完整性與識(shí)別的正確性。其識(shí)別速度將明顯快于通常使用的基于軟件實(shí)現(xiàn)的指紋識(shí)別系統(tǒng),且系統(tǒng)更加簡(jiǎn)單。該識(shí)別系統(tǒng)可用于門禁、考勤、證件管理等很多方面,具有很廣泛的應(yīng)用前景。
1、 硬件框圖及各模塊介紹:
系統(tǒng)采用xilinx公司Spartan-3E 系列FPGA作為核心的控制和運(yùn)算芯片,數(shù)據(jù)采集模塊由FPC1011C電容式指紋傳感器來(lái)完成,FPC1011C指紋傳感器可以完成指紋圖像的采集并用其自帶的A/D轉(zhuǎn)換器將指紋圖像轉(zhuǎn)換成數(shù)字信號(hào),利用SPI接口傳送至FPGA進(jìn)行處理。當(dāng)處理圖像數(shù)據(jù)時(shí),F(xiàn)PGA將通過(guò)其邏輯單元執(zhí)行指紋中心點(diǎn)求取、圖像修剪、可視化扇形、歸一化、Gabor濾波、特征編碼等一系列操作,從而獲得重要的指紋圖像信息。
處理之后的圖像會(huì)根據(jù)當(dāng)前的操作模式被存入FLASH中作為建檔模板,或者與當(dāng)前模板進(jìn)行匹配。工作前可用鍵盤對(duì)工作模式進(jìn)行選擇,另附帶有LCD顯示器用來(lái)顯示模式選擇和識(shí)別結(jié)果。
系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
軟件流程圖如圖2所示:
圖2 系統(tǒng)軟件流程圖
2、 項(xiàng)目關(guān)鍵技術(shù)及創(chuàng)新性:
2.1 傳感器的選擇
FPC1011C電容式指紋傳感器是瑞典FingerPrint Card公司推出的目前最先進(jìn)的電容式指紋傳感器。該款電容式指紋傳感器利用了該公司擁有專利的反射式探測(cè)技術(shù)(以往的電容式指紋傳感器采用的一般是直接式探測(cè)技術(shù)),使指紋傳感器的表面保護(hù)層厚度可以達(dá)到普通電容式指紋傳感器的100倍左右,因此使指紋傳感器具有更高的對(duì)干濕手指的適用性和更長(zhǎng)的使用壽命。
如表1所示,顯示了兩種主流電容式傳感器各自的優(yōu)缺點(diǎn):
表1 指紋傳感器比較
參數(shù) | MBF200固態(tài)電容傳感器 | FPC1011C電容式指紋傳感器 |
采集原理 | 電容式,直接探測(cè)法 | 電容式,反射式探測(cè)法 |
分辨率 | 508DPI | 363DPI |
點(diǎn)陣數(shù) | 256×300 | 152×200 |
單幅圖像大小 | 76K | 30K |
采集窗口大小 | 24×24mm | 15×12mm |
抗靜電指標(biāo) | ±10 kV | ±15 kV |
操作溫度 | -20°C to +85°C | -20°C to +85°C |
使用壽命 | 未公布 | 一百萬(wàn)次 |
環(huán)境濕度 | 未公布 | 95% |
干手指適應(yīng)性 | 一般 | 良好 |
濕手指適應(yīng)性 | 較差 | 良好 |
2.2 指紋算法選擇
指紋圖像有兩種結(jié)構(gòu),即全局結(jié)構(gòu)和局部結(jié)構(gòu)。全局結(jié)構(gòu)是指指紋脊線和谷線的全局模式,局部結(jié)構(gòu)是指在細(xì)節(jié)點(diǎn)處的具體的模式。傳統(tǒng)的指紋識(shí)別大都設(shè)法提取細(xì)節(jié)點(diǎn),而這種方法有一些不足之處:第一,它只利用了指紋圖像中的一小部分信息(細(xì)節(jié)點(diǎn)),丟失了豐富的結(jié)構(gòu)信息,指紋的紋線結(jié)構(gòu)不能由細(xì)節(jié)點(diǎn)完全表達(dá)出來(lái);第二,細(xì)節(jié)點(diǎn)提取過(guò)程中,由于噪聲的影響,很容易產(chǎn)生虛假細(xì)節(jié)點(diǎn)和丟失真正的細(xì)節(jié)點(diǎn),在指紋的受損區(qū)域這種現(xiàn)象更為突出;第三,由于每個(gè)指紋的細(xì)節(jié)點(diǎn)數(shù)都不相同,產(chǎn)生出了特征向量長(zhǎng)度不同,不利于快速匹配;第四,特征匹配時(shí)細(xì)節(jié)點(diǎn)的相對(duì)未知隨指紋的彈性變形而改變,影響了匹配精度。為了克服基于細(xì)節(jié)點(diǎn)的指紋識(shí)別算法的局限性,我們這里采用了基于指紋全局和局部特征的匹配算法,這種方法對(duì)指紋的表達(dá)充分利用了指紋的紋理結(jié)構(gòu)特征,不僅包含了指紋的全局特征還包含了脊和谷的局部特征。
我們所采用的算法主要有兩大優(yōu)點(diǎn):
快速性:依據(jù)算法是否依賴中心點(diǎn),指紋細(xì)節(jié)匹配算法可分為兩類:基于中心點(diǎn)的匹配算法和非中心點(diǎn)匹配算法。由于大多數(shù)非中心點(diǎn)匹配算法都非常耗時(shí),因此不適合大規(guī)模在線應(yīng)用。故本次算法采用基于中心點(diǎn)的匹配算法,能夠極大的提高匹配速度,但是,這類算法極度依賴于中心點(diǎn)的定位精度,中心點(diǎn)的求取成為該算法的關(guān)鍵,而本文的第二大優(yōu)點(diǎn)采用了新的中心點(diǎn)定位方法,中心點(diǎn)定位精度遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的定位方法。穩(wěn)定性:本次算法,根據(jù)指紋圖像的特點(diǎn),分別在空間與和頻域增強(qiáng)圖像,并采用了一種復(fù)合濾波器對(duì)增強(qiáng)后的圖像進(jìn)行濾波處理,把指紋圖像的局部信息和全局信息有機(jī)的結(jié)合起來(lái),是一種非常高效而準(zhǔn)確的中心點(diǎn)提取算法。最重要的一點(diǎn),在實(shí)際應(yīng)用中,同一個(gè)指紋兩次采集到的圖像必然會(huì)有一定的平移和旋轉(zhuǎn),傳統(tǒng)的方法對(duì)這兩種的情況所求出的中心位置均有一定的偏差,而中心點(diǎn)的偏差將導(dǎo)致整個(gè)指紋識(shí)別的失敗。另外,傳統(tǒng)的方法,如Poincar index算法及類似的方向場(chǎng)的算法對(duì)于一些低質(zhì)量的圖像,如有裂紋和創(chuàng)傷的圖像,干燥的皮膚取得的圖像,脊線和谷線對(duì)比度小的圖像效果甚差,而本次算法對(duì)于平移旋轉(zhuǎn)以及低質(zhì)量的圖像依然可以求得準(zhǔn)確而穩(wěn)定的中心,這對(duì)于整個(gè)算法的穩(wěn)定性起到了核心作用。算法流程如圖3所示:
圖3 指紋數(shù)據(jù)處理算法流程