張連舉 ,莊圣賢 ,廖鵬飛
(1.西南交通大學 信息與科學技術學院,四川 成都 610031;2.電子科技大學 微電子與固體電子學院,四川 成都 610031)
指紋識別技術是當今最流行、最方便、最可靠的個人身份認證技術之一。指紋增強是指紋預處理過程中的核心算法,其目的有:消除圖像中的噪聲,增加指紋圖像中的脊線與谷線的對比度,對指紋斷點進行修復,對可修復模糊區域進行恢復,提高后續指紋特征點的提取以及指紋比對的正確率。因此,一個高效的指紋增強算法對指紋識別系統起著至關重要的作用。
目前,常用的指紋增強算法有:Lin Hong等人提出利用塊方向的Gabor濾波器[1]增強指紋圖像,該算法不僅要計算指紋圖像的方向圖,還要計算脊線的頻率方向,故算法復雜、費時,且準確地計算脊線方向也是一個難點;O’Gorman提出方向濾波器[2],通過計算出指紋圖像的方向圖,依據方向值選擇相應的濾波模板對像素點增強,其算法相對簡單,處理速度快,增強效果顯著。本文在后者的基礎上加以改進,構造一種查表結構的硬件電路,節約了硬件資源,且比傳統的處理算法[3-5]至少快10倍。
基于方向圖濾波的指紋增強要先算出指紋圖像的方向圖,最常用的有基于Sobel梯度算子[6]的算法和基于點方向模板的算法。其中,梯度算法含加、減、乘、除、反正切運算,算法相對復雜,同時電路在實現除法、反正切運算時比較費時且消耗大量硬件資源。
圖1所示為求像素點的方向模板。將中心像素點(以*表示)周邊劃分為 8個方向,其中:0~7分別代表0°、22.5°、45°、67.5°、90°、112.5°、135°、157.5°方向,則具體的點方向計算步驟為:

(1)求出方向模板中的每個方向上的4個像素點灰度值的平均值M。
(2)將8個方向按照兩兩垂直的方向分成4組(0&4、1&5、2&6、3&7),并計算每組均值 DMi,即:

取DMi中值最大一組中的兩個方向 j或j+4,j為當前點方向,j∈i。
(3)按照式(3)求出當前像素點*的脊線方向:

其中,M*代表像素點*的灰度值,D*代表該點的方向符號。
(4)按照步驟(1)~(3)將方向模板從左到右、從上到下遍布整個指紋圖像。
(5)將邊界行列像素點方向全部置為方向0。
考慮到指紋圖像紋理結構的特點:脊線(或谷線)點沿著脊線(或谷線)方向灰度值相近,而沿著非脊線(或非谷線)方向上灰度值相差較大,因而像素點在脊線(或谷線)方向的方差最小。因此,本文采用基于方向模板的最小方差法來計算點方向。其硬件電路框圖如圖2所示,其中各部件的功能如表1所述。


表1 計算點方向硬件電路功能描述
將求得的指紋點方向圖按8×8分割,計算塊方向規則為:統計8×8塊中各方向的直方圖,塊方向為直方圖的峰值方向;計算完成后進行塊方向濾波,濾波方案為基于3×3濾波模板的直方圖統計,更新塊方向為直方圖的峰值方向。
方向濾波器[7]的構造原則為:
(1)濾波器模板尺寸要合適,模板過小則難以達到去噪、清晰紋理效果,過大則可能會破壞曲率較大的紋線結構。本文采用7×7大小的模板;
(2)模板邊長為奇數,模板相對中心點對稱;
(3)為提高脊線與谷線之間灰度反差、達到邊緣銳化效果,在垂直于紋線方向,中央部分系數為正,兩邊系數為負數;
(4)濾波結果與原圖的平均灰度無關,模板系數代數和為 0。
按照上述原則設計的水平模板如圖3所示,其他方向模板系數求解的具體實現方法可以參考文獻[7]。方向濾波增強算法的實現過程為:首先計算像素點(或像素塊)的方向,然后再進行像素塊與模板系數卷積運算,以完成點像素的增強。由參考文獻[7]可知,其他方向模板系數的求解公式有正弦、余弦參數,其算法復雜,且在線計算一次模板系數就要計算294個系數,不僅費時,而且占用大量資源。因此,本文提出一種基于查表結構的算法,將8個方向的模板系數全部在線下計算得出并存儲在電路內部,以供方向查表調用;并將增強后的像素點直接二值化處理,以簡化指紋預處理步驟,減少計算時間,節約硬件資源。


