胡 鷹 郝路通
(太原科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 太原 030024)
金屬板材在生產(chǎn)和制造加工的過程中,往往由于生產(chǎn)運(yùn)行的環(huán)境惡劣從而使得一些板材產(chǎn)生各種各樣的瑕疵。嚴(yán)重影響了產(chǎn)品的質(zhì)量,影響使用的性能。金屬板材表面缺陷分:擦花、漏底、碰凹和凸粉等。如今對于金屬板材表面質(zhì)量的檢測方法有三種:人工檢測、漏磁檢測和基于機(jī)器視覺的智能檢測。傳統(tǒng)的人工檢測通常由有經(jīng)驗(yàn)的工人用肉眼人為的辨別,不僅僅工作效率非常低下,而且往往受制于主觀因素的影響,隨著工業(yè)化的發(fā)展,工作量的提升,已經(jīng)被時(shí)代所拋棄[15]。漏磁檢測技術(shù)廣泛應(yīng)用于金屬產(chǎn)品的無損檢測[8],利用磁源對被測材料局部磁化,如材料表面存在裂紋或坑點(diǎn)等缺陷,則局部區(qū)域的磁導(dǎo)率降低、磁阻增加,磁化場將部分從此區(qū)域外泄,從而形成可檢驗(yàn)的漏磁信號(hào)。但該方法只能適用于導(dǎo)電材料或者能產(chǎn)生渦流效應(yīng)的非金屬材料,對缺陷的種類定性非常困難,往往只能辨別是否有缺陷,而不能辨別是何種缺陷。基于機(jī)器視覺的智能檢測是最近新興的一種檢測技術(shù),視覺檢測不僅可以提高檢測缺陷的效率,而且可以清楚地辨別不同種類的缺陷。
為了解決金屬板材表面缺陷識(shí)別效率較低,成本過高,識(shí)別缺陷不明等問題,提出了一種基于改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)模型Inception-SE-Resnet。
近年來,深度學(xué)習(xí)方法在自然圖像檢測方面表現(xiàn)出優(yōu)越性能[16],深度卷積神經(jīng)網(wǎng)絡(luò)能夠完善分類器模型并自主訓(xùn)練提取目標(biāo)特征,訓(xùn)練后得到的特征泛化性遠(yuǎn)高于人工提取特征。周神特等利用SIFT 算法提取缺陷特征點(diǎn),提出了一種BP 神經(jīng)網(wǎng)絡(luò)和SVM 向量機(jī)結(jié)合分類器的檢測方法[9],對金屬板材表面缺陷能有效的提取和識(shí)別。高琳明等提出了一種基于深度學(xué)習(xí)特征與NSVM 非線性支持向量機(jī)分類算法相結(jié)合的板材表面缺陷識(shí)別方法[11],該識(shí)別方法具有較好的魯棒性和實(shí)用性,同時(shí)識(shí)別精度也有一定的上升。但不論是BP與SVM相結(jié)合還是NSVM 都存在效率并不高,并且識(shí)別的過程中會(huì)產(chǎn)生一定的誤差。
隨 著 深 度 學(xué) 習(xí) 不 斷 的 發(fā) 展,VGGnet[7]、Googlenet[1]、Resnet[3]、SEnet[6]等經(jīng)典的卷積神經(jīng)網(wǎng)不斷出現(xiàn)并且運(yùn)用于各行各業(yè)的分類問題當(dāng)中。目前國內(nèi)已經(jīng)有學(xué)者在此領(lǐng)域進(jìn)行了相關(guān)研究,天津工業(yè)大學(xué)的冷彥奕等在并聯(lián)機(jī)器人上使用FCN算法準(zhǔn)確分類出鍍鋅沖壓件瑕疵[13],準(zhǔn)確率達(dá)到96.60%,為后續(xù)的分揀工作打下了良好基礎(chǔ)。浙江理工大學(xué)胡鑫杰等利用卷積神經(jīng)網(wǎng)絡(luò)對5 種不同類型的特定大型工件進(jìn)行訓(xùn)練[14],分類準(zhǔn)確率達(dá)到了98.62%,實(shí)現(xiàn)了工件的識(shí)別。范佳楠等基于Faster R-CNN 實(shí)現(xiàn)了實(shí)木板材缺陷檢測識(shí)別系統(tǒng)[12]。青島科技大學(xué)蔡漢明等利用卷積神經(jīng)網(wǎng)絡(luò)對板材表面的五種不同的缺陷進(jìn)行訓(xùn)練準(zhǔn)確率達(dá)到了90.6%[10]。但是以上技術(shù)均在不同于金屬板材識(shí)別領(lǐng)域,且都存在一定的不足之處,例如卷積層數(shù)過多從而導(dǎo)致的參數(shù)過多,或者網(wǎng)絡(luò)模型設(shè)置不合理導(dǎo)致的效果并不是非常理想,又或者受制于板材的材料,加工環(huán)境,人為操作各種因素的影響。
因此,針對此問題設(shè)計(jì)了一種卷積層數(shù)更少,參數(shù)更少,成本更低以及識(shí)別準(zhǔn)確率更高的網(wǎng)絡(luò)模型Inception-SE-resnet對板材缺陷進(jìn)行識(shí)別。
本文對經(jīng)典InceptionV2[2]網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了改進(jìn),加入了Stem、SE-Block、Reduction[4]等部分。因?yàn)樵镜腎nception網(wǎng)絡(luò)通過卷積過程進(jìn)行運(yùn)算,實(shí)驗(yàn)過程中將原本的7*7 和5*5 的卷積核分解為7*1,1*7,5*1,1*5,這樣做大大減少了進(jìn)行過程中產(chǎn)生的參數(shù),加快了訓(xùn)練網(wǎng)絡(luò)過程中產(chǎn)生的時(shí)間消耗,并且加深了網(wǎng)絡(luò)的深度。同時(shí),ResNet[5]的殘差結(jié)構(gòu)可以防止網(wǎng)絡(luò)在因?qū)訑?shù)增加而導(dǎo)致的梯度消失以及過擬合的問題。SE-Block 是SENet 中提出的嵌入結(jié)構(gòu),提出了用各通道權(quán)重再衡量的方式來提高分類正確率,并且把激活函數(shù)把原有的Re-LU 改成LeakyReLU,目的是增加網(wǎng)絡(luò)泛化能力。最后的一個(gè)層級是Softmax,本文金屬缺陷圖像種類為4種,此處將Softmax 設(shè)置為4。
如圖2 所示,左側(cè)是未加入SE-Block 的Inception-ResNet 模型,右側(cè)是本文所設(shè)計(jì)的添加SE-Block的網(wǎng)絡(luò)模型。首先,將從Inception網(wǎng)絡(luò)結(jié)構(gòu)中輸出的結(jié)果x 通過全平均池化層(Global pooling)進(jìn)入全連接層(FC),得到處理后的結(jié)果C1·x,這一步操作的目的是為了減少通道數(shù)量,減少計(jì)算的參數(shù)量。其次,經(jīng)過非線性層θ,其激活函數(shù)為ReLU,得到結(jié)果θ(C1·x),繼續(xù)傳入到一個(gè)全連接層設(shè)置的學(xué)習(xí)的縮放參數(shù)為C2,通過縮放參數(shù)將通道數(shù)還原至初始狀態(tài),此步驟獲得的結(jié)果為C2θ(C1·x)。最后,將結(jié)果傳送到非線性層σ以此獲得各個(gè)通道的權(quán)重信息并輸出。所有特征的信息參數(shù)都包含在全連接層中,通過激活函數(shù)來對權(quán)重信息進(jìn)行設(shè)置,排除低弱特征,學(xué)習(xí)重要特征,以此達(dá)到減少干擾項(xiàng)的目的。將ResNet 模塊和Inception模塊的對應(yīng)信息進(jìn)行疊加。為了加快訓(xùn)練速度,提高訓(xùn)練的效率,SE-Block只與每種類型的Inception模塊最后一層相結(jié)合。

