李鋼卿,周慶祥 ,范瑞峰 , 陳 航 ,甘雨露,馬 蘭,崔 健,王 晨
(1.中車青島四方機車車輛股份有限公司,山東 青島 266111;2.北京大學(xué),北京 100871)
焊縫缺陷檢測在工業(yè)領(lǐng)域是一項非常重要的工作,它是利用多種無創(chuàng)技術(shù)來判斷金屬焊接區(qū)域是否存在缺陷,這種技術(shù)稱為無損檢測技術(shù)(NDT)[1]。其是通過不改變材料內(nèi)部結(jié)構(gòu)的情況下,利用外部的探測技術(shù)進行內(nèi)部結(jié)構(gòu)的探測,發(fā)現(xiàn)內(nèi)外部存在的缺陷。目前常用的無損檢測技術(shù)主要包括:射線檢驗、超聲檢測、磁粉檢測和滲透檢測。其中射線檢測技術(shù)在航空航天、考古、醫(yī)療、承壓容器、船舶制造等多個工業(yè)和民用領(lǐng)域都有廣泛的應(yīng)用。本文主要研究射線檢測技術(shù)用于檢測焊縫內(nèi)部缺陷,針對表面缺陷的識別也會有所提及。傳統(tǒng)的焊縫識別是在拍攝完成后,人工利用眼睛進行視覺判別,容易因為經(jīng)驗的問題出現(xiàn)誤判,同時效率較低,容易受特殊情況外部干擾影響判別結(jié)果[2]。在真實復(fù)雜的工業(yè)環(huán)境中,焊縫的檢測面臨諸多挑戰(zhàn),例如:存在射線強度、曝光時間、多種缺陷混合且不易識別的情況;另外,圖像成像過程中的噪聲、明暗度及工件放置的角度等,均會對最終的成像帶來很多干擾。
對焊縫的缺陷檢測基于檢測網(wǎng)絡(luò)的模型,主流的檢測網(wǎng)絡(luò)包含F(xiàn)aster R-CNN[3]、SSD[4]和YOLO[5]等;Sang-jin Oh[6]為保證計算的效率,從原有的321張像素為4 900×1 200的高分辨的圖片進行切分,在數(shù)據(jù)集中總共有4種分類的數(shù)據(jù)集,包含了569個缺陷,設(shè)置的閾值為0.5,步長為8,錨點為10、40、80像素,在輸入網(wǎng)絡(luò)時為了提升效率圖片被切分為更小的尺寸,同時為了對比Faster R-CNN的優(yōu)勢,分別在原有數(shù)據(jù)集上訓(xùn)練ResNet和Inception-ResNet V2的2個模型作為對比實驗,證明即使基于網(wǎng)絡(luò)的結(jié)構(gòu)優(yōu)勢Faster R-CNN也在缺陷檢測上有較大的優(yōu)勢。有學(xué)者利用本學(xué)校開發(fā)的WDXI數(shù)據(jù)集對數(shù)據(jù)集的內(nèi)容進行了精選,稱為WDIOD數(shù)據(jù)集,并對數(shù)據(jù)集進行了標(biāo)注,主要涵蓋了7種缺陷類型。對于Faster R-CNN模型的核心參數(shù)設(shè)置方面,學(xué)習(xí)率設(shè)置為0.000 1,衰減率為0.001,損失函數(shù)的優(yōu)化器選擇了Momentum算法,針對三通道的圖片輸入方面,將焊縫灰度圖像的值進行復(fù)制,以滿足模型的實際需要,通過最終的測試7個缺陷的平均準(zhǔn)確率為58%左右,相較于WDXI初次發(fā)布時的模型準(zhǔn)確率有所提升[7]。
金屬焊縫缺陷X射線圖像獲取的途徑主要有3種:傳統(tǒng)的膠片成像技術(shù)、計算機X射線影像技術(shù)(Computed radiography,CR)[8]、數(shù)字化X射線影像技術(shù)(Digital radiography,DR)[9]。CR系統(tǒng)通過將射線透過工件后的信息記錄在成像板上,經(jīng)過掃描儀裝置讀取,再由計算機生成數(shù)值化的圖像。CR系統(tǒng)由記錄圖像信息的成像板、激光掃描儀、軟件和硬件組成。DR系統(tǒng)這是通過光電技術(shù)將X射線數(shù)據(jù)轉(zhuǎn)化成圖像信息,可以實時的獲取圖像信息,平板探測器是其關(guān)鍵部件。CR和DR技術(shù)都是數(shù)字化圖像技術(shù),傳統(tǒng)的膠片成像技術(shù)需要通過對膠片進行掃描完成焊縫數(shù)據(jù)的數(shù)字化。
常見的CR檢測設(shè)備主要由:X射線機、IP板、CR掃描儀、處理軟件等關(guān)鍵設(shè)備組成,如圖1所示。X射線機通過發(fā)射射線,通過待檢測的金屬后相關(guān)信息將留存在IP(Image Plate)板上,通過CR掃描儀可以將IP板上的信息進行讀取,同時對IP板上信息進行擦除,從而保證下次能夠采集圖像信息,獲取圖像信息之后,便可以通過人工或自動識別的方式識別焊縫缺陷信息。
圖1 CR系統(tǒng)關(guān)鍵部件組成圖Fig.1 Composition diagram of key components of CR system
目前在焊縫檢測領(lǐng)域公開了的數(shù)據(jù)集國外的僅有GDXray[10],GDXray數(shù)據(jù)集是基于X射線應(yīng)用的數(shù)據(jù)集,總共由19 407張圖片組成,大小為3.5 Gb,它由德國BAM聯(lián)邦材料研究和測試研究所搜集和整理,并不僅僅涵蓋焊縫領(lǐng)域數(shù)據(jù)。涵蓋5個分類:鑄件、焊縫、行李、自然物體和裝置,它主要用于研究和學(xué)習(xí)領(lǐng)域,是目前焊縫檢測領(lǐng)域可找到的唯一公開數(shù)據(jù)集,但是GDXray在焊縫檢測方面僅有88張圖片,每張圖片接近5 000像素,都經(jīng)過了較為細致的標(biāo)注。
面向焊接缺陷的X射線圖像(X-ray Image for Weld Defects,WDXI)[11]數(shù)據(jù)集由北京郵電大學(xué)和中國特種設(shè)備檢驗研究院在2018年共同收集完成,研究人員通過高分辨率的掃描儀將原有的膠片數(shù)據(jù)轉(zhuǎn)化成數(shù)字圖片,總共涵蓋了16 950張圖片,圖像以16位TIF格式保存,其中13 766張圖片有標(biāo)注信息嚴格按照國標(biāo)進行了標(biāo)注,涵蓋了典型的8個不同的缺陷類型;同時,研究人員利用5層的卷積神經(jīng)網(wǎng)絡(luò)在此數(shù)據(jù)集上進行了初步實驗,準(zhǔn)確率達到了46.6%,雖然識別率不高,但是起到了示范作用。相比GDXray而言,WDXI數(shù)據(jù)集是專門針對焊縫缺陷的專用數(shù)據(jù)集,從規(guī)模大小、標(biāo)注種類都較GDXray豐富,但是自2018年發(fā)表論文以來,未找到獲取此數(shù)據(jù)集的渠道和下載鏈接,因此要實際應(yīng)用也很困難。通過搜索國內(nèi)研究人員利用過此數(shù)據(jù)集開展研究,表1是對WDXI和GDXray數(shù)據(jù)集進行比較的結(jié)果。
表1 X射線焊縫檢測數(shù)據(jù)集對比表Tab.1 Comparison table of X-ray weld inspection data set
金屬缺陷的形成可以分為使用產(chǎn)生的缺陷、焊接產(chǎn)生的缺陷和產(chǎn)品成型過程中產(chǎn)生的缺陷。缺陷的發(fā)現(xiàn)和判別是研究的重點,國標(biāo)分類主要包括:燒穿、裂紋、夾渣、焊瘤、氣孔、咬邊、未焊透、未熔合等8種焊縫缺陷[12]。在制造的過程中由于各種原因,焊接件的表面和內(nèi)部都會形成特殊的結(jié)構(gòu),因此都會在視覺上形成特殊的視覺效果。本文通過對GDXray中的數(shù)據(jù)進行篩選,主要剔除管狀X射線數(shù)據(jù),具體結(jié)果如圖2所示;結(jié)合利用CR系統(tǒng)獲取的圖片,結(jié)果如圖3所示。利用伽馬變換、旋轉(zhuǎn)等數(shù)據(jù)擴增技術(shù),構(gòu)成本文算法所使用的基礎(chǔ)數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)總共115張,驗證集38張,測試集38張。因原始數(shù)據(jù)集規(guī)模較小,利用數(shù)據(jù)標(biāo)注工具僅對焊縫區(qū)域、氣孔和其他缺陷進行了標(biāo)注。
圖2 GDXray數(shù)據(jù)集標(biāo)注圖Fig.2 GDXray dataset annotation diagram
圖3 CR系統(tǒng)獲取X射線圖像標(biāo)注圖Fig.3 CR system acquires X-ray image annotation map
焊接作業(yè)中常見的焊接件主要是板件和管件,板件之間的焊縫為縱縫;管件之間的焊縫為環(huán)縫。射線檢測的工藝有單壁透照、雙壁透照、中心透照等[13]。膠片圖像通過掃描獲得數(shù)字圖像,CR和DR技術(shù)可直接獲得數(shù)字圖片,在對圖像進行缺陷檢測之前,通常采用圖像預(yù)處理方法來改變圖像的質(zhì)量,通常使用的處理手段有圖像降噪、灰度或色階調(diào)整、對比度調(diào)整等。其中,降噪是這些處理技術(shù)中最重要的步驟,主要用來去除圖像中的噪聲,讓圖像更為清晰。針對圖像中常見的椒鹽、高斯噪聲等,對傳統(tǒng)的中值濾波和均值濾波進行了改進,利用概率的方式解決噪聲的判斷問題,從而達到濾波的作用,通過實驗驗證了所提降噪及增強方法的可行性及優(yōu)勢。在發(fā)電站制冷水管焊縫圖像中利用中值濾波來對圖像進行去噪處理,為了彌補射線圖像的不足利用伽馬變換增強圖像,同時利用直方圖均衡化增加對比,最后結(jié)合深度學(xué)習(xí)技術(shù)將識別率提升至96%[14];還有,分別利用焊縫圖像的多尺度的特征,應(yīng)用于實際的研究工作中,其中尹立航在對復(fù)雜圖像的識別率超過了91.71%[15-16]。DR系統(tǒng)拍攝的圖像為16位的灰度范圍,通過金字塔模型獲取各個尺度的圖像信息,為了讓圖像細節(jié)更加豐富,利用高斯平滑技術(shù)進行了細節(jié)處理,為了能夠重構(gòu)圖像提高識別率,增強環(huán)節(jié)用S型函數(shù)對細節(jié)進行了增強[17]。
在實際的檢測過程中,有經(jīng)驗的專業(yè)人員通常會對原始的圖像進行變換,主要有對比度調(diào)整、圖片明暗調(diào)整、去噪處理等操作。本文以基礎(chǔ)的數(shù)據(jù)集進行圖像擴增處理,以伽馬變換為基礎(chǔ),總共獲得191張圖像,作為初始的數(shù)據(jù)集用于基礎(chǔ)實驗。
YOLO模型的版本較多,利用V4版本在進行焊縫檢測時進行了優(yōu)化,將原有的YOLOv4進行了網(wǎng)絡(luò)結(jié)構(gòu)的改進,減少了訓(xùn)練參數(shù),同時通過取消采樣,結(jié)合聚類算法修改了原有網(wǎng)絡(luò)的先驗框,數(shù)據(jù)集方面通過收集790張的包含3種缺陷的數(shù)據(jù)集,對數(shù)據(jù)集進行了擴增至2801張,最終優(yōu)化后的YOLOv4模型的各類別平均精度值(mAP)為88.52%[18]。YOLOv5模型為其上一個版本的改進版本,利用YOLOv5網(wǎng)絡(luò)在進行基礎(chǔ)的數(shù)據(jù)增強和數(shù)據(jù)預(yù)處理的情況下,對包含8種缺陷的鋼管焊縫缺陷數(shù)據(jù)進行了分析,總共的原始數(shù)據(jù)量為3 408張,算法的準(zhǔn)確率為97.8%[19]。
針對本文涉及的焊縫檢測任務(wù),我們利用SwinTransformer[20]豐富的層次化信息理解能力,結(jié)合跨尺度連接的特征金字塔網(wǎng)絡(luò)優(yōu)化設(shè)計,設(shè)計了一種針對焊縫檢測小目標(biāo)檢測任務(wù)的加強版YOLOv5模型,算法總體結(jié)構(gòu)如圖4所示。由于焊縫缺陷的識別目標(biāo)相對較小,設(shè)計了一些針對小目標(biāo)檢測的方法,基于到以往的3頭結(jié)構(gòu)的方法,我們的4頭結(jié)構(gòu)可以緩解劇烈的物體尺度變化帶來的負面影響。
圖4 算法總體結(jié)構(gòu)圖Fig.4 The overall structure of the algorithm
從圖4可以看出,添加的預(yù)測頭是從低級別、高分辨率的特征圖生成的,該特征圖對微小物體更敏感。在添加額外的檢測頭后,雖然計算和內(nèi)存成本增加,但微小物體檢測的性能會變得更高。受SwinTransformer的啟發(fā),我們將原始版本的YOLOv5中的一些卷積塊和瓶頸塊替換為SwinTransformer編碼器塊。 與原始瓶頸塊相比,認為SwinTransformer編碼器塊可以捕獲全局信息和豐富的上、下文信息。為了獲得更豐富的感受野信息,我們采用了跨尺度連接的方法來改進特征金字塔網(wǎng)絡(luò),以獲得更豐富多層次的特征信息;實驗證明這對焊縫小目標(biāo)檢測有較好的效果。
圖5為YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)圖,主要分為輸入端、主干網(wǎng)絡(luò)、頸部、預(yù)測4個部分。在輸入端,YOLOv5的輸入端采用了Mosaic數(shù)據(jù)增強的方式,將隨機縮放、隨機裁剪、隨機排布的方式進行拼接,以增強對小目標(biāo)檢測的效果;針對不同數(shù)據(jù)集設(shè)置了不同的初始長寬的錨框。在網(wǎng)絡(luò)訓(xùn)練中,網(wǎng)絡(luò)會把真實框和在初始錨框基礎(chǔ)上輸出的預(yù)測框進行比較,計算差距并反向傳播更新網(wǎng)絡(luò)參數(shù),在YOLOv5中將這一過程嵌入到代碼中,實現(xiàn)計算不同訓(xùn)練集中最佳錨框大小的自適應(yīng)方式。此外,在常用的目標(biāo)檢測算法中,不同的圖片的寬、高比是不同的,因此通常將這些圖像縮放成一樣的尺寸在送入模型訓(xùn)練,這樣會損失信息。通常采用縮放填充來解決這一問題,但存在填充較多帶來的信息冗余問題,并對降緩?fù)评硭俣?。YOLOv5對原始圖像采用自適應(yīng)添加最少的黑邊,來解決這一問題;主干網(wǎng)絡(luò)設(shè)計了2種CSP結(jié)構(gòu),具體如圖5所示。頸部采用FPN+PAN[21]的結(jié)構(gòu),同時借鑒了CSPnet設(shè)計的CSP2結(jié)構(gòu),加強了網(wǎng)絡(luò)多感受野特征融合的能力;輸出端部分YOLOv5使用CIOU作為回歸框的損失函數(shù),并采用加權(quán)非極大值抑制進行后處理。
圖5 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.5 YOLOv5 network structure diagram
SwinTransformer網(wǎng)絡(luò)結(jié)構(gòu),具體如圖6所示。
圖6 SwinTransformer網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 SwinTransformer network structure diagram
SwinTransformer采用層次化的設(shè)計,包含4個狀態(tài),每一個狀態(tài)都會擴大特征圖的感受野,在輸入端將圖片切塊,然后做嵌入;在每一個狀態(tài)里由切塊圖的融合和多個子結(jié)構(gòu)組成,其中切塊圖的融合是為了在每個狀態(tài)開始前降低圖片的分辨率;每一個子結(jié)構(gòu)的具體結(jié)構(gòu)主要是由歸一化層、多層感知機、窗口注意力機制、滑動窗口注意力機制組成。SwinTransformer在輸入進入子結(jié)構(gòu)前,需要將圖片切塊,然后嵌入向量,具體做法是對原始圖片進行裁剪,裁剪為長寬均為塊長度的窗口大小,此處可以通過步長和卷積核均設(shè)置為塊長度的大小,窗口注意力機制是關(guān)鍵,傳統(tǒng)的Transformer都是基于全局來計算注意力,因此時間復(fù)雜度很高。而SwinTransformer將注意力的計算限制在每個窗口內(nèi),減少了計算量;但窗口注意力機制是在每個窗口下計算注意力,不同的窗口之間沒有進行注意力的計算。為了更好的和其他窗口進行交互,引入了滑動窗口的操作,通過對特征圖移位并給注意力設(shè)置掩碼來間接實現(xiàn)不同窗口的注意力計算。
跨尺度連接比較,具體如圖7所示。
(a)特征金字塔網(wǎng)絡(luò)(FPN)
多尺度特征融合的目的是對不同分辨率下的特征進行聚合。在之前的研究中,比如FPN已經(jīng)指出了不同層之間特征融合的重要性,并且用了一種比較簡單的把底層的特征乘以一定的倍數(shù)和淺層相加來融合的方法,具體如圖7(a)所示。之后,人們也試了各種別的融合方法,比如圖7(b)所示的PANet采用先自底向上連,再自頂向下連接的方法[21];圖7(c)展示的NAS-FPN則采用了神經(jīng)架構(gòu)搜索的方法來實現(xiàn)更佳的跨尺度連接,但是計算開銷非常大,并且發(fā)現(xiàn)的網(wǎng)絡(luò)不規(guī)則,難以解釋或修改。上述都是一些人工各種連接的設(shè)計,包含卷積、求和、拼接、改變圖像大小、跳躍連接等操作。
為了提高模型的效率,有學(xué)者提出一種新的跨尺度連接方法,具體如圖7(d)所示。首先,刪除那些只有一個輸入邊的節(jié)點,因為如果一個節(jié)點只有一條輸入邊而沒有特征融合的話,那么它對融合不同特征的特征網(wǎng)絡(luò)的貢獻其實會很??;其次,添加一個跳躍連接,在同一尺度的輸入節(jié)點到輸出節(jié)點之間加一個跳躍連接,因為它們在相同層,在不增加太多計算成本的同時,融合了更多的特征;最后,把每個自頂向下和自底向上的路徑看作是一個特征網(wǎng)絡(luò)層,同時,同一層多次重復(fù),以此來實現(xiàn)更高層次的特征融合[22]。
我們使用GDxray Weld[10]公開數(shù)據(jù)集中的60張圖像和中車公司的20張圖像作為數(shù)據(jù)集,按照0.6∶0.2∶0.2的比例劃分訓(xùn)練集、測試集和驗證級,標(biāo)簽分為焊縫、缺陷、氣泡3個類別,使用預(yù)測類別準(zhǔn)確率(Precision)、平均精確度(mAP)來衡量模型的表現(xiàn)。
模型運行在Pytorch1.11上,所有模型都在NVIDIA Tesla M40上進行訓(xùn)練和測試。在訓(xùn)練階段,用了部分來自YOLOv5s預(yù)訓(xùn)練的的權(quán)重,因為僅改變了部分層,沒有把結(jié)構(gòu)全部改變,有很多權(quán)重是可以從YOLOv5s向模型轉(zhuǎn)移的,這樣可以節(jié)省大量的訓(xùn)練時間。
由于訓(xùn)練集比較小,因此只在訓(xùn)練集上訓(xùn)練100個循環(huán)的模型,前2個循環(huán)用于熱身。在優(yōu)化器上使用ADAM進行訓(xùn)練,并使用3×10-4作為余弦學(xué)習(xí)率的初始學(xué)習(xí)率。最后一個循環(huán)學(xué)習(xí)率會衰減到初始學(xué)習(xí)率的0.12。
根據(jù)先前的經(jīng)驗,數(shù)據(jù)分析是很重要的一個步驟,對數(shù)據(jù)進行全方面的分析往往會對結(jié)果的提升帶來較大的幫助;圖8為數(shù)據(jù)分析圖。
圖8 數(shù)據(jù)分析圖Fig.8 Data analysis chart
從圖8可以看出,分析了數(shù)據(jù)集中的回歸框的類別分布和尺寸分布,有1 386個缺陷,721個氣泡,191個焊縫區(qū)域,且大量的回歸框集中寬、高尺寸均小于0.2的部分。因此,重點為一些小目標(biāo)的檢測。
本設(shè)計的焊縫識別方法和之前方法對比結(jié)果,具體如表2所示。
表2 焊縫識別方法對比結(jié)果Tab.2 Comparison results of weld identification methods
由表2可知,實驗共設(shè)置了10個組,分別使用YOLOv5s(640)、YOLOv5s(1280)、YOLOv5m(640)、YOLOv5m(1280)、YOLOv5l(640)、YOLOv5l(1280)、YOLOv5x(640)、YOLOv5x(1280)、基于SwinTransformer的YOLOv5s(640)、基于SwinTransformer的YOLOv5s(640)這些模型來進行訓(xùn)練,其中括號內(nèi)的數(shù)字表示圖片統(tǒng)一縮放后的大小,訓(xùn)練完成后分別保存最好的權(quán)重文件用來做推斷。
圖9、圖10分別展示了部分測試集的真實標(biāo)注和測試集的模型預(yù)測結(jié)果,通過比較模型預(yù)測結(jié)果和真實標(biāo)注,可以看到模型在回歸框生成和類別預(yù)測方面準(zhǔn)確率方面做得都比較好。
圖9 測試集的標(biāo)準(zhǔn)值Fig.9 Standard value of the test set
圖10 測試集的預(yù)測效果Fig.10 Prediction effect of the test set
由表2可知,(1)對于焊縫檢測任務(wù),在僅有不到100張圖像的數(shù)據(jù)量下,分類性能可以達到94.63%,平均精準(zhǔn)度可以達到69.82%。(2)如果對圖片做較小尺寸的縮放,會損失大量的信息,說明輸入圖片的縮放尺寸在合適范圍內(nèi)越大越好。(3)在模型結(jié)構(gòu)相同的情況下,一般來說模型越大效果會越好;但這并不絕對,這是因大參數(shù)量的模型需要大量數(shù)據(jù)來訓(xùn)練,否則難以收斂。(4)提出的模型改進方案在2項評價指標(biāo)上都有較好表現(xiàn),但需要更多的數(shù)據(jù)才能展現(xiàn)其優(yōu)越的性能。
本設(shè)計在YOLOv5中添加了一些前沿技術(shù),如Swintransformer、Bi-FPN和一些經(jīng)驗豐富的技巧,在焊縫檢測的任務(wù)上取得了不錯的表現(xiàn),該檢測器尤其適用于焊縫檢測場景下的小目標(biāo)缺陷檢測。嘗試了大量功能,并使用其中一些功能來提高目標(biāo)檢測器的準(zhǔn)確性。未來希望在擴大數(shù)據(jù)集的基礎(chǔ)上進一步驗證提出模型的優(yōu)越性,同時開展無監(jiān)督方向的研究;希望本文能為開發(fā)者和研究人員在分析和處理焊縫檢測場景方面提供更多的幫助。