劉傳澤,陳龍現(xiàn),劉大偉,曹正彬,褚 鑫,羅 瑞,王 霄,周玉成
1(山東建筑大學 信息與電氣工程學院,濟南250101)
2(中國林業(yè)科學研究院,北京 100091)
連續(xù)壓機生產線的普及使人造板生產快速發(fā)展,但是末端的缺陷檢測環(huán)節(jié)仍依靠人工檢測,存在工作強度大、檢測正確率低等問題,因此研發(fā)一套缺陷自動檢測系統(tǒng)成為人造板行業(yè)的迫切需求.連續(xù)壓機連續(xù)工作,板材之間的間距為400 mm,運動速度高達1500 mm/s,缺陷識別的實時性要求較高,需尋求一種快速、準確的算法完成人造板在線缺陷識別[1].現(xiàn)階段,主要的缺陷識別算法有貝葉斯[2]、神經(jīng)網(wǎng)絡[3,4]、支持向量機(SVM)[5,6]、CART樹[7,8]等,取得了較好的成果.由于貝葉斯分類方法需要計算出先驗概率,神經(jīng)網(wǎng)絡、支持向量機分類算法存在計算量大、復雜實時性不高,均不適用人造板缺陷在線識別.CART樹是一種基于二叉樹的算法,通過特征屬性值不斷對數(shù)據(jù)進行二分,最終達到分類的結果[9].缺陷特征屬性的選擇決定了分類的成功與否[10],根據(jù)人造板的特點提取形狀、紋理特征用來表征缺陷.由于CART樹容易出現(xiàn)過擬合導致缺陷識別率較低的問題,用代價復雜度的算法對生成的CART樹進行剪枝,使其具有更高的準確率.本研究提出基于剪枝的CART樹分類算法具有較高的實時性和正確率,能夠將其應用到人造板在線缺陷檢測系統(tǒng)中,促進缺陷檢測的自動化發(fā)展.
CART樹采用自頂向下的遞歸方式,在決策樹的內部節(jié)點進行屬性值的比較,并根據(jù)不同的屬性值判斷從該節(jié)點向下的分支,在決策樹的葉節(jié)點得到分類結果[11].如圖1所示,CART樹由根節(jié)點、子節(jié)點、葉節(jié)點三個部分組成,其中根節(jié)點和子節(jié)點代表特征屬性,葉節(jié)點代表類別.
圖1 CART樹示意圖
構建CART樹的算法流程如下[12]:
1)建立根節(jié)點N,CART樹開始生長;
2)如果訓練集L中只剩下一類樣本,則返回N為葉節(jié)點;
3)分別計算當前各個特征屬性的Gini指數(shù),將得到最大的Gini指數(shù)特征屬性作為節(jié)點,使L劃分為L1和L2兩個子集,之后遞歸構建決策樹,讓其充分生長,不剪枝.
Gini指數(shù)代表當前各個特征屬性的分裂的程度,數(shù)值越大說明數(shù)據(jù)復雜,不確定性越大,將Gini指數(shù)最小的特征屬性設置為節(jié)點.其中的Gini指數(shù)的計算如下:
假設訓練集L中的樣本有n個不同的類別Ci(i=1,…,n).則概率分布的Gini指數(shù)定義為:
式中,pi為類別Ci在S中所占比例.訓練集在某個特征屬性V下被分為兩部分L1和L2,則L的 Gini指數(shù)即分裂指數(shù)為:
為了提高CART樹分類器的泛化能力和降低復雜度,本文采用基于代價復雜度的后剪枝的方法,使用交叉驗證的方式,確保使人造板缺陷識別的相對誤差與構建的決策樹中節(jié)點數(shù)量均保持盡量小,確定剪枝的閾值P,進行剪枝.因此,在簡化決策樹,可有效保持識別準確率.具體實現(xiàn)過程如下.
1)剪枝后各個子樹序列T構建
T是一棵是充分生長的CART樹,評估決策樹的復雜度,其代價復雜度函數(shù)為
以節(jié)點為函數(shù)C為自變量,則有公式(4):
令β從0開始增加,直到出現(xiàn)Cβ(t)=Cβ(T)成立的子節(jié)點,得到剪之后的子樹T2(T1為T),不斷增加β的取值,重復上述過程,最后只剩下一個根節(jié)點,則得到一系列子樹Tg(g=1,2,…,n).當式(3)與式(4)相等,則P的值為:
式中,C(t)為子樹Tt剪枝后節(jié)點t誤分類損失,C(Tt)是未剪枝時子樹Tt誤分類損失.
2)最優(yōu)DT構建
在子樹Tg和βg已知的情況下,采用交叉驗證方法評估子樹的分類誤差[13],來確定最佳的剪枝閾值,在確保正確率的同時,降低CART樹的復雜度.誤分類誤差的定義為:
式中,Ecv(T(β))為樹T(β)交叉驗證的誤分類誤差;d(i|j)為將j類誤分為i類的樣本數(shù);N為訓練樣本數(shù);Nij為誤分類的樣本數(shù).
經(jīng)過循環(huán)交叉實驗驗證,確定代價復雜度最小的子樹Tk(β),確定最小的相對誤差結果是:
通過上述理論,即利用L–Ln驗證誤差率、最后確定最佳剪枝閾值P(β),最終得到誤分類誤叉最小的CART樹分類模型.
人造板表面缺陷在線識別的實現(xiàn)流程如圖2所示.
圖2 人造板缺陷自動識別流程
(1)圖像預處理.對CMOS相機獲得的在線人造板圖像,用中值濾波去除噪聲干擾.
(2)缺陷檢測及區(qū)域定位.將經(jīng)過預處理的圖像進行分塊檢測,計算每一各區(qū)塊的平均灰度值和方差,將方差大于一定閾值定義為缺陷板,并將該區(qū)塊定義為缺陷區(qū)域.
(3)圖像分割.利用Otsu閾值分割法對缺陷區(qū)域進行分割.
(4)特征提取.統(tǒng)計缺陷區(qū)域中的形狀、紋理特征構成特征向量.
(5) CART樹分類.通過CART樹分類器進行分類.
當有新輸入的人造板圖像時,首先進行缺陷檢測判斷是否有缺陷,如果檢測有缺陷,進行缺陷定位、通過圖像分割、提取缺陷的特征值,作為CART樹的輸入,通過CART樹得到缺陷類別.其中最重要的是特征參數(shù)提取和最優(yōu)決策樹(DT)的構建.
人造板缺陷特征提取是缺陷識別的關鍵,由于人造板圖像的背景灰度值均勻,缺陷區(qū)域內的灰度值相似,各類缺陷的形狀差異較大,基于選取缺陷圖像的形狀、紋理特征對缺陷進行表征,其表達式如表1、表2所示.
表1 形狀特征計算公式
表2 紋理特征計算公式
表1中,N為缺陷區(qū)域內像素點的個數(shù);Nb為缺陷區(qū)域邊緣像素點的個數(shù); MER為缺陷區(qū)域最小外接矩形;LMER為MER的長;WMER為MER的寬;SMER為MER的面積.
表2中,M(i)為缺陷各點的灰度值,N為缺陷區(qū)域像素點的個數(shù).
采用CART算法對大刨花、膠斑、雜物、油污四類缺陷的人造板圖像進行訓練,從而獲得缺陷自動識別CART.CART分類樹的構建實質是建立人造板缺陷特征值與缺陷類別的非線性映射關系.其輸入向量為Q(S、L、O、OR、P、u、σD、σP、σS、σR),輸出為O(1,2,3,4)分別代表大刨花、膠斑、雜物、油污,建立映射關系為Q…O.
本文中用MATLAB軟件進行程序編寫,首先提取220張人造板缺陷圖像,提取形狀、紋理特征作為實驗數(shù)據(jù),抽取其中200個數(shù)據(jù)構成訓練集Li,用于訓練CART樹,剩下的20個數(shù)據(jù)組成訓練集T,用來驗證CART樹的優(yōu)劣,其實現(xiàn)過程如下所示:
1) 將200個人造板特征數(shù)據(jù)L分成10份即Li(i=1,2,…,10),則訓練集為L–Li為 CART樹的訓練輸入,樣本中的缺陷類別標簽為訓練輸出,Li為測試數(shù)據(jù)用來確定剪枝閾值P;
2) 用CART算法訓練出自由生長的決策樹T;
3) 通過剪枝獲得子樹{T1,T2,…,Tn},其中T=T1,利用Li測每棵子樹的真實誤差E(E1,E2,…,E10)的平均值,將E中最小的值對應的閾值P為最優(yōu)的剪枝閾值,從而獲得最優(yōu)的CART樹.
表3 測試集混淆矩陣
當有新的人造板圖像輸入時,首先對圖像進行預處理,通過檢測區(qū)塊的灰度均值和方差判斷是否具有缺陷,如果沒有缺陷則不進行分割操作,如果存在缺陷進行圖像分割獲得缺陷特征值,將其作為CART樹的輸入,通過CART樹得到輸出類別.
本研究的人造板圖像是通過人造板生產廠家提供的,共220幅.通過對人造板缺陷圖像其進行預處理、圖像分割,其分割后的圖像如圖3所示,通過對圖3中二值圖像獲得形狀特征值,將分割后的缺陷區(qū)域映射到原圖中進而獲得紋理特征,從而獲得表征缺陷的十個特征數(shù)據(jù) (S,L,O,OR,P,u,σD,σP,σS,σR).
在訓練集L下根據(jù)CART算法訓練出的未經(jīng)過剪枝的CRAT樹T如圖4所示,獲得一系列子樹及P(β1,β2,…,βk)值.圖4采用IF-THEN的形式表現(xiàn)出數(shù)據(jù)的分類過程.當有新數(shù)據(jù)輸入時,根據(jù)根節(jié)點的特征屬性與相應的數(shù)據(jù)進行大小判斷數(shù)據(jù)的流向(此根節(jié)點屬性為σP,IFx8>0.05592,進入左子樹),進而逐漸的識別出人造板的四類缺陷,之后確定剪枝閾值P,進行剪枝操作.
圖3 四類缺陷分割前后圖像
從圖5可知,隨著P值增大(復雜度增加),交叉驗證相對誤差逐漸增大.圖5中,P的值先為無窮大,葉節(jié)點的數(shù)量代表樹的復雜度,剪枝過程從1~12開展,共12次; 葉節(jié)點的數(shù)量從18變?yōu)?.通過圖4可以看出,交叉驗證誤差在P的值為0.001開始增加,所以最大剪枝次數(shù)為5,此時交叉驗證誤差為0.05,最終的葉節(jié)點數(shù)為8.通過剪枝后,決策樹的葉節(jié)點樹量減少,樹的復雜度明顯降低,最終剪枝后的最終結構如圖6所示.
利用測試集的20組特征值數(shù)據(jù)對如圖6所示構建的決策樹進行檢測,其結果如表3所示,其中行表示實際的缺陷類別,列代表預測的缺陷類別.從圖中可知,總的識別率達到95%,可以滿足人造板的識別正確率.其中雜物和油污的識別率較低,主要是這兩種缺陷灰度值較為相似,形狀表現(xiàn)形式不一,容易識別錯誤.
為了驗證本研究提出剪枝的CART樹分類算法的可行性,與神經(jīng)網(wǎng)絡、支持向量機(SVM)以及未剪枝的CART樹三種算法在人造板表面缺陷識別上正確率和時間進行比較.
圖4 充分生長的決策樹
圖5 交叉驗證結果
圖6 剪之后的決策樹
3.2.1 正確率
利用測試集中的20組特征值數(shù)據(jù)對三種方法進行驗證,其結果如圖7所示,其中大刨花、膠斑、雜物、油污缺陷數(shù)量為2、5、7、6.由圖可知,剪枝后決策樹分類器的識別正確率較神經(jīng)網(wǎng)絡、SVM兩種算法有很大的優(yōu)勢,對于雜物、油污兩種難以區(qū)分的缺陷仍有較高的識別效率.剪枝后CART樹較未剪枝的決策樹識別能力強,這是由于未剪枝決策樹在訓練的時候對訓練樣本數(shù)據(jù)進行充分表達,泛化能力較弱,由此可知剪枝后CART具有較強的泛化能力.
圖7 三種算法缺陷識別比較
3.2.2 算法耗時分析
在Intel Core I5-7500U 2.4 GHZ,6 GB內存的硬件環(huán)境下和Windows10,MATLAB2016b的軟件環(huán)境下,對剪枝后的CART樹分類算法、神經(jīng)網(wǎng)絡和SVM三種方法在獲得的人造板缺陷數(shù)據(jù)上CPU運行時間進行分析.其中圖像分割、特征提取為相同程序,耗時分別為320 ms、90 ms.三種算法在訓練集、測試集耗時如表4所示,由表可知,未剪枝的CART樹在訓練和測試耗時最短.神經(jīng)網(wǎng)絡和SVM主要是由于計算復雜,訓練所需時間較長.
表4 耗時分析
從表4可以看出,神經(jīng)網(wǎng)絡、SVM兩種算法時間很短,但屬于黑盒,分類過程難以讓人理解,不易應用到實際中.而決策樹在分類過程是根據(jù)不同的特征屬性的特征值大小對數(shù)據(jù)不斷的進行二分,容易理解且容易實現(xiàn).結合人造板缺陷識別正確率、識別時間和可實行性可知,基于剪枝CART樹的分類模型滿足人造板在線檢測實時性和正確率的要求.
將本研究獲得的剪枝后CART樹得出的模糊規(guī)則(IF-THEN)編寫入C++程序中,嵌入到基于機器視覺的人造板在線缺陷檢測系統(tǒng)中,缺陷檢測率高達98%,缺陷識別正確率高達93%.本研究證明了設計的基于剪枝CART樹的分類方法在人造板檢測系統(tǒng)中應用的可行性和優(yōu)勢,填補了我國人造板行業(yè)缺陷檢測的空白,推動人造板行業(yè)缺陷檢測自動化發(fā)展,為以后開展各類相似的缺陷檢測提供了一種可行的方式.