圖1 本文模型示意圖

圖2 Inception-ResNet模塊(左)和SE-Inception-ResNet(右)
在經(jīng)過激活函數(shù)之前,圖像經(jīng)過權(quán)重和偏置的線性組合最終的輸出也是線性的,通過激活函數(shù)會(huì)將輸出轉(zhuǎn)變?yōu)榉蔷€性結(jié)果,通過不斷的非線性函數(shù)的疊加和融合,可以讓網(wǎng)絡(luò)擁有強(qiáng)大的非線性擬合能力。圖3展示了兩種不同激活函數(shù)的區(qū)別,ReLU函數(shù)將負(fù)值設(shè)為零,會(huì)不可避免地使一些神經(jīng)元處于靜默狀態(tài)。相比較之下,Leaky ReLU[17]保留了負(fù)值的輸入y = ax,其中參數(shù)a 為非零較小的固定參數(shù),防止了因輸入負(fù)值時(shí)梯度為零而無法更新權(quán)重的問題,對局部特征進(jìn)行了一定的優(yōu)化,損失函數(shù)的收斂有了一定的保證。

圖3 激活函數(shù)
本文使用Python3.8 以及深度學(xué)習(xí)框架Keras,系統(tǒng)參數(shù)如表1所示。

表1 系統(tǒng)參數(shù)表
本文使用的實(shí)驗(yàn)數(shù)據(jù)來自kaggle 競賽中所使用的數(shù)據(jù)集。數(shù)據(jù)集中每一張都是包含有缺陷的金屬板材。圖片共計(jì)5134張,按照4∶1的比例劃分訓(xùn)練集與測試集,其中訓(xùn)練集圖片4107 張,測試集圖片1027 張。以上是四種不同類型缺陷的具體圖片,圖4~7 分別為擦花、漏底、碰凹和凸粉。

