肖文凱,南水魚,張琳琳
(1.上海萬(wàn)物智允工業(yè)科技有限責(zé)任公司,上海 201612; 2.申能(集團(tuán))有限公司,上海 201103)
在金屬構(gòu)件的焊接過程中,由于物理環(huán)境或人為失誤等原因,焊接接頭會(huì)在焊縫處形成缺陷,導(dǎo)致安全隱患。為了確保焊接工件的質(zhì)量以及安全性、防止意外情況產(chǎn)生,對(duì)焊接工件進(jìn)行缺陷檢測(cè)就變得至關(guān)重要。目前,工業(yè)界常用的無損檢測(cè)方法包括X射線檢測(cè)、超聲檢測(cè)、磁粉檢測(cè)、渦流檢測(cè)等。焊接缺陷根據(jù)其成像特點(diǎn),通常分為裂紋、未焊透、未熔合、氣孔缺陷等。使用的檢測(cè)標(biāo)準(zhǔn)不同,缺陷的分類會(huì)有部分差異,如國(guó)標(biāo)NBT 47013.2—2015[1]中的條形、圓形缺陷涵蓋了歐標(biāo)EN ISO5817[2]中的氣孔和夾渣。在目前的實(shí)際生產(chǎn)過程中,主要采用的檢測(cè)方式是人工分析焊縫圖像,即憑經(jīng)驗(yàn)確定有無缺陷及缺陷的類型、位置、尺寸等,由此評(píng)定焊接質(zhì)量并給出相應(yīng)的評(píng)級(jí)。人工評(píng)定方式受評(píng)判者的水平、經(jīng)驗(yàn)、疲勞度、情緒等人為因素及外界條件的影響,效率低、不可靠、一致性差。
近年來,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和圖形處理器(graphics processing unit,GPU)硬件的不斷更新,基于深度學(xué)習(xí)的計(jì)算機(jī)視覺技術(shù)發(fā)展迅速,逐漸成為圖像處理及模式識(shí)別的主流方法。基于計(jì)算機(jī)視覺的工業(yè)自動(dòng)化缺陷檢測(cè)方法也呈現(xiàn)爆發(fā)式的增長(zhǎng)。計(jì)算機(jī)視覺領(lǐng)域的分類、目標(biāo)檢測(cè)、分割等方法都可用于工業(yè)缺陷檢測(cè)[3-6]。由于分割算法的數(shù)據(jù)標(biāo)注較昂貴,難以獲取足夠的標(biāo)注數(shù)據(jù),因此通常采用目標(biāo)檢測(cè)算法來進(jìn)行焊縫缺陷檢測(cè)。綜上分析,為了解決人工評(píng)定的痛點(diǎn)問題,本文在對(duì)焊縫缺陷數(shù)據(jù)集進(jìn)行統(tǒng)計(jì)分析并對(duì)目標(biāo)檢測(cè)方法進(jìn)行大量研究之后,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的X射線焊縫缺陷自動(dòng)檢測(cè)算法(DRepDet)。
常見的幾種焊縫缺陷圖像示例如圖1所示。由圖1可知,有些缺陷和背景之間的分界線較模糊,如圖 1(d)中未焊透的示例。這種情況下,缺陷識(shí)別相對(duì)比較困難。

圖1 焊縫缺陷示例
通常,目標(biāo)檢測(cè)算法大多以微軟提供的常規(guī)圖像(common objects in context,COCO)數(shù)據(jù)集為目標(biāo)數(shù)據(jù)集,針對(duì)COCO數(shù)據(jù)集進(jìn)行優(yōu)化。與COCO數(shù)據(jù)集相比,工業(yè)領(lǐng)域焊縫圖像的情況更為復(fù)雜,無論是圖像分辨率還是缺陷的尺度變化,都和COCO數(shù)據(jù)集有較大的差異。
本文以液化天然氣(liquefied natural gas,LNG)焊縫圖像數(shù)據(jù)集為研究重點(diǎn)。LNG焊縫圖像的分辨率通常比較高,大部分為300~570 dpi。這就導(dǎo)致了LNG焊縫圖像尺寸較大。LNG焊縫圖像數(shù)據(jù)集和COCO數(shù)據(jù)集對(duì)比如表 1所示。

