陳 旭 解天祺
1(南京信息工程大學 江蘇 南京 210044)
2(南京信息工程大學江蘇省大氣環境與裝備技術協同創新中心 江蘇 南京 210044)
圖像的紋理特征是一種較為顯著的視覺特征,不止有色彩和亮度可以反映圖像,所視物體表面存在著排列組合的規律,這種在圖像中多次出現的紋理組合也應作為視覺特征,所以對圖像紋理特征的分析在圖像檢測和分類的工作中起了決定性作用。目前很多重要領域都對圖像紋理特征進行了深入的研究并取得了顯著的研究成果,如虛擬現實(VR)技術通過紋理識別出不同的材質,在人機交互中可以得到更真實的感受,因此紋理特征也可以作為模式識別領域的重要參照。
近年來,對于紋理圖像的分類研究一直都是重點,將其與虛擬現實技術結合也成了當下的熱門。陳洋等[1]提出了結合Gabor濾波器和ICA技術的紋理分類方法,但在升維降維的過程中會丟失特征數據;Dong等[2]基于Shearlets和線性回歸算法進行紋理分類,該方法對一些相對規律的紋理有較好的效果,但對于一些復雜圖像的效果不是很好;Jawahar等[3]則是基于小波變換來進行紋理分類,該方法的魯棒性不是很好;Fahrurozi等[4]使用GLCM結合邊緣檢測算法來提取紋理的特征,發現GLCM紋理特征參數中只有4組值是線性無關,可以進行級聯分類;El Khadiri等[5]基于LBP算法提出了一種局部二值梯度等值(LBGC)算法進行紋理分類,雖然精度很高,但需要的特征維度比較高,不滿足實時性;Zhang等[6]基于局部二值模式提出了表示紋理特征的歸一化差分向量(NDV),該方法具有一定的優越性,但對于紋理方向性的研究還不夠充分;梅軍等[7]基于Tamura紋理特征對紋理圖像進行分類,在方向性和形態學運算中都有很好的效果。
本文提出了一種基于B-CLBP和GLCM的紋理特征提取方法,并在傳統LBP算子上進行了優化,對其進行雙向計算,在不增加特征維數的前提下,獲得了更大的數據量。在得到更加精確的特征參數后,使用SVM分類器對紋理圖像進行分類。該方法具有很強的魯棒性,且分類精度高,由于特征參數都是一維的所以運算速度也很快。
本文提出的分類算法流程圖如圖1所示。首先,使用濾波算法對圖像進行預處理,消除一些冗雜因子。然后使用基于LBP和GLCM的紋理提取算法來獲取圖像的紋理信息并生成特征矩陣。最后將得到的矩陣發送到SVM分類器中,來獲取8種不同材質的紋理特征:鋁箔、砂紙、海綿、面包、燈芯絨、棉布、餅干、橙皮。

圖1 算法流程圖
LBP(局部二進制模式)是用于描述圖像的局部紋理特征的運算符。它具有顯著的優點,如旋轉不變性和灰度不變性[8]。傳統LBP算子選取大小為3×3的窗口,并以窗口的中心像素值作為閾值,將其與相鄰的8個像素值進行比較,若相鄰像素的值比中心像素值大,則該像素點的位置被標記為1,反之則為0。這樣順時針取相鄰像素的標記值,可以得到一個8位二進制數,將其轉換為十進制后,賦值給中心像素值,從而得到該窗口的LBP值,該區域的紋理信息就可以通過LBP值反映。如圖2所示,LBP碼為11100000,然后將其轉換為十進制數224。

圖2 LBP特征值計算方法
LBP算法可以表示為:
(1)
式中:(xc,yc)是3×3矩陣的中心像素;gc是中心像素的灰度值;gi是同矩陣下周圍像素的灰度值。

(2)
傳統LBP算子只能在固定窗口中進行計算,并不能保證不同尺寸和頻率紋理的需要。為了將3×3的矩陣窗口擴展到任意鄰域,使用圓形替代了矩形領域,改進后的LBP算子允許在半徑為R的圓形鄰域內有任意多個像素點[9]。圖3為圓形LBP示意圖。

