翁佩純,李 蓉,張遠海
(1 電子科技大學中山學院 計算機學院,廣東 中山 528400;2 中山火炬職業(yè)技術學院 光電信息學院,廣東 中山 528403)
稱重傳感器是電子秤的核心部件,其制造過程中應變片的焊接質量直接影響其性能的好壞。應變片焊接缺陷包含多錫、少錫、掉線、短路等,由于應變片尺寸小,僅靠人工檢測容易誤判,且效率低,與生產流水線的速度不匹配,因此監(jiān)測應變片的焊點焊接的質量對提高傳感器產品質量至關重要。
傳統的焊點缺陷檢測方法主要有X 射線檢測、紅外激光檢測、電氣檢測等,存在成本高、效率低的缺點[1]。隨著機器學習技術和數字圖像處理技術的發(fā)展,有學者提出了一些方法的改進,先通過分析提取圖像特征、再使用如支持向量機分類、BP(Back Propagation)算法、K-近鄰法等方法檢測缺陷。這些方法對檢測焊點質量有一定的效果,但由于需要通過人工分析缺陷,提取形態(tài)特征,受限于先驗知識,其穩(wěn)定性較差。
在焊點缺陷檢測中,深度學習的應用比較少。一方面,雖然深度神經網絡相關方法優(yōu)于傳統方法,但其準確率是需要足夠多的缺陷樣本支撐,而采集缺陷樣本和人工標注的成本過高;另一方面,部分缺陷樣本少之又少,導致缺陷樣本分布不平衡,影響訓練結果。針對上述問題,本文通過數據增強處理,構造應變片缺陷樣本數據集,以ResNet50 為基礎模型構建焊接缺陷分類模型,對焊點區(qū)域圖像自動提取特征,實現對焊接缺陷的分類識別。
焊接的主要缺陷包括少焊、掉線、短路等。首先針對待檢測的稱重傳感器圖像使用中值濾波算法進行平滑處理,再采用基于邊緣方向梯度的模板匹配算法,快速定位到應變片位置和焊盤位置,從而分割出有效的焊盤區(qū)域圖像。各類焊接缺陷的焊點區(qū)域圖像如圖1 所示。
圖1 各類缺陷的焊點區(qū)域圖像Fig.1 Weld spot area image of defects
需要注意的是,“掉線”缺陷的類型比較特殊。由于生產工藝的問題,“掉線”并不意味著“漏焊”或“少焊”,如:掉線缺陷圖片中,焊點的情況分別是焊錫正常、少焊、焊錫脫落、焊盤脫落等,如圖2 所示。掉線的圖片中,焊點的情況可能是正常、少焊、焊錫脫落、焊盤脫落等。因此,對應變片焊接缺陷分類的問題,實際是一個多標簽多分類問題,本文提出一種焊接缺陷分類模型,解決焊點和焊線的缺陷分類識別問題。
為了有效識別焊接缺陷的類型,本文基于ResNet 網絡模型,提出一種焊接缺陷分類模型,解決焊點和焊線的缺陷分類識別問題。該模型主要包括3 個模塊,用于提取圖像特征的主干網絡、焊點缺陷分類子網絡、焊線缺陷分類子網絡。具體結構如圖3 所示。
主干網絡使用Resnet-50 網絡模型,包含49 個卷積層。conv1 主要對輸入進行卷積、正則化、最大池化的計算,conv2、conv3、conv4、conv5 都包含了殘差塊,每個殘差塊包含3 層卷積,最后經過平均池化層將其轉化成一個特征向量。
焊點缺陷分類子網絡將主干網絡中提取的特征向量作為輸入,分別經過自適應最大池化層和自適應平均池化層,得到兩個一維的張量。再對這兩個張量進行拼接融合,經過全連接層和Softmax 激活函數,計算并輸出每個類別的概率,選取概率最大的類別作為分類結果,從而判斷該圖像屬于哪種焊點缺陷類型。焊點缺陷分類子網絡在訓練過程中,使用多分類交叉熵作為損失函數,計算每個樣本在各個標簽的損失,公式(1):
其中,N表示種類數量;yi表示樣本每個標簽的真實值;pi表示經Softmax 函數輸出的類別概率值。
焊線缺陷分類子網絡將主干網絡中提取的特征向量,經過1×1 卷積層,再經全連接層,最后使用Sigmoid 激活函數,計算并輸出掉線的概率,選取概率大于0.5 的類別作為分類結果,從而判斷圖像中是否包含掉線缺陷。由于焊線缺陷屬于二分類問題,使用二分類交叉熵作為損失函數,公式(2):
本文實驗的硬件環(huán)境:CPU 為8 核Intel Xeon W-2123,主頻為3.6 GHz,GPU 為NVIDIA GeForce GTX 1080 Ti,GPU 內存16 G。軟件環(huán)境:深度學習訓練框架采用Pytorch,開發(fā)語言為Python。
為充分評價模型性能,本文使用準確率(Accuracy)、精確率(Precision)、召回率(Recall)和(F1-score)作為評價指標,具體定義如式(3)~式(6):
其中,TP為真正類;FN為假負類;FP為假正類;TN為真負類。
深度卷積網絡的訓練需要足夠多的樣本數據集,而在實際生產過程中,缺陷樣本大約只占總數的10%~15%,部分缺陷類型更是少之又少,造成了樣本不平衡的現象。在部分缺陷類型樣本不足的情況下,本文采用旋轉、平移,水平鏡像、增加噪聲、顏色變換等方法進行了數據增強處理,建立焊接缺陷樣本數據集WDD(Welding Defect Dataset)。
經過數據增強后,短路、少焊兩種缺陷的圖片數量擴展到原來的4 倍。原始WDD 圖片由原來的5 477 張擴增到9 640 張,各種缺陷類型在數據增強前后的數量分布,見表1。本文將其中7 232 張用于訓練,2 408 張用于測試。
表1 各種缺陷類型數量分布表Tab.1 Quantity distribution of defect types
模型采用遷移學習的方法,使用ResNet-50 在ImageNet 上的預訓練模型參數權重作為訓練參數初始值,這些參數經過120 萬張圖像的訓練,能有效提取圖像的特征向量,具備了較強的泛化能力。模型訓練的學習率為0.001,權重衰減為0.005,優(yōu)化器選用系數為0.9 的沖量優(yōu)化器,batch_size 為32,訓練40 個epoch。
為對模型在數據增強前后的性能進行對比,將模型分別在數據增強前的WDD、數據增強后的WDD 上進行訓練,并在測試集上使用訓練好的模型進行缺陷分類,各類別的準確率、精確率、召回率和F1-score見表2。
表2 數據增強前后模型性能對比Tab.2 Comparison of model performance
由表2 可見,模型在數據增強前的分類能力,對于“焊點正?!?、“焊線正?!?、“掉線”這3 種樣本數量較為充足的類型,均有不俗的表現,其F1-score分別達到94.70%、95.5%、96.2%;而在“短路”和“少焊”這兩種樣本數量不足的類型上則效果較差,F1-score分別為89.9%和83.8%。模型在數據增強后對“短路”、“少焊”兩種類型的分類能力有所提高,F1-score達到97.3%和95.6%,比數據增強前分別提高了7.4%和11.8%,召回率達到了96.2%和94.7%,比數據增強前分別提高了6.3%和7.7%,說明使用數據增強后,模型對于這兩種原始樣本數量較少的缺陷類型,具有較好的泛化能力。總的來說,本文提出的模型對大多數缺陷類型的預測都具有較高的準確率和可靠度。
為了更直觀地展示本文所搭建的模型焊接缺陷分類的準確性,本文利用基于梯度的熱力圖可視化技術(Gradient weighted Class Activation Mapping,Grad-CAM),生成特征熱力圖,判斷模型最終提取到的預測特征圖是否關注焊點、焊線缺陷所在區(qū)域,防止過擬合的發(fā)生,可視化效果如圖4 所示。
圖4 Grad-CAM 可視化效果圖Fig.4 Grad cam visualization
從圖4 中可以看到,當模型預測到圖像存在缺陷類別時,更多地關注了缺陷的所在區(qū)域,說明本文搭建的焊接缺陷分類模型能有效地提取到缺陷所在區(qū)域的特征,具有較好的泛化能力。
本文針對稱重傳感器上應變片的焊接缺陷問題,以ResNet50 為基礎模型,構建一種焊接缺陷分類模型,實現對少焊、短路、掉線的缺陷分類識別。通過缺陷分析和數據增強處理,構建應變片缺陷樣本數據集WDD。實驗表明,模型在WDD 測試集上的分類準確率達97.4%,精確率達97.2%,召回率達96.2%,F1-score得分達96.7%。