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