許佳偉,楊 亮,郝思佳
(中海石油氣電集團有限責任公司,北京)
為保證質量以及安全性,工業界通過X 射線探傷手段檢測工件內部缺陷情況。以往采取的人工分析焊縫圖像的方式受人為因素及外界條件的影響,效率低、不可靠、一致性差。通過計算機圖像處理技術,對X 射線缺陷檢測圖像進行分析、檢測和識別,可有效克服由于人為因素引起的對焊件缺陷的誤判和漏判等問題,使焊接質量評定更科學、客觀和規范。
近年來,基于X 射線圖像的焊縫缺陷檢測的問題一直受到國內外研究者的關注,目前的方法主要分為圖像處理和神經網絡兩大類型。AbdehakMahmoudi 提出通過快速分割算法來提取缺陷區域[1],Jun Zeng 提出了基于Canny 邊緣提取的自適應算法[2],PingKuang提出了PCA 構建模板算法,在模板與圖像中獲得相似性高的ROI 區域[3],上述方法均通過濾波或閾值調整的方式來提取缺陷區域,但缺乏普適性,在實際應用中X 射線的焊縫圖像灰度值高、特征不明顯。殷鷹等人利用神經網絡的方式進行檢測,通過視覺掃描、區域差運算、焦點搜索后確定可疑區域,再通過深度學習網絡來提取特征識別[4]。Domingo Mery 將整圖切分成若干等寬高的圖片,利用深度神經網絡來提取特征最后進行分類[5]。深度學習的概念逐漸在圖像分類領域迅速發展。本研究借鑒計算機視覺領域的最新成果,建立焊縫X 射線圖像缺陷識別模型并驗證該模型的準確性。
焊縫典型缺陷主要包括圓形缺陷、條形夾渣、嚴重缺陷(未熔合、未焊透、裂紋)三大類。本研究設計的缺陷檢測算法旨在輸入膠片數字化圖像后基于計算機視覺的分割算法檢測出該焊縫圖像中每個缺陷的位置、大小與類型。通過分割算法檢測焊縫缺陷的位置與類型、測量焊縫大小,再通過焊縫圖像評定算法來獲取缺陷最密集的區域,計算評定結果,給出評定結論。
在確定使用基于計算機視覺的分割算法作為解決方案后,需要準備實驗數據。本研究采用的數據集包括數據集A、B、C 的樣本數量分別為190、150 和220,樣本數量總計560。
基于深度學習的物體檢測算法大致分為一步法檢測器(Weld-SSD)和二步法檢測器(Weld-RCNN)兩類。一步法檢測器在原圖上鋪設一系列錨點框,利用全卷積網絡,對這些錨點框進行一次分類和一次回歸,得到檢測結果。而二步法檢測器在原圖上鋪設一系列錨點框,先利用一個全卷積網絡對這些錨點框進行第一次分類和第一次回歸,得到候選區域。再利用一個網絡對候選區域進行第二次分類和第二次回歸,得到最終檢測結果。本研究基于上述兩種算法模型,進行算法優化設計。
1.2.1 Weld-SSD 算法優化設計
一 步 法 檢 測 器 則 有 YOLO、SSD、RetinaNet、CornerNet,其中SSD 是一步法檢測器的集大成者。由于在焊縫缺陷數據中,圓形缺陷占比最高,本算法模型主要研究焊縫圓形缺陷的識別。對于圓形缺陷,不同個體的大小變化較大,SSD 的先驗框選擇就顯得尤為重要。本研究采用的改進方式包括數據預處理與數據增強、用于檢測的特征圖選擇優化、先驗框設計、損失函數優化等。
1.2.2 Weld-RCNN 算法優化設計
相對于一步法檢測器,一步法一般勝在高效率,而二步法有更高的精度。代表性的二步法檢測器有Faster R-CNN、R-FCN、FPN、Cascade R-CNN。
考慮到焊縫X 射線圖像缺陷與背景的區分度不高,網絡訓練時的難例增多,正負樣本比例不均衡,不同缺陷尺寸差距較懸殊,需要在網絡結構上進行優化設計。
Weld-RCNN 算法模型包括四個模塊,具體如下:
(1)標簽生成與數據增強。
依據膠片圖像焊縫位置特點設計了基于圖像y方向導數極值的焊縫區域提取算法。數據增強的方式包括旋轉、翻轉、鏡像等。在圖像輸入網絡前,需要對圖像進行歸一化操作。
(2)主干網絡設計。
采用的目標檢測模型基于兩階段的FasterRCNN架構的優化模型。骨干網絡特征提取的深度卷積層采用的是ResNet18+FPN 的結構,這也是Faster-RCNN的第一階段結構,此處引入FPN,增強了對小物體檢測的性能。
(3)錨點機制優化。
錨點機制是兩階段檢測與實例分割網絡中常用的提取目標區域的處理算法,預設不同大小與尺度的錨點框,通過選中特征圖的中心點利用滑動窗口進行滑動,利用錨點框的相應逆向推倒在原圖上的目標物體的區域。
統計不同類型缺陷的大小分布,以圓形缺陷為例,圓形缺陷的尺寸大多集中于10~60 之間,尺度也在0.6~2 之間,由此可知,算法模型可以根據不同的數據分布來優化錨點機制,從而提升性能。
(4)損失函數的設計與優化。
針對正負樣本不均衡的問題,在計算損失函數時使用了在線難例挖掘。此外考慮到出現漏標但模型識別出來的情況,增加隨機性寬泛了損失回傳,一定程度上降低了漏標樣本帶來的影響。
原始的二分類交叉熵損失函數如下所述,是經過激活函數的輸出,在0~1 區間,在未經優化的普通交叉熵中,正樣本若輸出概率越大則損失越大,負樣本輸出概率越小則損失越小。
為此,本算法模塊通過優化損失函數,設置如下的損失函數:
進一步引入超參來繼續優化損失函數,加入會略微軟化損失回傳,損失函數不是單一的交叉熵,最終是采用Focal loss 的改良版,取值為0.5,取值為4。
Weld-SSD 算法模型的平臺配置環境是Pytorch 0.4.1,Python 3.5。以Tensorflow1.3,Keras2.0.8,Python3.4 作為框架平臺實現Weld-Faster-RCNN 的深度學習。
2.2.1 Weld-SSD 算法優化模型
根據多次調參測試,最終選定如表1 所示的方案。