圖3 圓形LBP示意圖
圓形LBP中心像素的計算可以表示為:
(3)
式中:R是采樣半徑;P是采樣點的個數。就圓形區域中采樣點的像素點的對應值而言,可能不是整數,可以通過雙線性插值[10]獲得。對于給定的中心點(xc,yc),其鄰域像素位置是(xp,yp),可以通過下式計算:
(4)
經過LBP算子計算后可以得到與原圖同樣大小的可視化圖像,但圖像的紋理特征一般用LBP的特征直方圖來表示。
在選取CLBP的基礎上,得到的可視化CLBP圖像具有一定的方向擾動因素,如圖4所示,由于計算CLBP算子的時候選取旋轉方向不同,會得到在方向上又明顯差異的LBP圖像,但它們的特征信息依舊是相同的。

(a) 正轉 (b) 反轉
為了獲得更好的特征參數,本文提出雙向LBP,即B-CLBP。在得到原有特征直方圖的基礎上,通過反向旋轉CLBP算子,得到一組新的特征直方圖,累加到原特征直方圖上,并進行歸一化處理,在不增加維度的同時,增加了每一維的特征參數,還可以抵消原有的方向性擾動因素,取得更好的分類結果。
灰度共生矩陣(GLCM)是一種成熟的統計圖像分析方法,已被用于許多與紋理相關的應用,包括缺陷檢測[11]。先計算灰度圖像得到它的共生矩陣,然后通過計算共生矩陣來得到矩陣的一些特征值,以表示圖像的一些紋理特征。GLCM可以反映圖像灰度等方向,相鄰間隔和變化幅度的綜合信息。在計算矩陣之后,基于計算的共生矩陣計算紋理特征,而不是直接應用計算的GLCM[12]。經常采用對比度(CON)、熵(ENT)、逆差矩(IDM)和能量(ASM)等特征來表示紋理特征。
CON:直接反映像素值的亮度與其鄰域像素值的對比度,紋理凹槽越深,對比度就越明顯。
(5)
ENT:熵是圖像信息內容的度量,代表了紋理的不均勻性或復雜程度。當圖像幾乎隨機或有噪聲時,熵將具有較大的值。

(6)
IDM:它反映了圖像紋理的同質性,并測量了圖像的紋理變化。較大的IDM值表示圖像紋理的不同區域之間缺乏變化,并且該部分非常均勻。
(7)
ASM:它是GLCM元素值的總和,因此也稱為能量。它反映了灰度分布的均勻性和紋理的粗糙度。較大的ASM值表示紋理變化得更均勻和規則。
(8)
本文提出的紋理特征提取方法如下:
1) 選取具有旋轉不變性的LBP算子,先對圖像的每個像素進行LBP計算,并得到LBP圖像。原始圖如圖5(a)所示,LBP圖如圖5(b)所示。

(a) 原圖 (b) LBP圖
2) 根據得到的LBP圖,對其進行灰度共生矩陣計算,選取距離d=1,并獲得0°、45°、90°、135°四個方向上的對比度、相關性、能量、逆差矩,級聯后得到16個參數的特征矩陣。
3) 使用優化后的B-CLBP算子,獲取雙向的紋理特征直方圖,并生成參數矩陣,結合灰度共生矩陣得到的特征矩陣,描述圖像的紋理特征。
支持向量機(SVM)[13]是一種統計方法,它計算兩組樣本之間的最佳分離超平面。從20世紀90年代末開始,SVM已成功應用于大量的機器學習問題。在機器學習中,SVM是與學習算法相關的監督模型,該算法分析用于分類和回歸分析的數據[14]。給定一組訓練示例,每個示例標記為屬于兩個類別中的一個或另一個,SVM訓練算法構建將新示例分配給一個類別或另一個類別的模型,使其成為非概率二進制線性分類器[15]。該算法需要確定一組參數,包括支持向量機的類型、核函數的類型、罰因子、訓練停止的標準。當使用某些內核函數時,需要確定其中一些參數。其中,核函數是支持向量機算法的核心。在過去的研究中,分類算法采用徑向基函數(RBF),這是一種徑向對稱標量函數。最常見的徑向基函數是高斯核函數:
(9)
式中:x′是內核函數中心;σ是函數的寬度參數,控制函數的徑向范圍。
當使用RBF內核時,考慮兩個參數:懲罰因子C和γ。其中C是誤差容差,γ是RBF的寬度,它會影響每個支持向量對應高斯的范圍,從而影響泛化性能。較好的(C,γ)可以使分類器正確預測未知數據并具有較高的分類準確性。系統采用網格搜索方法獲得最優參數,獲得較高的訓練精度,即分類器預測類標簽已知的訓練數據的準確性,不能保證測試集的高預測精度。因此,通常采用交叉驗證方法來提高預測精度[16]。
本文對KTH-TIPS紋理圖像庫中的鋁箔、海綿、砂紙、面包、燈芯絨、棉布、餅干、橙皮8類紋理圖像樣本進行分類,隨機選取各類紋理圖片中的8幅圖片來檢驗本文提出的方法的有效性。圖6為8類紋理圖像。