表1 LNG焊縫圖像數(shù)據(jù)集和COCO數(shù)據(jù)集對(duì)比
表1分別從圖像尺寸以及缺陷尺寸兩個(gè)維度進(jìn)行了對(duì)比。由表1可知,LNG焊縫圖像數(shù)據(jù)集的寬高范圍比COCO數(shù)據(jù)集大得多,缺陷的尺度差異也很大,最小的缺陷可能小于10×10像素,最大的缺陷在7 000×300像素左右。這些差異導(dǎo)致許多原始的目標(biāo)檢測(cè)算法在LNG焊縫缺陷檢測(cè)數(shù)據(jù)集上的性能明顯下降。
LNG焊縫缺陷不同寬高比對(duì)應(yīng)缺陷數(shù)量統(tǒng)計(jì)如表2所示。由表2可知,LNG焊縫缺陷不同寬高比對(duì)應(yīng)的缺陷數(shù)量差異很大,但1∶1、2∶1和3∶1的缺陷占多數(shù)。

表2 LNG焊縫缺陷不同寬高比對(duì)應(yīng)缺陷數(shù)量統(tǒng)計(jì)
計(jì)算機(jī)視覺中的目標(biāo)檢測(cè)任務(wù)需要在一張圖片中定位出待檢測(cè)的目標(biāo),并給出目標(biāo)的尺寸和類別。當(dāng)前的目標(biāo)檢測(cè)算法一般分為骨干網(wǎng)絡(luò)(backbone)、頸部網(wǎng)絡(luò)(neck)和頭部網(wǎng)絡(luò)(head)三個(gè)部分;按過程可分為一階段檢測(cè)算法和兩階段檢測(cè)算法。
骨干網(wǎng)絡(luò)部分用于提取圖像特征,以CNN為主。單發(fā)多樞檢測(cè)器(single shot multiBox detector,SSD)和快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(faster region converlational renral network,Faster R-CNN)以超分辨率測(cè)試序列(visual geometry group,VGG)網(wǎng)絡(luò)模型作為骨干網(wǎng)絡(luò)。而單階段檢測(cè)算法“你只需要看一次”(you only look once,YOLO)以Darknet作為骨干網(wǎng)絡(luò)。事實(shí)上,分類網(wǎng)絡(luò)都可以作為目標(biāo)檢測(cè)的骨干網(wǎng)絡(luò)來提取特征。深度殘差網(wǎng)絡(luò)(deep residual network,ResNet)[7]被提出后,ResNet及其變體被大量用于目標(biāo)檢測(cè)的骨干網(wǎng)絡(luò)。
頸部網(wǎng)絡(luò)用于進(jìn)行特征融合,解決目標(biāo)的多尺度問題。在早期的目標(biāo)檢測(cè)中,大多使用分類網(wǎng)絡(luò)最后一個(gè)卷積層的輸出結(jié)果作為后續(xù)邊界框回歸和分類的特征。由于最后一個(gè)卷積層輸出的特征進(jìn)行了較多的下采樣,對(duì)小目標(biāo)的識(shí)別能力較差。為了提升小目標(biāo)的識(shí)別能力,SSD使用不同卷積階段輸出的不同分辨率的特征圖。特征圖金字塔網(wǎng)絡(luò)(feature pyramid networks,F(xiàn)PN)則在此基礎(chǔ)上添加了自上而下的通道,將頂層更高級(jí)別的語(yǔ)義信息融合到低分辨率的特征圖上,以豐富低分辨率特征圖的語(yǔ)義信息。路徑聚合網(wǎng)絡(luò)(path aggregation network,PANet[8])在FPN的基礎(chǔ)上增加了自底向上的通道作進(jìn)一步特征融合。
頭部網(wǎng)絡(luò)一階段檢測(cè)算法直接在提取到的特征上進(jìn)行邊界框回歸和分類。兩階段檢測(cè)算法先在提取到的特征上生成候選邊界框,然后在候選邊界框上進(jìn)行二次回歸和分類。按是否使用錨框,目標(biāo)檢測(cè)算法可以分為基于錨框的算法和無錨框算法。基于錨框的算法需要根據(jù)實(shí)際檢測(cè)目標(biāo)的統(tǒng)計(jì)信息進(jìn)行錨框大小和寬高比的預(yù)設(shè)。當(dāng)目標(biāo)的尺度范圍變化較大時(shí),有些算法不能很好地適應(yīng)目標(biāo),如RetinaNet[9]、Faster R-CNN、Cascade R-CNN[10]均為此類算法。無錨框算法從特征點(diǎn)直接回歸出用于計(jì)算邊界框的中心點(diǎn)、角點(diǎn)、邊界點(diǎn)等,然后用聚類或轉(zhuǎn)換算法計(jì)算出邊界框。基于對(duì)角線關(guān)鍵點(diǎn)的檢測(cè)算法CornerNet[11]首先預(yù)測(cè)左上角和右下角的角點(diǎn),然后使用1個(gè)特殊的聚類方法獲取目標(biāo)的邊界框。基于4個(gè)極點(diǎn)的檢測(cè)算法ExtremeNet[12]使用分割監(jiān)督定位目標(biāo)在x-y方向的極值點(diǎn)。基于采集的檢測(cè)算法RepPoints[13]從每個(gè)特征圖點(diǎn)預(yù)測(cè)出1組點(diǎn),由這組點(diǎn)表示生成偽邊界框,然后使用真值框進(jìn)行半監(jiān)督學(xué)習(xí)。
在工業(yè)缺陷檢測(cè)方面,隨著深度學(xué)習(xí)和計(jì)算機(jī)視覺技術(shù)的快速發(fā)展,許多先進(jìn)的算法被提出。文獻(xiàn)[14]提出了1種基于圖像分類網(wǎng)絡(luò)的鋁導(dǎo)體復(fù)合芯自動(dòng)化缺陷檢測(cè)框架。該框架以盜夢(mèng)空間-殘差網(wǎng)絡(luò)(inception and residual network,Inception-Resnet)為骨干網(wǎng)絡(luò)。文獻(xiàn)[15]使用1種基于迭代算法Adaboost的3階段的系統(tǒng)(缺陷提取、缺陷檢測(cè)、缺陷識(shí)別)來識(shí)別5種焊縫缺陷(裂紋、未焊透、未熔合、圓形和條形)。
針對(duì)LNG焊縫缺陷數(shù)據(jù)集的特點(diǎn)和目標(biāo)檢測(cè)算法的最新進(jìn)展,焊縫缺陷檢測(cè)算法DRepDet被提出。該算法主要針對(duì)X射線成像檢測(cè)。基于該算法的檢測(cè)器可以識(shí)別7種缺陷,包括氣孔、夾渣、裂紋、未焊透、未熔合、密集和鏈狀。而其他大部分檢測(cè)器只能檢測(cè)到不超過5種缺陷。
本小節(jié)中,首先介紹新型目標(biāo)表示方法RepPoints的網(wǎng)絡(luò)架構(gòu),然后介紹DRepDet算法的感受野和詳細(xì)設(shè)計(jì)。
RepPoints是一個(gè)無錨框的檢測(cè)框架。它將目標(biāo)表示為1組點(diǎn)來進(jìn)行定位和識(shí)別。而大部分目標(biāo)檢測(cè)器依賴于矩形邊界框來進(jìn)行檢測(cè)和識(shí)別。
RepPoints架構(gòu)如圖2所示。

