梁日強(qiáng),胡燕林,蔣占四
(桂林電子科技大學(xué)機(jī)電工程學(xué)院,桂林 541004)
工業(yè)表面缺陷檢測是檢測產(chǎn)品是否合格的一個重要環(huán)節(jié),計算機(jī)視覺技術(shù)正在不斷的發(fā)展,利用視覺技術(shù)可以實(shí)現(xiàn)自動化的生產(chǎn),同時也可以滿足工業(yè)生產(chǎn)中的實(shí)時性在線檢測的基本要求。與傳統(tǒng)的人工檢測相比,視覺技術(shù)可以大幅度的提高工作效率和缺陷檢測的準(zhǔn)確率,降低人工成本,實(shí)時性好,推動產(chǎn)業(yè)的自動化生產(chǎn)[1]。
帶鋼作為基礎(chǔ)的工業(yè)原料,被廣泛的應(yīng)用與各行各業(yè),表面質(zhì)量是能夠直觀的反應(yīng)帶鋼的好壞,因此研究帶鋼表面識別的準(zhǔn)確率,不僅僅在理論上由意義,而在實(shí)際應(yīng)用中也有著重要的意義。在帶鋼的缺陷檢測領(lǐng)域中,不少學(xué)者都給出相應(yīng)的方法,如:徐海燕等[2]提出了一種提出基于隱馬爾科夫模型的帶鋼表面檢測方法,該方法可以降低數(shù)據(jù)處理量,提高帶鋼缺陷檢測的準(zhǔn)確率,可以達(dá)到實(shí)時性生產(chǎn)要求。劉啟浪等[3]提出了一種基于多尺度 LBP 特征的帶鋼表面缺陷圖像SVM分類方法,該方法可以提高識別的準(zhǔn)確率擴(kuò)大受野面積。這些方法雖然在帶鋼的檢測方面有著不錯的效果,但是還存在準(zhǔn)確率受到圖像質(zhì)量的影響,以及需要的重復(fù)操作多等缺點(diǎn)。
隨著神經(jīng)網(wǎng)絡(luò)以及深度學(xué)習(xí)的興起,為了解決上述問題的缺點(diǎn),近年來學(xué)者們把深度學(xué)習(xí)方法應(yīng)用到帶鋼的缺陷檢測,表明了深度學(xué)習(xí)方法在帶鋼缺陷檢測中有著不錯的效果。LI等[4]為了針對帶鋼表面缺陷的復(fù)雜性,提取更多的特征,于是提出了一種改進(jìn)的YOLO帶鋼缺陷檢測的方法,使其成為全卷積網(wǎng)絡(luò),實(shí)驗(yàn)證明該方法由較高的準(zhǔn)確率。翁玉尚等[5]提出了一種改進(jìn)Mask R-CNN算法的帶鋼表面缺陷檢測,可以滿足了帶鋼工業(yè)生產(chǎn)的要求,提高檢測的準(zhǔn)確率。王立中等[6]為了解決傳統(tǒng)視覺在帶鋼表面缺陷識別過程中的特征不能自動準(zhǔn)確提取的問題,構(gòu)建了卷積神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)特征自動提取,提出了一種基于深度學(xué)習(xí)算法的帶鋼表面缺陷識別方法。
綜上所述,傳統(tǒng)視覺存在不能自動提取特征以及準(zhǔn)確率不高的缺陷,而一般的卷積神經(jīng)網(wǎng)絡(luò)中又存在大量的冗余信息,造成識別的效率慢,以及對于帶鋼識別來說準(zhǔn)確率還是不高。針對這些不足,本文利用LeakyReLU激活函數(shù)以及Adamax優(yōu)化器改進(jìn)殘差收縮網(wǎng)絡(luò),提高帶鋼表面缺陷檢測的效率以及識別的準(zhǔn)確度。
ZHAO等[7]提出了一種用于故障診斷的深度殘差收縮網(wǎng)絡(luò),該網(wǎng)絡(luò)是殘差網(wǎng)絡(luò)的一種變體,不僅能夠有殘差網(wǎng)絡(luò)解決梯度消失或者梯度爆炸的問題,同時也能夠去除網(wǎng)絡(luò)中的大量冗余信息。殘差收縮網(wǎng)絡(luò)有基本組件、主干網(wǎng)絡(luò)、軟閾值、殘差收縮構(gòu)建組成和Adam優(yōu)化器組成,但是該網(wǎng)絡(luò)在帶鋼的缺陷檢測上還存在準(zhǔn)確率低的特點(diǎn),以及資源使用多。
殘差收縮網(wǎng)絡(luò)跟傳統(tǒng)的深度卷積網(wǎng)絡(luò)一樣,都有卷積層、池化層、偏差項、激活函數(shù)和交叉熵?fù)p失函數(shù)。在卷積核與特征圖之間需要加上一個偏差項,偏差項表達(dá)形式如下:
(1)
式中,xi表示第i個通道的輸入特征圖;yj是第j個通道的輸出特征圖;k是卷積核;Mj是計算輸出y特征圖的通道集合。
在深度學(xué)習(xí)中,為了減少內(nèi)部的協(xié)變位移,所以正則化通常被引入到深度學(xué)習(xí)中[8],BN正則化的表達(dá)形式如下:
(2)
(3)
(4)
(5)
式中,xn、yn分別代表了第n個特征圖的輸入和輸出;γ、β表示縮放、移動的訓(xùn)練參數(shù);ε是接近于0的一個常數(shù)。
激活函數(shù)可以有效地防止在深度學(xué)習(xí)中的梯度消失,使用在非線性變換中。殘差收縮網(wǎng)絡(luò)的激活函數(shù)使用ReLU激活函數(shù),它的表達(dá)形式如下:
y=max(x,0)
(6)
式中,x、y分別表示輸入和輸出。
為了更好地計算出交叉熵?fù)p失,這里應(yīng)用softmax函數(shù),把特征強(qiáng)制控制在(0,1)的范圍內(nèi),它的表達(dá)式表示如下:
(7)
式中,x、y是softmax功能的輸入和輸出特征圖;i、j是輸出層神經(jīng)元的索引;Nclass是類別的數(shù)量;yj可以被視為屬于j類的觀測值的預(yù)測概率。
在多分類的目標(biāo)識別中,交叉熵?fù)p失函數(shù)被用來最小化,交叉熵?fù)p失函數(shù)表達(dá)形式:
(8)
式中,t是目標(biāo)的輸出;tj是屬于j類的觀測值的實(shí)際概率。
殘差收縮由一個輸入層、一個卷積層、多個rbu、一個BN、一個ReLU、一個輸出FC層組成。殘差模塊如圖1所示。
圖1 基本的殘差模塊
主干網(wǎng)絡(luò)為殘差網(wǎng)絡(luò),輸入和輸出關(guān)系如下:
F(x)=H(x)-x
(9)
式中,H(x)是觀測值,在單位映射中,F(xiàn)(x)對應(yīng)的殘差。這樣的模塊可以很好地解決梯度消失和梯度爆炸問題。
軟閾值函數(shù),在過去的研究中通常是用來研究噪聲處理的,那么把將它融合到殘差網(wǎng)絡(luò)中[9],可以很好地消除圖像的一些噪聲。它并不是將激活函數(shù)的負(fù)數(shù)特征設(shè)為0,而是將其負(fù)數(shù)特征保留。軟閾值函數(shù)的表達(dá)形式如下:
(10)
式中,x表示輸入特征;y表示輸出特征;τ表示閾值。其導(dǎo)數(shù)的表達(dá)形式如下:
(11)
由此可見,導(dǎo)數(shù)要么為1,要么為0,可以有效地防止梯度爆炸和梯度消失,這里的軟閾值與激活函數(shù)的功能類似。
FC網(wǎng)絡(luò)中的第二層有多個神經(jīng)元,神經(jīng)元的數(shù)量等于輸入特征圖的通道數(shù)。FC網(wǎng)絡(luò)的輸出縮放到(0,1)的范圍,使用以下公式:
(12)
式中,zc是第c個神經(jīng)元的特征;αc是第c個縮放數(shù)。這里已經(jīng)計算完FC網(wǎng)絡(luò)的輸出,下一步進(jìn)行閾值的計算,它的表達(dá)模型如下:
(13)
式中,τc是第c個特征圖的閾值;i、j、c分別表示特征圖x的寬、高和通道。
在機(jī)器是學(xué)習(xí)中,優(yōu)化參數(shù)使之達(dá)到最合適的值,同時也就是時損失函數(shù)達(dá)到最小。優(yōu)化器的任務(wù)是在每一輪的迭代中計算損失函數(shù)的梯度,并且更新參數(shù)。它的模型如下:
gt=ΔθJ(θt-1′)
(14)
mt=β1mt-1+(1-β1)gt
(15)
(16)
(17)
(18)
(19)
ReLU激活函數(shù),當(dāng)輸入數(shù)接近0時,梯度突然變?yōu)?,無法進(jìn)行有效的網(wǎng)絡(luò)反向傳播,無法學(xué)習(xí),此外存在神經(jīng)元死亡問題。因此本文使用LeakyReLU激活函數(shù),可以有效的解決ReLU激活神經(jīng)元死亡問題,計算效率高,可以快速收斂,LeakyReLU激活函數(shù)如下:
(20)
式中,ai是(0,+∞)的固定參數(shù)。
在計算完成交叉熵?fù)p失之后,應(yīng)用隨機(jī)梯度下降算法,對深度學(xué)習(xí)進(jìn)行優(yōu)化,原有的Adam優(yōu)化算法不穩(wěn)定,對于更新比較慢,因此使用Adamax算法對殘差收縮網(wǎng)絡(luò)進(jìn)行優(yōu)化,使其收斂的時候得到一個有效的穩(wěn)定的值,加快更新速度。
(21)
(22)
(23)
ut=max(β2*Vt-1,|gt|)
(24)
這里引用無窮階動量后,可以得到一個比較穩(wěn)定的結(jié)果。這里的參數(shù)一般都選用默認(rèn)的參數(shù)。改進(jìn)后的殘差收縮模塊如圖2所示。
圖2 改進(jìn)后DRESN-CW的模塊
由圖2可見,改進(jìn)后的殘差收縮模塊主要是3個正則化,3個LeakyReLU激活函數(shù)、兩個卷積快、兩個全連接層、以及一個Sigmoid函數(shù)組成。由LeakyReLU替換成原來的ReLU激活函數(shù)可以加快網(wǎng)絡(luò)的效率。
基于殘差收縮網(wǎng)絡(luò)帶鋼識別的基本步驟:
步驟1:導(dǎo)入數(shù)據(jù)集,通過增廣數(shù)據(jù)集,提高網(wǎng)絡(luò)訓(xùn)練的準(zhǔn)確度;
步驟2:搭建改進(jìn)的殘差收縮網(wǎng)絡(luò)模型,確定深度學(xué)習(xí)的層數(shù),以及各個通道數(shù);
步驟3:優(yōu)化器選擇上,把優(yōu)化器從Adam換成Adamax優(yōu)化器,提高訓(xùn)練網(wǎng)絡(luò)的精度,和減少資源的使用;
步驟4:訓(xùn)練完成網(wǎng)絡(luò),輸出網(wǎng)絡(luò)訓(xùn)練的準(zhǔn)確率,保存網(wǎng)絡(luò)各種參數(shù),以便驗(yàn)證。
圖3 改進(jìn)的殘差網(wǎng)絡(luò)帶鋼缺陷識別流程
本次實(shí)驗(yàn)使用的是帶鋼數(shù)據(jù)集,是某大學(xué)所建立的數(shù)據(jù)集,該數(shù)據(jù)集有裂紋、夾雜、斑塊、麻點(diǎn)、壓入氧化皮和劃痕6大缺陷類別特征。各類缺陷有300個樣本。由圖4我們可以看到,由于受到材料和光照的影響,各類的類內(nèi)缺陷差別較大,而類間缺陷具有一定的相似性。這就是帶鋼缺陷數(shù)據(jù)集的兩個難點(diǎn)[10]。
(a) 裂紋 (b) 夾雜 (c) 斑塊
本實(shí)驗(yàn)的實(shí)驗(yàn)配置如下:使用1080Ti,內(nèi)存為64 G顯卡。主要使用DRESN-CW構(gòu)建殘差收縮36層的網(wǎng)絡(luò)訓(xùn)練。
為了驗(yàn)證網(wǎng)絡(luò)的有效性,本文設(shè)置為一些對比試驗(yàn):未改進(jìn)的殘差收縮網(wǎng)絡(luò)進(jìn)行總準(zhǔn)確度對比以及各類缺陷的準(zhǔn)確度對比,其結(jié)果如表1所示。
表1 改進(jìn)與未改進(jìn)準(zhǔn)確率的對比 (%)
把改進(jìn)的網(wǎng)絡(luò)與未改進(jìn)的網(wǎng)絡(luò)運(yùn)行3次,然后取平均值,由表1可知改進(jìn)后的殘差收縮網(wǎng)絡(luò)無論是訓(xùn)練集還是測試集的表現(xiàn)都比未改進(jìn)的要好,說明測試集的錯誤率下降了73%。所以改進(jìn)的網(wǎng)絡(luò)有效。
由表2可知,未改進(jìn)的網(wǎng)絡(luò)除了夾雜的識別準(zhǔn)確率為95.45%,斑塊的識別準(zhǔn)確率為78.26%,其他都為100%的識別準(zhǔn)確率。改進(jìn)的殘差收縮網(wǎng)絡(luò)只是斑塊的識別準(zhǔn)確率為91.80%,其他的識別率都為100%。因此改進(jìn)的殘差收縮網(wǎng)絡(luò)在各類缺陷識別的準(zhǔn)確率有一定的提高,所以改進(jìn)的殘差收縮網(wǎng)絡(luò)在各類的缺陷識別上有較好的識別準(zhǔn)確度。
表2 各類型缺陷的準(zhǔn)確率對比 (%)
為了進(jìn)一步證明本文方法的有效性,找出常用的帶鋼缺陷檢測方法進(jìn)行比較。由表3可知,文獻(xiàn)[3]、文獻(xiàn)[2]和SVM+GLDM這些傳統(tǒng)的方法,準(zhǔn)確率都沒有超過97%,而且分類器加特征提取的傳統(tǒng)方法容易受到圖像質(zhì)量的影響,造成識別的準(zhǔn)確率降低。深度學(xué)習(xí)的方法,ResNet、DRESN-CS、DRESN-CW、改進(jìn)DRESN-CS這些方法準(zhǔn)確率都沒有達(dá)到96%,而且需要消耗了大量的資源。文獻(xiàn)[6]的方法準(zhǔn)確率雖然比較高,但是對于本文改進(jìn)的方法還是略低。通過對比發(fā)現(xiàn),本文提出的方法相對于其他帶鋼識別的方法具有一定的優(yōu)勢和實(shí)際的使用價值,所以本文提出的這種方法是有效的。
表3 各算法的帶鋼缺陷識別對比 (%)
在帶鋼的表面缺陷檢測中,傳統(tǒng)的缺陷識別方法容易受到光照不均勻的影響,因此本文將殘差收縮網(wǎng)絡(luò)引進(jìn)帶鋼的缺陷檢測,通過適當(dāng)?shù)母倪M(jìn),建立帶鋼的缺陷檢測模型并且優(yōu)化參數(shù),利用訓(xùn)練好的模型應(yīng)用于帶鋼的缺陷檢測中,所以本文得出以下的結(jié)論:
(1)本文所提出的方法,帶鋼表面質(zhì)量檢測要比傳統(tǒng)的方法:SVM、卷積神經(jīng)網(wǎng)絡(luò)、ResNet網(wǎng)絡(luò)等等的準(zhǔn)確率要高,說明該方法具有一定的實(shí)用價值。
(2)本文提出的方法的帶鋼缺陷檢測,對比沒改進(jìn)之前效果好,說明所提出的改進(jìn)方法有效。
雖然本文提出的方法驗(yàn)證了在帶鋼缺陷檢測的有效性,但是帶鋼的缺陷數(shù)據(jù)集數(shù)量不多,因此在后期還需要繼續(xù)以研究數(shù)據(jù)增強(qiáng)的方法,如結(jié)合GAN網(wǎng)絡(luò)研究數(shù)據(jù)集的增強(qiáng)。