高樂樂 周 強(qiáng) 王偉剛
(陜西科技大學(xué)電氣與控制工程學(xué)院,陜西西安,710021)
隨著造紙工業(yè)自動化程度不斷的提高,紙機(jī)車速越來越快,成紙幅寬不斷加寬,紙張在生產(chǎn)過程中不可避免地會出現(xiàn)各種表面缺陷,即紙病。紙病的存在嚴(yán)重影響到紙張的質(zhì)量和品質(zhì),一些嚴(yán)重的紙病若不能及時發(fā)現(xiàn)和處理,還可能造成材料的浪費,甚至設(shè)備損壞。因此,紙病檢測已經(jīng)成為紙張生產(chǎn)過程中不可缺少的重要環(huán)節(jié)。
傳統(tǒng)的紙病檢測是依靠人工進(jìn)行,隨著造紙生產(chǎn)自動化不斷發(fā)展,人工檢測已逐漸被基于機(jī)器視覺的檢測方法所代替[1]。基于機(jī)器視覺的紙病檢測方法有很多,但在實際生產(chǎn)過程中的檢測效果大都不理想,究其原因是由于紙病種類繁多,即使是同類紙病之間也存在較大差異,使得紙病特征量分散在不同的特征空間中,難以對所有紙病的特征量進(jìn)行準(zhǔn)確提?。?]。另外,如褶皺、劃痕等難點紙病,其特征量在各特征空間都不顯著,使得基于機(jī)器視覺的紙病檢測方法對這些紙病的辨識效果不理想。
以上問題極大地制約了紙病檢測技術(shù)的發(fā)展,使紙病檢測技術(shù)陷入瓶頸期。本課題分析了當(dāng)前紙病檢測方法,針對現(xiàn)有紙病檢測方法的瓶頸問題提出了基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的紙病檢測方法,利用CNN自動提取紙病圖像中的深層次特征,結(jié)合Softmax實現(xiàn)對紙病的辨識,提高檢測精度,本課題實驗結(jié)果表明了此方法的可行性。
圖1 紙病檢測過程
1.1 紙病檢測過程
當(dāng)前針對紙病的檢測方法大都建立在傳統(tǒng)模式識別理論的基礎(chǔ)上,其檢測過程如圖1所示。
由圖1可知,紙病檢測過程可分為預(yù)處理、特征提取、分類辨識3個步驟。
(1)預(yù)處理
紙張圖像的預(yù)處理是為了濾除噪聲,使紙病圖像更加清晰。從而增強(qiáng)紙病區(qū)域的信息,便于后續(xù)紙病圖像的特征提取與分類。一般來說,紙病圖像預(yù)處理包括圖像增強(qiáng)、圖像分割等。
(2)特征提取
紙病特征提取的是能夠反映紙病本身特性的參數(shù),通過選取合適的特征量并進(jìn)行分析,便于將紙病圖像進(jìn)行更好的分類。目前基于紙病圖像的特征量提取主要有如下3類:
①形態(tài)特征 紙病的形態(tài)特征有面積、長寬比、矩形度、圓形度、周長和偏心率等幾何形狀特征。此外,分形維數(shù)可以反映復(fù)雜紙病占有空間的有效性,度量復(fù)雜紙病的不規(guī)則性以及整體相似性[3]。
②灰度特征 常見的基于灰度特征的紙病特征提取算法有閾值法、模板匹配法、統(tǒng)計分析法、小波變換等。閾值法用于提取灰度變化較為明顯的紙病特征,如黑斑、亮斑、孔洞等。模板匹配法利用Roberts算子、Prewitt算子、Laplace算子等獲取紙病的邊緣特征信息[4]。小波變換可用來分辨灰度波動不明顯的紙病,如褶皺、劃痕等[5]。
③紋理特征 紋理是由于灰度分布在空間位置上反復(fù)交替變化而形成的,典型的具有紋理特征的紙病是條紋紙病?;叶裙采仃嚕℅LCM)可用于提取具有紋理特征的紙病,其原理是利用紙病區(qū)域的相關(guān)性、紋理熵等[6],此外利用自相關(guān)函數(shù)也可以提取紋理特征。
(3)分類辨識
圖像分類是紙病檢測的重要環(huán)節(jié),通過圖像分類可以統(tǒng)計各類紙病的數(shù)據(jù)。常見的紙病分類器包括基于RBFNN(Radial Basis Fullction Nellral Network)結(jié)構(gòu)與模糊推理相結(jié)合的分類器、基于BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)的分類器、樸素貝葉斯分類器(Naive Bayes classifier)以及支持向量機(jī)SVM(Support Vector Machine)的分類器等[7-9]。
1.2 瓶頸問題分析
雖然紙病檢測的算法研究很多,但大都是針對幾種較常見紙病進(jìn)行分類,對一些難點紙病的檢測效果不太理想,其原因主要有如下2點。
(1)紙病種類較多、特征量難以確定
常見的紙病有孔洞、黑斑、亮斑、劃痕、褶皺、裂紋等,其特征量分散在不同特征空間中,這些紙病可能在某一個特征空間具有明顯的特征量,而在其他特征空間的特征量不明顯。例如,孔洞紙病和黑斑紙病在灰度特征空間的特征量明顯,但在形態(tài)特征空間和幾何特征空間的特征量卻不明顯[10]。目前為止尚無一種特征提取方法能夠準(zhǔn)確地提取各類紙病的特征量。針對常見的紙病,雖然已研究出了多種辨識方法,但一種方法僅能夠?qū)τ邢迬追N紙病進(jìn)行較好辨識,而對其他紙病的辨識效果不好。
(2)難點紙病特征量不突出、難以構(gòu)建
褶皺、劃痕等紙病,無論其灰度特征、形態(tài)特征還是幾何特征都不突出,明顯的特征量至今尚未找到。這些紙病的辨識效果不太理想,因此被稱為難點紙病。
文獻(xiàn)[11]中提出了一種利用小波變換融合LOG算子和數(shù)學(xué)形態(tài)學(xué)算子的算法來識別低對比度的紙病,如褶皺、裂口等,但并未給出明確的辨識結(jié)果,且算法過于復(fù)雜。有學(xué)者提出利用Hough變換等方法來辨識褶皺紙病,但該方法僅適合于測量線形褶皺,實用性很弱[12]。因此,對于難點紙病的特征量構(gòu)建是紙病檢測方法發(fā)展亟需解決的重要問題。
綜上,由于紙病的多樣性與辨識方法單一的矛盾,使得當(dāng)下紙病檢測技術(shù)的檢測精度普遍偏低。另外,現(xiàn)有檢測技術(shù)雖然能夠判斷一些紙病的存在,卻無法進(jìn)一步區(qū)分這些紙病的種類。因此,紙病檢測的精確性問題已經(jīng)成為制約紙病檢測技術(shù)發(fā)展的瓶頸。
1.3 解決方案
針對上述瓶頸問題,本課題提出基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡稱CNN)的紙病分類算法,CNN網(wǎng)絡(luò)的主要特點是利用局部感知和權(quán)值共享有效降低網(wǎng)絡(luò)的復(fù)雜性[13]。作為深度神經(jīng)網(wǎng)絡(luò)的一種,CNN網(wǎng)絡(luò)能避免對圖像的復(fù)雜預(yù)處理和特征提取而直接輸入原始圖像,可廣泛應(yīng)用于模式識別等領(lǐng)域。
基于CNN的紙病檢測如圖2所示。由圖2可知,CNN網(wǎng)絡(luò)可通過卷積操作自動提取紙病圖像深層次的特征。這些特征能代表紙病圖像的本質(zhì)特征,可以有效解決紙病特征量難確定以及難點紙病特征量難構(gòu)建的問題,從而提高紙病檢測的精度。
圖2 基于CNN的紙病檢測示意圖
2.1 紙病分類CNN網(wǎng)絡(luò)構(gòu)建
考慮到紙病樣本復(fù)雜多變,即使同一類紙病的特征也會存在較大差異,還存在如褶皺、劃痕等難點紙病,且紙張圖像背景復(fù)雜、干擾較多等問題,經(jīng)過大測試,本課題確定采用多層卷積結(jié)構(gòu)對紙病圖像進(jìn)行特征提取并辨識,網(wǎng)絡(luò)包含4個卷積層(convolution layer)、3個池化層(pooling layer)以及2個全連接層(full connection layer),在最后一個全連接層后設(shè)置Softmax層(Softmax layer)輸出結(jié)果。紙病分類CNN網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
輸入分辨率為100×100,位深度為24的紙病圖像。經(jīng)一系列的卷積和池化操作后提取生成該類紙病圖像的深層次抽象特征,將這些特征矩陣轉(zhuǎn)化為一維向量作為全連接層的輸入,由全連接層完成分類任務(wù),最后經(jīng)Softmax層輸出當(dāng)前樣本屬于某一類紙病的概率分布。本課題設(shè)計的CNN網(wǎng)絡(luò)擬對6類紙病圖像進(jìn)行分類識別,故將Fc6輸出節(jié)點設(shè)置為6,即網(wǎng)絡(luò)輸出節(jié)點為6,CNN網(wǎng)絡(luò)部分參數(shù)設(shè)置及計算結(jié)果如表1所示。
CNN網(wǎng)絡(luò)中池化操作均采用最大池化的方法,并在Pool1和Pool2池化操作后進(jìn)行局部響應(yīng)歸一化處理(Local Response Normlization,LRN)以增強(qiáng)CNN網(wǎng)絡(luò)的泛化能力,各卷積核(convolution kernel)初始權(quán)值設(shè)置方差為0.01的高斯分布隨機(jī)數(shù),偏置值初始化為常數(shù)0.1,且對所有卷積層均選用線性整流函數(shù)ReLU作為激活函數(shù)以對其計算結(jié)果完成非線性化處理。
2.2 基于CNN的紙病檢測工作過程
2.2.1 卷積
卷積層的主要作用是紙病特征的抽象和提取,通過卷積核對紙病圖像進(jìn)行卷積提取,輸入紙病圖像的不同特征,多層卷積是為了對紙病圖像進(jìn)行逐層提取以獲得更深層次的特征。卷積層計算公式如下:
式中,為第l層的第j個特征圖;為卷積層的權(quán)重參數(shù);為偏置參數(shù);f(·)為激活函數(shù)。
2.2.2 池化
池化層可對提取到的紙病圖像特征信息進(jìn)行降維,一方面使紙病特征圖變小,簡化網(wǎng)絡(luò)計算復(fù)雜度并在一定程度上避免過擬合的出現(xiàn);另一方面進(jìn)行紙病特征壓縮,提取主要紙病特征。池化層的計算公式如下:
圖3 紙病分類CNN網(wǎng)絡(luò)
表1 CNN網(wǎng)絡(luò)部分參數(shù)設(shè)置及計算結(jié)果
式中,表示池化后的紙病特征圖,f(·)為激活函數(shù),down(·)表示一個下采樣函數(shù),池化層的每個輸出特征圖都對應(yīng)一個相應(yīng)的乘性偏置和一個加性偏置
2.2.3 全連接
全連接層在整個CNN網(wǎng)絡(luò)中起到分類器的作用,每個神經(jīng)元與前一層的所有神經(jīng)元進(jìn)行全連接,將前一層得到的二維特征圖轉(zhuǎn)換成一個一維向量。全連接層計算公式如下:
式中,hw,b(x)表示神經(jīng)元的輸出值,x表示神經(jīng)元的輸入特征向量,wT表示權(quán)重向量,b為偏置項,f(·)表示激活函數(shù)。
2.2.4 Softmax
Softmax層是CNN網(wǎng)絡(luò)的最后一層,輸入數(shù)據(jù)是前一個全連接層的輸出值,輸出值是一個向量,向量的維度與所分的紙病類別數(shù)相等,向量對應(yīng)位置的值即為CNN網(wǎng)絡(luò)預(yù)測樣本屬于該類紙病的概率值。Softmax計算過程如下:
式中,k為紙病分類的個數(shù),zj表示網(wǎng)絡(luò)對第j個分類標(biāo)簽的預(yù)測值,σ(表示屬于該類紙病的概率值,這個值與樣本的真實標(biāo)簽經(jīng)過計算輸出CNN網(wǎng)絡(luò)的損失(loss)值,訓(xùn)練過程中,loss值通過反向傳播(Back-Propagation)逐層更新CNN網(wǎng)絡(luò)參數(shù)。
2.3 基于CNN的紙病分類訓(xùn)練流程
基于CNN的紙病分類模型訓(xùn)練流程如圖4所示。具體思路如下:(1)采集各類紙病圖像劃分為訓(xùn)練樣本和測試樣本;(2)利用訓(xùn)練樣本對CNN網(wǎng)絡(luò)進(jìn)行訓(xùn)練,學(xué)習(xí)紙病的深層次特征,從而得到紙病分類的CNN模型;(3)利用測試樣本對CNN模型進(jìn)行測試,通過測試結(jié)果調(diào)整網(wǎng)絡(luò)參數(shù)并再次訓(xùn)練以得到最好的分類模型;(4)保存已訓(xùn)練好的模型用于紙病圖像分類。
圖4 紙病分類CNN模型訓(xùn)練流程圖
3.1 實驗條件
本課題中,在車速為400 m/min、幅寬為3104 mm的紙機(jī)上拍攝得到紙病圖像。相機(jī)采用DALSA公司的CCD相機(jī)S2-1X-02K40,搭配鏡頭為Nikon公司AF28mm 1:28D。實驗硬件環(huán)境如下:64位Microsoft Windows 10操作系統(tǒng),Intel(R)Core(TM)CPU i5-6500 CPU@3.2 GHz四核處理器,8 GB運行內(nèi)存,GPU采用NVIDIA GeForce GTX1050Ti。實驗軟件環(huán)境如下:使用C++在開源的Caffe深度學(xué)習(xí)框架下進(jìn)行。
3.2 CNN訓(xùn)練
本課題的目的是訓(xùn)練一個能夠?qū)诎?、孔洞、亮斑、褶皺、劃痕、邊?類紙病圖像進(jìn)行辨識的CNN網(wǎng)絡(luò)。6類樣本通過數(shù)據(jù)增強(qiáng)(旋轉(zhuǎn)和鏡像)得到1200張樣本圖像,圖像分辨率為116×116,位深度為24,按照4∶1劃分訓(xùn)練樣本和驗證樣本,紙病訓(xùn)練樣本如圖5所示。指定紙病圖像標(biāo)簽:邊裂0、黑斑1、孔洞2、褶皺3、亮斑4、劃痕5。
圖5 紙病訓(xùn)練樣本圖
對此樣本進(jìn)行多次訓(xùn)練,不斷調(diào)整參數(shù),最終設(shè)置訓(xùn)練集batch-size為30,測試集batch-size為20;設(shè)置test-iter為12;訓(xùn)練集中的所有樣本訓(xùn)練完一次后對CNN網(wǎng)絡(luò)做一次測試,故設(shè)置測試間隔test-interval為32;基礎(chǔ)學(xué)習(xí)率base-lr設(shè)置為0.001,且迭代1500次衰減一次,衰減系數(shù)為0.1;設(shè)置權(quán)重衰減系數(shù)weight-decay為0.0005;訓(xùn)練的最大迭代次數(shù)max-iter設(shè)置為3000;為了防止過擬合,進(jìn)一步進(jìn)行數(shù)據(jù)增強(qiáng),在數(shù)據(jù)層將輸入圖像隨機(jī)裁剪為分辨率100×100的圖像塊以用于訓(xùn)練CNN網(wǎng)絡(luò)。
訓(xùn)練完成之后,得到模型在收斂過程中訓(xùn)練集的loss變化曲線如圖6所示,模型在驗證集的loss曲線和accuracy曲線如圖7所示。其中,loss表示CNN網(wǎng)絡(luò)的誤差值,accuracy指模型在驗證集上的辨識精度。由圖6和圖7可知,在上述參數(shù)設(shè)置下,模型在訓(xùn)練集上的loss最終收斂值為0.001918,在驗證集上的loss最終值為0.03825,accuracy值為0.9917。因此可知,本課題所設(shè)計的CNN網(wǎng)絡(luò)在紙病樣本上得到了較好的收斂。
圖6 訓(xùn)練集的loss變化曲線
圖7 驗證集的loss和accuracy變化曲線
3.3 測試與分析
為了進(jìn)一步驗證所訓(xùn)練模型的性能,另外采集6類紙病圖像共600張,每類各100張對模型進(jìn)行分類預(yù)測。
圖8為單個孔洞樣本輸入模型中,經(jīng)過計算依次得到各個卷積層的紙病特征圖可視化的結(jié)果。由圖8可知,CNN網(wǎng)絡(luò)中的每一個神經(jīng)元只對特定的輸入產(chǎn)生較大的響應(yīng)值,只有接受特定的輸入才會處于激活狀態(tài);若不是,則處于抑制狀態(tài)。由圖8還可知,各個層級特征圖的冗余信息較少,說明本課題設(shè)計的卷積網(wǎng)絡(luò)結(jié)構(gòu)較合理。
已有理論表明,CNN中深層特征映射可以理解為是淺層特征映射的非線性組合[14]。所以淺層的卷積核從輸入圖像中提取到諸如邊緣、角點等低級特征,淺層可視化結(jié)果如圖8中Conv1所示;隨著層級加深,特征映射就會逐漸被非線性組合成更復(fù)雜的結(jié)構(gòu)圖案,如圖8中Conv3和Conv4所示。
圖8中,Conv4的各個特征圖經(jīng)Pool4最大池化后與Fc5全連接生成512維的特征向量,最后經(jīng)過Softmax計算得到分類的概率分布。圖9為Fc5的輸出值和輸出正值的直方圖以及模型最后的概率輸出值結(jié)果。由圖9(c)可以看出,輸出圖像屬于“2”的概率值最接近1,標(biāo)簽2對應(yīng)的圖像類別為孔洞紙病,因此該輸出圖像應(yīng)為孔洞紙病圖像。
將所選的600張紙病圖像逐個輸入模型中做預(yù)測,預(yù)測結(jié)果混淆矩陣如表2所示。由表2可知,600張紙病圖像中,正確辨識598張,錯誤辨識2張,總辨識率為99.667%。其中,該模型對邊裂、黑斑、孔洞和劃痕4類紙病的辨識率達(dá)到100%,錯誤辨識是將褶皺紙病識別為邊裂紙病、亮斑紙病識別為褶皺紙病。
圖8 CNN深層次紙病特征提取可視化結(jié)果
為了分析CNN網(wǎng)絡(luò)對紙病圖像的辨識速度,在測試過程中分別記錄CPU模式下和GPU模式下,CNN網(wǎng)絡(luò)連續(xù)10次前向計算所用時間,結(jié)果如表3所示。由表3可知,在CPU模式下,CNN網(wǎng)絡(luò)每次前向計算平均耗時為60.885 ms,即每秒識別圖像約16.4幅;而在GPU模式下,每次前向計算平均耗時僅為4.675 ms,相比于CPU模式,提升了約13倍。
將本課題設(shè)計的CNN紙病辨識方法與常用的傳統(tǒng)紙病分類檢測方法進(jìn)行對比實驗。對紙病圖像進(jìn)行預(yù)處理(中值濾波、邊緣檢測)并以人工提取缺陷區(qū)域特征(灰度均值、灰度標(biāo)準(zhǔn)差、周長面積比、自相關(guān)、灰度熵),在同樣的實驗環(huán)境和樣本數(shù)據(jù)劃分條件下,分別使用自適應(yīng)神經(jīng)模糊推理系統(tǒng)(ANFIS)和BP神經(jīng)網(wǎng)絡(luò)算法對紙病圖像進(jìn)行辨識,所得辨識結(jié)果與本課題設(shè)計的CNN紙病辨識方法得到的結(jié)果如表4所示。
由表4可知,基于CNN的紙病辨識方法的準(zhǔn)確率高于傳統(tǒng)的紙病辨識算法。本課題設(shè)計的CNN網(wǎng)絡(luò)通過訓(xùn)練得到的模型分類性能較好,對于褶皺、劃痕類難點紙病能夠進(jìn)行準(zhǔn)確地辨識。在960張訓(xùn)練樣本的基礎(chǔ)上,選取600張紙張測試圖像,其紙病辨識準(zhǔn)確率可達(dá)99.667%。且本課題設(shè)計的CNN網(wǎng)絡(luò)可以通過不斷豐富現(xiàn)有的樣本庫擴(kuò)充紙病種類和數(shù)量,進(jìn)一步提高CNN網(wǎng)絡(luò)模型的實際應(yīng)用能力。
圖9 Fc5的輸出值和輸出正值的直方圖以及模型最后的概率輸出值
表2 紙病圖像預(yù)測結(jié)果混淆矩陣
表3 CNN網(wǎng)絡(luò)前向計算用時
表4 不同紙病辨識方法準(zhǔn)確率
本課題在分析了當(dāng)前紙病檢測瓶頸問題的基礎(chǔ)上,提出基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的深層次特征提取紙病的辨識方法,并根據(jù)紙病圖像的特點設(shè)計了紙病檢測的CNN網(wǎng)絡(luò)。實驗結(jié)果表明,該CNN網(wǎng)絡(luò)通過訓(xùn)練得到的模型能夠?qū)吜?、黑斑、孔洞、褶皺、亮斑和劃?類紙病進(jìn)行精確辨識。且采用CNN提取特征的方法避免了人工提取特征,解決了當(dāng)前紙病檢測方法中紙病特征量提取困難的問題,既節(jié)省了開發(fā)成本,又提高了辨識精度。