金閎奇,陳新度 ,2,吳 磊,2
1.廣東工業(yè)大學 機電工程學院,廣州 510006
2.廣東工業(yè)大學 廣東省計算機集成制造重點實驗室,廣州 510006
表面缺陷檢測一直以來都是工業(yè)制造中的重要環(huán)節(jié),傳統(tǒng)的檢測方法往往需要大量的人力[1]。而隨著機器視覺技術(shù)的不斷發(fā)展,大量的研究表明機器視覺自動檢測技術(shù)能在一定程度上取代人工,從而降低企業(yè)的生產(chǎn)成本,提高生產(chǎn)效率[2-5]。
最近幾年有越來越多的學者提出基于卷積網(wǎng)絡(luò)的缺陷檢測方法,Ren 等人[6]提出基于卷積網(wǎng)絡(luò)的缺陷自動檢測框架。后續(xù)的缺陷檢測研究開始朝著卷積網(wǎng)絡(luò)層數(shù)越來越深的方向發(fā)展[7-10]。而隨著網(wǎng)絡(luò)深度的增加,模型的檢測效果并沒有變得更好,反而會出現(xiàn)退化現(xiàn)象。這其中有學者分析認為是更深的網(wǎng)絡(luò)會伴隨梯度的消失從而導致網(wǎng)絡(luò)無法正常收斂[11]。也有研究者參考集成學習[12]、數(shù)據(jù)增強[13]、批歸一化[14]、自適應(yīng)加權(quán)池化[15]等方法提出了改進的卷積網(wǎng)絡(luò)模型,已經(jīng)在一定程度上緩解了這個問題,但依然不足以滿足要求。受到殘差和恒等映射思想的啟發(fā),He等人[16]提出了殘差網(wǎng)絡(luò)ResNet,通過將有參卷積層用來學習輸入和輸出之間的殘差,實驗證明殘差網(wǎng)絡(luò)能夠在深度增加的情況下維持穩(wěn)定的準確率增長,有效地避免了隨著卷積網(wǎng)絡(luò)中層數(shù)增加,模型準確度不升反降的問題。劉鑫童等人[17]將中值濾波和殘差網(wǎng)絡(luò)相結(jié)合,通過實驗驗證了使用跨層連接和殘差學習能有效降低網(wǎng)絡(luò)訓練難度,提高檢測準確率。關(guān)日釗等人[18]通過對殘差網(wǎng)絡(luò)中的特征提取網(wǎng)絡(luò)進行混合尺度感受野融合處理,彌補了原網(wǎng)絡(luò)對微小裂痕敏感度不高的缺點。
缺陷檢測是一類極其復雜的模式識別問題,傳統(tǒng)的基于單個分類器的方法往往難以獲得較好的檢測效果,而現(xiàn)如今大量的理論和實驗已經(jīng)證明多個分類器的集成往往能比單個分類器獲得更好的準確率。潘兵等人[19]將級聯(lián)方法和卷積網(wǎng)絡(luò)相結(jié)合,提出了雙網(wǎng)絡(luò)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計,其實驗表明級聯(lián)的方法能使卷積網(wǎng)絡(luò)提取出更具辨識性的特征。李亞可等人[20]提出了級聯(lián)的卷積網(wǎng)絡(luò),一定程度上解決了單一網(wǎng)絡(luò)去提取特征引起的算法泛化能力變?nèi)醯膯栴}。
本文在ResNet的基礎(chǔ)上提出級聯(lián)殘差網(wǎng)絡(luò)MTResNet,采用B個殘差網(wǎng)絡(luò)的級聯(lián)(Multiple)來代替最優(yōu)殘差網(wǎng)絡(luò)的求解,即 MTResNet 將B個 ResNet 的 SoftMax 輸出加權(quán)疊加在一起,然后作為最終分類結(jié)果輸出,詳細的結(jié)構(gòu)定義在2.4 節(jié)給出。對于每個殘差網(wǎng)絡(luò)ResNet,其核心ResBlock結(jié)構(gòu)設(shè)計如圖1所示,ResNet各層級參數(shù)配置如表1 所示。本文實驗中對比的傳統(tǒng)CNN 方法的網(wǎng)絡(luò)模型為表1中不包含ResBlock的ResNet。ResBlock的輸入輸出的尺寸和維度都是一致的,因此網(wǎng)絡(luò)模型去掉ResBlock不會影響網(wǎng)絡(luò)的前后層連接關(guān)系。
本文提出的級聯(lián)殘差網(wǎng)絡(luò)同其他基于深度學習的目標檢測方法都會遇到小樣本問題。小樣本問題就是說在實際的工業(yè)生產(chǎn)中,缺陷樣本的類別多但是數(shù)量少,且同類缺陷差異較大,這就會造成直接應(yīng)用深度學習方法進行缺陷分類的準確率低且訓練損失函數(shù)不容易收斂。小樣本問題意味著深度學習方法需要的底層數(shù)據(jù)實際上應(yīng)該很多。
表1 ResNet各層級參數(shù)
朱玉蓮[21]使用半隨機子空間的LDA 方法驗證了隨機子空間方法配合其他方法能夠在一定程度上解決小樣本問題。Klare等人[22]使用原型隨機子空間表明了隨機子空間方法能夠提高樣本的特征表示。張永祥等人[23]采用協(xié)方差驅(qū)動的隨機子空間方法用于解決模態(tài)識別問題,且從原理上證明了隨機子空間方法的有效性。
本文引入RSM方法,將輸入圖像分為N個不相互重疊的子圖像,并構(gòu)建出B個隨機子空間。每一個子空間都包含α?N個子圖像,0 ≤α≤1 。用一個隨機索引向量kb∈Zα?N生成隨機子空間b(b=1,2,…,B),kb中的每一個元素都不重復,且元素值在1和N之間。圖2展示了在原圖像上生成的3個隨機子空間。
圖2 原圖和隨機子空間的3個實例
原圖像I依據(jù)隨機索引向量kb索引得到的α?N個子圖像,最后拼接生成隨機子空間f(I,kb),如公式(1)所示:
假設(shè)訓練樣本集的某個類別下有M∈Rm×n個樣本。在隨機子空間方法中,每個子圖像的大小為d1×d2,將樣本數(shù)量由M擴展為M×B,樣本的維度由m×n變小為d1×d2×α?N,樣本維數(shù)小于原空間而訓練樣本數(shù)增加。
缺陷圖像會被三個不同的圖像濾波器過濾,分別為MLBP[24-25]、DoG[26]、Gauss[27]。這些濾波器旨在幫助補償同類圖像之間的強度變化(例如不均勻的光照變化)和紋理變化,每個圖像濾波器的效果示例如圖3所示。這兩個方面對于隨機子空間(RSM)框架特別重要,對于殘差神經(jīng)網(wǎng)絡(luò)的訓練過程需要大量的樣本,同時希望訓練的樣本在同類之間的差異盡可能小,不同類別的差異盡可能大,因此在樣本上執(zhí)行三個不同的圖像濾波器能有效避免小樣本事件的發(fā)生,同時增加圖像的特征表現(xiàn)能力。
圖3 三個濾波器效果
基于RSM的級聯(lián)殘差網(wǎng)絡(luò)模型就是在每個隨機子空間上構(gòu)建一個殘差網(wǎng)絡(luò)分類器,最后采用級聯(lián)的方式將各ResNet的結(jié)果進行融合以獲得最后的決策。整個模型的構(gòu)建如圖4所示。
本文設(shè)計的RSM-MTResNet 模型對缺陷數(shù)據(jù)集進行實驗驗證,主要流程如下:
(1)利用圖像濾波器(MLBP、DoG、Gauss)對原始缺陷數(shù)據(jù)集進行濾波增強。
(2)將圖像增強后的數(shù)據(jù)集作為RSM-MTResNet的訓練輸入。
(3)RSM方法隨機生成B個隨機子空間,并初始化MTResNet。
(4)MTResNet 將訓練好的B個高階特征融合在一起后通過Softmax分類器檢測分類。
本文采用了一個公共的缺陷數(shù)據(jù)集,NEU 表面缺陷數(shù)據(jù)集[28]。該數(shù)據(jù)集包含了熱軋帶鋼表面缺陷的六種類型,包括裂紋(Cr)、夾雜物(In)、斑塊(Pa)、點蝕表面(PS)、鐵皮壓入(RS)和劃痕(Sc)。每一類缺陷有300個樣本,缺陷圖像的例子如圖5所示。
圖5 NEU表面缺陷圖像示例
在缺陷檢測結(jié)果中,可將缺陷測試樣本集根據(jù)其真實類別與預測類別的組合劃分為真陽性(true positive)、假陽性(false positive)、真陰性(true negative)、假陰性(false negative)四種情形,令TP、FP、TN、FN分別表示其對應(yīng)的樣本數(shù)。
本文采用分類準確率(Accuracy)、查準率(Precision)、查全率(Recall)和F1 值作為實驗評價標準。分類準確率的計算公式為:
查準率和查全率越高,越能體現(xiàn)缺陷類別檢測準確的數(shù)量越多,模型對于缺陷特征的提取和篩選能力越強。查準率和查全率計算公式為:
圖4 RSM-MTResNet模型結(jié)構(gòu)
查準率和查全率對于模型的評價都非常重要,而F1值定義為查準率和查全率的調(diào)和平均:
本文構(gòu)建的RSM-MTResNet 模型訓練方法采用的是有監(jiān)督訓練方式,數(shù)據(jù)集總共1 800張缺陷圖片,將其隨機打亂后,按照1∶2∶3 的比例分為訓練集、測試集和驗證集。訓練集一共300 張圖片,每個類別50 張,屬于小樣本訓練。
RSM-MTResNet 方法中濾波器參數(shù)、RSM 參數(shù)和網(wǎng)絡(luò)各層級參數(shù)設(shè)置如下:
(1)對于濾波器參數(shù)的設(shè)置,本文引入了三種濾波器,分別為MLBP、DoG 和Gauss 濾波器。其中,MLBP濾波器采用8個采樣點,3×3鄰域;DoG濾波器設(shè)置標準差為 1 和 2,15×15 鄰域;Gauss 濾波器采用標準差為 2,3×3鄰域。
(2)對于RSM方法,設(shè)置N為16,即將輸入圖像分為16個不相互重疊的子圖像。設(shè)置B=30,即構(gòu)建出30個隨機子空間。隨機索引向量kb∈Zα?N,其中0 ≤α≤1。
(3)對于網(wǎng)絡(luò)各層級參數(shù)設(shè)置,學習速率(learning rate)為0.002,學習策略(learning policy)為step,小批量訓練大小(batch size)為32,最大迭代次數(shù)為1 000。
如圖6 給出的是RSM-MTResNet 方法在驗證集上的分類準確率曲線和損失曲線。從圖6可以看出,隨著迭代次數(shù)的增加,模型的分類準確率不斷上升,損失值不斷下降,模型達到很好的收斂效果,并且在迭代次數(shù)400次達到99.8%左右,之后有微小的上下浮動,但不影響整體的收斂趨勢。
圖6 分類準確率曲線和損失曲線
為了驗證本文方法所提出的RSM-MTResNet,本文通過在測試集上進行實驗,對比傳統(tǒng)CNN方法,同時也驗證本文引入的級聯(lián)(MT)方法、隨機子空間(RSM)方法以及多圖像濾波(Filters)方法對于分類準確率的提升效果。
從表2中可以看出與傳統(tǒng)的CNN方法相比,當基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)變?yōu)镽esNet后,準確率由83.01%提高到92.48%,提高了9.47個百分點;在ResNet的基礎(chǔ)上引入的MT方法、RSM方法以及Fileters 方法分別將分類準確率提升了1.5、2.5、1.18個百分點;最終,RSM-MTResNet的分類準確率為97.66%,比傳統(tǒng)CNN方法的準確率高了14.65個百分點,這表明本文方法增強了網(wǎng)絡(luò)的特征提取能力和識別能力。
表2 對比CNN分類準確率
實驗使用混淆矩陣表示模型在測試集上的預測分類結(jié)果和實際分類情況,并且計算每個類別的查準率(Precision)和查全率(Recall)。表3為通過傳統(tǒng)CNN方法得出的混淆矩陣,表4 為通過本文提出的RSMMTResNet 方法得出的混淆矩陣。對比表3 和表4 可以發(fā)現(xiàn),CNN方法在個別類別上表現(xiàn)效果很差,比如夾雜物(In)類別上的查準率為60.6%,查全率為74.1%,而RSM-MTResNet 方法在夾雜物(In)類別上的查準率為92.9%,查全率為97.2%,相比CNN方法提高了32.3個百分點和23.1個百分點。
表3 CNN混淆矩陣
表4 RSM-MTResNet混淆矩陣
表5 為 CNN 方法和 RSM-MTResNet 方法對于每個類別的F1 值,因為F1 值為查準率和查全率的調(diào)和平均值,所以能反映出模型總體水平。從表5 中可以看出,RSM-MTResNet 方法對每個缺陷類別的F1 值均有提高,提高的范圍在9.5~28.4個百分點之間。
表5 F1值對比結(jié)果 %
綜上所述,可以看出RSM-MTResNet方法不論是在整體的分類準確率上還是在單個類別的查準率和查全率上均優(yōu)于CNN 方法,尤其提高了較難識別的夾雜物(In)的分類準確率。
針對缺陷數(shù)據(jù)集中的小樣本問題,本文提出了一種結(jié)合隨機子空間(RSM)和級聯(lián)殘差網(wǎng)絡(luò)(MTResNet)的缺陷檢測方法。方法中采用單個樣本分解出多個隨機子空間,然后將其輸入至MTResNet 模型進行訓練,并融合了多個分類器的分類結(jié)果,理論上RSM 增加了單樣本的數(shù)量,而MTResNet 提升了網(wǎng)絡(luò)的特征提取能力。從實驗可以看出,相對于現(xiàn)有的CNN方法,本文提出的RSM-MTResNet是更魯棒、更有效的。但是本文方法所引入的RSM 方法是基于子空間方法的,所以出現(xiàn)如何選取合適的子塊大小的問題,有可能通過聚類或者優(yōu)化搜索等方法在一定程度上克服這個問題。