圖2 RepPoints架構(gòu)圖
邊界框表示僅考慮了目標(biāo)的矩形空間區(qū)域,而不考慮形狀、姿態(tài)以及語(yǔ)義上較重要的局部區(qū)域的位置。為了克服上述缺陷,RepPoints建模了1組自適應(yīng)的采樣點(diǎn)。這組采樣點(diǎn)會(huì)自動(dòng)調(diào)整到目標(biāo)的邊界位置。在訓(xùn)練過程中,用這組采樣點(diǎn)生成偽框,與真值框進(jìn)行對(duì)比來計(jì)算損失。
RepPoints的骨干網(wǎng)絡(luò)采用RetinaNet的骨干網(wǎng)絡(luò),從階段3(下采樣率為8倍)到階段7(下采樣率為128倍)生成5個(gè)金字塔層級(jí)。RepPoints的點(diǎn)表示和可變形卷積的結(jié)合,使檢測(cè)目標(biāo)的尺度可以在更大范圍內(nèi)變動(dòng)。
3.2.1 感受野
在典型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中:全連接(fully connected,F(xiàn)C)層每個(gè)輸出節(jié)點(diǎn)的值都依賴FC層所有輸入;卷積層每個(gè)輸出節(jié)點(diǎn)的值僅依賴卷積層輸入的1個(gè)區(qū)域。這個(gè)區(qū)域之外的其他輸入值都不會(huì)影響輸出值。該區(qū)域就是感受野。感受野之外圖像區(qū)域的像素不會(huì)影響特征圖上的特征向量,所以不太可能讓神經(jīng)網(wǎng)絡(luò)僅依賴某個(gè)特征向量找到其對(duì)應(yīng)輸入感受野之外的目標(biāo)。
一般任務(wù)要求感受野越大越好,如圖像分類中最后卷積層的感受野要大于輸入圖像。網(wǎng)絡(luò)深度越深,則感受野越大、性能越好。密集預(yù)測(cè)任務(wù)要求輸出像素的感受野足夠大,以確保作出決策時(shí)沒有忽略重要信息,一般也是越深越好。目標(biāo)檢測(cè)任務(wù)中設(shè)置錨框要嚴(yán)格對(duì)應(yīng)感受野,錨框太大或偏離感受野都會(huì)嚴(yán)重影響檢測(cè)性能。
感受野的計(jì)算公式如下:
jout=jin×s
(1)
式中:jout為輸出特征圖的整體跨度;s為卷積層的步長(zhǎng);jin為輸入特征圖的跨度。
rout=rin+[k+(k-1)×(d-1)-1]×jin
(2)
式中:rout為輸出特征圖的感受野;rin為輸入特征圖的感受野;k為卷積核的尺寸;d為卷積核的空洞率。
表3從缺陷面積和寬高的最大值這2個(gè)維度,對(duì)不同感受野所包含的缺陷個(gè)數(shù)進(jìn)行了統(tǒng)計(jì)。