圖4 擦花

圖5 漏底

圖6 碰凹

圖7 凸粉
為了驗(yàn)證模型的性能,本文采用了VGG16 與Inception 卷積網(wǎng)絡(luò)模型來作比較。首先將數(shù)據(jù)集的中圖片調(diào)整為224×224,然后將訓(xùn)練集輸入到三個(gè)模型中進(jìn)行訓(xùn)練,最終把測試集輸入到訓(xùn)練好的網(wǎng)絡(luò)模型得到測試結(jié)果進(jìn)行比對。模型訓(xùn)練的批量尺寸設(shè)置為64,訓(xùn)練的周期為100,學(xué)習(xí)率設(shè)置為0.001,采用隨機(jī)梯度下降(SGD)方法結(jié)合動(dòng)量Momentum,momentum 設(shè)置為0.9。不同模型經(jīng)過訓(xùn)練在測試集上的識(shí)別準(zhǔn)確率如圖8所示。

圖8 三種模型準(zhǔn)確率對比
從圖8 中可以看出,三種模型在初期時(shí)因?yàn)殡S機(jī)初始化的參數(shù),模型波動(dòng)比較大。隨著不斷訓(xùn)練網(wǎng)絡(luò)模型,最終三種模型識(shí)別的準(zhǔn)確率不斷上升并且逐漸趨于一個(gè)穩(wěn)定的狀態(tài)。Inception 與本文模型相比,雖然同樣具有多通道卷積模塊,但ResNet殘差結(jié)構(gòu)和SE-Block 模塊使得網(wǎng)絡(luò)模型在卷積過程中可以將低特征圖與高特征圖聯(lián)合參與分類決策,并且在深層卷積中使誤差不斷減小,相比準(zhǔn)確度提升了10.2%,證明了本文模型的可行性。
表2 為三種模型在面對不同類型的金屬板材缺陷時(shí)的識(shí)別正確率,其結(jié)果均表明了本文模型在面對各種金屬板材缺陷的結(jié)果總是優(yōu)于其他兩種對比模型。

表2 三種模型對四種缺陷的準(zhǔn)確率
圖9 為采用激活函數(shù)ReLU 和采用激活函數(shù)Leaky ReLU 加入SE 模塊Inception-ResNet 網(wǎng)絡(luò)模型對比實(shí)驗(yàn)結(jié)果圖。

圖9 不同激活函數(shù)準(zhǔn)確率對比
由圖中的數(shù)據(jù)可以看出,采用了Leaky ReLU的網(wǎng)絡(luò)模型相較采用ReLU模型準(zhǔn)確率提高了。這是由于ReLU函數(shù)在訓(xùn)練過程中可能導(dǎo)致一部分神經(jīng)元處于靜默狀態(tài),進(jìn)而無法更新權(quán)重。而Leaky ReLU很好地解決了這種問題。
本文針對現(xiàn)如今金屬板材缺陷識(shí)別成本高,識(shí)別效率低以及識(shí)別精度不夠等問題,提出了一種采用ResNet 模塊和SE-Block 模塊組成的Inception 網(wǎng)絡(luò)模型,不僅提取特征的能力增強(qiáng),并且使其在卷積層數(shù)增多的情況下性能更好、運(yùn)算更快、參數(shù)更少。再通過將激活函數(shù)ReLu 替換為Leaky ReLU使其本身準(zhǔn)確率得到小幅度提升。最終模型的準(zhǔn)確率到達(dá),相較于傳統(tǒng)模型Inception 和VGGnet 提高了10.2%和17.2%,在金屬表面缺陷識(shí)別問題上具有更好的效果。