表1 最終方案
2.2.2 Weld-RCNN 算法優化模型
本研究采用的端到端的訓練方式,利用公開數據集訓練的權重作為初始化,先進行數據準備,然后進行訓練,具體超參數設置如表2 所示。

表2 模型超參數設置
通過不斷測試與調優后,最終損失曲線平穩下降,下降到了0.3。
2.3.1 Weld-SSD 算法優化模型
對比不同先驗框的檢測結果,第一種的先驗框設計方式在Crop 圖上有更好的結果,而第二種設計方式在整圖上的結果更好。由于在實際中面臨的是整圖的測量,所以整圖的結果更具有實際意義與生產價值。由此可知,對SSD 進行改進之后的Weld-SSD 算法模型在整圖上的結果卻不太理想,這與圖像本身的質量也有一定的關系。
2.3.2 Weld-RCNN 算法優化模型
采取不同優化方式設置對照實驗,實驗結果如表3 所示。可以看到數據增強、修改骨干網絡、添加FPN、改進錨點機制以及采用OHNM 均能對網絡性能有所改善。基于目標檢測算法的最優模型是以Faster-RCNN 為架構,再引入在線難例挖掘機制以及改進了錨點機制和骨干網絡后得到的模型,此模型在氣孔上可以達到RC=84.6%,PR=70.2%。

表3 目標檢測算法模型測試結果(選取PR 曲線中recall+precison 值達到最高的點)
對于ResNet18+FPN+Anchor+semi-OHNM 的模型,PR 曲線如圖1 所示。由圖1 可以看出,本研究采用模型最高Recall 可以達到96.5%,最高的Precision可以達到97.2%,與單純使用現有網絡相比性能更具優勢。

圖1 目標檢測算法模型測試結果P/R 曲線
本研究提出基于深度學習的焊縫X 射線圖像缺陷識別模型,在輸入膠片數字化圖像后基于計算機視覺的分割算法檢測出該焊縫圖像中每個缺陷的位置、大小與類型,設計并實現了基于Anchor-based 的Weld-RCNN 算法,缺陷檢測性能召回率達到84.6%,精準率70.2%。同時,實現檢測算法模塊后,搭建算法聯調測試環境。結果表明,算法模型在測試中表現良好,算法與以往國內外研究者在焊縫圖像缺陷檢測相比,提升了性能,具有更好的魯棒性。