表3 感受野統(tǒng)計(jì)表
從表3可以看出,大部分缺陷的感受野在291×291以下,大尺寸的缺陷以危害性缺陷居多。在工業(yè)缺陷檢測(cè)領(lǐng)域,危害性缺陷的檢出更為重要。如檢出這部分缺陷,就表示產(chǎn)品或者工程施工不合格。
在很多情況下,感受野區(qū)域內(nèi)像素的影響分布服從高斯分布,有效感受野僅占理論感受野的一部分,且高斯分布從中心到邊緣快速衰減。為了提高大尺寸缺陷的檢出率,需要使輸出特征圖具有更大的感受野。
3.2.2 DRepDet設(shè)計(jì)
針對(duì)焊縫缺陷數(shù)據(jù)集中缺陷尺度及感受野的問題,對(duì)骨干網(wǎng)絡(luò)進(jìn)行了調(diào)整,提出了DRepDet。以下對(duì)DRepDet進(jìn)行詳細(xì)的描述。
擴(kuò)大感受野的方法主要有以下幾種。
①使用更多的卷積層,如3個(gè)卷積核為3×3的卷積層堆疊后的感受野為7×7。這種方法會(huì)增加模型的參數(shù)和計(jì)算復(fù)雜度。
②卷積層使用更大的步長(zhǎng),如一個(gè)卷積核為3×3、步長(zhǎng)為2的卷積層的感受野為5。這種方法會(huì)增加模型的下采樣率。
③使用空洞卷積,如一個(gè)卷積核為3×3、空洞率為2的卷積層的感受野為5。這種方法在增加感受野的同時(shí)既不會(huì)增加模型的參數(shù)和計(jì)算復(fù)雜度,又不會(huì)增加下采樣率。
基于3.2.1節(jié)中對(duì)于焊縫數(shù)據(jù)集感受野的統(tǒng)計(jì)分析,大尺度危害型缺陷的感受野大多位于選取的基線骨干網(wǎng)絡(luò)ResNeXt的最后一個(gè)卷積階段之后。因此,可以僅對(duì)最后一個(gè)階段的卷積模塊使用空洞卷積,以擴(kuò)大感受野,提升對(duì)大尺度缺陷的識(shí)別性能。
DRepDet架構(gòu)如圖3所示。

