陳立潮,閆耀東,張睿,傅留虎,曹建芳,3
(1. 太原科技大學 計算機科學與技術學院,山西 太原 030024; 2. 山西省機電設計研究院 機械產品質量監督檢驗站,山西 太原 030009; 3. 忻州師范學院 計算機科學與技術系,山西 忻州 034000)
不銹鋼材料因具有良好的抗氧化性、抗腐蝕性和易焊接等特點逐漸被推廣到儲存輸送、加工生產、機械制造等行業。不銹鋼工件是利用焊接來實現兩兩結合,由于焊接存在局部不可見性,作為完整構件最薄弱區域的焊縫常會產生裂紋、氣孔、夾渣、未熔合和未焊透等問題,難以實現質量可靠的兩兩焊接;并隨著鋼件的使用壽命增多和操作環境影響,鋼板焊縫也會產生新的缺陷[1]。忽視焊接產品質量造成的事故屢見不鮮,這就要求必須加強對不銹鋼焊縫進行嚴格的質量檢測,并在發現缺陷時能及時報警,對產生缺陷的原因進行分析,及時修復缺陷或停止生產,最大限度地降低經濟損失,減少危險事故。
傳統的不銹鋼焊縫缺陷檢測方法如X射線檢測等由于操作復雜不易推廣和對人體具有輻射等原因,對缺陷的檢測精度和效率都相對較低。目前,大多研究采用超聲技術進行焊縫缺陷檢測。2014年西安石油大學的蔡曉龍[2]對不銹鋼焊縫X射線圖像進行均值濾波、sin增強、ostu分割和邊緣檢測等方法對氣孔和裂紋分別達到了83.908%和89.473 7%的分類準確率;2017年Fan等[3]使用支持向量機對提取的焊縫缺陷特征進行分類,獲得了97%的分類精確度;2018年Chen等[4]對不銹鋼焊縫缺陷A掃信號進行特征提取,通過模式識別方法實現了對不銹鋼焊縫4類缺陷95.8%的分類精度;2018年長安大學的劉夢溪等[5]構建了一個由3層受限玻爾茲曼機疊加成的深度置信網絡(deep belife networks, DBN)對裂紋、氣孔、夾渣、未焊透和未融合5類不銹鋼焊縫缺陷達到了平均88%的分類準確率;2019年Wang等[6]通過提取不銹鋼焊縫缺陷超聲信號時頻信息并使用PSO-SVM方法實現了4類缺陷95%的平均分類精度;2019年侯懷書等[7]將傅里葉變換應用于金屬管道焊縫中的缺陷類型識別,成功地將未焊透、氣孔、未熔合和裂紋4種常見缺陷進行了分類。
綜上所述, 目前國內外研究主要集中在夾渣、氣孔、未焊透3類缺陷上,且多采用“特征提取+機器學習”的分析方法,造成提取的特征主觀性強、經驗性強、缺陷分類邊界模糊等問題。為了進一步優化不銹鋼焊縫缺陷識別技術,本文提出一種融合遷移學習的AlexNet神經網絡不銹鋼焊縫缺陷分類方法,以期克服傳統識別方法中存在的上述問題,以及“小”樣本導致卷積神經網絡陷入過擬合狀態的問題,在保證低計算成本的同時,能夠有效提高5類焊縫缺陷識別性能。
1989年Waibel[8]提出第一個卷積神經網絡,隨著卷積神經網絡的不斷發展,在圖像識別領域顯示出了優異的性能。卷積神經網絡主要包括輸入層、池化層、卷積層、分類層、全連接層和輸出層。卷積神經網絡通過一系列卷積核實現圖片關鍵信息的提取;池化層位于卷積層之后,對卷積層提取的特征進行壓縮,在簡化網絡的同時提取卷積層得到的主要特征;全連接層最后對卷積層提取的特征進行組合分類。
AlexNet網絡是KrizhevskyA等[9]在2012年提出并在當年的ILSVRC比賽中獲得冠軍的卷積神經網絡。AlexNet卷積神經網絡由5層卷積層、3層池化層和3層全連接層組成,池化層位于卷積層之后,并使用線性整流(rectified linear unit,ReLU)激活函數進行非線性運算,反向傳播算法實現網絡參數的更新,在李飛飛等人構建的ImageNet圖像分類數據庫上得到訓練。
訓練復雜的卷積神經網絡需要大量的標注數據和訓練時間,并且大量的待訓練參數,也容易導致網絡收斂效果差和過擬合的問題。在圖像識別任務中,由于大多數圖像特征具有相關性,如物體邊緣、紋理等特征高度一致,遷移學習可以將卷積神經網絡在像ImageNet等大型圖片數據庫上訓練得到的模型遷移,使用在相似性較高的圖像分類任務上,從而加快并優化模型的學習效率[10]。在新的圖像分類任務中進行遷移學習時,需要對之前的卷積神經網絡結構進行微調,從而更好地服務于本次任務。使用遷移學習后的圖像分類任務結果表明,要比重新訓練的效果還要好,泛化能力也更強[11]。
遷移學習網絡和傳統深度神經網絡傳遞過程略有不同。若I表示網絡的原始輸入圖像,傳統深度神經網絡通過多次的卷積和池化操作可對原始圖像I進行關鍵信息提取;而遷移學習則是直接利用預訓練模型完成關鍵信息提取過程。
Ioffe等[12]針對神經網絡中數據分布不一致的問題提出一種正則化的方法?批量歸一化。批量歸一化的實質是一種預處理操作,也就是對神經網絡中上一層的特征輸出進行歸一化處理[13],然后再作為下一層的輸入。這種預處理操作可以很好地減少參數過擬合問題,提高網絡運算效率:


