王承琨, 趙 鵬,2*
1. 東北林業大學信息與計算機工程學院, 黑龍江 哈爾濱 150040 2. 廣西科技大學計算機科學與通信工程學院, 廣西 柳州 545006
木材一般可以分為闊葉木材和針葉木材, 木材橫切面是否具有管孔結構是判斷木材為闊葉木材的重要依據。 目前已有大量學者通過不同手段對闊葉木材進行了分類, 產生了圖像法、 光譜法、 聲波法等分類方法, 又因闊葉木材橫切面上的特征較多、 紋理復雜度較高, 學者們更加傾向于使用木材橫切面的信息對木材進行分類。 de Andrade等[1]依托智能手機使用GLCM(gray level co-occurrence matrix)和SVM(support vector machine)在室外對21種木材進行了分類, 分類精度可達97.7%。 Oktaria等[2]使用CNN (convolutional neural network)算法對木材進行了分類。 Zamri等[3]以木材橫切面的微觀圖像為研究對象, 使用I-BGLAM(improved Basic gray level aura matrix)紋理描述算子對木材進行了分類。 Ibrahim等[4]使用木材橫切面的管孔特征和I-BGLAM特征相融合的方法對木材進行了分類。 Yusof等[5]使用GA (genetic algorithm)對木材橫切面的管孔特征和紋理特征做了降維處理, 然后使用KDA(kernel discriminant analysis)和GSVD(generalized singular value decomposition)分解對GA提取到的特征向量做了非線性特征提取, 進一步提高了分類正確率。 Rajagopal等[6]考慮了木材圖像采集過程中的模糊問題, 并在增強模糊圖像后提取了相對較為穩定的管孔特征, 最后使用SVM對20種木材進行了分類。
上述方法均是以木材的圖像信息或光譜信息為特征來源, 然而使用單一信息源并不能全面的描述木材特征, 這就導致木材分類方法往往只能適用于一些闊葉木材, 分類正確率也無法進一步的提高。 因此提出了一種基于木材圖像信息和光譜信息的多特征木材分類方法, 同時考慮木材橫切面的管孔特征、 紋理特征以及光譜特征, 實現了在某一特征不適合待分類樣本或分類結果出現錯誤的情況下, 仍可以對木材進行正確的分類, 從而實現了對闊葉木材和針葉木材同時分類和提高分類正確率的目標。
實驗樣本均來自北京潘莊木材市場和上海福人木材市場, 木材樣本嚴格按照其銷售周期進行購買避免同質化的出現, 表1中列出了所使用的20種木材的詳細信息及樹種編號。 實驗樣本的制作方法: 準備每個樹種50塊木板, 使用型號為110×0.8×20×108T圓盤鋸將其切割成長寬高分別為2, 2和3 cm的小木塊, 其橫切面大小為2 cm×2 cm。 從每一個木板所切割出的小木塊中隨機挑選一個標準樣本, 這樣每個樹種就擁有了50個樣本, 將這50個樣本隨機分成兩組, 訓練集35個樣本, 測試集15個樣本。 因為木材的顏色、 含水率均會對光譜的采集有一定影響, 所以挑選木材樣本時盡量選擇顏色一致的樣本, 其木材含水率應控制10%以下。

表1 樣本詳細資料
圖1(a)中給出了光譜采集平臺的示意圖, 光譜儀采用的是美國海洋公司生產的Ocean Optics USB2000-VIS-NIR微型光纖光譜儀, 光譜波長范圍為350~1 000 nm, 光譜儀的分辨率約為0.3 nm。 圖1(b)中給出了微觀圖像采集平臺, CCD相機拍攝到的圖像分辨率為1 600×1 200。 采集實驗數據時需將小木塊放在平臺的指定位置, 手動對顯微鏡進行調焦使圖像清晰, 小倍率光學顯微鏡可以將木材表面放大10~100倍。

圖1 數據采集平臺
1.2.1 基于Segnet的管孔分割方法及管孔統計特征
使用有監督圖像分割方法, 需要對木材橫切面的管孔標注標簽, 在標注標簽時應注意將管孔周邊部分包含在內并記為標簽1, 盡量保證管孔所對應的像素點不要歸為背景0標簽, 同時還需要制作全0標簽用來標注針葉木材。 Segnet基于FCN和VGG16框架, 使用VGG16的前13層卷積網絡, 每一個編碼器層都對應著一個解碼器層, 最終使用Softmax分類器將一幅圖像的每個像素點按概率大小進行分類。 圖2中給出了Segnet網絡的整體架構, 從圖2中可以看出該網絡模型由編碼網絡、 解碼網絡和分類器三個部分組成, 在編碼網絡和解碼網絡中Segnet使用的是same卷積, Pooling使用的是max pooling, 更多的Segnet網絡的相關信息不再贅述。

