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