張開生 宋 帆
(1.陜西科技大學(xué)電氣與控制工程學(xué)院,陜西西安,710021;2.陜西科技大學(xué)電子信息與人工智能學(xué)院,陜西西安,710021)
在紙張生產(chǎn)過程中,機(jī)器突然偏離正確軌跡等意外情況在所難免,這會使生產(chǎn)的紙張產(chǎn)生折疊、孔洞、劃痕等缺陷,不僅影響紙張質(zhì)量,還會降低經(jīng)濟(jì)效益,給造紙企業(yè)造成一定損失。因此,對紙張的缺陷檢測是造紙過程中不可或缺的環(huán)節(jié)。一直以來,這種缺陷檢測以人工排查為主,其原因主要有2方面,一是人工成本低廉;二是以前的計算機(jī)技術(shù)還不成熟,紙張缺陷檢測效果差[1]。隨著社會的發(fā)展,人力成本越來越昂貴,加之計算機(jī)技術(shù)飛速發(fā)展,越來越多的造紙企業(yè)開始用機(jī)器代替人工[2],紙張缺陷檢測的算法研究越來越多。袁浩等人[3]通過對紙病圖像進(jìn)行特征選擇,再利用支持向量機(jī)對提取到的特征進(jìn)行分類。但這種方法只對特定種類的紙張缺陷有較好效果,并不適用于所有紙病缺陷,且其檢測效果受光照影響明顯,泛化性差。為了改善這個問題,張學(xué)蘭等人[4]提出了Prewitt算子檢測孔洞、臟點和褶皺。陳珺等人[5]在背景與目標(biāo)缺陷對比不明顯的情況下,提出了一種將邊緣檢測和小波融合結(jié)合起來的方法,此方法定位準(zhǔn)確且有一定的抗噪性;但由于算法本身過于復(fù)雜,計算成本高,無法滿足現(xiàn)實造紙工廠檢測的實時性要求。殷燕屏等人[6]根據(jù)不同紙張缺陷圖像的灰度特征,利用動態(tài)雙閾值分割紙張缺陷區(qū)域,提取缺陷特征并進(jìn)行識別分類;然而此方法需要對不同的紙張缺陷設(shè)置不同的閾值,導(dǎo)致參數(shù)設(shè)置困難。為了降低參數(shù)設(shè)置的復(fù)雜度,段茵等人[7]采用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行紙張缺陷檢測的識別與研究;首先將圖像進(jìn)行中值濾波,然后用全局Otsu算法根據(jù)閾值將圖像分為目標(biāo)和背景2個部分,對缺陷紙張進(jìn)行形態(tài)學(xué)處理后,輸入BP神經(jīng)網(wǎng)絡(luò)進(jìn)行缺陷分類。李光明等人[8]先利用Canny算子、Sobel算子等對紙病進(jìn)行梯度圖像增強(qiáng),然后用MSMG進(jìn)行多尺度圖像增強(qiáng),最后將增強(qiáng)后的圖像放進(jìn)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行缺陷分類。針對傳統(tǒng)紙病識別方法只對某些種類紙病分類效果好、特征計算復(fù)雜、實時性差等問題,本課題提出一種多尺度特征融合注意力機(jī)制的紙病分類方法,通過融合多種圖像增強(qiáng)方式進(jìn)行多尺度特征提取,以應(yīng)對不同的紙病缺陷,將這些特征輸入到帶有注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò),讓網(wǎng)絡(luò)更加關(guān)注紙張缺陷部分,從而達(dá)到更好的分類效果。
本課題采用的多尺度特征融合注意力機(jī)制的紙病分類方法如圖1所示。將待檢測的缺陷圖片進(jìn)行亮度增強(qiáng)、銳化濾波與對比度增強(qiáng)、Sobel邊緣檢測等圖像增強(qiáng)算法后,分別輸入到3個共享權(quán)重的Resnet進(jìn)行淺層特征提取得到局部特征;隨后將3個特征圖進(jìn)行concate融合得到全局特征。此時融合得到的特征圖包含待檢測缺陷圖片的直線信息、邊緣信息等多尺度信息。最后將包含多尺度信息的全局特征圖輸入帶有attention機(jī)制的Resnet,讓網(wǎng)絡(luò)更多關(guān)注能區(qū)別缺陷類別的特征,從而更好地進(jìn)行分類。
圖1 多尺度特征融合結(jié)合注意力機(jī)制方法Fig.1 Multi-scale feature fusion combined with attention mechanism method
亮度增強(qiáng)就是改變圖像的亮度和對比度,實際是對圖像的每個像素點進(jìn)行相應(yīng)操作。具體過程可由式(1)表示。
式中,g(i,j)及f(i,j)代表圖像在(i,j)這個點亮度增強(qiáng)前后的像素值;參數(shù)α代表使圖像像素增長或降低的倍率,該參數(shù)必須大于0;參數(shù)β代表向白色或黑色靠近的程度,該值可正可負(fù)。
該算法對紙張中的污點、邊裂、孔洞響應(yīng)特別強(qiáng)烈,具體效果如圖2~圖4所示,其中左圖為原圖,右圖為亮度增強(qiáng)后的圖像。
圖2 污點圖像亮度增強(qiáng)前后的效果示意圖Fig.2 Effect of enhanced brightness of stain image
圖3 邊裂圖像亮度增強(qiáng)前后的效果示意圖Fig.3 Schematic diagram of the effect of edge crack image before and after brightness enhancement
圖4 孔洞圖像亮度增強(qiáng)前后的效果示意圖Fig.4 Schematic diagram of the effect of hole image before and after brightness enhancement
銳化空間濾波器主要用來增強(qiáng)圖像的突變信息,圖像細(xì)節(jié)信息和邊緣信息。使用鄰域的微分作為算子,增大鄰域間像素的差值,使圖像的突變部分變得更加明顯。從圖像灰度的一階微分和二階微分的性質(zhì)可知,在灰度值變化的地方,一階微分和二階微分的值均不為0,在灰度恒定的地方,微分值均為0。因此,使用一階微分和二階微分都可以得到圖像灰度的變化值。本課題中使用二階算子,紙病圖片可以看作二維離散函數(shù),對于二階微分的x方向和y方向如式(2)和式(3)所示。
二階微分在斜坡處的值為0,但在斜坡兩端值不為0,且符號不同,這樣二階微分得到的是由0分開的1個像素寬的雙邊緣。也就是說,與一階微分相比,二階微分在增強(qiáng)圖像細(xì)節(jié)方面更好,且計算更方便。
二階微分算子的代表為拉普拉斯算子(▽),定義如式(4)~式(6)所示。
該算法對紙張中的折痕、劃痕等直線部分響應(yīng)特別強(qiáng)烈,具體效果如圖5和圖6所示,其中左圖為原圖,右圖為銳化后的圖像。
圖5 折痕圖像銳化濾波前后的效果示意圖Fig.5 Effect of crease image sharpening and filtering
圖6 劃痕圖像銳化濾波前后的效果示意圖Fig.6 Schematic diagram of the effect of scratch image sharpening and filtering
Sobel算子包含2組3×3的矩陣,分別為橫向及縱向,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。A代表原始圖像,Gx及Gy分別代表經(jīng)橫向及縱向邊緣檢測的圖像灰度值,如式(7)和式(8)所示。
圖像的每個像素的橫向及縱向灰度值通過式(9)計算,以計算該點灰度的大小。
如果梯度G大于某一閥值,則認(rèn)為點(x,y)為邊緣點,可通過式(10)計算梯度方向(Θ)。
Sobel算子根據(jù)像素點上下、左右鄰點灰度加權(quán)差在邊緣處達(dá)到極值這一現(xiàn)象檢測邊緣;同時,對噪聲具有平滑作用,可提供較為精確的邊緣方向信息。該算法幾乎對所有紙病響應(yīng)都特別強(qiáng)烈,具體效果如圖7和圖8所示,其中左圖為原圖,右圖為銳化后的圖像。
圖7 白點圖像經(jīng)Sobel邊緣檢測前后的效果示意圖Fig.7 Effect of Sobel edge detection on white point image
圖8 折痕圖像經(jīng)Sobel邊緣檢測前后的效果示意圖Fig.8 Effect diagram of crease image before and after Sobel edge detection
Resnet是由He等人[9]提出的一種基于CNN的特征提取框架,主要解決了深度神經(jīng)網(wǎng)絡(luò)的“退化”問題。
1.4.1 批量歸一化
神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程的本質(zhì)一方面是為了學(xué)習(xí)數(shù)據(jù)分布,如果訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)的分布不同,則網(wǎng)絡(luò)的泛化能力會大大降低;另一方面,如果每批訓(xùn)練數(shù)據(jù)的分布各不相同,則每次迭代都需學(xué)習(xí)適應(yīng)不同的分布,會大大降低網(wǎng)絡(luò)的訓(xùn)練速度,因此需要對數(shù)據(jù)做歸一化預(yù)處理。
首先計算每個批次的均值(μB)與方差(σB),計算公式如式(11)和式(12)所示。
然后根據(jù)上面計算得到的結(jié)果進(jìn)行正則化,如式(13)所示。
為了讓學(xué)習(xí)到的特征分布不被破壞,需對其進(jìn)行變換重構(gòu),如式(14)所示。
其中,γ、β是可學(xué)習(xí)參數(shù)。
1.4.2 池化層
由于Resnet使網(wǎng)絡(luò)加入了更多的單元,導(dǎo)致整個網(wǎng)絡(luò)隱藏層參數(shù)增多,訓(xùn)練時易造成過擬合的狀況。為了減少參數(shù)的復(fù)雜度,采用最大池化,使其不再嚴(yán)格要求相鄰塊聚合到1個上層塊,第l+1層的特征圖如式(15)所示。
圖9為未經(jīng)池化的網(wǎng)絡(luò)結(jié)構(gòu),圖10為經(jīng)過池化后的網(wǎng)絡(luò)結(jié)構(gòu)。如圖9和圖10所示,2者對比可以直觀看出池化層對于降低特征分辨率的作用。
圖10 經(jīng)過池化后的網(wǎng)絡(luò)結(jié)構(gòu)Fig.10 Network structure after pooling
1.4.3 注意力機(jī)制
卷積注意力模塊(CBAM)是Woo等人[10]提出的一種用于前饋卷積神經(jīng)網(wǎng)絡(luò)的注意力模塊。給定1個中間特征圖,CBAM會沿著2個獨立的維度(通道和空間)依次推斷注意力圖,然后將注意力圖與輸入特征圖相乘以進(jìn)行自適應(yīng)特征優(yōu)化。
通道注意力模塊將特征圖在空間維度上進(jìn)行壓縮,得到1個一維矢量后再進(jìn)行操作。在空間維度上進(jìn)行壓縮時,不僅考慮了平均值池化還考慮了最大值池化,如式(16)所示。
空間注意力模塊對通道進(jìn)行壓縮,在通道維度分別進(jìn)行了平均值池化和最大值池化,接著將前面提取到的特征圖(通道數(shù)都為1)合并得到1個2通道的特征圖,如式(17)所示。
本課題采用多尺度特征融合結(jié)合注意力機(jī)制的紙病分類方法,利用不同圖像增強(qiáng)算法對不同紙張缺陷類型的響應(yīng)程度不同,將這些特征拼接后輸入至Resnet進(jìn)行特征提取,然后利用融合注意力機(jī)制的Resnet模型將網(wǎng)絡(luò)關(guān)注的重點集中到紙張缺陷區(qū)域,進(jìn)而實現(xiàn)紙張缺陷分類。
多尺度特征融合結(jié)合注意力機(jī)制的紙病分類算法具體步驟如下。
(1)準(zhǔn)備紙病圖像數(shù)據(jù),采用旋轉(zhuǎn)、平移、拼接等操作進(jìn)行數(shù)據(jù)擴(kuò)充;
(2)將擴(kuò)充后的數(shù)據(jù)隨機(jī)劃分為訓(xùn)練集合測試集;
(3)利用亮度增強(qiáng)、銳化濾波、Sobel邊緣檢測3種算法分別對訓(xùn)練集圖像進(jìn)行處理,得到3張增強(qiáng)后的圖像;
(4)將這3張圖像分別送入3個共享參數(shù)的Resnet中進(jìn)行特征提取得到局部特征;
(5)將步驟4得到的3個局部特征圖進(jìn)行拼接融合得到全局特征圖;
(6)將全局特征圖送入融合CBAM的Resnet中進(jìn)行分類;
(7)重復(fù)步驟4~6直至網(wǎng)絡(luò)收斂;
(8)將測試數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng)后,送至訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行分類,得到測試集數(shù)據(jù)對應(yīng)的預(yù)測標(biāo)簽;
(9)將測試集的預(yù)測標(biāo)簽與實際標(biāo)簽對比,計算紙病識別分類正確率。
算法流程圖如圖11所示。
圖11 算法流程圖Fig.11 Flow chart of the algorithm
實驗硬件環(huán)境如下:64位Microsoft Windows 10操作系統(tǒng),Intel(R)Core(TM)CPU i5-4590 CPU@3.3 GHz四核處理器,8G運(yùn)行內(nèi)存,GPU采用GTX 1080Ti。實驗軟件環(huán)境:IDE為Pycharm,深度學(xué)習(xí)框架為開源的Pytorch。
實驗通過實際紙病圖像分類,驗證本課題算法的可行性。實驗選擇的各紙病類別及其數(shù)量如表1所示。
表1 實驗選擇的紙病類別及其數(shù)量Table 1 Types and quantity of paper defects selected in the experiment
首先對每個類別的數(shù)據(jù)進(jìn)行逆時針旋轉(zhuǎn)90°、180°、270°等操作以進(jìn)行數(shù)據(jù)擴(kuò)充,擴(kuò)充后的圖像總計2097個,每張圖像的尺寸為116×116×3 dpi。隨后按8∶2比例將總數(shù)據(jù)集隨機(jī)劃分成訓(xùn)練集和測試集。對比紙病類別標(biāo)簽與實際類別標(biāo)簽,對實驗結(jié)果進(jìn)行評價。
在對樣本進(jìn)行多次訓(xùn)練,不斷調(diào)整參數(shù)后,最終設(shè)定訓(xùn)練集的batch size為32,測試集的batch size為64,優(yōu)化器采用SDG,設(shè)置基礎(chǔ)學(xué)習(xí)率base_lr為0.01,且每迭代50次衰減1次,衰減系數(shù)為0.1,設(shè)置權(quán)重衰減系數(shù)weight_decay為0.0001,訓(xùn)練的最大迭代次數(shù)max_iter為500,為了防止過擬合,設(shè)置Drop out為0.5。
訓(xùn)練后,模型在收斂過程中的訓(xùn)練集和測試集的acc變化如圖12所示。在上述設(shè)置的參數(shù)下,模型在訓(xùn)練集的最終準(zhǔn)確率為99.43%,在測試集的最終準(zhǔn)確率為96.63%。由此可知,本課題所設(shè)計的算法在紙病樣本上得到了較好的收斂。
圖12 訓(xùn)練過程中測試集和驗證集的準(zhǔn)確率Fig.12 Accuracy of test set and verification set during training
為了驗證本課題提出方法的有效性,將不同方法應(yīng)用在自建數(shù)據(jù)集上比較結(jié)果,如表2所示。
從表2可以看出,本課題提出的方法在損失較小實時性的同時,在紙病識別準(zhǔn)確率上獲得較大的提升,證明性能十分優(yōu)異。
表2 不同方法實驗結(jié)果對比Table 2 Comparison of experimental results of different methods
針對不同紙病類別對不同數(shù)據(jù)增強(qiáng)算法響應(yīng)差別較大的問題,本課題提出了一種多尺度特征融合結(jié)合注意力機(jī)制的紙病分類方法。該方法先利用亮度增強(qiáng)、銳化器、Sobel邊緣檢測的方法分別對紙病進(jìn)行圖像增強(qiáng),不同紙病類別雖不能對每種圖像增強(qiáng)方法都響應(yīng)強(qiáng)烈,但會對其中至少1種或2種方法有較好響應(yīng)。本方法將這些響應(yīng)進(jìn)行特征融合后送入帶有注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)中,讓其重點關(guān)注那些響應(yīng)強(qiáng)烈的特征,以此進(jìn)行分類。本分類算法在測試集上的分類準(zhǔn)確率達(dá)到了96.63%,同時耗時少于一般傳統(tǒng)方法,證明了本方法的優(yōu)越性和實用性。