王賁武,黃 峰
(中國計量大學 計量測試工程學院,浙江 杭州 310018)
工業(yè)生產(chǎn)過程中,工件焊接技術應用廣泛。焊接點的質量關乎工程的質量,缺焊、少焊、偏焊、縮孔、裂紋等問題極易破壞工件承載能力與性能,因此對焊接點質量好壞的檢測尤為重要,而依據(jù)圖像表面的分類檢測技術是重要的手段之一。
隨著工業(yè)制造業(yè)的智能化發(fā)展,機器學習和計算機視覺逐漸應用于工業(yè)視覺檢測中,并由傳統(tǒng)機器視覺方法向深度學習過渡[1-4]。在傳統(tǒng)的機器學習檢測方法中,一般以手動設計特征提取算子提取的特征參數(shù)結合支持向量機[5](Support Vector Machine, SVM)方法對焊接質量進行評價。段瑞霞[6]設計了焊縫質量在線監(jiān)測系統(tǒng),利用特征的幾何參數(shù)差異對電弧和熔池特征等參數(shù)使用SVM方法解決不同焊接質量數(shù)據(jù)分類問題;韋思楚[7]通過遺傳算法對SVM焊點檢測模型的參數(shù)進行優(yōu)化選擇,結合K-Means算法和合成少數(shù)類過采樣技術對不平衡數(shù)據(jù)進行矯正,完成了質量的二分類評判。深度學習領域中,關于焊點的檢測一般集中在電子元件表面組裝技術(Surface Mounted Technology, SMT)領域。馬立勇等[8]提出基于極限學習機的焊點質量檢測技術方法,但該方法在預處理上比較繁瑣,可能會忽略重要的原始圖像信息;鄧璘[9]基于改進的MobileNet-SSD類別缺陷檢測算法,結合裝配位姿缺陷檢測算法提取位姿特征構建模型,設計了PCB表面裝配缺陷檢測系統(tǒng)。雖然這類焊點與制造焊接方法在缺陷成因和類型上有相似之處,但不能等同。生產(chǎn)制造中,將深度學習與制造焊接的質量檢測結合較少,因此本文針對卷積神經(jīng)網(wǎng)絡[10](Convolutional Neural Network, CNN)方法在氬弧焊焊接質量檢測上的應用問題進行研究。
為了解決傳統(tǒng)的焊點檢測方法中,所需特征維度較高、決策邊界復雜且計算量大等問題,本文通過改進AlexNet網(wǎng)絡結構,引入InceptionV1模塊,以應對焊點圖像的多尺度特征變換,同時在網(wǎng)絡內部實行跨層連接的方式,將數(shù)據(jù)的淺層特征與深層特征在全連接層進行融合,實現(xiàn)對焊點圖像的高精度分類,將數(shù)據(jù)歸一化方式改為批歸一化(Batch Normalization, BN)方式。通過與其他經(jīng)典CNN模型和傳統(tǒng)SVM方法進行比較,證明了本文所提方法在氬弧焊焊點數(shù)據(jù)集上具有更優(yōu)異的表現(xiàn)。
氬弧焊是以氬氣作為焊接保護氣的焊接技術,主要通過高電流將焊材在被焊基材上融化形成熔池,來完成焊材和被焊金屬冶金結合[11]。一般焊接缺陷包括焊縫缺陷、氣孔、燒穿、咬邊和夾塢等多種類型,本研究主要針對氬弧焊焊點及其周圍區(qū)域(焊盤)進行質量評價,合格的焊點具有焊盤完整度高、焊點圓潤飽滿且有金屬光澤等特點,不良焊點一般是由焊偏、空焊、氣孔以及焊盤損壞所致。多個影響因素使焊點缺陷表現(xiàn)多樣化,人工鑒定難度較大且效率低。
本研究將鑒定標準進行統(tǒng)一:采用的數(shù)據(jù)集為CMOS型相機采集的氬弧焊焊點圖像,由于焊點中心與相機相對位置較為固定,將整個焊盤區(qū)域進行保留,對焊點是否合格進行判斷。根據(jù)焊點是否合格及不良類型,將總數(shù)據(jù)集分為5類,類別及其數(shù)據(jù)量分別為:合格(584張)、焊偏(349張)、未焊透(467張)、氣孔(268張)和焊盤損壞(534張)。圖像原始尺寸為500×500,如圖1所示。
為均衡各種焊點類型的進一步處理,通過鏡像、旋轉和色彩抖動等多種方式對焊點圖像進行數(shù)據(jù)增強,并按照3∶1的比例劃分為數(shù)據(jù)集和訓練集,數(shù)據(jù)集具體信息如表1所示。
表1 焊點數(shù)據(jù)集劃分
在二分類問題中,分類算法對測試集的預測共分為4種:正樣本被預測為正類(TP)、正樣本被預測為負類(FN)、負樣本被預測為正類(FP)、負樣本被預測為負類(TN)。在數(shù)據(jù)科學和機器學習領域,通常采用混淆矩陣將測試數(shù)據(jù)的真實類別和預測類別匯總,對分類模型預測結果進行分析。以二分類任務為例,混淆矩陣結構如表2所示。
表2 二分類混淆矩陣
同時,以準確率(A)、精確率(P)、召回率(R)和綜合指標F1評價模型的分類性能,其中F1為精確率和召回率的平衡性指標,該值越大,二者越協(xié)調,各指標值越大,模型性能越好。
(1)
多分類問題可以看作是多個二分類問題的組合。設分類類別為m,當統(tǒng)計第i個類別簇的指標時,將其余m-1個類別視為一個簇,通過兩個簇的分類器投票結果構建混淆矩陣,計算屬于該i類的各指標,通過m次混淆矩陣的構建,可以得出每個類別的評價指標和模型的總體評價。設本研究中多類別混淆矩陣如圖2所示,其中aij表示真實標簽為i的樣本被預測為j類的數(shù)目。
由測試集數(shù)量和多分類結果矩陣,可得第i類的多分類混淆矩陣參數(shù):
TPi=aij,i=j,
TNi=750-TPi-FPi-FNi,
i,j∈{0,1,2,3,4}。
(2)
SVM是深度學習興起之前廣泛使用的一種基于統(tǒng)計學習理論的分類模型,常用于小樣本、高維以及非線性分類問題。其核心思想是以一最優(yōu)超平面分隔兩類不同數(shù)據(jù),使兩類樣本距離超平面最近的點到超平面的距離最大;在解決非線性問題中,首先將數(shù)據(jù)映射到高維空間進行超平面構建,完成線性分類過程。在焊點的多分類問題中,手動設計算子提取每類特征,訓練SVM分類器進行評價和檢測。
2.1.1 焊點特征提取
(3)
幾何紋理特征包括焊盤周長pi,j、焊點面積si,j以及焊點形心坐標與焊盤中心的距離li,j:
Ti,j=(pi,j,si,j,li,j)。
(4)
式中:i∈(1,n)表示第i個樣本圖像,n為最大樣本數(shù);j={0,1,2,3,4}表示樣本類別。以一個合格焊點為例,其幾何紋理特征提取如圖3所示。
針對樣本集M={xi,yi},xi是標簽為yi的輸入樣本。將已提取的12維樣本特征參數(shù)進行歸一化處理,在高維空間作非線性映射,并引入高斯核函數(shù)K(xi,x),通過訓練樣本集獲得最優(yōu)超平面,則SVM分類決策函數(shù):
(5)
2.1.2 SVM實驗結果
為驗證SVM方法實現(xiàn)焊點多分類的應用性能,采用焊點圖像數(shù)據(jù)集,設置超參數(shù)進行實驗。數(shù)據(jù)集劃分與表2一致,SVM中設置懲罰因子C=1,高斯核函數(shù)帶寬σ=1。實驗平臺為Ubuntu 16.04,采用Python 2.7開發(fā)語言,并借助Sklearn庫中集成的SVM包完成。實驗結果如表3所示。
表3 SVM方法結果
由KRIZHEVSKY等[12]提出的AlexNet網(wǎng)絡引發(fā)了深度神經(jīng)網(wǎng)絡圖像處理領域的熱潮。該網(wǎng)絡主要由5個卷積層和3個全連接層構成,使用ReLu作為激活函數(shù),多GPU并行計算、局部響應歸一化、重疊池化和Dropout層等多種創(chuàng)新方法協(xié)調網(wǎng)絡性能,成功訓練了約120萬個1 000種類別圖像,以6×107個參數(shù)實現(xiàn)了ILSVRC2012數(shù)據(jù)集17%的top-5錯誤率。繼AlexNet之后,各種深度神經(jīng)網(wǎng)絡結構不斷被提出。GoogLeNet網(wǎng)絡通過引入全局池化和Inception模塊,將稀疏矩陣聚類為密集子矩陣,以提升計算性能、優(yōu)化參數(shù)。該網(wǎng)絡共22層,并以3個loss輸出對網(wǎng)絡深度引起的梯度問題進行調節(jié)。另一種以深度為代表的VggNet-16,也展示了網(wǎng)絡深度是算法優(yōu)良性能的關鍵。
本文主要基于AlexNet網(wǎng)絡進行改進,在氬弧焊焊點的圖像識別上展開研究,以GoogLeNet和VggNet-16兩種深度網(wǎng)絡在焊點分類上的性能作為對照,進行相關分析。
2.2.1 en-AlexNet網(wǎng)絡
本文提出的增強AlexNet(enhanced AlexNet, en-AlexNet)網(wǎng)絡,是建立在原始AlexNet網(wǎng)絡結構基礎上的一種CNN,由輸入層、4個卷積層(后接池化層)、1個Inception模塊、跨連結構、2個全連接層(接softmax損失函數(shù))以及輸出層組成,如圖4所示。使用BN[13]代替局部響應歸一化(Local Response Normalization, LRN),將第2個池化層跨連到全連接層,與主干網(wǎng)絡提取的焊點深層特征進行融合,最終接入分類器。
表4列出了en-AlexNet網(wǎng)絡具體參數(shù),包括每網(wǎng)絡層的類型(Type)、卷積核尺寸(Kernel)、移動步長(Stride)和輸出大小(Output Size)。
表4 en-AlexNet各網(wǎng)絡層參數(shù)
AlexNet網(wǎng)絡在進行卷積特征提取后,使用LRN進行歸一化,對被激活神經(jīng)元相鄰的神經(jīng)元進行側抑制,以實現(xiàn)局部抑制,提升模型泛化能力。但使用BN能夠有效加速模型收斂,防止批次訓練時單個樣本被頻繁選中,并防止“梯度彌散”,同時舍棄dropout層和L2正則項參數(shù)[13]。BN對于神經(jīng)元激活值的變換如式5所示。
(5)
本文構建的en-AlexNet網(wǎng)絡中,在全連接層前引入GoogLeNet網(wǎng)絡中典型的Inception-V1模塊進行焊點圖像的深層特征提取。Inception-V1模塊結構如圖5所示,通過4支不同大小的卷積核并聯(lián):第一支對上層輸入做1×1卷積處理;第二支先對上層做1×1卷積,后接3×3卷積;第三分支先對上層做1×1卷積,后接5×5卷積,連續(xù)的特征變換,增廣了特征表達維度;第四支為3×3最大池化接入1×1卷積,實現(xiàn)感知信息的壓縮,最終4支匯聚濾波連接層。Inception模塊所在層數(shù)越高,通道數(shù)越多,對模型效率提升度越大[14]。
傳統(tǒng)CNN通過由淺入深的特征提取,經(jīng)過分類器進行特征處理,輸出不同條件下的概率。這一過程隨著網(wǎng)絡深度的加深,不能有效地將低層次與高層次特征融合,構成特征分類器。本文引入由張婷等[15]借鑒DeepId思想[16]提出的跨層連接思想,將第2個pooling層跨層連接到全連接層,進行特征融合。總的來說,網(wǎng)絡首先對128×128的輸入圖像在h1~h4進行淺層特征提取,再重復經(jīng)過2輪卷積運算和局部鄰域池化交替作用(h5~h8),輸入Inception模塊(h9)進行多尺度和更深層次的特征提取,經(jīng)過池化層(h10)后與池化層(h4)輸出的特征在全連接層(h11)進行融合并分類(該層節(jié)點數(shù)為h4和h10節(jié)點數(shù)之和),輸出層包含類別數(shù)為5的五個節(jié)點,最終輸出原輸入在每一類標簽上的float型概率值。其中選擇最大池化進行池化操作,有利于保留圖像紋理特征。
2.2.2 en-AlexNet網(wǎng)絡學習過程
i={3,5,7},
1≤j≤j(i)。
(6)
(7)
損失函數(shù)為:
P(y=c|x0,w)],
1{值為真的表達式}=1,1{值為假的表達式}=0。
(8)
其中:Y(c)為計算輸入數(shù)據(jù)分類類別為c時的概率;wj為權值參數(shù)。
i={2,4,6,8},
1≤j≤j(i)。
(9)
i={3,5,7},
1≤j≤j(i)。
(10)
本文構建的en-AlexNet網(wǎng)絡利用帶動量的梯度下降算法[19]來更新權重和偏置,已知訓練集D,動量為momentum,學習率lr,具體算法流程如圖6所示。
2.2.3 en-AlexNet實驗結果
本文實驗平臺為Ubuntu 16.04操作系統(tǒng),深度學習Caffe框架,采用Python 2.7接口語言,GPU為顯存11 G的GTX2080Ti,處理器為Intel core i7-7820X CPU@3.60 GHz×16,內存64 G。設置初始學習率為0.001,使用“step”方式衰減,使用多分類交叉熵損失函數(shù),最大迭代數(shù)(10 000次)以及參數(shù)更新方法(momentum+SGD)等進行訓練。將結果與SVM比較,如圖7所示。
由比較結果可知,本文構建的en-AlexNet網(wǎng)絡與SVM方法相比,在分類的平均準確率、平均精確率、平均召回率和平均綜合指標F1值上有明顯的提升,尤其是召回率的差異,說明en-AlexNet網(wǎng)絡類別間全局分類器的分類準確率高,對于焊點圖像分類效果突出,模型表達力強。
2.2.4 跨連層影響分析
跨連方式的差異對網(wǎng)絡表現(xiàn)具有一定的影響,本文引入跨連結構構建的en-AlexNet網(wǎng)絡,其目的是使特征提取過程中的深層特征和淺層特征相互融合,因此確定跨連終端為全連接層不變。現(xiàn)針對網(wǎng)絡前段跨連初端進行可靠性分析,將跨連初端分別改為h2和h6,在相同條件下執(zhí)行訓練過程,與en-AlexNet網(wǎng)絡的測試結果進行比較,結果如表5所示。
表5 不同跨連方式下網(wǎng)絡在焊點數(shù)據(jù)集上的測試結果
由測試結果可以看出,h4隱含層作為跨連初端有一定的優(yōu)勢,相對于h2和h6作為跨連初端,平均分類準確度分別提升了3.62%和2.72%,在其他評價指標上也存在明顯的優(yōu)勢。為了更加直觀地比較網(wǎng)絡淺層提取的特征,提取h2、h4和h6層的特征圖如圖8所示。各層局部放大4張,可以看到:h2層輸出的特征圖像保留了明顯的邊緣信息,與原輸入圖像信息重疊度高;h3層輸出特征較前一層抽象化,但其仍保留一些具體的輪廓邊緣;h4層輸出特征已經(jīng)極具抽象化。因此,可以得出結論:與去掉跨連結構的en-AlexNet相比,跨連網(wǎng)絡分類準確度有明顯的提升,但h2層輸出的淺層特征在與跨連末端深度特征進行融合時,過分突出具體化的特征,對分類結果貢獻不夠高;h6層輸出的淺層特征過于抽象化,在特征融合時會產(chǎn)生參數(shù)冗余的缺點,對分類準確度提升作用不如h4層,因此本文選擇h4層作為跨連初端,是最優(yōu)解。
通過實驗結果的比較和訓練過程可視化,驗證了en-AlexNet在圖像分類上比常規(guī)的SVM方法分類準確度更高,且無需手動提取圖像特征??邕B結構的靈敏度分析和中間過程的可視化,驗證了跨連結構的可靠性。
為驗證構建的en-AlexNet網(wǎng)絡在焊點檢測分類方面的效果,本文對AlexNet網(wǎng)絡、以Inception模塊為特點的GoogLeNet網(wǎng)絡以及以深度為代表的VggNet-16網(wǎng)絡在同一氬弧焊數(shù)據(jù)集上分別進行實驗。在模型訓練過程中采用控制變量的方法,設置初始學習率為0.001,使用“step”方式衰減,不同網(wǎng)絡中使用相同的損失函數(shù)、優(yōu)化函數(shù)、最大迭代次數(shù)(10 000次)以及參數(shù)更新方法(momentum+SGD),實驗結果如表6所示。
表6 不同網(wǎng)絡的焊點檢測結果
由表6列出的不同方法下焊點數(shù)據(jù)的測試結果可知,en-AlexNet不僅在類別平均識別準確率方面有較大的優(yōu)勢,在平均識別精確率、召回率以及綜合評價指標F1值均是最優(yōu)的。在經(jīng)典的CNN方法中,VggNet-16高度繼承了AlexNet框架,并在深度上進行拓展,更深度的GoogLeNet的分類效果顯示,網(wǎng)絡深度的增加并未使性能保持增長,但GoogLeNet中的稀疏連接和Inception模塊,能夠減少參數(shù)冗余和精簡模型。另外,使用的CNN方法在焊點數(shù)據(jù)集上的各個評價指標優(yōu)于傳統(tǒng)的SVM方法,表現(xiàn)出CNN在自主特征提取方面的有效性。進一步分析en-AlexNet網(wǎng)絡結構的特點,將其與不同CNN框架的訓練損失和準確率隨迭代次數(shù)的變化過程進行可視化,如圖9所示。
結合焊點圖像的測試結果和訓練迭代過程,由圖9可知,en-AlexNet網(wǎng)絡與AlexNet網(wǎng)絡相比有明顯的性能提升,分別體現(xiàn)在模型的收斂速度、識別準確率以及l(fā)oss曲線的震蕩上,en-AlexNet網(wǎng)絡保留了原始的AlexNet網(wǎng)絡的大致結構,即保留了全局化特征提取的遞進方式,引進的跨連接和Inception模塊,將焊點圖像的平均分類召回率由76.00%提升到95.33%。與以Inception模塊為核心的GoogLeNet相比,訓練前期en-AlexNet網(wǎng)絡收斂更為迅速穩(wěn)定,loss曲線震蕩幅度更小,多尺度特征的提取并聚合減少在弱關聯(lián)特征上的計算,表明本文網(wǎng)絡更注重特征的關聯(lián)性。與深層次的VggNet-16網(wǎng)絡進行比較,二者在收斂速度上相近,測試識別準確率上限趨近,但VggNet-16的參數(shù)量龐大復雜,易提取焊點圖像冗余特征,loss曲線不穩(wěn)定。因此,在多分類的焊點數(shù)據(jù)集上,更深度的網(wǎng)絡特征提取并沒有帶來更好的效果,而采取跨連結構融合的深-淺層特征,在判別輸入數(shù)據(jù)時更具有代表性,且模型參數(shù)相對少,測試速度快。
本文針對經(jīng)典的AlexNet網(wǎng)絡在氬弧焊焊點數(shù)據(jù)集上進行實驗,提出了引入跨連結構和Inception模塊的en-AlexNet網(wǎng)絡,同時使用BN進行數(shù)據(jù)歸一化處理,并使用帶動量的梯度下降算法進行優(yōu)化,加速網(wǎng)絡收斂和避免梯度問題。通過在焊點數(shù)據(jù)集上的實驗,跨連不同網(wǎng)絡位置結構,觀察淺層特征所在隱含層的圖像特征提取特點,有效驗證深層和淺層特征融合的跨連結構,使網(wǎng)絡的各個隱含層的特征處理更清晰,模型更具有說服力,最終使en-AlexNet比傳統(tǒng)的SVM算法的平均分類準確度高9.43%,且避免了手動設計特征提取算子的復雜性。在不同的CNN對比中,en-AlexNet比原始的AlexNet網(wǎng)絡平均分類準確度上升了7.68%,測試速度和參數(shù)量優(yōu)化效果明顯;與更深層的GoogLeNet和VggNet-16比較,驗證了Inception模塊在特定深度方面的有效性。實驗結果充分證明本文方法能夠有效融合網(wǎng)絡深—淺層特征,提高圖像分類的識別準確率和召回率。
在今后的研究工作中,將考慮在焊點的異常檢測中應用分割方法,逐像素判別焊點質量,并以掩碼方式標識。