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