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