金海昆 程曉穎 廖曉平
摘? 要: X射線檢測作為一種實用的無損檢測(NDT)方法,在壓力容器的焊縫缺陷檢測中得到了廣泛的應用?;赬射線圖像的自動缺陷識別技術也隨著人工智能(AI)的發(fā)展取得了飛速發(fā)展。本文將焊縫缺陷裁剪成像素小塊作為神經網絡的輸入,并在AlexNet的基礎上通過添加BN層改進了原網絡,而后又選取了最優(yōu)α值的LeakyReLU層代替了原有的ReLU層,使最終的AlexNet-BN-L模型取得了高達88.80%的5折交叉驗證平均準確率。
關鍵詞: 射線無損檢測; 焊縫缺陷分類; 卷積神經網絡; 交叉驗證
中圖分類號:TP181? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2023)09-151-04
Weld defect classification method based on AlexNet
Jin Haikun1, Cheng Xiaoying1, Liao Xiaoping2
(1. School of Mechanical Engineering, Zhejiang Sci-tech University, Hangzhou, Zhejiang 310018, China; 2. Zhejiang Deli Equipment CO, Ltd)
Abstract: As a practical non-destructive testing (NDT) method, X-ray testing has been widely applied in the detection of weld defects in pressure vessels. Automatic weld defect recognition technology based on X-ray film has also made great progress with the development of AI. In this research, the weld defect is cut into small pixel patches as the input of neural network. The original AlexNet is improved by adding BN layer, and the LeakyReLU layer with optimal α value replaces the original ReLU layer. The final AlexNet-BN-L model achieves the highest 5-fold cross validation average accuracy rate of 88.80%.
Key words: radiographic non-destructive testing; classification of weld defects; convolutional neural network; cross validation
0 引言
焊接技術廣泛應用于機械、機械電子、化學化工、機器人和航空航天等領域,焊接技術對現代化工壓力容器生產有著極其重要的作用。但是在焊接過程中,焊接處難免會產生缺陷。此時,檢測焊縫的缺陷顯得尤為重要。壓力容器焊縫的缺陷檢測主要分為滲透檢測、磁粉檢測、超聲波檢測和射線檢測四種方法[1]。其中射線檢測因為可以通過射線將焊縫內外狀況映射在X光膠片上,使得射線檢測成為所有焊縫檢測方式中最重要的檢測。而后要靠專業(yè)的評片人員目視拍攝所得的X光底片對焊縫質量做出評估。由于人的評片過程是主觀的,而且人眼由于疲勞等問題很可能漏評、錯評焊縫缺陷,因而不能充分排除安全隱患。所以開發(fā)一個自動識別焊縫缺陷的算法非常重要。
隨著圖像識別、機器學習和深度學習的發(fā)展,卷積神經網絡(CNN)被應用于圖像分類領域,獲得了很大成功,并且掀起了深度學習的熱潮。劉涵和郭潤元采用一種改進的聚類算法,將焊縫缺陷像素塊提取出來作為CNN的輸入[2]。侯文慧提出了一種深度卷積神經網絡(DCNN)模型,更側重于網絡深度和不同的重采樣方法對不平衡焊縫缺陷數據集的影響[3]。之后,姜洪泉根據焊縫缺陷圖像的特征改進了卷積神經網絡的池化層,提出了一種利用ReliefF算法增強CNN特征選擇能力的方法[4]。
本文在之前研究的基礎上先將焊縫裁剪為像素小塊作為神經網絡訓練的數據集,然后通過兩種方法來改進傳統的AlexNet。首先是在AlexNet卷積層和ReLU激活層中添加批量歸一化(BN)層,其次將ReLU激活層改進為LeakyReLU層,最終采取5折交叉驗證驗證了改進模型的有效性,同時選取了LeakyReLU層的最優(yōu)α值。
1 焊縫缺陷及其數據集
焊縫缺陷按照行業(yè)標準一般分為五類,分別是為裂紋、未熔合、未焊透、條形缺陷和圓形缺陷。其中裂紋類缺陷包含裂紋、未熔合和未焊透,這是不允許存在的致命缺陷。而非裂紋類則是依據缺陷長寬比將氣孔、夾渣和夾鎢等缺陷進行分類。長寬比大于等于3的判定為條形缺陷,小于3的判定為圓形缺陷,此類條形和圓形缺陷需要評片工作人員對焊縫質量進行評級,而后確認焊縫是否合格。
我國無損檢測行業(yè)為了方便對焊縫進行評級,按照其對工件的危害程度將裂紋、未熔合、未焊透、條形缺陷和圓形缺陷這五類分別用字母A、B、C、D、E代指,本文也將沿用分類形式,如圖1,其中N代表無缺陷。
本文的數據集源自浙江德力裝備有限公司的X射線膠片和德國的公共數據集GDXray[5],經過裁剪后,每張數據都是32[×]32像素的三通道RGB圖。在此基礎上,考慮到未熔合和未焊透全都屬于裂紋類缺陷,并且其形狀相似,我們將其統一分為BC類缺陷。條形缺陷和圓形缺陷都為非裂紋缺陷,某種意義上是允許存在的,況且其形狀也較為相近,我們也將其統一分為DE類。最終數據集包含A、BC、DE和N類各480張。
2 AlexNet神經網絡概況
2.1 網絡主要構成
⑴ 卷積層
卷積層(Conv)是卷積神經網絡必不可少的組成部分,其輸入[x]與一些可訓練的多維卷積核[fk]做卷積,然后將所得結果與偏差[bk]相加。假設有[K]個卷積核,則該層的第[k]個輸出可以用如下等式表示:
[yk(i,j)=c=1Cfck*xc(i,j)+bk] ⑴
其中,大寫字母C表示輸入的總通道數,[xc(i,j)]表示輸入的第c個通道中的第[i]行和第[j]列中的區(qū)域。
⑵ 激活層
激活層又稱修正線性單元,其作用在于增加了網絡的可學習度,讓網絡內部結構變得多元化。AlexNet中用的所有激活函數都是ReLU函數,其公式如下:
[yk(i,j)=xk(i,j),? xk(i,j)≥00,? xk(i,j)<0] ⑵
函數形狀如圖2。
⑶ 池化層
池化層用來減小特征矩陣的大小,如果不采取池化,在訓練過程中就會出現學習參數過大的問題。本文選取的池化都是最大值池化(MaxPooing),公式如下:
[ykI,J=max (xk(I+i-1,J+j-1))]? ⑶
其中,I和J表示輸出后的第[i]行和第[j]列。
⑷ 線性層
線性層又稱全連接層(FC),主要目的就是將之前卷積留下的多維數組鋪平成一維數據,起到一個降低數據維度的作用。
2.2 AlexNet架構
AlexNet首次成功使用ReLU作為CNN的激活函數,并將曾經廣泛使用的平均池化改為最大值池化[6]??紤]到AlexNet原文網絡的輸入為224[×]224[×]3的三通道圖片,而本文使用的數據集形狀卻為32[×]32[×]3,所以本文將原文的些許參數做了修改,但是整體架構依舊是AlexNet的網絡架構,如圖3。
網絡共有11層,其中MaxPooling層核大小都是2,步長也都是2。焊縫缺陷數據首先會進入一個卷積層(16個核大小為5的卷積核,步長是1,padding值是2),而后經過ReLU激活函數后通過最大池化層尺寸減半。之后再通過一個卷積層(32個核大小為5的卷積核,步長是1,padding值是2)、ReLU激活函數層和池化層。接下來以此類推,通過三個卷積層(卷積核大小都為3,步長和padding都為1,卷積核個數分別是48、48、64)后進入池化層尺寸減半;最后通過三層FC線性層,最后完成缺陷4分類。
3 AlexNet神經網絡改進方法
本文對AlexNet的改進方法主要分為兩步,如圖4。第一步是在卷積層和ReLU層之間加入批量歸一化BN層,網絡簡稱AlexNet-BN。第二步則是在此基礎上將網絡的ReLU層改進為LeakyReLU層,網絡簡稱AlexNet-BN-L。
⑴ 批量歸一化層
批量歸一化(BN)層作用在于加快網絡的訓練和防止過擬合。BN層在歸一化輸入的每個通道后對其進行移動和縮放,加強了卷積的特征提取,具體公式如下:
[yk(i,j)=γkxk(i,j)-μBVarσ2B+ε+βk]? ⑷
其中,[μB]、[σ2B]分別表示此批量上的均值和方差,[γk]和[βk]表示訓練期間的縮放和位移系數。
⑵ LeakyReLU層
LeakyReLU層相比于ReLU層,其輸入[xk(i,j)]在小于0時,并不恒等于0。公式如下,其中α表示函數斜率。
[yk(i,j)=xk(i,j),? xk(i,j)≥0αxk(i,j),xk(i,j)<0] ⑸
上文說的ReLU激活函數將小于0的部分丟棄的主要原因是想讓訓練出來的網絡不是簡單的[Wx+b]形式,而是希望得到更復雜的非線性網絡結構,并且ReLU激活函數可以有效的緩解模型在訓練過程中梯度消失的問題。而LeakyReLU激活函數在保留了ReLU激活函數優(yōu)點的同時,也適當保留了[xk(i,j)]在小于0時的參數,可以在訓練過程中學習到更多的參數,函數形狀如圖5所示。
4 模型性能指標和實驗
4.1 模型性能指標
準確率Acc是指分類正確的焊縫缺陷數量占總缺陷數量的比值。查準率P是指正確的預測為某類焊縫缺陷的樣本數除以預測為這一類缺陷的樣本總數。查全率R是指正確的預測為某類缺陷數除以這一類的實際缺陷數量。而F1則是綜合了查準率P和查全率R,公式如下:
[F1=2×P×RP+R]? ⑹
4.2 實驗
為了評估AlexNet和AlexNet-BN模型的分類性能,同時確定AlexNet-BN-L模型中LeakyReLU激活函數斜率α的較優(yōu)值,我們采用的方法為五折交叉驗證。我們將數據集平均分成五折,其中四折作為訓練集,一折用來作為測試集。其中訓練集經過左右翻轉和上下翻轉進行數據增強,共4608張,測試集沒有進行數據增強,共384張。如此循環(huán)五次得到了五次測試結果。
⑴ AlexNet與AlexNet-BN分類性能比較
我們首先比較AlexNet與AlexNet-BN兩個模型,其五折交叉驗證結果如表1。其中[P=i=1nPin],[R=i=1nRin]和[F1=i=1nF1in](n=4)分別表示A、BC、DE和N類4類樣本的綜合平均查準率,綜合平均查全率和綜合平均F1值。
由表1可知,AlexNet-BN在焊縫缺陷分類這一方面的準確率和平均F1值在每一折訓練中都比傳統的AlexNet和高,五折交叉驗證平均準確率相比之下高出3.09%,五折交叉驗證平均F1值高出3.13%。由此可見,添加了BN層的AlexNet-BN網絡性能得到了提升。
⑵ AlexNet-BN-L模型參數α的確定
在AlexNet-BN模型的基礎上,我們將其ReLU層改進成LeakyReLU層獲得了AlexNet-BN-L模型,同時為了選出不同α下較優(yōu)的模型,我們選取了四個不同的α值進行比較,分別是α=0.02,α=0.06,α=0.10和α=0.14,如圖6。
當α取值為0.1時,AlexNet-BN-L模型取得了最高的五折交叉驗證平均準確率和平均F1值,分別為88.80%和88.76%,相比于AlexNet-BN模型,其提高了1.13%和1.06%,取得了所有模型的最好識別率。
5 結論
在焊縫缺陷分類問題中,我們首先將焊縫缺陷裁剪成小塊作為神經網絡的輸入,其次在傳統的AlexNet基礎上通過添加BN層改進了原網絡,而后又選取了最優(yōu)α值的LeakyReLU層代替了原有的ReLU層,使最終的AlexNet-BN-L模型取得了最高的五折交叉驗證平均準確率和平均F1值,分別為88.80%和88.76%,相比于AlexNet分別提高了4.22%和4.19%。
AlexNet-BN-L模型取得好的效果歸結于兩點,第一點是BN層在防止過擬合的同時還加強了卷積的特征提取,第二點是LeakyReLU層在保持網絡非線性的同時適當地保留了ReLU層未獲取到的特征信息。這在焊縫缺陷分類識別的自動化進程中提供了一個較為不錯的思路。
在以后的工作中,我們將把工作重心放在焊縫缺陷數據集的增強方面,以便獲得更大量的數據集,從而獲得更高的準確率。
參考文獻(References):
[1] 沈功田,張萬嶺.壓力容器無損檢測技術綜述[J]. 無損檢測,
2004,26(1):37-40.
[2] 劉涵,郭潤元.基于X射線圖像和卷積神經網絡的石油鋼管
焊縫缺陷檢測與識別[J].儀器儀表學報,2018,39(4):10.
[3] HOU W, WEI Y, JIN Y, et al. Deep features based on a
DCNN model for classifying imbalanced weld flaw types[J].Measurement,2018,131.
[4] JIANG H, HU Q, ZHI Z, et al. Convolution neural network
model with improved pooling strategy and feature selection for weld defect recognition[J]. Welding in the World, Le Soudage Dans Le Monde,2020,65(1).
[5] MERY D, RIFFO V, ZSCHERPEL U, et al. GDXray: The
Database of X-ray Images for Nondestructive Testing[J]. Journal of Nondestructive Evaluation,2015,34(4).
[6] LONG J, SHELHAMER E, DARRELL T. Fully Convolu-
tional Networks for Semantic Segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2015,39(4):640-51.