(a) 鋁箔 (b) 海綿 (c) 砂紙 (d) 面包

(e) 燈芯絨 (f) 棉布 (g) 餅干 (h) 橙皮
原始圖像大小均為200×200像素。共有560個訓練樣本和240個測試樣本,每個訓練種類70個,每個測試樣本30個。采用K-means聚類算法對三類樣本進行劃分,可以很大程度地降低特征維度,提高運算的效率。
本文分別測試了GLCM、LBP和兩種算法的結合,并記錄的分類的精度。對于GLCM算法,選擇d=1,灰度等級為16,依據四個角度上的對比度、相關性、能量和逆差矩,得到16個參數的特征矩陣。對于LBP算法,采用CLBP算子,通過降維可以得到較少的特征參數,減少計算量。同時為了獲得更好的效果,采用B-CLBP計算特征參數,疊加在原來的特征參數上,在不擴大特征維度的同時,得到更準確的特征參數。
實驗一中,方法1為通過灰度共生矩陣得到的16個特征參數級聯起來的矩陣作為紋理特征通過SVM分類;方法2采用B-CLBP算子來提取紋理特征分類;方法3為本文方法,結合兩種算法得到特征參數分類。
從表1可以看出,B-CLBP分類的整個樣本的準確性高于GLCM,并且每種樣本的準確率也高于GLCM。兩種算法相結合的正確性明顯優于單一算法,且準確率可以達到97.5%。

表1 不同方法的準確率 %
實驗二中,為了避免直方圖的高維度,分析了當采樣點均為8、半徑為1時選擇LBP算子與B-CLBP算子分類的結果。如表2所示,相同采樣條件下,B-CLBP算子獲得的特征參數具有更好的分類精度。

表2 B-CLBP與傳統LBP的分類準確率 %
實驗三中,對測試集進行了錯誤匹配實驗,同樣是取自KTH-TIPS紋理圖像庫,選取了三組不同于樣本數據的圖像,每組30幅測試樣本,測試錯誤的圖像是否會被劃分到樣本集合中。如表3所示,經過方法1和方法2處理的特征數據存在一定的錯誤分類,而經過方法3處理的特征數據也存在少數錯誤分類,主要因為圖像本身就接近平滑,與樣本數據中的棉布和砂紙分類有一定的混淆,總體來說,本文的分類方法仍是準確可行的。

表3 錯誤檢測分類正確率 %
本文主要研究紋理特征提取和分類的問題,提出了一種基于B-CLBP和GLCM的紋理檢測分類算法。該算法比單一特征更加全面,可為分類提供更有力的依據,且適用于紋理材質的識別。通過實驗驗證了該方法的可行性和優越性。
由實驗一可以看出,本文方法對紋理圖片的分類準確率較單一特征算法更高;由實驗二可以看出,本文提出的B-CLBP優化算法也較傳統LBP的分類準確率高;由實驗三可以看出,本文方法的魯棒性也較單一特征算法的分類結果更好,可以區分出錯誤輸入的圖像。本文方法較其他特征提取分類算法有更高的分類精度和魯棒性,可以在保證紋理識別實時性的基礎上有更加精準的分類能力。
下一步將對以下幾方面進行深入研究:
1) 對更多的紋理材質圖片進行特征提取,擴大檢測的范圍。
2) GLCM算法的效果不是特別好,可以考慮優化算法,研究梯度方向的灰度共生矩陣,提高算法的效率和準確性。
3) 本文方法的魯棒性還需要進一步研究,可以從圖像深度出發,使該方法的魯棒性更強。