圖2 Segnet網絡結構示意圖
Ibrahim已成功根據木材橫切面的管孔特征對木材進行了分類[7], 并提出了管孔統計特征法SPPD(statistical properties of pores distribution)。 該方法將木材橫切面的管孔分為白管孔和黑管孔兩類, 并分別統計了這些管孔的平均管孔大小、 管孔大小的方差、 管孔的數量、 單孔和復孔數量、 小、 中、 大管孔的數量以及圖像的平均灰度值。 然而所闡述的20個樣本中含有白色管孔的樹種數量極少, 而且也不涉及單孔和復孔的情況, 因此對原有SPPD進行了更新, 設計了較符合本實驗樣本的管孔統計特征, 如表2所示。

表2 管孔統計特征
1.2.2 基于BIGD的圖像紋理特征提取算法
使用塊強度和梯度差算子BIGD(block intensity and gradient difference)[8]提取木材橫切面的紋理特征。 算法具體描述: 假設數字圖像為I, 首先從I上隨機選擇M個大小為19×19的正方形小窗口wi(i∈[1,M]), 在小窗口wi上隨機選擇32個點坐標, 這些點的橫縱坐標應滿足獨立同分布, 將這32個點坐標分為2組并表示為X和Y, 如式(1)和式(2)所示, 式中的mk和nk分別代表一個坐標點。
X=[m1,m2, …,mk, …,m16](k∈[1,16])
(1)
Y=[n1,n2, …,nk, …,n16](k∈[1,16])
(2)

(3)

最后使用VLAD(vector of locally aggregated descriptors)對樣本進行編碼。 具體方法: 首先需要找到訓練集中所有的wi, 并將其特征向量vwi聚類成K類, 但因為vwi的數量太多, 只隨機選擇了500 000個vwi進行聚類得到了K個聚類中心cq,q∈[1,K]。 然后計算每一幅圖像I(包括訓練集和測試集)所生成的M個vwi(i∈[1,M]), 并計算每一個vwi與cq的歐式距離s, 找到最小s所對應的cq, 并將其劃為第q組。 最后按式(4)分別計算每一類中的vwi與cq的殘差和, 一共得到K個vq(q∈[1,K]), 將其連接在一起形成樣本I的特征向量v。
(4)
1.2.3 光譜的預處理以及光譜特征的提取方法
由于木材橫切面上不同位置的光譜反射率曲線略有差異, 在采集光譜時, 需使用光譜儀對木材橫切面的不同部位反復采集光譜5次, 取平均值后作為該樣本的光譜特征曲線; 為了得到更為精準的光譜反射率曲線, 需要每采集5個木材樣本后, 使用白板和隔光板對光譜儀進行矯正[9]。 Optics USB2000-VIS-NIR微型光譜儀的有效波長范圍為350~1 000 nm, 但實際采集到的光譜數據樣本波長范圍在339.8~1 026.63 nm, 波長受到的干擾較大, 從圖3(a)中可看出在波長較低的范圍內, 其光譜反射率遠超100%。 因此去除了波長兩端的光譜反射率, 只保留了350~1 000 nm之間的波段信息, 如圖3(b)所示。

圖3 光譜的預處理
使用SNV(standard normal variable)校正算法和一階導數的方法對光譜曲線進行優化, SNV校正對光譜曲線進行歸一化處理, 其校正方法如式(5), 圖3(c)為SNV校正的結果; 一階求導主要目的是突出光譜曲線之間的差異, 其具體方法如式(6), 圖3(d)中給出了一階求導的最終結果。 由于光譜維度較高, 因此需要對光譜曲線進行降維, 考慮了PCA (principal component analysis)降維方法和KPCA (kernel principal component analysis)降維方法下的木材分類正確率。
(5)
(6)

1.2.4 基于相似判據的木材分類方法
使用SVM分類器對測試樣本進行分類, 有管孔組會產生3個分類結果, 無管孔組會產生2個分類結果。 參考集成學習中的相對多數投票法設計分類規則, 對于有管孔組, 若三個分類結果全部一致則分類無誤; 若三個分類結果中有兩個分類結果一致, 則按照分類結果一致的結果標簽進行分類; 若這3個分類結果全不相同, 說明分類結果異常, 通過該樣本的特征向量和它所對應分類結果的訓練集樣本之間的相似度進行進一步判斷, 相似度最大的特征向量即為最佳特征向量, 所對應的分類結果即為最佳。 對于無管孔組, 如果兩個分類結果全部一致則分類無誤, 如果兩個分類結果不一致則說明分類結果異常, 需要繼續判斷, 判斷方法如前所述。

