讓生物識(shí)別技術(shù)成為FPGA動(dòng)態(tài)部分重配置功能的“殺手級(jí)”應(yīng)用
摘要:我們?cè)诒卷?xiàng)工作中解決的問(wèn)題是:證實(shí)部分重配置適用于基于生物識(shí)別特性的復(fù)雜個(gè)人識(shí)別算法的開發(fā);運(yùn)用二維設(shè)計(jì)抽象層對(duì)功能進(jìn)行空間和時(shí)間的管理。
本文引用地址:http://m.butianyuan.cn/article/117277.htm關(guān)鍵詞:生物識(shí)別;指紋識(shí)別;FPGA;部分重配置
自動(dòng)指紋識(shí)別系統(tǒng)
指紋識(shí)別是自動(dòng)個(gè)人識(shí)別技術(shù)中使用的最常見、最可靠的技術(shù)。大體上,實(shí)現(xiàn)的技術(shù)將自動(dòng)指紋識(shí)別(AFAS) 劃分為在不同時(shí)間和不同條件下執(zhí)行的兩個(gè)階段:登記和識(shí)別。
登記流程中,用戶向系統(tǒng)提供指紋,系統(tǒng)隨即執(zhí)行一系列需要高強(qiáng)度計(jì)算的圖像處理步驟,以提取所有具有相關(guān)性、永久性和獨(dú)特性的信息,從而使系統(tǒng)明確識(shí)別指紋的真正主人。這一系列特性就構(gòu)成了用戶ID(身份識(shí)別號(hào)碼),由系統(tǒng)存儲(chǔ)在數(shù)據(jù)庫(kù)中。這一過(guò)程一般在安全的環(huán)境中,在專業(yè)人員的指導(dǎo)下離線執(zhí)行。
指紋識(shí)別是查看其是否與數(shù)據(jù)庫(kù)中的經(jīng)認(rèn)可的用戶一致。在登記過(guò)程中執(zhí)行的各種處理工作將反復(fù)進(jìn)行,以從當(dāng)前指紋采樣本中提取出獨(dú)特的特征。系統(tǒng)隨后將這些特征與數(shù)據(jù)庫(kù)中存儲(chǔ)作為為用戶模版的信息進(jìn)行對(duì)比,以確認(rèn)當(dāng)前指紋采樣是否與登記的模版相符。根據(jù)數(shù)據(jù)庫(kù)大小,識(shí)別分為兩種模式:一對(duì)一或一對(duì)多匹配。識(shí)別一般是在安全度較低的環(huán)境中,且在實(shí)時(shí)約束的條件下完成的。
這里的每一步被細(xì)分為一系列彼此獨(dú)立的任務(wù),以從指紋圖像中抽取出用戶獨(dú)特的信息。以此為目的,系統(tǒng)將進(jìn)行一系列具體的運(yùn)算,如圖像處理(2D 卷積、形態(tài)學(xué)運(yùn)算)、三角運(yùn)算(正弦、余弦、反切、開方)[1] 或者統(tǒng)計(jì)(平均值、方差)。
因此,生物識(shí)別應(yīng)用是由一系列按順序流程執(zhí)行的任務(wù)構(gòu)成的。因?yàn)樵谶@個(gè)鏈條上某個(gè)給定任務(wù)的輸出數(shù)據(jù)是下一項(xiàng)任務(wù)的輸入數(shù)據(jù),一項(xiàng)任務(wù)的開始需要等待前一項(xiàng)任務(wù)的完成。另外,在登陸階段和識(shí)別階段,有許多任務(wù)是反復(fù)執(zhí)行的。
圖1列舉了目前算法中發(fā)生的任務(wù)。第一項(xiàng)是圖像獲取。根據(jù)傳感器的尺寸,系統(tǒng)可以一次性地獲得整個(gè)圖像(全圖像傳感器),也可以分片獲取(掃描傳感器)。在第二種情況下,即我們正在使用的這種情況,需要額外經(jīng)過(guò)一次圖像重構(gòu)階段。完整的指紋圖像是由連續(xù)且部分重疊的圖像條所組成的[2]。
我們獲得整個(gè)重構(gòu)的圖像之后,下一步是在背景中對(duì)前景(即指紋皮膚的凸凹形成的關(guān)注區(qū)域)分割。我們采用由 5x5 像素的 Sobel邊緣檢測(cè)濾波器逐像素完成圖像卷積。完成后,我們以特定的均值和方差進(jìn)行圖像標(biāo)準(zhǔn)化。
下一步,我們通過(guò)各向同性濾波來(lái)增強(qiáng)標(biāo)準(zhǔn)化圖像。該步驟使用 13x13 像素,從之前在采集階段因噪聲而導(dǎo)致圖像丟失或者干擾的圖像區(qū)域恢復(fù)相關(guān)信息[3]。圖像強(qiáng)化步驟完成之后的下一步是計(jì)算指紋矢量圖 (field orientation map),以確定圖像前景中脊線和谷線的主要方向。生成的方向場(chǎng) (eld orientation) 隨后被提交給新的濾波步驟(5x5像素),以獲得精細(xì)化的矢量圖。
此時(shí)圖像仍為 8 位灰度。在二值化處理中,由 7x7 像素的 Gabor 方向?yàn)V波器進(jìn)行灰度圖像卷積,以提升脊線和谷線的清晰度,并把每個(gè)灰度像素轉(zhuǎn)化為 1 位二進(jìn)制(黑或白)點(diǎn)。合成的脊線和谷線圖像再次進(jìn)行經(jīng)過(guò)平滑處理和重繪。隨后,通過(guò)細(xì)化或骨架化,將黑白圖像的黑色走線變?yōu)橐粋€(gè)像素寬。從這個(gè)圖像上不難提取指紋的特性或者細(xì)節(jié),即紋線端點(diǎn)和紋線分叉點(diǎn)。
最后,在獲取到指紋細(xì)節(jié)和方向場(chǎng)數(shù)據(jù)后,就可以進(jìn)行指紋模板和樣本的對(duì)比。這里采用一種比較直接的算法,在考慮到轉(zhuǎn)換和旋轉(zhuǎn)動(dòng)作以及采集階段因皮膚彈性導(dǎo)致的圖像變形引起的誤差可接受的情況下,讓兩者實(shí)現(xiàn)最理想的重合[4]。下一步是進(jìn)行樣本和模板的匹配,獲知兩者之間的相似度,隨后自動(dòng)化系統(tǒng)可以根據(jù)相似度來(lái)確定兩個(gè)圖像是否屬于同一人[5]。
在如圖3所示的整個(gè)處理過(guò)程中,使用的指紋圖像分辨率為 500dpi,灰度為 8 位,圖像大小為 280x512 像素。圖像獲取采用的是Atmel公司的熱敏指紋傳感器 FingerChip 掃描技術(shù),運(yùn)算采用的是賽靈思 Virtex-4 XC4VLX25 FPGA 器件。
系統(tǒng)架構(gòu)
Virtex-4 FPGA 器件是 AFAS 平臺(tái)的計(jì)算單元,其中采用 Flash(閃存)作為系統(tǒng)數(shù)據(jù)庫(kù),存儲(chǔ)FPGA配置數(shù)據(jù),以及如用戶指紋模板或生物識(shí)別算法配置設(shè)置等特定于應(yīng)用的數(shù)據(jù)。此外,該系統(tǒng)還使用 DDR-SDM 存儲(chǔ)器來(lái)暫時(shí)保存從每個(gè)處理階段中獲得的中間數(shù)據(jù)或圖像。我們采用的是串行通信,在我們的案例中是連接至 UART 控制器的 RS-232 收發(fā)器 — 后者可在 FPGA 資源中進(jìn)行綜合 — 以用于調(diào)試目的。其目的是將每個(gè)階段生成的結(jié)果圖像傳輸?shù)?PC 上,以便以圖形化的方式察看每步的指紋圖像或者結(jié)果。最后,使用掃描式指紋傳感器來(lái)獲取用戶的生物識(shí)別特性,并作為識(shí)別算法的輸入,如圖 2 所示。
作為計(jì)算單元,F(xiàn)PGA 被劃分為兩個(gè)區(qū)域,一個(gè)是靜態(tài)區(qū),由完整的多處理器 CoreConnect 總線系統(tǒng)構(gòu)成;另一個(gè)是可重配置區(qū),用于根據(jù)需要放置定制的生物識(shí)別協(xié)處理器或IP(知識(shí)產(chǎn)權(quán)),以執(zhí)行識(shí)別算法的各種順序任務(wù),并隨處理的進(jìn)展進(jìn)行復(fù)用。多處理器 CoreConnect 總線系統(tǒng)主要由賽靈思 MicroBlaze 處理器及其它標(biāo)準(zhǔn)外設(shè)構(gòu)成,同時(shí)還擁有一個(gè)鏈接至 ICAP (內(nèi)部配置訪問(wèn)通道)端口的重配置控制器。
如圖1所示,所有的處理任務(wù)都按照順序執(zhí)行的次序從 0(靜態(tài))到 B 進(jìn)行枚舉。定制的硬件協(xié)處理器負(fù)責(zé)在 PRR (部分重配置區(qū)域)中實(shí)現(xiàn)所有的任務(wù),由 MicroBlaze 在軟件中完成的指紋采集過(guò)程除外。
軟硬件特定的劃分是由于掃描傳感器需要 5μs的積分時(shí)間來(lái)獲得連續(xù)的圖像條(SLICE)。這種速度下無(wú)需采用定制的硬件協(xié)處理器,采用MicroBlaze軟件采集和重構(gòu)圖像不僅速度足夠,而且更簡(jiǎn)單經(jīng)濟(jì)。
圖像采集按每個(gè) SLICE 5μs的速率采集 100 個(gè)SLICE,每個(gè) SLICE 的大小為 280x8 像素。每?jī)蓚€(gè)連續(xù)的圖像 SLICE 之間的像素重疊部分交由軟件進(jìn)行探測(cè),從而完成圖像的實(shí)時(shí)重構(gòu)。
由于實(shí)時(shí)的要求,剩余的任務(wù)我們交由 FPGA 的 PRR 的定制硬件協(xié)處理器來(lái)實(shí)現(xiàn)。一旦每個(gè)特定的任務(wù)完成之后,位于器件靜態(tài)區(qū)的重配置控制器在 MicroBlaze 處理器的控制下,載入下一個(gè)任務(wù)的工作模塊。重配置控制器通過(guò) ICAP 接口將新模塊的配置數(shù)據(jù)從 DDR-SDM 中直接傳輸?shù)絻?nèi)部的 FPGA 配置存儲(chǔ)器中,從而完成此項(xiàng)任務(wù)。
值得一提的是,我們使用的是靜態(tài)區(qū)和可重配置區(qū)之間基于 FIFO(先進(jìn)先出)存儲(chǔ)器和觸發(fā)寄存器構(gòu)成的標(biāo)準(zhǔn)界面。這樣我們就可以在 PRR 中開發(fā)標(biāo)準(zhǔn)的生物識(shí)別協(xié)處理器或 IP,而無(wú)需理會(huì)系統(tǒng)使用的是哪種多處理器總線,無(wú)論其是 AMBA、CoreConnect、Wishbone 還是其它均如此,如圖 2 所示。這一點(diǎn)具有根本性的意義,因?yàn)檫@樣才能確保生物識(shí)別算法跨不同平臺(tái)的標(biāo)準(zhǔn)化和便攜性。
評(píng)論