張立,王衛(wèi)華,王靖然,楊逸軒
(1.廣東白云學(xué)院,機電工程學(xué)院,廣州510450;2.廣東工業(yè)大學(xué),機電工程學(xué)院,廣州510006)
石油管道的焊接質(zhì)量影響到焊接結(jié)構(gòu)的使用性能和壽命。由于生產(chǎn)工藝和焊接環(huán)境的不同會產(chǎn)生各類焊接缺陷,依照焊縫位置的不同可分為外部缺陷(咬邊、焊瘤、塌陷、燒邊等)和內(nèi)部缺陷(裂紋、未熔合、未焊透、圓形缺陷等)[1]。外部缺陷可以通過肉眼直接觀察辨別缺陷類型,而內(nèi)部缺陷需要無損檢測技術(shù)來辨別。常用的無損檢測技術(shù)有:超聲波檢測[2]、紅外熱像儀[3]、渦流檢測、磁懸浮檢測[4]、X射線檢測[5]等。由于X射線檢測技術(shù)可以將缺陷的形狀、位置、大小準(zhǔn)確地反映在灰度圖片上等優(yōu)點得到了廣泛的應(yīng)用[6]。X射線所得圖像,它需要檢驗員憑借經(jīng)驗進(jìn)行判斷,這種方法存在一定的弊端:檢驗員的專業(yè)水平等主觀因素會造成漏檢或者錯檢等情況,使不合格產(chǎn)品進(jìn)入市場,從而造成不可估計的損失。近幾年機器視覺應(yīng)用在工業(yè)檢測中越來越普遍,應(yīng)用形態(tài)學(xué)濾波和分水嶺算法對數(shù)據(jù)缺陷輪廓的提取,實現(xiàn)對X射線圖片缺陷的檢測[7]。通過CCD相機與輔助光源對焊接圖像進(jìn)行采集,使用GrabCut算法進(jìn)行前景與背景的分割,以QT為平臺搭建基于機器視覺的焊縫表面實時監(jiān)測系統(tǒng)[8];在中值濾波算法的基礎(chǔ)上計算局部數(shù)據(jù)點的均值和方差作為閾值選擇的范圍,既可以去除圖像噪聲,又能保留圖像的邊緣信息,降低提取特征點的難度[9]。但是傳統(tǒng)的機器視覺算法受到光照、背景差異、形變等因素影響到算法的魯棒性。卷積神經(jīng)網(wǎng)絡(luò)具有因為對光照不敏感、泛化能力強等優(yōu)點,被廣泛應(yīng)用于圖像識別領(lǐng)域。采用漸進(jìn)式卷積神經(jīng)網(wǎng)絡(luò)對焊縫識別,使用較少的數(shù)據(jù)和較簡單的網(wǎng)絡(luò)避免了過擬合,得到98%的識別率[10]。此次實驗改進(jìn)ResNet50,結(jié)合可變形卷積、深度可分離等方法,提升了管道焊縫的識別率。
標(biāo)準(zhǔn)卷積核幾何形狀大小固定,導(dǎo)致對未知形狀的權(quán)限檢測能力受到限制??勺冃尉矸e對不同位置、不同尺度的特征具有自適應(yīng)精確定位,對不同尺寸的缺陷具有良好的魯棒性。可變形卷積對輸入特征圖的采樣點學(xué)習(xí)兩個偏移量(x,y),而不局限于規(guī)則的卷積核形狀,使得提取的特征集中在感興趣區(qū)域??勺冃尉矸e與標(biāo)準(zhǔn)卷積,操作過程都是在同一通道的二維結(jié)構(gòu)上。標(biāo)準(zhǔn)卷積操作分為兩部分:①在輸入的特征圖上使用網(wǎng)格R進(jìn)行采樣;②然后權(quán)值相乘運算。其中網(wǎng)格R定義了3×3的感受野。
每個特征層的每個位置p0的變化按依照公式(1)計算:
式中:p0為特征層中的元素;pn為枚舉R中的數(shù)值;w為各個位置的權(quán)重;
可變形卷積中,對標(biāo)準(zhǔn)的網(wǎng)格R增加了偏移量進(jìn)行擴張,特征圖中p0計算公式如公式(2):
式中:Δpn為偏移量,通常是浮點值。對Δpn進(jìn)行取整,通過線性插值進(jìn)行實現(xiàn),如公式(3):
式中:p為任意浮點的位置;q為枚舉特征圖x的所有積分空間位置;G(q,p)為雙線性插值核函數(shù)。
G(q,p)是二維數(shù)據(jù),被分為兩個一維內(nèi)核,如公式(4)示:
式中:g(a,b)=max(0,1-|a-b|),取最大值;x,y為偏移方向。
對同一特征圖進(jìn)行卷積獲得偏移量,卷積核具有與當(dāng)前層相同的分辨率以及膨脹度。經(jīng)過卷積通道數(shù)目擴充為2N,對應(yīng)2維的偏移輸出,通過可變形卷積在訓(xùn)練過程中學(xué)習(xí)缺陷特征偏移量的數(shù)值。學(xué)習(xí)出來的偏移量與特征層一起作為可變形卷積的輸入,對缺陷區(qū)域的訓(xùn)練集中在感興趣區(qū)域??勺冃跃矸e如圖1所示。
圖1 可變形卷積
如圖4所示,金屬管道焊縫數(shù)據(jù)集中的缺陷區(qū)域大小不一,因此需要的感受野也不同。Inception網(wǎng)絡(luò)設(shè)置不同大小的卷積核對應(yīng)不同尺寸的缺陷,連續(xù)堆疊卷積核,使相同的感受野條件下產(chǎn)生更少的計算量。
在卷積神經(jīng)網(wǎng)絡(luò)中,尺寸大較大的卷積核有利于提取全局特征,尺寸小的卷積核有利于提取局部特征,并且堆疊較深的網(wǎng)絡(luò)容易產(chǎn)生梯度消失和梯度彌散等問題,浪費計算資源。如圖2所示,Inception模塊融合不同尺寸的卷積核[11],大小各異的卷積核適應(yīng)不同大小的目標(biāo)的分類任務(wù),最后疊加特征層的通道數(shù)目來進(jìn)行特征提取。模塊中包含大量的1×1卷積層,以較少的計算量增加非線性映射函數(shù),加強網(wǎng)絡(luò)的表達(dá)能力。Inception結(jié)構(gòu)中的Block模塊以密集成分近似計算最優(yōu)的局部稀疏解。
圖2 Block網(wǎng)絡(luò)結(jié)構(gòu)
實驗中為了適應(yīng)形狀不同的缺陷特征,增加了可變形卷積,然而可變形卷積會產(chǎn)生額外的訓(xùn)練參數(shù),增加了模型的時間復(fù)雜度,為此引入深度可分離卷積來減少訓(xùn)練的時間。深度可分離卷積把卷積核分成兩個單獨的卷積:深度卷積和逐點卷積。深度可分離卷積視通道和維度空間是可分的,分別進(jìn)行3×3卷積和1×1卷積,最后在特征層上逐點相加,融合特征層的位置信息。
圖像大小為128×128,經(jīng)過3×3大小的卷積核,filter為4,每個filter中包含3個卷積核,產(chǎn)生參數(shù)Nstd=4×3×3×3=108;深度可分離卷積產(chǎn)生的參數(shù)Ndepthwise=3×3×3×1=27;經(jīng) 過 逐 點 卷 積 后 參 數(shù)Npointsize=1×1×3×4=12,整個深度可分離卷積產(chǎn)生的參數(shù)為39,是常規(guī)卷積產(chǎn)生參數(shù)的33.33%。通過深度可分離卷積,網(wǎng)絡(luò)的參數(shù)量和計算量大幅降低,深度可分離卷積如圖3所示。
圖3 深度可分離卷積
在機器學(xué)習(xí)領(lǐng)域中,效果表現(xiàn)表現(xiàn)好的模型通常需要大量的標(biāo)注數(shù)據(jù)集進(jìn)行訓(xùn)練,學(xué)習(xí)識別的參數(shù)。遷移學(xué)習(xí)[12]作為機器學(xué)習(xí)的一個重要分支,由已知領(lǐng)域?qū)W習(xí)參數(shù)作為下一個任務(wù)需要的初始參數(shù),從而節(jié)省網(wǎng)絡(luò)訓(xùn)練的時間。實驗中的石油管道焊縫數(shù)據(jù)量遠(yuǎn)不能滿足卷積神經(jīng)網(wǎng)絡(luò)的需求,因此采用參數(shù)遷移學(xué)習(xí),利用任務(wù)之間的相似性,減少過擬合的現(xiàn)象。
式中:D(s)為源領(lǐng)域,D(t)為目標(biāo)域,x為域的特征空間,P(x)為特征空間對應(yīng)的邊緣概率分布。
實驗數(shù)據(jù)中共有4類石油管道焊縫缺陷圖片,分別是:燒穿、裂紋、氣孔以及無缺陷圖片,如圖4所示。
圖4 管道焊縫缺陷
數(shù)據(jù)分為訓(xùn)練集和測試集,如表1所示。訓(xùn)練集用來訓(xùn)練模型,模型對此提取重要的分類信息;測試集用來驗證當(dāng)前模型學(xué)習(xí)語義信息的能力,實驗中根據(jù)訓(xùn)練集和測試集的精度曲線進(jìn)行調(diào)節(jié)超參數(shù)。
表1 數(shù)據(jù)集的分布
對實驗數(shù)據(jù)的分析,焊縫缺陷的特征主要是線、圓等形狀,特征比較明顯,形狀規(guī)則。借鑒ResNet50殘差網(wǎng)絡(luò)的結(jié)構(gòu)[13],搭建50層神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)模型對焊縫缺陷數(shù)據(jù)集進(jìn)行分類識別,模型結(jié)合了多尺度卷積核、深度可分離卷積和可變形卷積等算法,模型結(jié)構(gòu)如圖5所示。
圖5 網(wǎng)絡(luò)結(jié)構(gòu)
改進(jìn)后的ResNet50第一個卷積層采用可變形卷積,后續(xù)卷積層為標(biāo)準(zhǔn)卷積,減少可變形卷積產(chǎn)生的額外參數(shù),并且網(wǎng)絡(luò)的第一層表現(xiàn)出的特征最為明顯;結(jié)構(gòu)中添加3個Block模塊,每個模塊包含兩種尺寸卷積核,對不同大小卷積核之間的通道進(jìn)行融合;模型最后添加可分離卷積卷積核數(shù)量為1024。Block模塊的結(jié)構(gòu)如圖6所示。
圖6 Block模塊
實驗中使用NVIDIA GeForce GTX1650顯卡,Intel Core i5-10200H處理器。損失函數(shù)優(yōu)化方法選擇Py-Torch中的隨機梯度下降算法,batch size為32,200個epoch,momentum為0.9。圖7中(a)所示模型訓(xùn)練次數(shù)為2000時,驗證集的損失近乎水平,此后的損失函數(shù)保持水平,達(dá)到穩(wěn)定的狀態(tài);訓(xùn)練集的損失函數(shù)小于0.2。(b)為精度曲線,訓(xùn)練集和驗證集的訓(xùn)練精度在1000次時,平均分類精度達(dá)到98%,其中訓(xùn)練集的精度曲線偶爾出現(xiàn)跳動,驗證集的精度曲線保持不變。
圖7 訓(xùn)練精度和損失函數(shù)
改進(jìn)后的網(wǎng)絡(luò)通過參數(shù)遷移學(xué)習(xí),使得模型以較快的速度達(dá)到最優(yōu)。分析訓(xùn)練集的損失函數(shù)和精度曲線發(fā)生跳動的原因,主要由各類型數(shù)據(jù)分布不一致從而導(dǎo)致模型參數(shù)學(xué)習(xí)發(fā)生變化,反向傳播過程中梯度幅值發(fā)生較大的變化。雖然網(wǎng)絡(luò)中添加了BN層緩解此現(xiàn)象,但是輸入輸出不一致的問題仍然無法完全避免。
保存訓(xùn)練好的模型文件,然后加載此模型文件測試單張缺陷數(shù)據(jù)。如圖8所示,在數(shù)據(jù)集中任意選擇12張數(shù)據(jù),包括無缺陷數(shù)據(jù)、燒穿、氣孔、裂紋,訓(xùn)練好的模型對缺陷數(shù)據(jù)均能正確分類,達(dá)到良好的識別效果。
圖8 測試效果
焊縫缺陷數(shù)據(jù)具有特征明顯、缺陷尺寸差異大的特點,針對此類數(shù)據(jù)集提出參數(shù)遷移學(xué)習(xí)與卷積神經(jīng)網(wǎng)絡(luò)聯(lián)合的方式對焊縫缺陷數(shù)據(jù)進(jìn)行識別。充分利用卷積神經(jīng)網(wǎng)絡(luò)對特征的旋轉(zhuǎn)不變性以及對光照變化的適應(yīng)能力,提升對缺陷分類的精度和魯棒性;融入?yún)?shù)遷移學(xué)習(xí),減少訓(xùn)練數(shù)據(jù)集的時間。根據(jù)任務(wù)需求,選擇性的添加深度可分離卷積和多分支結(jié)構(gòu),使模型的分類精度達(dá)到99%,函數(shù)損失值低于0.2。對比傳統(tǒng)圖像分類方法,卷積神經(jīng)網(wǎng)絡(luò)模型對數(shù)據(jù)集的魯棒性及識別精度均高于同類型的識別方法,為后續(xù)焊縫等金屬缺陷分類識別提供有力的科學(xué)工具。