圖4所示為硬件電路框圖。其中,RAM4為塊方向存儲器,塊方向統計完成8×8直方圖統計,選擇器確定寫塊方向模式,寫地址計算塊方向寫地址,讀地址計算塊方向讀地址,多路器選擇增強、濾波模式,濾波運算實現3×3直方圖統計,ROM1為模板系數查找表,MULT4與ADD7實現增強卷積運算,判斷器將增強后的像素值二值化,FIFO10為數據輸出緩沖。
電路的設計基于硬件描述語言Verilog[8]編寫完成。采用自下而上的設計方法,先規劃整個電路結構,將整個電路劃分為點方向計算模塊、塊方向計算與濾波模塊、指紋圖增強模塊三個部分;然后設計每一個基本模塊,往上設計總體模塊,頂層采用原理圖方式。整體芯片仿真部分信號時序如圖5所示。


編寫Verilog仿真模型,在Modelsim中進行功能測試仿真,將電路計算的輸出數據均用文本輸出保存,然后聯合Matlab工具,將最終電路處理輸出的結果通過Matlab直觀地顯示出來以供分析。圖6為指紋原圖,圖7、圖8所示為實際仿真測試圖,表2為本文算法處理時間與其他算法處理時間的比較。


表2 不同增強算法處理時間的比對
圖7為Matlab工具實現算法的仿真圖,圖8為硬件電路處理后的指紋數據。由Matlab工具顯示的圖可見,硬件電路的實現效果良好;濾波后的指紋方向圖更加平滑,映射指紋紋理方向,修正了圖7(a)方向的躍變;增強指紋圖像修復了原圖脊線斷點,增強了紋線結構。另外,從增強后的細化圖(如圖9所示)可以看出,增強算法有效減少了因指紋質量而產生的偽特征值。
本文設計了一款用于指紋圖像增強的硬件電路,從仿真結果可以看出,電路能較好地對低質量指紋圖像的紋理結構進行修復,并可以為指紋預處理過程省去自適應二值化這一復雜步驟,有較高的實用價值,可以應用在指紋識別專用集成電路中。
盡管該電路有著不錯的處理效果,但也可以看出在指紋邊界處,特別在指紋方向躍變的交界處,其周邊指紋信息變化劇烈時,增強效果不是十分良好,容易引入噪聲。精確地計算指紋方向圖與好的指紋分割算法是一個好的增強算法的前提,這也將是以后研究的重點。

[1]Ling Hong,Anil Jain.Fingerprint enhancement[C].Third IEEE Workshop on Applications of Computer Vision,1996:202-207.
[2]O’Gorman L,NICKERSON J V.An approach to fingerprint filter design[J].Pattern Recognition,1989,22(1):29-38.
[3]羅軍,肖芳,毛雪瑩,等.基于FPGA的方向濾波指紋圖像增強算法實現[J].電子技術應用,2010,6(1):13-20.
[4]張烽.基于FPGA嵌入式指紋識別系統研究[D].重慶:重慶大學,2007.
[5]喬治宏,吳晴,喬雨峰.基于方向濾波的指紋圖像增強算法研究[J].計算機工程與應用,2004(35):87-89.
[6]Zhang Hong,Wang Xinsheng.A new fingerprint enhancement algorithm[C].IEEE International Conference Broadband Network and Multimedia Technology,2005:1222-1225.
[7]郭娟.基于FPGA硬件方式實現的指紋識別系統研究[D].上海:上海微系統與信息技術研究所,2007.
[8]夏聞宇.Verilog數字系統設計教程(第二版)[M].北京:北京航空航天大學出版社,2008.