在網絡訓練過程中,BN層以mini-batch為最小單位不斷更新,假設第l層有N個特征響應圖,每個特征響應圖的大小為M×M。BN層的工作原理如式(1)~(4)所示。其中,m表示mini-batch的大小,是特征圖里面的值,?和β是2個可學習的變量,BN層通過計算mini-batch中數據的均值與方差,標準化每一層的特征分布。考慮到AlexNet原結構中并沒有BN層,且批量歸一化作為一種新的數據處理操作在多種網絡中顯示出了良好效果。因此,本文設計如圖1所示的2種卷積提取結構(A-AlexNet和B-AlexNet)。A-AlexNet、BAlexNet分別在激活函數前后添加批量歸一化層,來對AlexNet網絡卷積層信息進行批量歸一化操作。

圖1 兩種卷積提取結構Fig.1 Two convolution extraction structures
不銹鋼焊縫缺陷分類是一個非線性問題,在神經網絡中需要引入非線性激活函數實現整個網絡的非線性。常用激活函數有Sigmoid函數、Tanh函數和ReLU函數[14]。其中ReLU激活函數增加了網絡的非線性擬合能力,加快了網絡的收斂速度,因此ReLU作為大多數網絡的激活函數[15],但ReLU激活函數可能會存在某些神經元永遠不會被使用,導致某些參數永遠不會被更新的問題。LeakyReLU函數輸出對小于0的值有一個很小的取值區間(圖2),使靜默神經元的出現得到大大緩解,對ReLU激活函數在負半軸神經元不學習的問題是一個較好的解決方法。因此本文對ReLU激活函數進行改進,采用LeakyReLU激活函數對靜默神經元進行更新。

圖2 LeakyReLU函數曲線Fig.2 LeakyReLU function curve
采用美國MathWorks公司預訓練AlexNet卷積神經網絡模型作為本文網絡的預訓練模型。該模型是由ImageNet大型數據庫的一個子集上訓練得來,該子集通常用于ILSVRC。通過對100萬張圖片的預訓練,使用該預訓練模型的網絡已經能夠對1 000類的圖片進行分類[16]。使用預訓練模型可以減少網絡訓練參數,加快網絡收斂獲得更高的精度。經過實驗,本文采用遷移學習的方法對網絡的前3層進行封裝,保存前3層卷積層在ImageNet上更新的參數,將后2層卷積層進行剝離并調整卷積核的個數,使圖像輸入時僅對后2層卷積層參數進行更新,減小卷積神經網絡對輸入數據量限制的同時又能使網絡提取到圖像的深層特征,以使網絡能夠更好地適應于不銹鋼焊縫缺陷分類。如圖3所示為改進的AlexNet遷移學習網絡結構。