(7)
(8)

管孔分割的效果與管孔特征的提取有著緊密的聯系, 圖4為使用Segnet圖像分割的結果, 圖4(a)為木材樣本橫切面原始圖像。 從圖4(b)中可以看出使用Segnet直接得到的二值圖像里面存在著大量的噪聲點, 為了去除這些噪聲點, 首先去除像素點少于閾值α的所有連通區域得到圖4(c)所示, 然后使用腐蝕運算進行腐蝕, 得到結果如圖4(d)所示, 本文所使用的結構元素是“disk”, 大小設為β。 最后對二值圖像再次進行掃描去除像素數量少于閾值α的所有連通區域, 如圖4(e)所示。

圖4 管孔分割結果
為了進一步說明管孔分割的效果, 手動標注了測試集中的樣本, 將Segnet分割的管孔結果和手動標注的管孔結果做了比較。 設NA代表分割結果與標注結果相同的像素點數量,NS代表總的像素點數量,SA=NA/NS, 顯然SA的數值越高說明分割結果越好。 圖5(a—e)的上方分別為五種木材的橫切面示意圖, 圖5(a—e)下方分別為這五幅圖像β=1,β=2以及β=3時α(β值為結構元素的大小,α值為連通區域的閾值大小)值不斷增加的SA變化特點。 通過圖5可以發現對于每一個樣本最佳的α均有一些變化, 有管孔的木材α值越大分割效果越差, 無管孔的木材α值越大分別效果越好, 因此取α=100,β=3, 這樣的取值基本上可以照顧到所有樣本的管孔特點。

圖5 α與SA之間的關系樹種
α和β不僅和管孔特征有關, 還會影響測試集樣本的分組結果, 圖6(a)中給出了α和β變化時對測試集分組正確率的變化情況, 分組正確率指測試集木材被劃分至正確分組的樣本數量與總測試集樣本數量的比值。 從圖6(a)中可以發現隨著α的增加分組正確率先升后降,α=100,β=3時分組正確率最高。 然而這樣的分組依舊不算特別理想, 為了進一步提高分組的正確率, 記分割處理后的二值圖像按像素累加和為s, 總的像素點數量為M。 當s/M小于某一個數值γ時認為該樣本為無管孔木材; 當s/M大于γ時認為該樣本為有管孔木材。 圖6(b)中給出了γ對分組正確率的影響, 從圖6可以發現整體正確率隨著γ的增加先增后減, 在γ=0.1時取得最高分組正確率。

圖6 α, β, γ分組正確率的影響
單獨使用光譜特征對木材進行分類時, 影響分類正確率的主要因素包括降維的方法以及降維后的特征維數, 圖7(a,b)分別為原光譜及一階導數光譜分類正確率, 即降維后的維數與木材分類正確率之間的關系。 從圖7(a,b)中可以看出PCA方法下的木材分類正確率高于KPCA方法下的分類正確率, 在對光譜進行一階求導后的分類正確率整體高于原始光譜的分類正確率。

圖7 使用光譜特征的分類正確率
表3給出了圖7中的最高分類正確率, 從表3中可以看出使用光譜對木材進行分類的正確率最高可達93.00%。

表3 光譜特征分類正確率
使用管孔特征對木材進行分類的正確率與管孔分割的效果和前期有無管孔的分組有關, 圖8中給出了2.1節中α,β以及γ對分類正確率的影響, 從圖8(a,b,c)可以看出β=3時的分類正確率最高,α和γ值在圖8中均體現為值越大分類正確率越高。

圖8 使用管孔特征的分類正確率
表4中給出了有管孔組的樣本數量、 有管孔組中分類正確的樣本數量以及木材分類正確率。 由于實驗樣本共有13×15=195個有管孔測試樣本, 所以將有管孔組中分類正確的樣本數量除以195作為木材分類正確率。 令β=3,α=100,γ=0.1, 此時有管孔木材分類正確率為69.23%, 有管孔組樣本數量為192個, 既可以兼顧分類正確率又可以保證有管孔組中的樣本不會被分入無管孔組, 這也與之前的管孔分割結果相呼應。

