楊志超,周 強(qiáng),胡 侃,趙 云
(1.武漢理工大學(xué) 物流工程學(xué)院,湖北 武漢 430063;2.武漢灣流科技股份有限公司,湖北 武漢 430223)
焊接技術(shù)憑借其精確、可靠、低成本的優(yōu)勢(shì),在現(xiàn)代生產(chǎn)過程中發(fā)揮著至關(guān)重要的作用。但由于焊接過程是一個(gè)多因素耦合的復(fù)雜相變過程,極易受到外部環(huán)境和人為因素的干擾,在焊縫成型過程中會(huì)產(chǎn)生咬邊、氣孔、未熔合、裂紋、夾渣、燒穿等難以預(yù)測(cè)的焊接缺陷,這些缺陷會(huì)嚴(yán)重降低焊接構(gòu)件的機(jī)械性能[1]。為了及時(shí)發(fā)現(xiàn)焊縫存在的缺陷,焊接缺陷無損檢測(cè)技術(shù)成為了學(xué)者研究的熱點(diǎn),而X射線無損檢測(cè)技術(shù)以其無損、精準(zhǔn)、快捷等優(yōu)點(diǎn)在實(shí)際焊接缺陷檢測(cè)過程中得到了廣泛應(yīng)用。
目前在X射線檢測(cè)中,仍采用傳統(tǒng)的人工檢測(cè)圖像法,質(zhì)檢人員憑借個(gè)人主觀經(jīng)驗(yàn)評(píng)定焊縫圖像存在的缺陷類別、位置及數(shù)量。但隨著生產(chǎn)作業(yè)效率的不斷提高,人工在線檢測(cè)時(shí)間相應(yīng)增長(zhǎng),任務(wù)量加大,容易產(chǎn)生漏檢、誤檢情況。同時(shí),受到質(zhì)檢員主觀經(jīng)驗(yàn)的影響,每個(gè)人的主觀性不同,所得出的評(píng)判結(jié)果也不盡相同,因此難以保證檢測(cè)結(jié)果的可靠性[2]。因此,近年來眾多學(xué)者基于神經(jīng)網(wǎng)絡(luò)理論研究焊縫缺陷識(shí)別新方法,如唐國(guó)維等[3]通過建立缺陷特征參數(shù)模糊神經(jīng)網(wǎng)絡(luò)模型,提高了集合交叉較大的缺陷識(shí)別精度。BANIUKIEWICZ[4]對(duì)X射線圖像的閾值處理、分割、缺陷識(shí)別與分類進(jìn)行了研究,提出一種由人工神經(jīng)網(wǎng)絡(luò)和模糊邏輯組成的復(fù)雜分類模型,具有更好的靈活性與識(shí)別精度。ACHERJEE等[5]應(yīng)用ANN網(wǎng)絡(luò)建立非線性焊接模型,研究焊接參數(shù)與焊后質(zhì)量之間的相關(guān)性,并將預(yù)測(cè)結(jié)果與實(shí)際測(cè)量做對(duì)比。王婧[6]改進(jìn)了RBF神經(jīng)網(wǎng)絡(luò),以射線檢測(cè)焊縫膠片圖像為輸入,實(shí)現(xiàn)對(duì)直線型與T字型焊縫缺陷類型的識(shí)別,準(zhǔn)確率達(dá)到92%。
隨著計(jì)算機(jī)視覺和深度學(xué)習(xí)技術(shù)的興起,基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別技術(shù)在各行各業(yè)中解決了大量實(shí)際問題。卷積神經(jīng)網(wǎng)絡(luò)(CNN)與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)不同,其直接以圖像為輸入,無需人工提取目標(biāo)特征,將特征提取轉(zhuǎn)化為一個(gè)自學(xué)習(xí)過程。并且網(wǎng)絡(luò)中每個(gè)卷積層的輸出都可以視為網(wǎng)絡(luò)自學(xué)習(xí)到的特征,基于這些特征,能夠進(jìn)行更深層次的相似度比較[7]。筆者將預(yù)處理后的焊縫RT圖像作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,利用卷積神經(jīng)網(wǎng)絡(luò)良好的容錯(cuò)、并行以及泛化能力,對(duì)常見焊縫缺陷進(jìn)行特征提取與識(shí)別。
焊接缺陷根據(jù)其在焊縫中的位置,可分為焊接外部缺陷和焊接內(nèi)部缺陷。焊接外部缺陷是指直觀呈現(xiàn)于焊縫外表面,用肉眼或放大鏡能直接觀測(cè)到的缺陷,常見的外部缺陷包括焊縫尺寸不符合要求、咬邊、焊瘤、表面氣孔和裂紋等。而焊接內(nèi)部缺陷位于焊縫內(nèi)部,包括內(nèi)部氣孔、裂紋、夾渣、未焊透等,其用肉眼無法直接觀測(cè)到,需借助無損探傷等方法才能檢測(cè)到[8]。筆者主要以夾渣、氣孔、裂紋和燒穿4種常見焊縫缺陷的RT圖像為研究對(duì)象。
由于原始的焊縫RT圖像存在一定的噪聲,且對(duì)比度不高,這對(duì)于后續(xù)卷積神經(jīng)網(wǎng)絡(luò)的特征提取帶來很大的影響,為了使焊縫缺陷區(qū)域更加明顯,采用最大類間方差法(otsu)對(duì)焊縫區(qū)域與背景區(qū)域進(jìn)行閾值分割,其計(jì)算公式如式(1)所示。
thresh=max[P0(t)×(u0(t)-u)2+
P1(t)×(u1(t)-u)2]
(1)
式中:t為灰度值;P0(t)為背景區(qū)域比例;P1(t)為焊縫區(qū)域比例;u0(t)為背景區(qū)域灰度均值;u1(t)為焊縫區(qū)域灰度均值;u為整圖均值。
采用遍歷法求出滿足最大類間方差的閾值t,將原始RT圖像分為焊縫缺陷和背景兩部分,部分預(yù)處理后的焊縫缺陷圖像如圖1所示,其中,圖1(a)為夾渣樣圖,圖1(b)為氣孔樣圖,圖1(c)為裂紋樣圖,圖1(d)為燒穿樣圖。
圖1 預(yù)處理后的焊縫缺陷圖像
卷積神經(jīng)網(wǎng)絡(luò)主要包括數(shù)據(jù)輸入層、卷積計(jì)算層、激勵(lì)層、池化層、全連接層和輸出層。其中,卷積層、激勵(lì)層與池化層三者可以疊加連接,對(duì)圖像進(jìn)行更加細(xì)致的特征提取,網(wǎng)絡(luò)的全連接層則起到分類器的作用[9]。由于作為網(wǎng)絡(luò)輸入的焊縫缺陷RT圖像經(jīng)過了一定的預(yù)處理,對(duì)應(yīng)缺陷特征相對(duì)明顯,并考慮到本研究所用的樣本集數(shù)量相對(duì)不足,因此筆者采用如圖2所示的焊接缺陷識(shí)別卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
圖2 焊接缺陷識(shí)別卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
該卷積網(wǎng)絡(luò)包括C1、C2兩個(gè)卷積計(jì)算層和其之后對(duì)應(yīng)相接的P1、P2兩個(gè)池化層,最后通過F1、F2兩個(gè)全連接層來實(shí)現(xiàn)缺陷分類。傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)中,每個(gè)神經(jīng)元節(jié)點(diǎn)都要與圖片的每個(gè)像素點(diǎn)連接,因此,需要設(shè)置數(shù)量眾多的層與層之間的連接權(quán)重,相應(yīng)增加了網(wǎng)絡(luò)訓(xùn)練的負(fù)擔(dān),達(dá)不到較好的分類效果。而卷積神經(jīng)網(wǎng)絡(luò)中的卷積層,基于神經(jīng)生理學(xué)中的感受野概念,借助于濾波器進(jìn)行原始圖像的分組特征提取,相當(dāng)于沒有數(shù)量巨大的神經(jīng)元與對(duì)應(yīng)的像素相連接,極大地減少了權(quán)重的數(shù)目。此外,由于其具備獨(dú)特的權(quán)值共享機(jī)理,同樣減少了網(wǎng)絡(luò)所需的訓(xùn)練參數(shù),降低了網(wǎng)絡(luò)的復(fù)雜性。
對(duì)于卷積層,前一層的圖像與多個(gè)卷積核進(jìn)行卷積計(jì)算,并通過激勵(lì)函數(shù)得到對(duì)應(yīng)的特征圖[10],卷積層的計(jì)算公式如式(2)所示。
y=f(wx+b)
(2)
式中:w為卷積核的權(quán)重;b為偏置;x為輸入;y為輸出值;f為激勵(lì)函數(shù)。
激勵(lì)函數(shù)的選擇對(duì)整個(gè)網(wǎng)絡(luò)的訓(xùn)練效果影響較大,目前神經(jīng)網(wǎng)絡(luò)中常用的激勵(lì)函數(shù)有:sigmod函數(shù)、tanh函數(shù)及relu函數(shù)等,考慮到研究所用的樣本集數(shù)量相對(duì)較少,圖像維度不高,為了防止訓(xùn)練過程中產(chǎn)生過擬合,筆者采用relu激勵(lì)函數(shù),relu函數(shù)的定義如式(3)所示。
f(x)=max(0,x)
(3)
relu函數(shù)在網(wǎng)絡(luò)訓(xùn)練過程中,計(jì)算相對(duì)簡(jiǎn)單,梯度損失較小,且收斂速度快,更加符合神經(jīng)生理學(xué)意義上的神經(jīng)元結(jié)構(gòu)。
池化層的輸入來源于上一個(gè)卷積層,因此其往往夾在連續(xù)的卷積層中間,對(duì)經(jīng)過濾、放大后的圖像特征進(jìn)行降采樣,加強(qiáng)了整個(gè)網(wǎng)絡(luò)的魯棒性,并且壓縮了數(shù)據(jù)和參數(shù)的量,防止過擬合現(xiàn)象的發(fā)生,筆者研究中網(wǎng)絡(luò)池化層均采用max-pooling的方式。
在卷積神經(jīng)網(wǎng)絡(luò)的最后,搭建兩個(gè)全連接層,其將卷積層輸出的二維特征圖像轉(zhuǎn)化為一維向量,在整個(gè)卷積神經(jīng)網(wǎng)絡(luò)中起到“分類器”的作用??紤]到實(shí)驗(yàn)是為了對(duì)夾渣、氣孔、裂紋和燒穿4種焊縫缺陷進(jìn)行分類,因此輸出層對(duì)應(yīng)設(shè)置4個(gè)神經(jīng)元。
分別采集4種焊縫缺陷RT圖像各300張作為樣本,并進(jìn)行otsu預(yù)處理,隨機(jī)取每種缺陷圖像中的200張作為訓(xùn)練集,剩下的100張作為測(cè)試集,用以驗(yàn)證模型的泛化能力與可靠性。為了有效避免因訓(xùn)練集數(shù)量相對(duì)稀少而引起網(wǎng)絡(luò)過擬合,使得訓(xùn)練誤差很小而測(cè)試誤差很大,試驗(yàn)采用Data Augmentation法,對(duì)訓(xùn)練集中50%的圖像進(jìn)行反射變換、噪聲擾動(dòng)和對(duì)比度變化,從而創(chuàng)造出一批新的數(shù)據(jù)。
網(wǎng)絡(luò)訓(xùn)練直接以圖像為輸入,由于樣本像素大小有所差異,需先在網(wǎng)絡(luò)初始對(duì)所有圖像進(jìn)行Resize處理,這里統(tǒng)一轉(zhuǎn)化為320×160的分辨率。同時(shí)為了減少網(wǎng)絡(luò)計(jì)算量,對(duì)其進(jìn)行去均值化處理。值得注意的是,只需在訓(xùn)練集上求均值,然后將所有圖像樣本減去此均值,最終以50張圖像為一個(gè)批次進(jìn)行訓(xùn)練。在卷積層C1層采用4個(gè)卷積核(filter),每個(gè)卷積核的大小為20×20,分別對(duì)輸入圖像進(jìn)行采樣處理,采樣步長(zhǎng)為2;從C1層到P1層為池化過程,采樣鄰域大小為2×2,步長(zhǎng)為2,并計(jì)算池化領(lǐng)域最大值。卷積層C2層采用12個(gè)卷積核,每個(gè)卷積核的大小為10×10,分別對(duì)P1層的輸出圖像進(jìn)行采樣處理,采樣步長(zhǎng)為2;池化層P2層和P1層的結(jié)構(gòu)相同。所有卷積層與池化層都采用same padding的方式,對(duì)圖像做邊界填充處理。網(wǎng)絡(luò)迭代次數(shù)為500次,為了加快網(wǎng)絡(luò)收斂速度,第一次迭代設(shè)置網(wǎng)絡(luò)學(xué)習(xí)率為0.01,之后每次迭代學(xué)習(xí)率都會(huì)減少到之前的80%。
在網(wǎng)絡(luò)最后的全連接層采用隨機(jī)Dropout法,如圖3所示。為進(jìn)一步避免網(wǎng)絡(luò)過擬合問題, 隨機(jī)Dropout法通過在網(wǎng)絡(luò)訓(xùn)練過程中隨機(jī)關(guān)閉全連接層中一定比例的神經(jīng)元,使得神經(jīng)元之間不會(huì)相互依賴而輸出,從而有效防止了訓(xùn)練數(shù)據(jù)之間復(fù)雜的互適應(yīng)性關(guān)系。實(shí)驗(yàn)在全連接層F1中設(shè)置正常工作的神經(jīng)元比例為70%。
圖3 隨機(jī)Dropout法示意圖
卷積神經(jīng)網(wǎng)絡(luò)需要設(shè)置一個(gè)代價(jià)函數(shù)用以度量網(wǎng)絡(luò)輸出值與期望值之間的偏差,其值越小,網(wǎng)絡(luò)的魯棒性就越好,筆者采用交叉熵代價(jià)函數(shù),其計(jì)算公式如式(4)所示。
(4)
式中:C為代價(jià)函數(shù);x為輸入;y為輸出值;a為期望值;n為樣本總數(shù)。
為了求得代價(jià)函數(shù)的最小值,求其對(duì)應(yīng)w、b的梯度,分別如式(5)和式(6)所示。
(5)
(6)
由式(5)和式(6)可知,w和b的梯度只和輸出的誤差有關(guān),故誤差越大,梯度就越大,參數(shù)w、b調(diào)整得越快,訓(xùn)練速度也就相應(yīng)越快[11],網(wǎng)絡(luò)訓(xùn)練的實(shí)質(zhì)就是為了求得滿足C最小時(shí)對(duì)應(yīng)的w和b。
網(wǎng)絡(luò)訓(xùn)練環(huán)境為Win10操作系統(tǒng),處理器為i7 7700K 4.2GHz主頻,16G內(nèi)存,顯卡型號(hào)為GTX1060,并在GPU版本的Tensorflow平臺(tái)上運(yùn)行模型。在該平臺(tái)所支持的Web應(yīng)用TensorBoard中查看所搭建的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),如圖4所示。
圖4 TensorBoard中的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
通過卷積神經(jīng)網(wǎng)絡(luò)500次迭代訓(xùn)練后,在TensorBoard中生成訓(xùn)練集識(shí)別準(zhǔn)確率曲線,如圖5所示。在訓(xùn)練初始階段,由于采用的學(xué)習(xí)率較大,收斂速度相應(yīng)較快,整個(gè)網(wǎng)絡(luò)識(shí)別準(zhǔn)確率快速提升。隨著學(xué)習(xí)率的逐漸減小,網(wǎng)絡(luò)會(huì)逐漸找到代價(jià)函數(shù)全局最小值,避免了最小值的反復(fù)振蕩,最終識(shí)別準(zhǔn)確率趨于穩(wěn)定,達(dá)到94%。
通過對(duì)比訓(xùn)練集準(zhǔn)確率曲線與測(cè)試集準(zhǔn)確率曲線,可以看出在整個(gè)迭代訓(xùn)練過程中,兩條曲線十分接近,表明網(wǎng)絡(luò)構(gòu)建既沒有過擬合,也不存在欠擬合情況,整個(gè)卷積神經(jīng)網(wǎng)絡(luò)具備了較好的泛化能力。
圖5 網(wǎng)絡(luò)訓(xùn)練與測(cè)試準(zhǔn)確率
通過以上研究,確定了基于卷積神經(jīng)網(wǎng)絡(luò)的焊接缺陷識(shí)別模型的最佳結(jié)構(gòu)參數(shù)。為了進(jìn)一步驗(yàn)證識(shí)別模型的準(zhǔn)確率,將包含4種焊接缺陷的200張RT圖像作為新的輸入,利用訓(xùn)練好的網(wǎng)絡(luò)對(duì)其進(jìn)行缺陷識(shí)別,卷積神經(jīng)網(wǎng)絡(luò)的識(shí)別結(jié)果如表1所示。
由上述應(yīng)用結(jié)果可知,基于卷積神經(jīng)網(wǎng)絡(luò)的焊接缺陷識(shí)別模型可有效地對(duì)4種常見的焊接缺陷進(jìn)行區(qū)分,整體識(shí)別準(zhǔn)確率可達(dá)93.5%,具備一定的工程應(yīng)用價(jià)值。
表1 卷積神經(jīng)網(wǎng)絡(luò)識(shí)別結(jié)果
針對(duì)焊接缺陷自動(dòng)檢測(cè)的需要,基于卷積神經(jīng)網(wǎng)絡(luò)圖像識(shí)別原理,采用Tensorflow深度學(xué)習(xí)框架實(shí)現(xiàn)對(duì)焊縫缺陷的自動(dòng)檢測(cè),該算法直接將簡(jiǎn)單預(yù)處理后的焊縫RT圖像作為輸入向量,利用深度學(xué)習(xí)獲取其缺陷特征,從而有效避免了人為主觀因素對(duì)識(shí)別結(jié)果造成的不良影響。實(shí)驗(yàn)結(jié)果表明,在樣本集不充足的情況下,所構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)模型仍能達(dá)到較高的識(shí)別準(zhǔn)確率,并具備較強(qiáng)的泛化能力,對(duì)焊接缺陷自動(dòng)檢測(cè)技術(shù)的工程應(yīng)用有一定的參考價(jià)值。