費(fèi) 凡,周永濤,周 順 ,程海龍
(1.中國石油北京天然氣管道有限公司 北京 100101;2.中國石油管道有限責(zé)任公司 北京 100000)
X射線檢測作為焊縫缺陷的無損檢測技術(shù)之一,是保證焊接結(jié)構(gòu)件質(zhì)量的重要手段。人工評定射線膠片存在很大的主觀性,易產(chǎn)生較多的誤判和漏判[1]。對數(shù)字化膠片的實時檢測和缺陷自動識別一直是無損檢測方向的研究熱點(diǎn),實現(xiàn)方式多為特征工程及傳統(tǒng)機(jī)器學(xué)習(xí)[2-3],效率及穩(wěn)定性仍有不足。近年來,伴隨人工智能技術(shù)的發(fā)展,基于深度學(xué)習(xí)的圖像檢測技術(shù)趨于成熟,國外已經(jīng)利用深度學(xué)習(xí)的方法進(jìn)行數(shù)字化膠片的實時檢測和缺陷自動識別[4],證明了技術(shù)的可行性。本文將利用基于深度學(xué)習(xí)的圖像識別技術(shù)構(gòu)建管道環(huán)焊縫缺陷智能檢測分析框架,從焊縫膠片底片數(shù)字化開始,經(jīng)過圖像預(yù)處理、訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型等步驟,最終通過算法智能識別存在缺陷的焊縫膠片并定位標(biāo)注出疑似缺陷的位置。
本文基于深度學(xué)習(xí)構(gòu)建管道環(huán)焊縫缺陷智能檢測分析框架,主要包含數(shù)字化焊縫膠片、圖像預(yù)處理、訓(xùn)練智能檢測分析模型等步驟。數(shù)字化焊縫膠片由專用數(shù)字化系統(tǒng)掃描物理膠片獲得,用作智能檢測分析模型的訓(xùn)練和測試數(shù)據(jù)。圖像預(yù)處理通過濾波降噪、圖像分割、統(tǒng)一圖像灰度、定位焊縫區(qū)域等方法,提升圖像質(zhì)量,提取焊縫區(qū)域??蚣苤猩婕皟蓚€深度學(xué)習(xí)模型。第一個是利用ResNet網(wǎng)絡(luò)訓(xùn)練圖像分類模型,該算法通過卷積網(wǎng)絡(luò)對圖像進(jìn)行檢索,提取圖像特征,實現(xiàn)對特征的有監(jiān)督的學(xué)習(xí),把特征提取和分類器統(tǒng)一在一個模型里,實現(xiàn)識別分類功能[5];第二個是利用Mask RCNN網(wǎng)絡(luò)訓(xùn)練缺陷標(biāo)注模型,對存在缺陷的焊縫膠片圖像進(jìn)行定位標(biāo)注。這兩個模型可輔助工作人員快速檢出疑似存在缺陷的數(shù)字化膠片,并標(biāo)注疑似缺陷,提升焊縫缺陷篩查效率。管道環(huán)焊縫缺陷智能檢測分析框架如圖1所示。
圖1 管道焊縫缺陷智能檢測分析框架
數(shù)字化圖像是管道焊縫缺陷智能檢測分析的基礎(chǔ)。焊縫射線膠片數(shù)字化的方法是:使用專用數(shù)字化系統(tǒng)(中晶MII-1000)將物理膠片掃描為16 bit的BMP圖像格式文件,掃描時需要根據(jù)物理膠片的黑度值調(diào)整掃描黑度參數(shù)[6]。管道焊縫膠片數(shù)字化的效果如圖2所示。
圖2 數(shù)字化后的焊縫膠片
卷積網(wǎng)絡(luò)(CNN)在處理圖像時采用滑動窗口機(jī)制。焊縫缺陷檢測中,整個膠片圖像尺寸很大,缺陷特征只是圖像的一部分,將膠片圖像直接縮小到網(wǎng)絡(luò)中的尺寸,會導(dǎo)致一定尺度比例的損失,也會使整體的效率降低。滑動的步長不應(yīng)設(shè)置太小,否則會出現(xiàn)較多的無效碎片圖像,時間效率和處理性能也會變差,因此采用固定短邊,長邊固定為690,以步長50的方式進(jìn)行滑動窗口處理。
物理膠片黑度值過高和過低都會導(dǎo)致數(shù)字化膠片中存在大量噪聲,容易影響與混淆缺陷特征,需要繼續(xù)進(jìn)行降噪處理。降噪處理必須考慮到缺陷特征本身,防止缺陷細(xì)節(jié)的丟失。濾波器是常用的降噪方法,分為線性濾波器和非線性濾波器。考慮到缺陷細(xì)節(jié)的重要性與復(fù)雜性,選擇平滑且細(xì)節(jié)損失較少的中值濾波器進(jìn)行5×5的降噪處理,如圖3所示。
圖3 降噪處理后圖像
提取焊縫區(qū)域目的是將圖像的焊縫區(qū)域和其他元素進(jìn)行分割。這樣可以大幅減少訓(xùn)練量、清除干擾因素,提高識別效果。提取焊縫區(qū)域的第一步是用最佳閾值法將灰度圖像轉(zhuǎn)為二值化圖像,將感興趣區(qū)域與背景分離。最佳閾值的選擇,采用大津法(OTSU算法)[7],這是一種使用最大類間方差作為衡量前景和背景標(biāo)準(zhǔn)的方法,計算簡單,不受圖像亮度和對比度的影響。提取焊縫區(qū)域的第二步是根據(jù)二值化后的直方圖分布確定區(qū)域,裁剪出合適的焊縫區(qū)域。圖4、圖5為提取過程示例。
圖4 二值化后的圖像
圖5 焊縫區(qū)域圖像
經(jīng)上述圖像預(yù)處理后,焊縫圖像存在對比度低、關(guān)鍵細(xì)節(jié)特征不明顯、灰度值分布集中等問題。這些問題的出現(xiàn)使得缺陷特征視覺效果較差,導(dǎo)致后面模型檢測識別產(chǎn)生較大的誤差。為此采用曝光融合算法框架[8]對圖像的對比度進(jìn)行增強(qiáng),圖6為增強(qiáng)處理后的圖像。
圖6 增強(qiáng)處理后的焊縫區(qū)域圖像
實驗中原始射線膠片數(shù)據(jù)來源于陜京三線,經(jīng)過掃描數(shù)字化處理、整理和挑選,總共含有1 000張正常的膠片圖像和300張存在缺陷的膠片圖像(主要以氣孔、燒穿、條渣與未熔合4類缺陷為主),作為后期實驗的訓(xùn)練集與測試集。收集的數(shù)據(jù)中缺陷類型具體分布見表1。
表1 數(shù)據(jù)分布 個
基于深度學(xué)習(xí)圖像特征分類方法選擇合適的數(shù)據(jù)用于模型訓(xùn)練。需要篩選特征突出、沒有其他干擾信息的數(shù)據(jù),降低可能出現(xiàn)過擬合問題的概率。焊縫缺陷識別不同于一般的圖像分類任務(wù),缺陷特征的復(fù)雜多樣性是難點(diǎn)。比如說,同一種缺陷可能存在著多個不同的特征,同一個缺陷可能被不同的評片人員分到不同的類別中,有些缺陷特征存在但細(xì)節(jié)不清晰等等。實驗通過人工篩選出有效、高質(zhì)量的圖像。
實驗注重膠片圖像的質(zhì)量和缺陷的細(xì)節(jié)特征。對于數(shù)據(jù)集里的所有膠片圖像,進(jìn)行降噪、焊縫區(qū)域提取以及圖像增強(qiáng)等預(yù)處理工作,提升圖像本身的質(zhì)量,使缺陷細(xì)節(jié)可以更加突出,為模型的高準(zhǔn)確率提供保障。存在缺陷的焊縫圖像部分樣例如圖7所示。
圖7 存在缺陷的焊縫圖像
在圖像分類任務(wù)上有許多卷積網(wǎng)絡(luò)已被證明可以獲得很好的結(jié)果,比如AlexNet[9]、VGGNet[10]等。實驗采用較新也較穩(wěn)定的深度殘差網(wǎng)絡(luò)。深度殘差網(wǎng)絡(luò)由微軟研究院的Kaiming He等4名華人提出。通過使用ResNet Unit成功訓(xùn)練出了152層的神經(jīng)網(wǎng)絡(luò),這一結(jié)果贏得了SVRC2015分類任務(wù)第一名,在top5上的錯誤率為3.57%,同時參數(shù)量比VGGNet低,效果非常突出。深度殘差網(wǎng)絡(luò)結(jié)構(gòu)可以加速神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,模型的準(zhǔn)確率有比較大的提升。同時網(wǎng)絡(luò)的推廣性非常好,甚至可以直接用到谷歌的深度學(xué)習(xí)網(wǎng)絡(luò)中[11]。
深度殘差網(wǎng)絡(luò)中增加了直連通道,解決因為網(wǎng)絡(luò)層數(shù)過深而導(dǎo)致誤差增大的問題,即Highway Network的思想,并允許原始輸入信息直接傳到后面的層中。
采用構(gòu)建50層ResNet50網(wǎng)絡(luò)結(jié)構(gòu)模型,將每一層的參數(shù)減半,減少訓(xùn)練時間,并在分類準(zhǔn)確性和時間效率上做到相對折中。利用深度學(xué)習(xí)框架PyTorch構(gòu)建網(wǎng)絡(luò)模型,構(gòu)建的模型共有約450萬個參數(shù),網(wǎng)絡(luò)中的神經(jīng)元連接總數(shù)近10億個。對比AlexNet的約6 000萬個參數(shù),該模型在網(wǎng)絡(luò)層數(shù)、訓(xùn)練參數(shù)上都有著很大的優(yōu)勢[12]。由于我們的框架輸出分類為2類,所以將網(wǎng)絡(luò)最后的全連接層的神經(jīng)元個數(shù)設(shè)置為2個,優(yōu)化算法使用Adam,考慮到模型的層數(shù),學(xué)習(xí)率設(shè)置為0.01。模型的輸入為224×224大小的兩通道圖像,第一個卷積層conv1的參數(shù)是64個7×7的卷積核,卷積核的步長為2,每一次卷積過后都會接一個批量標(biāo)準(zhǔn)化層,使得模型的容納能力增加。激活函數(shù)使用的是線性整流函數(shù)算法,并且通過最大池化層進(jìn)行下采樣。網(wǎng)絡(luò)的最后一層是歸一化指數(shù)函數(shù)(softmax)回歸層,用于輸出圖像分到哪一類別的概率[12]。回歸表現(xiàn)形式為:它將多個神經(jīng)元的輸入映射到(0,1)區(qū)間內(nèi),形成一個概率的概念,從而進(jìn)行分類任務(wù)。
5.2.1 模型訓(xùn)練
實驗的環(huán)境,使用一塊10 GB顯存的GTX1080TI顯卡,centos 7操作系統(tǒng),網(wǎng)絡(luò)模型基于深度學(xué)習(xí)框架PyTorch搭建,編程語言使用的是Python3.6。從收集到的數(shù)據(jù)中隨機(jī)挑選圖像分別作為訓(xùn)練集和測試集,分布數(shù)量見表2。
表2 構(gòu)建的數(shù)據(jù)集 個
實驗過程中使用了數(shù)據(jù)增廣技術(shù),增大數(shù)據(jù)集的容量。沒有采用常用的隨機(jī)裁切的方法,因為隨機(jī)裁切產(chǎn)生的圖像碎片,可能已經(jīng)改變其屬性特征,產(chǎn)生錯誤的數(shù)據(jù)分類。而是采用了旋轉(zhuǎn)和翻轉(zhuǎn)的方式進(jìn)行圖像增廣,并對圖像進(jìn)行歸一化處理。
實驗基于ImageNet1000數(shù)據(jù)集的預(yù)訓(xùn)練模型進(jìn)行遷移訓(xùn)練。權(quán)值的基礎(chǔ)學(xué)習(xí)率設(shè)置為0.01,動量為0.9,權(quán)值衰減為0.000 5,保留每一次epochs產(chǎn)生的權(quán)重,并對驗證集實時驗證,直至網(wǎng)絡(luò)收斂[12]。最終模型大小約為97 MB。
為了比較ResNet50與VGG16、AlexNet等網(wǎng)絡(luò)的效果,我們使用相同的數(shù)據(jù)集,在沒有任何調(diào)整的VGG16與AlexNet上也進(jìn)行了訓(xùn)練。這3個網(wǎng)絡(luò)在模型大小、檢測時間和數(shù)據(jù)召回率等方面的比較見表3。ResNet50網(wǎng)絡(luò)參數(shù)比其他網(wǎng)絡(luò)都小了很多,訓(xùn)練用時也低很多,檢測時間和召回率都更加優(yōu)越。
表3 模型性能比較
5.2.2 模型評估
在深度學(xué)習(xí)圖像分類領(lǐng)域,針對一個模型最終好壞的評估標(biāo)準(zhǔn)有很多,例如精確率(precision)、召回率(recall)、準(zhǔn)確率(accuracy)等性能度量概念。
模型經(jīng)過對測試集的檢測識別,根據(jù)分類時預(yù)測與實際的情況,作出混淆矩陣,見表4、表5, P代表預(yù)測數(shù),A代表實際。
表4 不含數(shù)據(jù)增廣算法模型的混淆矩陣
表5 含數(shù)據(jù)增廣算法模型的混淆矩陣
根據(jù)所得到的混淆矩陣,實驗對焊縫缺陷識別的分類結(jié)果采用準(zhǔn)確率和召回率進(jìn)行評估。準(zhǔn)確率=正確預(yù)測的正反例數(shù)/總數(shù),召回率=正確預(yù)測到的正例數(shù)/實際正例總數(shù)。經(jīng)過數(shù)據(jù)增廣后模型在各項性能度量都有顯著提升,根據(jù)公式可以得出,分類準(zhǔn)確率為72.5%,對存在缺陷的膠片圖像的召回率為90%。
由于焊縫特征多樣性、缺陷樣本數(shù)量過少、整體的數(shù)據(jù)量不足,得到的準(zhǔn)確率波動幅度比較大,對于存在缺陷的膠片圖像的召回率表現(xiàn)不錯,數(shù)據(jù)量的增大可帶來更好的效果。
5.2.3 模型時效分析
在對焊縫缺陷的檢測識別過程中,算法的時效性也是一項關(guān)鍵的性能。本文方法對單張測試圖像的處理時間小于2 ms,由于網(wǎng)絡(luò)模型參數(shù)較少、模型小、加載快,對比其他方法在時效性上有著很大的提升,時效性對比如表3所示?;谏疃葘W(xué)習(xí)方法的算法,通過GPU加速可以提升時效性。另外硬件性能的提升和模型網(wǎng)絡(luò)的優(yōu)化,可以獲得更高的時間效率。
Mask R-CNN[13]是Kaiming He基于以往的faster rcnn架構(gòu)提出的新的卷積網(wǎng)絡(luò),一舉完成了對象實例分割。該方法有效地通過增加不同的分支,可以完成目標(biāo)分類、目標(biāo)檢測、語義分割、實例分割、人體姿勢識別等多種任務(wù),靈活而強(qiáng)大。Mask R-CNN中最重要的亮點(diǎn)在于ROIAlign。在之前的算法中存在著特征圖與原始圖像不對準(zhǔn)(mis-alignment)的問題,影響著檢測精度。而Mask R-CNN提出了RoIAlign的方法來取代ROI池化,RoIAlign可以保留大致的空間位置,其抽象架構(gòu)如圖8所示[13]。
圖8 Mask R-CNN抽象框架圖
5.3.1 模型訓(xùn)練
本實驗是利用Mask R-CNN網(wǎng)絡(luò)中語義分割功能對存在缺陷的膠片圖像進(jìn)行缺陷的定位標(biāo)注。實驗使用一塊10 GB顯存的GTX1080TI顯卡,centos 7操作系統(tǒng),網(wǎng)絡(luò)模型基于深度學(xué)習(xí)框架PyTorch搭建,編程語言使用的是Python3.6。
模型訓(xùn)練需要對已有數(shù)據(jù)集進(jìn)行標(biāo)注處理,生成標(biāo)注圖像文件和標(biāo)注位置信息文件,整理成Mask R-CNN需要的COCO數(shù)據(jù)集樣式。焊縫缺陷標(biāo)注圖像樣例如圖9所示。
圖9 焊縫缺陷標(biāo)注圖像
數(shù)據(jù)整理完成后,針對已有數(shù)據(jù)對網(wǎng)絡(luò)結(jié)構(gòu)與訓(xùn)練參數(shù)進(jìn)行調(diào)整:1)凍結(jié)網(wǎng)絡(luò)其他功能模塊,如分類、檢測,只保留分割模塊的訓(xùn)練;2)修改預(yù)訓(xùn)練模型參數(shù),凍結(jié)最后輸出層參數(shù);3)修改學(xué)習(xí)率、訓(xùn)練步長、訓(xùn)練批次等參數(shù);4)保留每一次epochs產(chǎn)生的權(quán)重,并對驗證集實時驗證,直至網(wǎng)絡(luò)收斂。
5.3.2 實現(xiàn)效果
經(jīng)過訓(xùn)練獲得的語義分割模型,對測試圖片進(jìn)行測試,可以完成缺陷特征的定位標(biāo)注,如圖10所示。目前模型訓(xùn)練數(shù)據(jù)集中圓形缺陷數(shù)據(jù)比例大,可以很好地實現(xiàn)對圓形缺陷的標(biāo)注。
圖10 焊縫缺陷標(biāo)注
本文在人工智能技術(shù)高速發(fā)展的背景下,提出了基于深度學(xué)習(xí)的管道焊縫缺陷檢測識別框架,闡述了各步驟的具體算法和模型訓(xùn)練方法,通過實驗證明了框架的可行性。利用深度學(xué)習(xí)模型和各種圖像處理算法可以完成缺陷智能檢測分析工作。實驗結(jié)果表明,該方法以較短的訓(xùn)練時間可獲得較高的焊縫缺陷識別準(zhǔn)確率,并能實現(xiàn)圓形缺陷的定位標(biāo)注?,F(xiàn)有焊縫缺陷(尤其橫向裂紋、咬邊、條渣等缺陷)樣本數(shù)據(jù)量較少,當(dāng)前模型對橫向裂紋等條塊型缺陷的適用性較差。接下來將收集更多缺陷樣本數(shù)據(jù),完善訓(xùn)練和測試數(shù)據(jù)集,進(jìn)一步優(yōu)化深度學(xué)習(xí)模型算法,提高模型各項指標(biāo)和適用性。