圖3 DRepDet架構(gòu)圖
DRepDet架構(gòu)整體上依從ResNeXt架構(gòu),有一個(gè)頸部(stem)模塊,4個(gè)卷積階段。每個(gè)階段分別由3個(gè)、4個(gè)、6個(gè)、3個(gè)瓶頸卷積塊組成。從第二個(gè)卷積階段開始,3×3的卷積層使用可變形卷積。最后一個(gè)階段的3×3卷積層使用4個(gè)不同空洞率可變形的空洞卷積進(jìn)行特征融合,得到輸出特征。FPN的輸出從第二個(gè)卷積階段開始,最后添加2個(gè)額外的FPN輸出層。FPN共5個(gè)輸出層。FPN輸出的5個(gè)不同尺度的特征圖進(jìn)入RepPoints檢測(cè)頭,輸出最終的分類和邊界框回歸結(jié)果。
本文在自建的焊縫缺陷數(shù)據(jù)集上進(jìn)行了大量的試驗(yàn),以驗(yàn)證所提出的算法的有效性。焊縫缺陷數(shù)據(jù)集主要是LNG的焊縫影像,分辨率為8 000×2 000左右,共含標(biāo)注數(shù)據(jù)5 400張。標(biāo)注數(shù)據(jù)中:80%用于訓(xùn)練;20%用于驗(yàn)證。由于圖像尺寸較大,在訓(xùn)練集上進(jìn)行了4 000×1 000的切分,重疊率為50%,推理時(shí)不進(jìn)行切分。
使用隨機(jī)梯度下降(stochastic gradient descent,SGD)優(yōu)化器進(jìn)行訓(xùn)練,批大小為8,GPU為4個(gè)(每個(gè)GPU 2張圖片)。使用COCO數(shù)據(jù)集上的預(yù)訓(xùn)練模型進(jìn)行微調(diào),學(xué)習(xí)率初始值為0.002 5,學(xué)習(xí)率調(diào)度依從“1x”設(shè)置。訓(xùn)練時(shí)的數(shù)據(jù)增強(qiáng)僅使用概率為0.5的水平隨機(jī)翻轉(zhuǎn),推理過程不使用數(shù)據(jù)增強(qiáng)。
①空洞卷積試驗(yàn)對(duì)比。
本文對(duì)不同空洞率下的小缺陷和大缺陷的精度和召回率進(jìn)行統(tǒng)計(jì)。不同空洞率的對(duì)比如表4所示。使用空洞卷積后,小缺陷的性能幾乎不受影響,而大缺陷的性能有較大幅度的提升。由于大缺陷多屬于危害型缺陷,樣本量較少,因此整體性能較小缺陷相差較多。危害型缺陷中長(zhǎng)條形缺陷較多,因此設(shè)計(jì)了寬高不同的空洞率。由于橫向和豎向都有長(zhǎng)條形缺陷,而同一類型的空洞卷積僅對(duì)相應(yīng)形狀的缺陷性能有提升,因此可以對(duì)不同空洞率的特征進(jìn)行融合。融合的特征進(jìn)一步提升了整體檢測(cè)性能。

表4 不同空洞率的對(duì)比
②多種網(wǎng)絡(luò)架構(gòu)的比較。
本文在研究過程中對(duì)無錨框網(wǎng)絡(luò)、基于錨框的網(wǎng)絡(luò),以及提出的網(wǎng)絡(luò)DRepDet分別進(jìn)行了試驗(yàn)。不同網(wǎng)絡(luò)架構(gòu)對(duì)比如表 5所示。由表5可知,無錨框網(wǎng)絡(luò)的性能高于基于錨框的網(wǎng)絡(luò)。其原因在于焊縫缺陷數(shù)據(jù)集的缺陷尺度及寬高比的變化較大,預(yù)設(shè)的錨框無法覆蓋如此大的變化范圍。而提出的網(wǎng)絡(luò)由于根據(jù)數(shù)據(jù)集的大尺度及大寬高比的缺陷進(jìn)行了感受野的調(diào)整,因此性能有了進(jìn)一步的提升。

表5 不同網(wǎng)絡(luò)架構(gòu)對(duì)比
本文通過對(duì)LNG焊縫缺陷進(jìn)行多維度的詳細(xì)分析,發(fā)現(xiàn)LNG焊縫缺陷具有尺寸和長(zhǎng)寬比差異較大等問題。針對(duì)該問題,對(duì)算法的感受野進(jìn)行了分析,研究了擴(kuò)大感受野的方法。在這些研究的基礎(chǔ)上,本文使用多分支不同空洞率的卷積層來解決感受野不足的問題,設(shè)計(jì)了DRepDet算法來進(jìn)行焊縫缺陷自動(dòng)檢測(cè)。DRepDet算法可以檢測(cè)7種焊縫缺陷,使感受野從基線的675提升到867,并將超大尺寸缺陷及長(zhǎng)寬比較大缺陷的識(shí)別準(zhǔn)確率從60.4提升到了63.5、AP50提升了1.4%、Recall50提升了2.9%。同時(shí),DRepDet算法對(duì)于正常尺寸的缺陷識(shí)別率也有改善,且?guī)缀醪挥绊懶∪毕莸臋z測(cè)性能。本文研究表明,擴(kuò)大感受野可以有效提高大缺陷的檢測(cè)性能。