圖3 改進AlexNet遷移學習網絡結構Fig.3 Improve the AlexNet transfer learning network structure
硬件環境:i5-8300h,GTX 1050Ti 4 GB,8 GB內存。軟件環境:Windows10,Matlab2019b,CUDA-10.0,cuDNN-v7.6.2.24。
通過與山西省機電設計研究院合作,在該單位搭建實驗平臺,制備包含裂紋、氣孔、夾渣、未熔合和未焊透5類缺陷類型的試樣。使用KARL DEUTSCH(ECHOGRAPH)探傷儀、Tektronix DPO 2 024B示波器和2.5P 9x9 K2.5斜探頭對缺陷試樣進行數據采集。實驗共采集了未熔合、夾渣、未焊透、裂紋和氣孔5種超聲A掃缺陷數據(見圖4)。

圖4 實驗平臺及數據采集Fig.4 Experimental platform and data acquisition
深度學習與傳統的機器學習方法相比,可以從海量數據中學習到更多的高級特征,因而在深度學習中最嚴峻的挑戰之一就是數據依賴性。由于不銹鋼焊縫缺陷圖像的特殊性,導致了不銹鋼焊縫缺陷圖像數據庫并不能像ImageNet等自然圖像數據庫那樣充足,相對于自然圖像數據庫來說,不銹鋼焊縫缺陷數據庫數據量往往非常少。為了緩解這一矛盾,本文采用數據增強方式,增大訓練數據量,使模型能接受到更多缺陷特征信息,從而提升模型在本文數據集上的表現力[17]。采用的數據增強方法主要包括小角度隨機旋轉、添加高斯噪聲等方式對原始數據進行處理。通過數據增強操作,共獲得了包含未熔合、夾渣、未焊透、裂紋和氣孔5類缺陷數據共7 824張,按7:2:1隨機分割為訓練集5 634張,驗證集1 408張和測試集782張。
本文網絡優化器采用Adam算法,Adam的優點主要在于經過偏置校正后每一次迭代學習率都有個確定范圍,使得參數比較平穩。MiniBatchSize設置為128,初始學習率為0.000 1,學習率衰減為每30個Epoch衰減10%。
3.2.1 卷積提取結構選擇
為了更好地選擇卷積提取結構,本文將前期(見圖1)構建的A-AlexNet、B-AlexNet與AlexNet網絡原結構進行實驗對比,精度對比結果如圖5所示。從圖5可以看出,A-AlexNet較AlexNet原結構驗證精度更高且收斂更快。B-AlexNet收斂較慢,但精度在不斷上升。從實驗可以看出,迭代次數達到1 000時,A-AlexNet精度為90.48%,B-AlexNet精度為80.89%,AlexNet原結構精度為85.01%。出現此結果的原因為:AlexNet原結構卷積之后沒有進行BN操作,使用激活函數導致小于零的參數靜默;B-AlexNet在ReLU激活函數后進行BN操作,精度沒有提高,說明實驗中存在一部分處于負區間的參數,而該結構同AlexNet原結構一樣沒有對靜默的神經元產生影響;AAlexNet在卷積之后進行BN操作,使用激活函數使無用神經元靜默,有效地加快了網絡收斂速度,提高了網絡識別精度。可知,A-AlexNet卷積提取結構明顯好于B-AlexNet和AlexNet原結構。因此,本文網絡采用A-AlexNet卷積提取結構,接下來的對比實驗中均采用在卷積操作之后添加BN層的結構。

圖5 原結構與卷積提取結構提取精度對比Fig.5 Comparison of extraction accuracy between original structure and convolution extraction structure
3.2.2 驗證激活函數改進效果
圖6是采用LeakyReLU與ReLU激活函數驗證精度對比圖,展示了訓練迭代次數達到1 000次時的驗證精度變化曲線,虛線為A-AlexNet算法的精度變化,實線為在A-AlexNet算法基礎上進一步對激活函數LeakyReLU改進后的C-AlexNet算法精度變化。實驗表明,在迭代次數達到1 000次時,網絡已經基本收斂,改進后的算法在驗證精度方面相比原結構提高了1.35%。

