李俊杰,高翠芳,黃 芳
(江南大學理學院,江蘇 無錫 214122)
指紋作為一類常用的生物識別特征[1],與面孔、發音、虹膜、骨形等其他生物識別特征一樣,具有唯一性、穩定性等特點.相比于面孔、發音等易采集的生物識別特征,指紋具有一定的私密性,同時相比于虹膜、骨形等較復雜的生物識別特征,指紋又便于采集.綜合上述特點,指紋識別技術被廣泛應用在基于身份驗證的支付、安防等相關鄰域.[2-3]近年來,隨著智能移動終端的快速發展,指紋識別技術已被大量應用到智能移動終端上[4],被快速商業化應用.
在指紋識別過程中,一個關鍵步驟就是將從傳感器上采集來的指紋圖像進行二值化處理[5].經二值化后的指紋圖像僅留下前景指紋和背景部分,去除了原圖中的灰度噪聲,極大方便了后續的識別配對.現有的指紋二值化處理大多采用基于指紋紋理的方向場技術[6-7],少部分基于濾波算法來實現[8].采用方向向量將含有灰度信息的指紋圖像轉化為二值圖像,基于方向技術的指紋圖像二值化算法可以同時完成指紋圖像的二值化處理以及細化處理.但方向場技術在計算過程中需要計算每個像素的方向向量,算法復雜度高,計算時間長,在實際應用中存在一定的局限性.
考慮現有指紋二值化處理中存在的問題,本文提出基于支持向量機(SVM)的指紋二值化處理方法.SVM[9]是一種有監督的小樣本分類方法,可利用先驗知識,通過小樣本快速完成分類.指紋二值化處理中,前景和背景在分類前具有一定的先驗知識,灰度值較小的通常是前景,灰度值較大的通常是背景,憑此可運用SVM進行指紋二值化處理.
在SVM分類過程中,如果只采用像素值一個特征量,可能會降低分類精確度,尤其是在指紋圖像邊緣處.因此,本文又提出了一種4-鄰域均值模板來處理指紋圖像邊緣,并以此作為另一個特征量.同時利用灰度直方圖搜索算法,提取統計值較高的像素點作為訓練集,通過4-鄰域均值模板以及直方圖搜索優化訓練集來提高分類精度.
對于數據集T={[x1,y1],[x2,y2],…,[xN,yN]},{x1,x2,…,xN}∈RN為數據集的輸入空間,同時每一維x都有N個特征組成;{y1,y2,…,yN}∈{-1,1}為數據集中每一維輸入空間對應的類屬標簽.SVM的目的是利用輸入空間以及標簽集對數據集T進行分類.

SVM作為一種有監督式的學習算法,在一定程度上依賴于標簽集的分類,因此在處理不確定標簽問題時存在一定的局限性,例如指紋灰度圖像中指紋圖形的邊緣像素點既可看作前景類,也可看作背景類.不同的標簽類會影響分類結果,對訓練造成影響.針對這一問題,本文在原有指紋圖像像素值的基礎上引入新特征量來擴充SVM中的訓練集.同時采用出現頻率高的像素點作為樣本點,使分類精度進一步提高.
指紋通過傳感器采集得到灰度圖像,灰度圖像用灰度值存儲為矩陣形式[5],不同的灰度值代表了圖像中不同的灰度,因此像素點灰度值可作為SVM學習過程中一個重要的特征.但是只有一維特征的情況下會導致分類結果出現偏差,尤其是在圖形邊緣的像素點,因此本文定義4-鄰域均值模板來處理圖形邊緣,并以其計算值作為另一維特征.
在樣本點的采樣過程中,為提高計算速度,本文采用等距采樣,同時為了提高分類精度,在等距采樣的基礎上加入基于灰度直方圖的優化算法,將等距采樣后樣本點周圍直方圖統計量較多的像素點作為樣本點,進一步提高了分類精度.
在指紋灰度圖像的前景和背景分類問題中,指紋紋理與紋理過度部分存在圖像邊緣的問題[10],邊緣像素點判定會影響到后續的匹配識別,本文設計了4-鄰域均值模板,來提高算法在邊緣點分類上的精確度.
設計的4-鄰域均值模板是在邊緣檢測算子的基礎上演變而來的.參考Prewitt算子[11]設計4-鄰域均值模板,Prewitt算子表達式為
(1)
在傳統的Prewitt算子中分別對列Gx和行Gy進行計算,共計算中心像素點周圍8個像素點的值.為方便計算,考慮將行列融合,并且只計算上下左右4個方向的像素,通過模板中心像素點灰度值與4個方向像素點灰度值的差值絕對值的平均來構造4-鄰域模板:

(2)
由(2)式可知,4-鄰域均值模板D計算了中間像素點Ii,j與上方像素點Ii-1,j、下方像素點Ii+1,j、左側像素點Ii,j-1、右側像素點Ii,j+1之間的差值的絕對值,通過相加這4個方向的差值,得到
∑D=(|Ii,j-Ii-1,j|+|Ii,j-Ii+1,j|+|Ii,j-Ii,j-1|+|Ii,j-Ii,j+1|).
(3)

4-鄰域均值模板相比于邊緣檢測中的Prewitt算子對模板中心像素點的權值更大,更能突出模板中心點像素值的重要性,同時通過一個模板計算4個方向,不需要2個模板計算,提高了計算速度.
在對生物圖像、醫學圖像等客觀圖像處理時,需要保證圖像的原有特性[5],應避免非線性變換,本文所構造的4-鄰域均值模板就可以較好地滿足這一點.以指紋圖像的灰度直方圖為例,計算結果如圖1所示.

(a)原始指紋圖像

(b)4-鄰域均值模板處理圖像

(a)原始指紋圖像灰度直方圖

(b)4-鄰域均值模板處理圖像灰度直方圖
圖1中白色背景都占據了絕大部分比例,為顯示圖像的特點,本文手動去除了直方圖中灰度值為255的點.通過比較發現,兩者圖像走勢基本相同,因此4-鄰域均值模板能較好地保存原圖像特征.
在原有的特征量基礎上,加入4-鄰域均值模板計算結果作為特征量,能在一定程度上提高SVM在圖像邊緣點判斷的準確性.
在灰度圖像中,灰度直方圖是刻畫像素灰度值統計量的一個重要工具,在SVM訓練樣本點的選取中,為了使分類更加精確,需要更為準確的先驗知識,因此選擇統計值較大的像素點作為SVM的訓練樣本.但是為提高計算效率,保證樣本多樣性,本文采用局部統計值最大的像素點作為訓練樣本點,尋找樣本點的方法就是本文的直方圖搜索算法.
直方圖搜索算法分為2個部分,第一部分是對整個樣本空間進行等距采樣,即采用相等的間距對255個灰度值進行采樣,等距采樣公式為

Ii=Num255n-1?i(i=2,3,…,n-1).
(4)
其中:I為樣本點,且I1=0,In=255;n為采樣個數;Num255為將二維圖像矩陣展開成一維向量,并從0到255進行排序后,255像素第一次出現所對應的值,本文對Num255之前的像素進行等距采樣,并進行直方圖搜索;i為樣本點標號,由于樣本點首尾固定,所以i從2標到n-1;符號└┘為向下取整,保證樣本點標號為整數.
基于等距采樣的樣本點無法保證每個樣本點都有較大像素統計量,因此第二部分是在等距采樣的基礎上進一步提出了直方圖搜索算法,在當前樣本點的基礎上搜索它的前一個像素值以及后一個像素值,用最大的那個作為樣本點,以此來保證樣本點在局部范圍內有一個較大的像素統計量.算法1的直方圖搜索算法偽代碼為:

01 Begin02 輸入I_i //獲取當前采樣點03 輸入H_i //獲取當前像素值04 輸入I_i-1 //獲取前一個采樣點05 輸入H_i-1 //獲取前一個像素值06 if H_i>H_i-1 then07 H_i≥H_new08 I_i≥I_new09 else10 H_i-1≥H_new11 I_i-1≥I_new12 輸入I_i+1 //獲取后一個采樣點13 輸入H_i+1 //獲取后一個像素值14 if H_i+1 算法1中I_i存儲了所選取的樣本點,H_i存儲了樣本點對應的像素統計值,本文對等距采樣的結果進行直方圖搜索更新.通過算法1可以實現樣本點的像素統計值在局部范圍內達到一個極大值,由此來提高SVM的優化精度.直方圖搜索算法的結果如圖3所示. 圖3 直方圖搜索算法的結果 在圖3中黑色圓點表示等距采樣的結果圖,黑色圓圈表示在等距采樣的基礎上經過直方圖搜索算法優化的結果,從圖3中可以看出,經過優化后樣本點的像素統計值均到達局部極值點. 在實際測試中,本文采用FVC2004數據庫中的指紋圖像作為實驗數據[12].該數據庫中包含有4種類型傳感器收集來的數據.對于產生如圖1(a)的指紋傳感器,從圖1中可以看出圖像構成只包含前景和背景兩類,且指紋圖像不存在復雜區域,構成簡單,因此對二值化算法的要求較低,各算法二值化結果相近. 本文考慮處理較為復雜的一類傳感器所得圖像.此類傳感器收集的指紋圖像大小為328像素×364像素.由于傳感器因素,圖像形成了一個類似透視效果的形變,因此在圖像中產生了2個背景,一個為白色背景,一個為深灰色背景.同時由于傳感器原因,使得指紋圖像中間產生了一個深色復雜區域.具體指紋圖像見圖4(a). 在本文算法實際處理時,采用SVM進行二值化處理.SVM訓練集選取直方圖搜索算法,所得樣本點的灰度值以及對應4-鄰域均值模板的計算值為特征量,直方圖搜索算法選擇30個像素樣本點.以此訓練結果對全部像素點進行前景和背景分類.同時將本文算法與未經過優化采樣的原始SVM算法及模糊聚類算法進行了對比. 對于經過透視變換導致形變的指紋圖像,本文算法二值化結果、原始SVM的二值化結果如圖4所示. (a)形變后指紋圖像 (b)本文算法結果 (c)原始支持向量機結果 本文算法二值化結果與原始SVM二值化結果的數值統計見表1. 表1 形變后指紋圖像二值化處理對比數據 兩種算法對深灰色背景、白色背景都進行了有效地處理,在背景上只留下少許噪聲點.從統計數值中可以看出,本文算法在背景上的殘留噪聲點在背景像素點中的占比為4.53×10-4,原始SVM占比為5.05×10-4.對比背景殘留噪聲點,本文算法對誤判降低了10.21%.但由于兩種算法所得圖像的背景殘留噪聲點的占比都較小,均不影響后續處理. 對于指紋中間的被污染的深色復雜區域,從直觀結果中可看出,本文算法的二值化結果要優于原始SVM二值化結果.本文選擇100像素×3 100像素的區域對原始指紋圖像中的深色復雜區域進行放大,兩者的細節對比如圖5所示. (a)形變后指紋對比區域 (b)本文算法結果 (c)原始SVM結果 通過統計結果可知,本文算法二值化后誤判的像素在放大區域中的占比為0.005 3,原始SVM占比為0.009 5,本文算法有效降低了45.92%的誤判.同時從直觀結果中可見,原始SVM二值化處結果中存在明顯的黑色塊,且遮擋了一個指紋的分叉點,而本文算法也存在誤判,但占用像素少,沒有形成明顯的黑色塊,沒有遮擋指紋中的重要結構. 通過上述對比可以看出,本文算法在處理指紋圖像的邊緣細節以及復雜區域較為準確,所提出的4-鄰域均值模板和直方圖搜索算法可有效提高SVM在指紋二值化處理中的分類精度. 將本文算法與模糊聚類算法(FCM)[13]相比較.FCM是一種無監督的分類算法,被廣泛運用于各個鄰域.在相同計算環境下,采用本文算法和FCM對形變后指紋圖像進行二值化處理,結果如圖6所示. (a)形變后指紋對比區域 (b)本文算法結果 (c)FCM算法結果 從圖6可見,本文算法結果遠好于FCM,尤其是在圖6(c)中,結果圖像中存在幾處的黑色塊,且背景上的黑色塊也較多,會大大影響后續識別的效果.兩種結果的數據對比見表2. 表2 本文算法與FCM實驗結果對比 通過表2數據看出,在相同的計算環境下,本文算法的計算處理速度遠快于FCM.同時由統計可知,對于背景的處理FCM二值化后背景殘留噪聲點在背景像素點中的占比為5.772×10-3,而本文算法為4.53×10-4.相比FCM本文算法降低了92.15%的誤判. 對于復雜區域,從直觀可見,FCM算法將復雜區域二值化為整個黑色塊,幾乎失去了全部細節,而本文算法則保留了較好的細節部分.本文算法在不丟失主要細節的前提下,圖像占比更小,將更有利于后續的識別算法. 基于本文提出的優化采樣算法,利用SVM對指紋圖像進行二值化處理的方法可有效地解決SVM在指紋圖像邊緣以及復雜區域分類精度低的問題,能較好地保存指紋細節,配合其他模式識別算法,可有效地完成指紋識別工作. 本文在SVM的基礎上,加入了基于4-鄰域均值模板和直方圖搜索算法的優化采樣方法,進一步提高了識別精度,對算法做出了有益的改進.本文算法相比于同為分類算法FCM算法,計算精度較高,計算量較小,實驗結果也說明了本文算法是有效可行的.
3 指紋圖像二值化處理與比較結果
3.1 對比原始SVM算法結果







3.2 對比模糊聚類算法結果




4 結論