王軍敏,孫曉延
(平頂山學(xué)院 信息工程學(xué)院,河南 平頂山 467036)
紋理圖像廣泛存在于大自然中,在工業(yè)生產(chǎn)和人類的日常生活中也處處可見,這使得紋理圖像識別技術(shù)具有廣泛的應(yīng)用領(lǐng)域和重要的應(yīng)用價值[1].例如,紋理特征是樹皮表面最顯著的視覺特征,這些紋理特征是樹木所具有的天然屬性,可以在一定程度上描述樹木的性質(zhì).因此,利用紋理圖像識別技術(shù)對樹皮的紋理特征進行識別,可帶來多方面的益處,例如:1)森林中的樹木種類非常繁多,要對這些樹木的種類進行準確識別需要進行相關(guān)的專業(yè)學(xué)習(xí)和長期的經(jīng)驗積累,考慮到不同種類的樹木具有不同的樹皮紋理特征,并且這些樹皮紋理特征具有很強的鑒別能力,因此,利用樹皮的紋理特征對樹木的種類進行快速識別,能夠幫助護林人員快速、方便地識別森林中的樹木種類;2)有助于木材廠對木材進行工業(yè)化的自動分類,提高木材分類的效率;3)對質(zhì)量較好的木材,其樹皮的紋理特征通常呈現(xiàn)較好的規(guī)律性,而質(zhì)量較差的木材可能在樹皮表面出現(xiàn)疤痕或凸凹,這些樹皮表面的缺陷會破壞原有的紋理規(guī)律特性,通過檢測這些非正常的紋理模式,可以對木材的品質(zhì)進行輔助鑒定.
筆者通過對樹皮的紋理特征進行識別來實現(xiàn)木材分類,提出如下兩種方法:1)利用手工設(shè)計(hand-crafted)的方法實現(xiàn)樹皮紋理特征的提取和分類;2)利用深度學(xué)習(xí)(deep-learning)的方法自動提取樹皮紋理圖像的特征并實現(xiàn)分類.下面分別展示這兩種方法的基本原理和實現(xiàn)方法.
方法一首先利用手工設(shè)計的特征描述子分別提取樹皮紋理圖像的粗略顏色信息和精細紋理特征,然后將這兩種特征進行融合,最后送入手工設(shè)計的特征分類器實現(xiàn)樹皮紋理圖像的識別.該方法的基本原理如圖1所示,具體的實現(xiàn)步驟如下:
Step1 顏色特征空間轉(zhuǎn)換.將樹皮的彩色紋理圖像轉(zhuǎn)換到HSV顏色空間,獲得亮度分量V、色調(diào)分量H和飽和度分量S,其中,V分量用于描述灰度紋理特征,H和S分量用于描述顏色信息,從而實現(xiàn)了灰度紋理特征和顏色信息的分離,以便分別提取灰度紋理特征和顏色信息.
Step2 精細紋理特征提?。畬分量圖像進行多次高斯濾波,從而構(gòu)建V分量的多尺度空間.然后利用式(1)分別計算每個高斯濾波圖像的SCLBC、MCLBC和CCLBC分量[2],即:
(1)
Step3 粗略顏色信息提?。畬⑸{(diào)分量H和飽和度分量S進行粗略量化,并計算粗略量化后H分量和S分量的聯(lián)合直方圖,將其作為樹皮紋理圖像的粗略顏色信息.
Step4 特征融合與分類.最后將所提取的粗略顏色信息與灰度紋理特征進行融合,作為樹皮紋理圖像的最終特征描述,并送入NSC分類器[3]獲得樹皮紋理圖像的類別標簽.
圖1 手工設(shè)計方法的基本原理
近年來,深度學(xué)習(xí)方法成為圖像識別領(lǐng)域的研究熱點.其中,深度卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是深度學(xué)習(xí)方法在圖像識別領(lǐng)域獲得成功應(yīng)用的方法之一,它能夠模擬人腦分層提取特征的機制,自動從樣本中提取對分類有用的特征.但是,從頭開始訓(xùn)練一個深度CNN模型存在以下不足之處:1)需要大規(guī)模的訓(xùn)練樣本,以便對模型進行充分的訓(xùn)練,否則模型的識別性能不佳,但目前還沒有一個大規(guī)模的紋理圖像數(shù)據(jù)庫,無法對深度CNN模型進行充分的訓(xùn)練;2)從頭訓(xùn)練一個深度CNN模型非常耗時;3)對硬件平臺的計算能力和存儲容量要求很高,而高性能的硬件平臺通常價格昂貴.
為了解決深度CNN方法存在的不足,筆者采用在大規(guī)模圖像數(shù)據(jù)集ImageNet上預(yù)先訓(xùn)練的VGG-16模型作為基礎(chǔ)模型.VGG模型[4]是2014年由牛津大學(xué)視覺幾何組(Visual Geometry Group,VGG)和Google DeepMind公司研究員共同提出的,VGG模型的結(jié)構(gòu)是一種級聯(lián)型的直筒結(jié)構(gòu),形式非常簡潔.VGG-16模型包含13個卷積層和3個FC層,即一共有16個卷積/FC層.其中,前面的卷積層用于提取不同層次的圖像特征,后面的FC層用于特征降維并輸出分類概率.
筆者提出的基于深度CNN的系統(tǒng)結(jié)構(gòu)如圖2所示:首先利用VGG-16模型的卷積模塊提取輸入紋理圖像的特征,在訓(xùn)練階段需要利用現(xiàn)有的紋理圖像樣本對卷積模塊的參數(shù)進行微調(diào);然后再對卷積模塊提取的特征進行降維和分類識別,從而獲得輸入樣本的類別標簽.
圖2 深度學(xué)習(xí)方法的系統(tǒng)結(jié)構(gòu)
為了將VGG-16模型應(yīng)用于樹皮紋理圖像的識別,并降低原始VGG-16模型的參數(shù)規(guī)模,筆者對原始VGG-16模型的結(jié)構(gòu)進行改進,主要包括:1)用全局平均池化(Global Average Pooling,GAP)層代替FC層,顯著降低模型的參數(shù)規(guī)模;2)僅在最后使用一個FC層,將輸出端的個數(shù)調(diào)整為待識別紋理圖像的類別個數(shù),并用Softmax層輸出范圍為(0,1)的分類概率值.筆者構(gòu)建的深度CNN模型如表1所示:第0層是輸入層,用于輸入紋理圖像;第1~18層為VGG-16 模型前面的5個卷積模塊,其主要作用是提取輸入圖像的特征,這些卷積模塊的參數(shù)已經(jīng)在ImageNet圖像數(shù)據(jù)集上經(jīng)過了充分的預(yù)訓(xùn)練,已經(jīng)具備了初步的特征提取能力;第19~21層用于特征降維,將輸出端的個數(shù)調(diào)整為目標類別的個數(shù),并輸出當(dāng)前樣本對所有類別的歸屬概率值,根據(jù)分類概率值的大小,即可判斷當(dāng)前樣本所屬類別的類別標簽.
表1 深度CNN模型的分層結(jié)構(gòu)
方法二的具體實現(xiàn)步驟如下:
Step1 對輸入圖像進行預(yù)處理,即輸入圖像的RGB三個通道分別減去103.939,116.779,123.680,并調(diào)整圖像尺寸為224×224像素.
Step2 對訓(xùn)練樣本進行數(shù)據(jù)增強(包括旋轉(zhuǎn)、縮放等),擴充訓(xùn)練樣本的數(shù)量.
Step3 設(shè)置模型的初始超參數(shù)值,包括優(yōu)化器、學(xué)習(xí)率、批尺寸、損失函數(shù)等.
Step4 利用數(shù)據(jù)增強后的樹皮紋理圖像訓(xùn)練集對模型的參數(shù)進行微調(diào)訓(xùn)練.當(dāng)模型在驗證集上獲得最佳結(jié)果時,保留此時的CNN模型參數(shù).
Step5 利用訓(xùn)練所得的最佳CNN模型,對測試樣本進行測試,獲得識別結(jié)果.
為了評估筆者所提出方法的性能,利用BarkTex紋理庫[5]提供的樹皮紋理圖像進行實驗.BarkTex紋理庫由6個類別的樹皮紋理圖像組成,即白樺樹、山毛櫸、挪威云杉、銀松、櫟樹和槐樹的樹皮紋理圖像.每個類別有68個樣本圖像,一共有6×68=408個樣本圖像,分辨率為128×192像素.圖3展示了BarkTex紋理庫的6個樹皮類別,每列是一個樹皮類別的3個樣本圖像.從圖3可以看出,不同類別的樹木,其樹皮的紋理特征具有顯著的差異,因此,利用樹皮的紋理特征對樹木的種類進行鑒別具有可行性.
由于BarkTex紋理庫的原始樣本個數(shù)較少,為了方便開展實驗,將每個原始的樹皮紋理圖像劃分為4個子圖像,將其作為同一個類別的4個新的樹皮紋理樣本,從而增加了樹皮紋理樣本的個數(shù),從而構(gòu)建一個新的BarkTex紋理庫,即New-BarkTex紋理庫[5].在New-BarkTex紋理庫中,同樣含有6個樹皮類別,每個類別含有68×4=272個子圖像,一共有272×6=1 632個子圖像,即1 632個樣本,每個樣本的圖像分辨率為64×64像素.在訓(xùn)練模型時,用一半(816個)樣本作為訓(xùn)練數(shù)據(jù).
圖3 BarkTex紋理庫6個類別的樹皮紋理圖像
實驗平臺:計算機(Intel Core i5 CPU@3.10 GHz,16 GB RAM),Python 3.5,Tensor Flow 1.15.0,Keras 2.0,MATLAB R2016b仿真軟件.
在方法一中,樹皮紋理圖像特征提取系統(tǒng)的具體參數(shù)設(shè)置為:高斯濾波次數(shù)n=2,高斯濾波器的尺寸為11×11像素,高斯濾波器的標準差σ=1.7,CLBC算法的參數(shù)R=[1,3,5],P=[8,16,24].
在方法二中,超參數(shù)的初始設(shè)置為:1)在數(shù)據(jù)增強時,設(shè)最大縮放因子為0.2倍、最大旋轉(zhuǎn)角度為60°;2)選擇Adam算法作為優(yōu)化器;3)初始學(xué)習(xí)率設(shè)為0.001,最大訓(xùn)練輪數(shù)設(shè)為50,批尺寸設(shè)為10;4)模型的損失函數(shù)采用分類交叉熵函數(shù).
在方法一中,在對表示顏色信息的H分量和S分量進行粗略量化時,需要確定最佳的顏色量化等級.因此,在New-BarkTex紋理庫上進行實驗,設(shè)色調(diào)分量H和飽和度分量S的量化等級個數(shù)為Lc,通過改變Lc,分別獲得不同量化等級下的紋理識別精度.由于本文方法對顏色信息采用粗略量化的策略,所以主要分析Lc在區(qū)間[1,70]的紋理識別精度,實驗結(jié)果如圖4所示.
圖4 不同顏色量化等級對應(yīng)的紋理識別精度
從圖4可以看出:1)當(dāng)顏色量化等級個數(shù)Lc=11時,方法一在New-BarkTex樹皮紋理庫上獲得最高的識別精度84.31%,表明此時對顏色信息的量化程度最佳,這也體現(xiàn)出彩色紋理圖像中顏色信息呈現(xiàn)區(qū)域性分布,具有較低的空間頻率,只需進行粗略量化即可;2)當(dāng)顏色量化等級個數(shù)Lc<11時,隨著Lc的不斷增大,生成的顏色組合種類逐漸增多,使得方法一的紋理識別精度快速提升,但此時紋理識別精度仍沒有達到最高,這是因為此時的Lc仍然偏小,生成的顏色組合種類仍然較少,還不足以充分描述彩色紋理圖像中的顏色信息;3)當(dāng)顏色量化等級個數(shù)Lc>11時,方法一的紋理識別精度呈現(xiàn)下降的趨勢,當(dāng)Lc>40時識別精度基本保持不變,繼續(xù)增大Lc的值并沒有帶來識別精度的提高,這表明對顏色的過細量化是沒有必要的,并且過細量化會增大計算量.綜上所述,為了同時獲得好的識別精度和實時性,方法一選擇最佳的顏色量化等級個數(shù)Lc=11,即把色調(diào)分量H和飽和度分量S都量化為11個等級.
在方法二中,用于提取圖像特征的卷積模塊可逐級微調(diào),以便在訓(xùn)練過程中獲得最佳的深度CNN模型.在微調(diào)訓(xùn)練CNN模型時,首先需要確定需凍結(jié)的層數(shù)N,即對N層及其之前的層進行凍結(jié)(這些層的可訓(xùn)練屬性設(shè)為Trainable=False),只微調(diào)訓(xùn)練N層之后的模型參數(shù)(這些層的可訓(xùn)練屬性設(shè)為Trainable=True).對于筆者構(gòu)建的CNN模型,以卷積模塊為基本單位進行微調(diào),從表1可以看出,第1層至第18層一共有5個卷積模塊,對應(yīng)的凍結(jié)層數(shù)為N=0,3,6,10,14,18.不同的凍結(jié)層數(shù)N對應(yīng)不同的可訓(xùn)練卷積模塊個數(shù):例如,當(dāng)N=0時,表示對全部5個卷積模塊進行微調(diào)訓(xùn)練;而當(dāng)N=18時,表示將全部5個卷積模塊的參數(shù)進行凍結(jié).在New-BarkTex樹皮紋理庫上開展實驗,不同的凍結(jié)層數(shù)對應(yīng)的測試集識別精度如表2所示.
表2 不同的凍結(jié)層數(shù)對應(yīng)的測試集識別精度
從表2可以看出:當(dāng)凍結(jié)層數(shù)N=6時,模型的性能達到最佳,此時能獲得最高的識別精度93.46%;當(dāng)N=18時,全部的卷積模塊都被凍結(jié),僅能調(diào)節(jié)模型最后FC層的參數(shù),此時的識別精度較差,僅為59.80%.這表明將VGG-16模型的初始參數(shù)直接用于紋理圖像識別不能取得好的識別結(jié)果,必須利用現(xiàn)有的紋理圖像樣本對CNN模型的參數(shù)進行微調(diào)訓(xùn)練,才能使模型獲得更好的紋理圖像識別能力.所以,筆者選擇最佳的凍結(jié)層數(shù)為N=6.
為了進一步展示本文方法的性能,將筆者提出的兩種方法與其他先進的算法進行對比,它們在New-BarkTex紋理庫上的識別精度如表3所示.
從表3可以看出:1)筆者提出的兩種方法分別取得了84.31%和93.46%的識別精度,一致超過了其他方法的識別精度.這表明本文方法能夠很好地提取樹皮表面的紋理特征,具有很強的鑒別能力.2)筆者所提出的手工設(shè)計方法和深度學(xué)習(xí)方法相比,深度學(xué)習(xí)方法取得了93.46%的識別精度,顯著超過了手工設(shè)計方法84.31%的識別精度.這體現(xiàn)出深度學(xué)習(xí)方法具有更強的識別能力.
表3 在New-BarkTex紋理庫上的識別精度
另外,New-BarkTex紋理庫中的樹皮紋理圖像的尺寸非常小,只有64×64像素,所含的紋理信息比較有限,并且容易受到樹皮表面缺陷(例如:疤痕或凸凹)特征的干擾,這在一定程度上限制了對木材種類的識別精度.因此,在實際的工程應(yīng)用中,可以采集更大尺寸的樹皮紋理圖像(例如:100×100像素、200×200像素),以便進一步提高識別精度,使本文方法在木材分類中具有更好的應(yīng)用價值.
筆者通過對樹皮紋理圖像的識別實現(xiàn)了木材分類,具有重要的應(yīng)用價值.同時,筆者分別采用手工設(shè)計方法和深度學(xué)習(xí)方法實現(xiàn)木材分類,并對這兩種方法的性能進行了對比分析,展示了深度學(xué)習(xí)方法在圖像識別領(lǐng)域的巨大優(yōu)勢,為進一步解決復(fù)雜的紋理圖像識別問題提供了新的發(fā)展思路.