表4 不同α, β以及γ的最高分類正確率以及有管孔組的樣本數量
比較使用BIGD紋理特征對木材進行分類的結果, 影響BIGD算法分類效果的主要兩個因素是VLAD聚類數量K以及在wi上取的坐標點對的數量ks, 前面描述算法時為了方便規定了ks=16。 表5中給出了ks=20時聚類數量K對分類正確率的影響。 木材分類正確率隨K值增大逐漸增加, 當K值達到128時分類正確率最大, 但K值繼續增加, 分類正確率卻不升反降, 特征維數隨著K的增加越來越多, 計算時間也成倍增加。 為了兼顧計算速度和正確率將K值定為128維。
表5中給出了在K=128情況下窗口數量ks變化時的木材分類正確率, 值得一提的是由于設計了4個尺度, 窗口數量必須為4的倍數, 從表5可以看出隨著窗口數量K值的增加正確率逐漸增加, 特征維數也逐漸增加。 當窗口數量達到16以后正確率趨于平穩, 穩定在89.33%。

表5 聚類數量K和窗口數量ks對分類正確率的影響
對管孔特征、 紋理特征以及光譜特征的分類結果進行最優選擇, 以尋找到測試樣本的最佳分類結果。 表6為三個特征分類結果, 按照之前的規定當三個特征分類結果完全相同或者有兩個特征相同時以這些相同的分類結果作為最終分類結果, 在300個測試樣本中這種分類一致的樣本數量共有257個, 有管孔組中共有192個樣本, 其中三個特征不一致的樣本共有19個樣本; 無管孔組共有108個樣本, 其中兩個特征分類結果完全不相同的樣本數量為24個。

表6 三個特征的分類情況
使用歐氏距離時需要尋找到最佳的調節系數, 圖9中給出了γ1/γ3和γ2/γ3在不同數值情況下的分類正確率, 同時表6中給出了經過最優特征選擇后最高的分類正確率以及此時的γ1/γ3和γ2/γ3, 可以看出最高正確率為98.00%, 高于單獨使用任何一種特征對木材進行分類的正確率。

圖9 γ1/γ3和γ2/γ3對分類正確率的影響
考慮本研究中數據集在主流木材分類方法中的分類效果, 主要包括文獻[1]中的GLCM紋理分類算法、 文獻[3]的I-BGLAM算法、 文獻[2]的CNN算法、 文獻[4,8]的管孔統計特征算法、 文獻[5]的核遺傳算法以及LBP算法, 其最高分類正確率如表7所示。

表7 其他算法的分類正確精度
從表7中可以看出, 使用管孔特征的分類正確率普遍偏低, 這是因為管孔特征SPPD在本文所使用的數據集中存在三個問題, 第一個問題是本文的數據集中并非所有樣本均有管孔, 對于無管孔的木材樹種顯然無法提取管孔特征; 第二個問題是本文使用的樣本數據集中的木材橫切面不能使用簡單的閾值分割法對其進行管孔分割; 最后一個原因是本文所使用的樣本數據集中白色管孔并不十分明顯, 無法得到有效的特征值。 另外使用紋理特征對木材進行分類時也并未取得較高的分類正確率, 這是因為所使用的數據集中樹種間的紋理較為相似, 無管孔木材一般屬于弱紋理樣本, 紋理特征并不明顯。 分類正確率較高的是卷積神經網絡CNN和使用I-BGLAM特征的木材分類方法, 但是這兩種方法與本研究所述方法相比依舊沒有超過本文的分類正確率。
以20種木材樹種的橫切面圖像特征和光譜特征為研究對象, 主要做了以下工作。 第一, 使用Segnet, 將測試集樣本分成了有管孔組、 無管孔組, 同時對測試集樣本中的圖像做了管孔分割并提取了管孔特征; 第二, 使用BIGD算法提取了木材橫切面的紋理特征, 并對光譜特征做了一定的處理以提高分類精度; 第三, 分別討論了使用管孔特征、 紋理特征以及光譜特征情況下的木材分類情況; 第四, 使用相似性測度討論了木材橫切面上的管孔特征、 紋理特征以及光譜特征的最優性問題, 從而使各個樣本能夠以最佳的特征類型進行分類。 最終得出了以下幾個結論: (1) 使用木材橫切面的光譜特征和紋理特征可以對木材進行分類, 但只使用管孔特征無法得到較好的分類效果; (2) 使用樣本間的相似度可以彌補不同特征之間存在的不足, 從而達到進一步提高分類正確率的目的; (3) 通過實驗發現, 本文所述方法不僅適用于闊葉木材也適用于針葉木材, 具有較強的普適性。