《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 讓生物識(shí)別技術(shù)成為FPGA動(dòng)態(tài)部分重配置功能的“殺手級(jí)”應(yīng)用
讓生物識(shí)別技術(shù)成為FPGA動(dòng)態(tài)部分重配置功能的“殺手級(jí)”應(yīng)用
摘要: 我們?cè)诒卷?xiàng)工作中解決的問題是:證實(shí)部分重配置適用于基于生物識(shí)別特性的復(fù)雜個(gè)人識(shí)別算法的開發(fā);運(yùn)用二維設(shè)計(jì)抽象層對(duì)功能進(jìn)行空間和時(shí)間的管理,。
Abstract:
Key words :

 自動(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ù)庫中,。這一過程一般在安全的環(huán)境中,,在專業(yè)人員的指導(dǎo)下離線執(zhí)行。

  指紋識(shí)別是查看其是否與數(shù)據(jù)庫中的經(jīng)認(rèn)可的用戶一致,。在登記過程中執(zhí)行的各種處理工作將反復(fù)進(jìn)行,,以從當(dāng)前指紋采樣本中提取出獨(dú)特的特征。系統(tǒng)隨后將這些特征與數(shù)據(jù)庫中存儲(chǔ)作為為用戶模版的信息進(jìn)行對(duì)比,,以確認(rèn)當(dāng)前指紋采樣是否與登記的模版相符,。根據(jù)數(shù)據(jù)庫大小,識(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)過一次圖像重構(gòu)階段,。完整的指紋圖像是由連續(xù)且部分重疊的圖像條所組成的[2],。

  我們獲得整個(gè)重構(gòu)的圖像之后,下一步是在背景中對(duì)前景(即指紋皮膚的凸凹形成的關(guān)注區(qū)域)分割,。我們采用由 5x5 像素的 Sobel邊緣檢測(cè)濾波器逐像素完成圖像卷積,。完成后,我們以特定的均值和方差進(jìn)行圖像標(biāo)準(zhǔn)化,。

  下一步,我們通過各向同性濾波來增強(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)過平滑處理和重繪。隨后,,通過細(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ù)相似度來確定兩個(gè)圖像是否屬于同一人[5],。

  在如圖3所示的整個(gè)處理過程中,使用的指紋圖像分辨率為 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ù)庫,,存儲(chǔ)FPGA配置數(shù)據(jù),,以及如用戶指紋模板或生物識(shí)別算法配置設(shè)置等特定于應(yīng)用的數(shù)據(jù)。此外,,該系統(tǒng)還使用 DDR-SDM 存儲(chǔ)器來暫時(shí)保存從每個(gè)處理階段中獲得的中間數(shù)據(jù)或圖像,。我們采用的是串行通信,在我們的案例中是連接至 UART 控制器的 RS-232 收發(fā)器 — 后者可在 FPGA 資源中進(jìn)行綜合 — 以用于調(diào)試目的,。其目的是將每個(gè)階段生成的結(jié)果圖像傳輸?shù)?PC 上,,以便以圖形化的方式察看每步的指紋圖像或者結(jié)果。最后,,使用掃描式指紋傳感器來獲取用戶的生物識(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)部配置訪問通道)端口的重配置控制器。

  如圖1所示,,所有的處理任務(wù)都按照順序執(zhí)行的次序從 0(靜態(tài))到 B 進(jìn)行枚舉,。定制的硬件協(xié)處理器負(fù)責(zé)在 PRR (部分重配置區(qū)域)中實(shí)現(xiàn)所有的任務(wù),由 MicroBlaze 在軟件中完成的指紋采集過程除外,。

  軟硬件特定的劃分是由于掃描傳感器需要 5μs的積分時(shí)間來獲得連續(xù)的圖像條(SLICE),。這種速度下無需采用定制的硬件協(xié)處理器,采用MicroBlaze軟件采集和重構(gòu)圖像不僅速度足夠,,而且更簡(jiǎn)單經(jīng)濟(jì),。

  圖像采集按每個(gè) SLICE 5μs的速率采集 100 個(gè)SLICE,每個(gè) SLICE 的大小為 280x8 像素,。每兩個(gè)連續(xù)的圖像 SLICE 之間的像素重疊部分交由軟件進(jìn)行探測(cè),,從而完成圖像的實(shí)時(shí)重構(gòu)。

  由于實(shí)時(shí)的要求,,剩余的任務(wù)我們交由 FPGA 的 PRR 的定制硬件協(xié)處理器來實(shí)現(xiàn),。一旦每個(gè)特定的任務(wù)完成之后,位于器件靜態(tài)區(qū)的重配置控制器在 MicroBlaze 處理器的控制下,,載入下一個(gè)任務(wù)的工作模塊,。重配置控制器通過 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,,而無需理會(huì)系統(tǒng)使用的是哪種多處理器總線,,無論其是 AMBA、CoreConnect,、Wishbone 還是其它均如此,,如圖 2 所示。這一點(diǎn)具有根本性的意義,,因?yàn)檫@樣才能確保生物識(shí)別算法跨不同平臺(tái)的標(biāo)準(zhǔn)化和便攜性。


       重配置控制器

  設(shè)計(jì)高效的重配置控制器是部署面向單一環(huán)境 FPGA 的 PR (部分重配置)系統(tǒng)的成功關(guān)鍵,。雖然在重配置 PRR 期間,,F(xiàn)PGA 的非重配置區(qū)域仍然處于工作狀態(tài),但 PRR 資源此時(shí)并沒有處于工作狀態(tài),,故應(yīng)盡量加快重配置過程,,以便最大限度地降低開銷,。重配置的時(shí)間取決于三個(gè)因素:數(shù)據(jù)總線寬度、重配置頻率以及比特流大小,。前兩個(gè)因素與接口特性有關(guān),,而最后一個(gè)與 PRR 的大小及其中的部分重配置模塊 (PRM) 的設(shè)計(jì)復(fù)雜程度有關(guān)。

  我們的工作實(shí)現(xiàn)了一個(gè)重配置控制器,,其能在運(yùn)行時(shí)將部分比特流以高帶寬從外部存儲(chǔ)器傳輸?shù)?FPGA 的片上配置存儲(chǔ)器中,。在不限制部分比特流大小,同時(shí)將外部存儲(chǔ)作為共享資源(各種處理器可通過系統(tǒng)總線同時(shí)訪問)的條件下,,仍然可以達(dá)到Virtex-4最高重配置帶寬,。

  在系統(tǒng)初始化階段,部分比特流將在運(yùn)行中被下載到 FPGA 配置存儲(chǔ)中,,并從外部的Flash中傳輸?shù)酵獠?DDR-SDRAM,。該存儲(chǔ)器與多端口存儲(chǔ)控制器 (MPMC) 相連接,因而成為系統(tǒng)中任何主從處理器都可以訪問的資源,??梢允褂?CoreConnect PLBv46 總線等不同類型的總線連接到 MPMC,這些總線可用作通用系統(tǒng)總線,,而賽靈思 Cachelink (XCL) 總線則用于 CPU 的快速指令和數(shù)據(jù)緩存,。系統(tǒng) CPU (MicroBlaze) 實(shí)際上是與這兩個(gè)總線相連接的。

  不過我們的重配置解決方案是建立在新總線基礎(chǔ)之上的,,即專用于快速鏈接外部 DDR-SDRAM 存儲(chǔ)庫和 ICAP 接口之間的原始端口界面 (NPI),。作為我們重配置控制器的組成部分,我們?cè)O(shè)計(jì)了可用來處理 NPI 協(xié)議的主系統(tǒng)存儲(chǔ)管理單元 (MMU),。外部 DDR-SDRAM(部分比特流)和 ICAP 原始之間的連接需要經(jīng)過一個(gè)內(nèi)部 FIFO 存儲(chǔ)器,。借助這種方法,我們可以實(shí)現(xiàn)兩個(gè)不同的定制界面,,它們各自擁有獨(dú)立的數(shù)據(jù)總線大小和速度,,一個(gè)與 NPI 協(xié)議耦合,另一個(gè)則與 ICAP 協(xié)議進(jìn)行耦合,。

  FIFO 的寫入端口與 NPI 相連接,,并使用 64 位數(shù)據(jù)總線;而 FIFO 的讀取端口則連接到 ICAP,使用 32 位數(shù)據(jù)寬度,,這是 ICAP 在 Virtex-4 器件中的最高數(shù)據(jù)寬度,。FIFO 的讀取端口和寫入端口(在 NPI 側(cè)和 ICAP 側(cè))的運(yùn)行頻率為 100MHz。為使傳輸時(shí)延降至最低,,主系統(tǒng) MMU 負(fù)責(zé)以 64 字(32 位)突發(fā)傳輸向內(nèi)部 FIFO 傳輸配置數(shù)據(jù),,從而完成模塊的重配置。這是可接受的最大突發(fā)長度,,因而所有的重配置數(shù)據(jù)傳輸都能夠以最低突發(fā)時(shí)延完成,。在另一側(cè),,只要 FIFO 不為空,重配置控制器就能讀取已存儲(chǔ)的 FIFO 數(shù)據(jù),,并將其以 32 位格式傳輸給 ICAP 接口,。重配置控制器(就是主 MMU)負(fù)責(zé)處理對(duì)大型 DDR-SDM 存儲(chǔ)器進(jìn)行直接存儲(chǔ)器存取 (DMA)。為了實(shí)現(xiàn),,我們定制了一個(gè)從MMU,,并在其中設(shè)置了多個(gè)控制寄存器,,將這個(gè)MMU掛在PLBv46總線上并由CPU直接控制,。

  采用這種方式,CPU 僅需做兩件事情:配置在 PRR 中下載的部分比特流的初始地址和大小;向主系統(tǒng) MMU 發(fā)出執(zhí)行指令,,以啟動(dòng)重配置過程,。而后,,主系統(tǒng) MMU 開始將比特流以 DMA(直接內(nèi)存存儲(chǔ))的方式直接傳輸給內(nèi)部的 FIFO,隨后再從該 FIFO 傳輸給 ICAP 接口,。一旦傳輸完畢,,重配置控制器就會(huì)通知 CPU。

  結(jié)果,,即使在 CPU 通過 XCL 或 PLBv46 總線訪問 DDR-SDRAM 的同時(shí),,我們也能實(shí)現(xiàn)部分比特流傳輸?shù)淖畲笸掏铝俊F渥罱K原因在于 CPU 在內(nèi)部 BM(block-M)高速緩存中運(yùn)行程序流,,將對(duì)外部 DDS-SDRAM 的訪問釋放給了重配置控制器,。值得重點(diǎn)指出的是,這個(gè)為部分比特流和軟件應(yīng)用分配的 DDR-SDRAM 存儲(chǔ)器并非專用資源,,而是共享資源,。即使如此,該方案與其它現(xiàn)有的重配置控制器方案相比性能也有顯著的改善,,因?yàn)槠淠軌驅(qū)崿F(xiàn) Virtex-4的最大重配置吞吐量(通過 32 位數(shù)據(jù)總線以 100MHz 的頻率或 3.2 Gbps 的速率將部分比特流傳輸給 ICAP),。

  實(shí)驗(yàn)結(jié)果

  從本質(zhì)上講,文中所述的嵌入式自動(dòng)指紋識(shí)別系統(tǒng)是一種高性能圖像處理應(yīng)用,,因?yàn)樗鼡碛写罅康牟⑿行?,且需要?shí)時(shí)認(rèn)證響應(yīng)。從人機(jī)工程角度上講,,此系統(tǒng)可使每位用戶的認(rèn)證時(shí)間不超過 2 s或3s,。

  該設(shè)計(jì)流程涉及多個(gè)開發(fā)環(huán)路。首先,,我們?cè)?PC 平臺(tái)上的 MATLAB 的軟件里開發(fā)算法,。隨后,我們將軟件代碼用 C 編程語言導(dǎo)入到嵌入式軟件中,,并且首先在同一 PC 上執(zhí)行,,以確認(rèn)我們能夠獲得同樣的結(jié)果,然后在 FPGA 器件內(nèi)合成的 MicroBlaze 嵌入式微處理器上執(zhí)行,。

  通過這種方式,,Virtex-4 器件可在不使用任何定制硬件協(xié)處理器和不達(dá)到實(shí)時(shí)性能要求的情況下實(shí)施基于 MicroBlaze 的純軟件解決方案。為縮短運(yùn)行時(shí)間,,我們根據(jù)任務(wù)概要,,下一步工作是引入 PRR,并在上面構(gòu)建各種定制生物識(shí)別協(xié)處理器,,使用硬件/軟件協(xié)同設(shè)計(jì)解決方案,。此刻,我們已經(jīng)采用 C 編程語言和 VHDL 硬件描述語言完成了此系統(tǒng)的開發(fā)工作,。

  我們采用 268x460 像素的 8 位灰度指紋圖像進(jìn)行了一些識(shí)別測(cè)試,。同時(shí),我們?cè)诨?Virtex-4 的 PR 系統(tǒng)上和運(yùn)行速度為 1.83GHz 的 Intel Core 2 Duo T5600 處理器的個(gè)人電腦上也進(jìn)行了相同的測(cè)試,。然后,,我們運(yùn)行相同的算法,包括純軟件實(shí)施方式和軟硬件混合實(shí)施方式,,以比較登錄和識(shí)別階段的性能,。

  如果不考慮采集工作(由于掃描傳感器的性能限制,需以 5ms 積分時(shí)間采集 100 片并在運(yùn)行中重構(gòu)圖像,,故采集時(shí)間固定為 500ms),,PR 方法可以把運(yùn)行其他處理任務(wù)所形成的延遲降低到 205ms。與在 PC 上運(yùn)行純軟件方法的 3,274ms 的延遲相比,,PR 方法可提高 16 倍速度,。

  因此,表 1 說明運(yùn)用并行和流水線技術(shù)進(jìn)行軟硬件協(xié)同設(shè)計(jì),,同時(shí)配合低重配置延遲的 PR 技術(shù),,明顯實(shí)現(xiàn)實(shí)時(shí)認(rèn)證是可行的。另外,,在動(dòng)態(tài)重配置時(shí),,可以指定模塊運(yùn)行的頻率,這個(gè)頻率是由新模塊的特性所決定,。在我們的設(shè)計(jì)中,,所有模塊運(yùn)行在50MHz或者100MHz的頻率下。

  此外,,重配置流程一直以 100MHz 運(yùn)行,,在每個(gè)時(shí)鐘周期里傳輸 32 位比特,從而保證 Virtex-4 上的最低重配置延遲,。根據(jù)每個(gè) PRR 硬件環(huán)境的比特流復(fù)雜性,,每個(gè)重配置流程花費(fèi)的時(shí)間在 0.8ms(例如標(biāo)準(zhǔn)化)和 1.1ms(例如二進(jìn)制化)之間,。與生物識(shí)別應(yīng)用的總體運(yùn)行時(shí)間相比,該重配置時(shí)間可忽略不計(jì),。

  由于我們已經(jīng)成功完成了概念驗(yàn)證工作,,我們準(zhǔn)備把原型導(dǎo)出到新一代賽靈思低端具有 PR 功能的 28 納米FPGA 器件中(Artix-7 系列)。我們的目標(biāo)是以最低的成本設(shè)計(jì)出一款能夠在任何消費(fèi)類電子產(chǎn)品中嵌入高性能且真正安全的生物識(shí)別系統(tǒng),。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。