圖6 不同激活函數驗證精度對比Fig.6 Comparison of verification accuracy of different activation functions
這是因為卷積層進行特征提取后,網絡中的一些參數小于零,ReLU激活函數由于在負半軸導數為零,造成了這些神經元靜默。改進后的激活函數LeakyReLU由于在負半軸永不為零,所以能夠對這一部分神經元進行激活,從而參加下一卷積層的運算,提高網絡精度。
3.2.3 本文算法性能驗證
本文網絡采用3.1節設置實驗環境進行訓練,當迭代次數達到1 000次時結束訓練,網絡識別精度達到95.12%,并在驗證集中隨機選取6張圖片對模型進行測試,測試結果如圖7。

圖7 模型測試結果Fig.7 Model test results
為了進一步驗證改進后的AlexNet遷移學習網絡在不銹鋼焊縫缺陷數據集上的表現,本文分別統計了未熔合、夾渣、未焊透、裂紋和氣孔5類不銹鋼焊縫缺陷的識別精度、召回率和F1值來評價模型性能,實驗結果如表1所示。從表1可以看出,氣孔和未熔合的識別效果相對較高,裂紋、夾渣和未焊透3類缺陷識別效果相對較低,這是因為這3類缺陷圖像相似性較高,識別過程中有較大難度,因此識別效果相對較低。為了驗證本文方法在不銹鋼焊縫缺陷數據集上的性能,將本文模型與未經預訓練的CNN模型[18]、VGGNet模型[19]和Inception_V3模型[20]進行對比,分析各實驗在運行1 000次后的準確率和運行時間情況以及運行1 500次后的精度變化,對比結果如表2和圖8所示。

表1 性能評價Table 1 Performance evaluation

表2 迭代次數相同時各模型性能對比Table 2 Performance comparison of each model with the same number of iterations

圖8 不同模型驗證精度對比Fig.8 Comparison of verification accuracy of different models
從表2和圖8可以看出:本文模型在迭代1 000次時運行時間為45 min,是CNN、VGG和Inception_V3模型運行時間的1.9、1.2和1.1倍,主要是由于本文模型參數較多,計算量較大,迭代相同次數所需時間較長;準確率達到了95%左右,較CNN、VGG和Inception_V3模型分別提高了32%、72%和70%,究其原因主要是CNN比本文網絡層次淺,不能提取到圖像的深層特征,但參數較少,所以耗時較本文模型有一個很大的優勢。從圖8可以看出,由于VGG和Inception_V3都屬于大型的深度提取網絡,對圖像數量有較嚴格的標準,當數據集較小時提取不到充分的缺陷信號特征,對準確率有一個較大的影響。
本文針對傳統人工提取信號特征+機器學習方法存在操作人員主觀隨意性強、提取特征不充分等問題,選擇采用卷積神經網絡自動提取不銹鋼焊縫缺陷數據特征進行分類。針對不銹鋼焊縫缺陷數據較少的特點,采用數據增強的方式對原始數據進行擴充。然后對AlexNet網絡結構進行調整,使用遷移學習的方法凍結網絡的前3層減小網絡對輸入數據量的限制,之后采用批量歸一化加快網絡運算效率,并使用LeakyReLU函數對抑制神經元進行重新激活,從而提出一種融合遷移學習的AlexNet神經網絡不銹鋼焊縫缺陷分類模型。最后通過實驗不斷優化網絡參數,本文模型最終達到95.12%的準確率,驗證了本文模型在不銹鋼焊縫缺陷分類上的有效性。本文是基于AlexNet改進的卷積神經網絡模型,相比于現有模型,參數量較多,訓練時間相對較長,還需要繼續對VGG和Inception_V3網絡進行研究,通過與不銹鋼焊縫缺陷分類任務相結合,使改進后的網絡不僅可以獲得較高的準確率,而且還可以縮短收斂速度,以適應現代化工業生產。