袁思邈,方 春,孫福振
(山東理工大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049)
熱軋帶鋼[1-2]是指通過熱軋方式生產(chǎn)的帶材和板材。它不僅可以應(yīng)用于醫(yī)療器械、化工、船舶、航天等工業(yè)領(lǐng)域,還可以作為冷鋼的坯料。由于其應(yīng)用領(lǐng)域的特殊性,對于熱軋帶鋼的表面質(zhì)量通常非常嚴(yán)格,因為熱軋帶鋼應(yīng)用于工業(yè)領(lǐng)域時常作為外圍構(gòu)件直接使用,而表面缺陷的熱軋帶鋼不僅僅影響制板的外觀[3],還容易成為腐蝕與破裂的策源地。
傳統(tǒng)的熱軋帶鋼的缺陷分類方式多為人工識別[4],通常由有經(jīng)驗的工人通過判斷帶鋼的紋理特征從而進(jìn)行分類。該方法主觀性強(qiáng)且分類成本較高,已不適用于當(dāng)下大規(guī)模機(jī)械流水化作業(yè)的環(huán)境。
隨著計算機(jī)視覺領(lǐng)域近年來的飛速發(fā)展,已經(jīng)開始廣泛的應(yīng)用于工業(yè)界的各類缺陷問題檢測分類[5-6]。而卷積神經(jīng)網(wǎng)絡(luò)(CNN)更是躍居圖像分類問題的主流地位,更多的研究者開始將深度學(xué)習(xí)與缺陷檢測問題結(jié)合處理。
周穎等人[7]通過改進(jìn)損失函數(shù)、引入平衡因子、輸出層結(jié)合隨機(jī)森林分類器等等方式來改進(jìn)CNN模型,提高網(wǎng)絡(luò)模型準(zhǔn)確率與泛化能力,滿足了工業(yè)過程中對于太陽能電池板的表面缺陷檢測的基本需求。陶顯等人[8]對近年來深度學(xué)習(xí)與表面缺陷檢測問題的結(jié)合方法進(jìn)行了梳理,總結(jié)了每種方法的使用場景與優(yōu)劣性。Zhang等人[9]為了應(yīng)對焊縫缺陷難以檢測的問題,構(gòu)建了一個11層的CNN分類模型,用于焊縫缺陷的識別,并引入了圖像增強(qiáng)和注意力機(jī)制來提高模型的魯棒性。Fusaomo Nenta等人[10]用DCNN的特征向量作為SVM的輸入搭建了一種深度模型,在大量數(shù)據(jù)的訓(xùn)練下對于樹脂膜制品的表面缺陷分類問題得到了良好的分類效果。綜上可知,通過深度學(xué)習(xí)的方式在表面缺陷檢測與分類問題上能夠取得不錯的效果。
上述研究往往都是通過改變卷積網(wǎng)絡(luò)基本結(jié)構(gòu)與調(diào)整參數(shù)來進(jìn)行缺陷分類。一旦當(dāng)對于分類準(zhǔn)確度有更高的要求時,如想要通過疊加卷積層數(shù)來提高模型分類精確度就通常會出現(xiàn)梯度消失與梯度爆炸等問題,并且通常單純依靠層數(shù)堆疊對于模型精度提高效果并不理想,甚至有時會出現(xiàn)負(fù)優(yōu)化現(xiàn)象。由此,本文提出了一種基于改進(jìn)殘差網(wǎng)絡(luò)結(jié)構(gòu)的模型,通過改進(jìn)殘差塊結(jié)構(gòu)與引入swish激活函數(shù),使得該模型能夠在滿足深層卷積的同時提升模型精度與魯棒性,并加快收斂速度。
為了解決深層神經(jīng)網(wǎng)絡(luò)難以訓(xùn)練的問題,2015年由He K,Zhang X等人提出了一種全新的深度神經(jīng)網(wǎng)絡(luò)框架:殘差網(wǎng)絡(luò)[11-13](Residual Neural Network,Resnet)。殘差網(wǎng)絡(luò)通過在淺層網(wǎng)絡(luò)和深層網(wǎng)絡(luò)之間添加映射(Identity Mapping),使得深層網(wǎng)絡(luò)能夠直接從淺層網(wǎng)絡(luò)獲得特征,從而解決了網(wǎng)絡(luò)退化的問題。殘差網(wǎng)絡(luò)由殘差塊構(gòu)成,分為直接映射殘差塊與恒等映射殘差塊。每個殘差塊可表示為
xl+1=f[h(xl)+F(xl,Wl)]
(1)
xl+1=f[xl+F(xl,Wl)]
(2)
通過迭代式(2)可知對于更深的L層與淺層l的關(guān)系課表能可表示為
(3)
由式(3)可知,對于殘差網(wǎng)絡(luò)中的某一層L,均可由任意比它淺層的l與它們之間的殘差部分之和表示。殘差塊的基本結(jié)構(gòu)如圖1所示。
圖1 殘差塊結(jié)構(gòu)
根據(jù)反向傳播的鏈?zhǔn)椒▌t,有
(4)
激活函數(shù)神經(jīng)網(wǎng)絡(luò)種常用于添加非線性因素,由于反向傳播的計算機(jī)制,容易導(dǎo)致常見的一些激活函數(shù)(如sigmoid)出現(xiàn)飽和現(xiàn)象,從而導(dǎo)致神經(jīng)網(wǎng)絡(luò)性能下降,出現(xiàn)梯度消失等問題。
傳統(tǒng)殘差網(wǎng)絡(luò)使用的ReLu作為激活函數(shù),雖然在梯度反向傳播時有效的解決了梯度彌散現(xiàn)象,但由于其自變量的非負(fù)性導(dǎo)致依然存在硬飽和性。一旦自變量x<0,則會出現(xiàn)神經(jīng)元梯度歸0而導(dǎo)致的神經(jīng)元死亡現(xiàn)象。研究表明激活函數(shù)swish相較于ReLu可以有效的提升神經(jīng)網(wǎng)絡(luò)精度[14],且由于其輸入值的可負(fù)性與函數(shù)的非單調(diào)性,意味著swish在非負(fù)半軸也不具備硬飽和現(xiàn)象。swish函數(shù)表達(dá)式如式(5)所示,其中sigmoid(x)=1/(1+exp(-x))
f(x)=x*sigmoid(x)
(5)
令σ(x)=sigmoid(x),則swish函數(shù)的一階導(dǎo)數(shù)為
f′(x)=σ(x)+x·σ(x)(1-σ(x))
=f(x)+σ(x)(1-f(x))
(6)
Swish原函數(shù)與導(dǎo)數(shù)圖像如圖2所示。
圖2 swish函數(shù)示意圖
由圖可知,與傳統(tǒng)殘差網(wǎng)絡(luò)中的ReLu相比,swish同樣具有無上限,有下限的特點(diǎn),因而不會帶來梯度消失等問題;不同的是swish原函數(shù)及其導(dǎo)數(shù)均具有平滑的特點(diǎn),且其函數(shù)在定義域內(nèi)有非單調(diào)特性。這使得swish作為激活函數(shù)可以在提高殘差塊中的參數(shù)利用率、避免函數(shù)在負(fù)半軸的飽和的同時能夠提升殘差模型的整體精度。
本文將殘差網(wǎng)絡(luò)中的ReLu激活函數(shù)替換為swish,變更后的殘差塊結(jié)構(gòu)如圖3所示。
圖3 swish型改進(jìn)殘差塊
對于傳統(tǒng)殘差網(wǎng)絡(luò)而言,其殘差塊中主路徑的結(jié)構(gòu)通常為權(quán)重層與激活層交替,之后與捷徑輸出相接將所得結(jié)果再進(jìn)行非線性激活操作后得到輸出。
根據(jù)He K等人的研究,對于殘差網(wǎng)絡(luò)中殘差塊捷徑采取直接映射的方式效果最佳,且提前批量歸一化可提升殘差網(wǎng)絡(luò)性能[15]。由此,區(qū)別于傳統(tǒng)殘塊塊結(jié)構(gòu),提出一種改進(jìn)殘差塊結(jié)構(gòu),簡稱為Y-ResNet。Y-ResNet型殘差塊在捷徑直接映射與引入swish激活函數(shù)前提下,將主路徑上的批量歸一化與非線性激活操作提前至卷積操作之前。與此同時將原本位于路徑交匯點(diǎn),即xl+F(xl,Wl)之后的激活操作提前到主路徑中并前置于最后一個卷積層之前。這樣做的目的是可以使卷積層可以充分利用批量歸一化處理后的數(shù)據(jù),并且可以使最后一層的非線性激活函數(shù)直接接收處理批量歸一化的結(jié)果,提高卷積效果,從而使得殘差網(wǎng)絡(luò)的整體性能得到提升。傳統(tǒng)殘差快與Y-ResNet型殘差塊結(jié)構(gòu)如圖4所示。
圖4 傳統(tǒng)殘差塊(左)與Y-ResNet型改進(jìn)殘差塊(右)
本實(shí)驗數(shù)據(jù)集來自于東北大學(xué)(NEU)的表面缺陷數(shù)據(jù)庫,共包含了六種典型的熱軋帶鋼表面缺陷類型,分別為:氧化皮(Rs)、斑塊(Pa)、裂紋(Cr)、凹坑表面(Ps)、內(nèi)含物(In)和劃痕(Sc)[16]。其中六種不同的典型表面缺陷特征各自有300個灰度圖像樣本,分辨率為200*200像素。原始樣本總量共計1800個。圖像具有不同類之間存在較大差異、類內(nèi)相似的特點(diǎn)。熱軋帶鋼表面缺陷原始圖像示例如圖5所示。
圖5 熱軋帶鋼的六種表面缺陷
圖像增強(qiáng)[17-18]是一種能有效的增加噪聲數(shù)據(jù)和數(shù)據(jù)量的方法,可以明顯提升神經(jīng)網(wǎng)絡(luò)模型的泛化能力與魯棒性。為了更好的適應(yīng)殘差網(wǎng)絡(luò)模型,將原始圖像的尺寸調(diào)整為224*224,然后通過圖像增強(qiáng)技術(shù)來進(jìn)行數(shù)據(jù)擴(kuò)充??紤]到盡可能保留熱軋帶鋼的表面缺陷特征與空間信息特征,本文采取隨機(jī)平移、旋轉(zhuǎn),局部隨機(jī)縮放3種增強(qiáng)方式來擴(kuò)充數(shù)據(jù)。圖像增強(qiáng)效果如圖6所示。其中(a)為原始圖像,(b)~(e)為增強(qiáng)圖像。
圖6 圖像增強(qiáng)
本實(shí)驗使用的硬軟件環(huán)境如表1所示:
表1 實(shí)驗環(huán)境
3.3.1 基于ResNet18的改進(jìn)殘差網(wǎng)絡(luò)性能對比
為了驗證本文中改進(jìn)殘差塊結(jié)構(gòu)的性能,在ResNet18模型基礎(chǔ)上分別設(shè)置四組對照試驗:
A. 第一組實(shí)驗保持原ResNet18模型不變,簡稱Res18;
B. 第二組實(shí)驗將原ResNet模型中的激活函數(shù)Relu全部用swish替代,其它條件不變,簡稱Res18+swish;
C. 第三組實(shí)驗將原ResNet模型殘差塊中的BN+Relu層前置于卷積層前,其它條件不變,簡稱ReLu+res18;
D. 第四組實(shí)驗使用Y-ResNet改進(jìn)殘差模型,簡稱Y-ResNet18。
選用SGD梯度優(yōu)化算法,學(xué)習(xí)率統(tǒng)一設(shè)置為0.001,momentum=0.9,epochs=300,batch_size=80。用模型總分類精度、損失與Kappa系數(shù)作為模型評價標(biāo)準(zhǔn)。為了避免隨機(jī)變量的影響,共進(jìn)行了十次實(shí)驗,模型精度、損失與Kappa系數(shù)均采用十次實(shí)驗結(jié)果的中位數(shù)。實(shí)驗訓(xùn)練過程中的精確度與損失率變化分別如圖7、圖8所示,四組實(shí)驗間的詳細(xì)數(shù)據(jù)對比如表2所示。
表2 ResNet18的四組實(shí)驗結(jié)果對比
圖7 基于ResNet18的改進(jìn)模型的分類準(zhǔn)確率曲線
圖8 基于ResNet18的改進(jìn)模型的損失函數(shù)曲線
實(shí)驗結(jié)果顯示,前置BN+ReLu層與引入swish激活函數(shù)均可以提升模型性能。其中,相對于原始ResNet18網(wǎng)絡(luò),ReLu+res18殘差模型可以使模型精確度提高0.46%,Res18+swish殘差模型可以提升精度約1.3%,并且該方法可以有效提升模型的收斂速度與魯棒性。而本文提出的Y-ResNet18模型相對傳統(tǒng)殘差模型可將精度提升約1.5%。相較于Res18+swish殘差模型,Y-ResNet模型在兼?zhèn)鋝wish函數(shù)帶來的快速收斂與較高的魯棒性的同時可以略微提升模型精確度約0.2%。通過混淆矩陣求得本文方法具有更高的Kappa系數(shù),混淆矩陣如圖9所示。由此可知,本文提出的Y-ResNet殘差模型可有效提升殘差網(wǎng)絡(luò)的性能。
圖9 Y-ResNet18模型混淆矩陣
2.3.2 不同卷積神經(jīng)網(wǎng)絡(luò)模型性能對比
為能夠更科學(xué)的驗證本文提出的改進(jìn)殘差網(wǎng)絡(luò)算法的性能,分別與遷移學(xué)習(xí)方法下的InceptionV3、VGG16、ResNet50三種模型進(jìn)行了對比。為了避免不同模型中全連接層參數(shù)不相同的影響,在所有上述遷移模型的凍結(jié)層后統(tǒng)一使用與ResNet18模型中相同的全局平均池化層(GlobalAveragePooling2D),且全連接層參數(shù)均相同,迭代次數(shù)統(tǒng)一設(shè)置為300次,具體實(shí)驗結(jié)果如表3所示。
表3 不同卷積模型性能對比
由表3可知,在相同條件下,Y-ResNet18與ResNet50模型性能效果明顯優(yōu)于VGG16與InceptionV3.其中Y-ResNet18型殘差網(wǎng)絡(luò)在未增加深度的前提下精確度上較傳統(tǒng)ResNet50高出約0.89%的同時具有更高的Kappa值。說明Y-ResNet18型改進(jìn)殘差網(wǎng)絡(luò)在對于熱軋帶鋼的表面缺陷分類問題上相較于其它經(jīng)典卷積模型具有更好的效果。
相比較于傳統(tǒng)的殘差神經(jīng)網(wǎng)絡(luò),本文通過引入swish激活函數(shù)并前置殘差塊中BN層和線性激活層的方法搭建了一種改進(jìn)的殘差網(wǎng)絡(luò)模型Y-ResNet。實(shí)驗結(jié)果證明,殘差網(wǎng)絡(luò)的捷徑機(jī)制能夠有效地避免深層網(wǎng)絡(luò)訓(xùn)練時的梯度彌散等問題,且Y-ResNet型殘差模型應(yīng)用于ResNet18時可以在熱軋帶鋼的表面缺陷分類問題上得到更優(yōu)的精確度且提升效果較為明顯。在后續(xù)的研究中,可繼續(xù)在不同的殘差網(wǎng)絡(luò)模型(如ResNet50、ResNet101)上繼續(xù)探究改進(jìn)型殘差塊模型在不同深度的殘差模型的性能的上的表現(xiàn)。