孫永科,熊飛,胡坤融,付小勇
(西南林業大學大數據與智能工程學院,昆明650224)
利用計算機技術和人工智能算法對木材的切片圖像進行識別,可以快速地完成識別工作,在木材的鑒定工作中具有重要的研究意義。木材圖像識別技術目前已經是林業信息化過程中的一個研究熱點。
1982 年,McMillin 利用圖像分析系統測量了木材的一些物理特征,是借助數字圖像對木材構造組織進行處理研究的第一人[1]。朱佳等人利用Graph Cuts 算法也成功提取顯微鏡圖像中的木材的結構特征[2]。Khalid等人利用神經網絡模型結合木材的紋理特征對熱帶木材進行了圖像識別,實驗結果的正確率可以達到95%[3]。2009 年至今汪杭軍等人不斷地在該領域研究創新,相繼提出了基于PCA 特征的多種識別方法[4-6],取得了很好的效果。
實驗發現,基于PCA 等特征的分類方法提高了識別的準確率,但是對于未參與訓練的圖片,其識別率卻仍然比較低。導致識別率低得主要原因是因為實驗樣本中提取的PCA 中噪點較多,不夠穩定。本文提出了一種基于Canny 算子的邊緣特征提取和數據分類的新方法。該方法能夠提取木材圖像的紋理特征和氣孔分布,圖像特征信噪比高,穩定性高。結合SVM 數據分類技術能有效地提高了木材識別的正確率。
常見的圖像邊緣提取的算子有Robert、Sobel、Prwitt、Canny 等,Canny 算子其中穩定性較高的一種,而且其計算的結果信噪比也比其他的算子高。因此是圖像邊緣提取技術中最常采用的一種,張晶晶等人利用雙閾值法提高了邊緣提取的準確性[7]。傳統的圖像SVD 特征提取方法是在灰度圖上直接計算,因為拍攝器材和拍攝環境的影響,灰度圖的噪點較多,計算得到的SVD 值中還有較多的干擾數據,從而導致識別率降低。
本文提出的新方法主要是提高圖像特征值的穩定性。首先,將圖像進行統一縮放,縮放到固定的尺寸,這樣計算出來的SVD 值數目將會一致。其次,利用Canny 算子計算書圖像的紋理特征,然后計算紋理圖像的奇異值SVD,最后利用SVM 分類器進行訓練用以進行數據的分類。
假設要處理的數據存放在A 數組中,為了我們算法實現的需要,我們定義A 數組為A[2][n],其中A[0][0..n-1]存放需要確定名次的數據,A[1][0..n-1]存放排序后各數據對應的順序,關鍵字值相同的數據的順序是相同的。首先我們假定所有數據的原始順序名次都是0,然后利用選擇排序的思想一一確定每個數據對應的順序,假定m 為下一個待確定數據的順序值,m 的初值為1,其過程為:從所有還未確定順序的數據中查找關鍵字值最大的數據,確定其順序為m,同時查找與其關鍵字值相同的數據,并使其順序與已經確定的數據相同,并記錄關鍵字值相同的數據個數p,下一個待確定的數據的順序即為m+p。重復上述過程,直至所有數據的順序都確定完畢[3]。
Canny 雙閾值算子需要給出兩個閾值t1和t2,且2 t1=t2。圖像中的點P(x,y)的像素值大于t2的是邊緣點,小于t1不是邊緣點,介于t1和t2之間的點需要結合器鄰居像素進行判斷,若鄰居像素大于閾值則認為是邊緣點,若鄰居像素不大于t2則認為不是邊緣點。利用Canny 算子提取的木材橫截面圖像,不僅能夠很好地表現出木材的紋理特征,而且還能夠清晰地標注出木材氣孔的分布。使用Canny 算子對40x 放大鏡木材橫截面圖片計算,能夠得到木材主要的紋理信息,如圖1 所示:圖1(a)是40x 的木材橫截面圖片,圖像的高度和寬度都為200 像素;圖1(b)是使用Canny 算子計算的結果,Canny 的閾值分別是t1=150,t2=300。通過比較可以發現,Canny 算子能夠得到圖像的紋路和木材的氣孔的分布,較好地保留了原圖紋路特征。

圖1 40x木材橫截面圖像
奇異值分解(SVD)可以提取圖像的特征值并且具有良好的穩定性,旋轉不變性,位移不變性,鏡像不變性和比例不變性的特點,現在已經被廣泛的應用于圖像模式識別領域[8-9]。
如果矩陣A 代表一幅圖像,則存在正交矩陣U={u1,u2,...,um}∈Rm×n,V={v1,v2,...,vm}∈Rn×n,使 得UTAV=diag(σ1,σ2,...,σp)=W,p=min(m,n),即A=UWVT,
稱為A 的奇異值分解,其中σ1≥σ2≥...≥σp≥0,為A 的奇異值。
奇異值特征可以通過壓縮來降低數據的緯度,對于一幅圖像保留較大的奇異值,忽略較小的奇異值,其作用等于減少圖像中的噪點,保留圖像中的主要信息。
假設圖像A的奇異值為Wr={σ1,σ2,...,σr},σ1≥σ2≥...≥σr,保留該奇異值的前s 項Ws={σ1,σ2,...,σs},r ≥s。
則存在:

因此:rank(As)=rank(Ws)=s,
則:‖ ‖A-AsF=min{‖ ‖A-BF,B ∈Rm×n}。
以上的證明說明在F 范數意義下,As是A 的一個最佳逼近,在圖像處理中可以認為圖像As和A 最為相似。
圖2 是使用SVD 恢復后的圖像效果,圖2(a)是原圖,圖2(b)是通過SVD 的最大60 項還原的效果,圖2(c)是使用SVD 的最大40 項還原的效果。圖3(a)是圖2(a)經過Canny 算子計算后的邊緣圖像,圖3(b)是圖3(a)的SVD 值前60 項的還原效果,圖3(c)是圖3(a)的SVD 值前40 項還原效果。

圖2 SVD圖像還原效果

圖3 Canny算子SVD還原效果
通過比較可以發現:圖2(c)中的噪點比圖2(b)中的噪點多,圖3(c)中的噪點比圖3(b)中的噪點多;圖2中隨著SVD 取值的減小,噪點增加較多,圖3 中隨著SVD 的減少,噪點增加的較少。說明圖3 中的SVD 值比圖2 中的SVD 值更穩定。
實驗選取計720 張木材的橫截面圖片,共計3 個物種,圖像采用40x 放大鏡拍攝,每個物種選取圖片約200 張。實驗采用2 種方法進行,方法一直接對灰度圖求SVD,方法二使用Canny 算子對灰度圖計算邊緣后在求SVD 值。兩個實驗結果進行比較,用來研究Canny 算子在分類過程的作用。分類器采用SVM 分類器。SVM 支持向量機的參數svm_type 選擇C-SVC,核函數選擇polynomial,degree 選擇3,cost 選擇2000,gamma 選擇300。
實驗選取一個物種作為正樣本,其他2 種隨機抽取若干作為負樣本作為一個測試組,每個物種創建20組測試數據,采用10 折叉驗證法測試結果。實驗結束后分別計算正樣本的正確識別率,負樣本的正確識別率,系統識別率和正負樣本的正確識別率的差值。系統正確識別率使用公式(1)表示。

其中:
P(A)表示正樣本的概率
P(M)表示識別為正樣本的概率
P(N)表示識別為負樣本的概率
實驗分三次,第一次將1 號樣本作為正樣本,其他兩組樣本作為負樣本,第二次將2 號樣本作為正樣本,其他兩組樣本作為負樣本,第三次將3 號樣本作為正樣本其他兩組作為負樣本。利用SVM 分類器對數據進行二分類計算,使用10 折叉驗證,最后得到的實驗數據如表1 所示。表中的P( )A 表示正樣本正確識別的平均值,表示負樣本正確識別的平均值,P( C)是系統正確識別的平均值,方差_ P( C )是P( C )的總體方差的平均值,是的絕對值的平均值。
對720 個樣本數據進行分組實驗后的結果如表1所示。

表1 SVD 識別正確率
觀察表1 中的數據,發現正負樣本的正確識別率都存在波動,離散度較高;1 號木材的負樣本正確識別最低,意味著在該模型中系統把負樣本錯判為正樣本的幾率較高,負樣本出錯率高。
實驗的方法與SVD+SVM 的實驗方法相同,區別在于本實驗加入了Canny 算子,灰度圖像經Canny 算子處理后,計算實驗所需的SVD 特征值。經過60 次實驗后,統計結果如表2 所示,表2 的數據均為實驗后的平均值。

表2 Canny+SVD 識別正確率
觀察表2 可以發現正樣本和負樣本的正確識別率比較接近,系統正確識別率的方差小。說明明任給一個樣本,系統都能夠以較高的正確率識別出正負,且正確率都較高。
通過實驗發現以為幾個特點:
(1)表2 中的系統識別率P( C )大于實驗1 中的系統識別率,說明增加Canny 算子后,系統的正確識別率得到了提高。
(4)表2 中的方差小于表1 中的方差,說明實驗2中的模型更穩定。
通過實驗發現,圖像就Canny 算子處理后計算得到的奇異值,其特征性比直接在灰度圖的SVD 更明顯,而且更穩定。兩種實驗結果對比后發現:使用Canny 算子后可以有效地提高木材橫切面放大圖像的識別率。