石愛賢, 秦訓(xùn)鵬, 吳 強(qiáng), 金永洪, 黃 展
(1.武漢理工大學(xué) 現(xiàn)代汽車零部件技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430070; 2.武漢理工大學(xué) 湖北省新能源與智能網(wǎng)聯(lián)車工程技術(shù)研究中心,湖北 武漢 430070)
汽車、工程機(jī)械、航空航天領(lǐng)域大量的關(guān)鍵零部件采用鍛造成形,鍛件在熱鍛成形、熱處理過程中,表面易產(chǎn)生折疊、裂紋等缺陷,導(dǎo)致表面應(yīng)力集中,在服役過程中成為薄弱點(diǎn)使零件發(fā)生斷裂失效。為了保證鍛件質(zhì)量,需要對(duì)生產(chǎn)的鍛件進(jìn)行無損檢測外排除表面裂紋。熒光磁粉檢測作為一種能夠?qū)崿F(xiàn)低成本、快速、大批量的無損檢測技術(shù),被廣泛應(yīng)用于車用鍛件的缺陷檢測中。目前,磁粉檢測普遍采用人眼識(shí)別裂紋,易誤識(shí)別、漏識(shí)別,且勞動(dòng)強(qiáng)度大、效率低,甚至對(duì)工人身體造成損害。
近年來,隨著人工智能、機(jī)器人技術(shù)的進(jìn)步,基于機(jī)器視覺的磁粉缺陷檢測得到迅速的發(fā)展。相機(jī)視覺自動(dòng)化檢測裂紋可以消除檢測過程的主觀性,提高檢測精度。針對(duì)磁粉檢測缺陷識(shí)別的研究大致可以分為以下2類:基于傳統(tǒng)機(jī)器視覺的檢測方法;結(jié)合機(jī)器視覺和深度學(xué)習(xí)的檢測方法[1]。
傳統(tǒng)機(jī)器視覺檢測方法通過在圖像中提取缺陷特征來判斷是否存在缺陷。文獻(xiàn)[2]提出了一種復(fù)合閾值分析算法,實(shí)現(xiàn)了對(duì)制動(dòng)盤裂紋的分割,采用梯度特征區(qū)分裂紋和偽裂紋;文獻(xiàn)[3]根據(jù)灰度特征和紋理特征,基于隨機(jī)森林建立了分類模型,實(shí)現(xiàn)對(duì)列車車輪踏面裂紋的分割;文獻(xiàn)[4]提出了結(jié)合梯度特征和線段檢測法(line segment detector,LDS)算法識(shí)別工件裂紋;文獻(xiàn)[5]提出了一種裂紋提取算法,提取幾何特征和紋理特征,利用支持向量機(jī)(support vector machine,SVM)訓(xùn)練出分類器,實(shí)現(xiàn)了對(duì)曲軸裂紋的分割。與傳統(tǒng)機(jī)器視覺方法不同,深度學(xué)習(xí)方法自動(dòng)提取特征的高級(jí)語義,并在同一網(wǎng)絡(luò)中對(duì)特征進(jìn)行識(shí)別分類。文獻(xiàn)[6]提出了基于AlexNet的磁粉探傷識(shí)別模型,識(shí)別精度達(dá)到95%;文獻(xiàn)[7]針對(duì)列車車輪裂紋,提出了一種基于Faster R-CNN的檢測模型,準(zhǔn)確率較傳統(tǒng)的canny檢測算法高出21.73%;文獻(xiàn)[8]提出了一種基于改進(jìn)EfficientNet的裂紋識(shí)別網(wǎng)絡(luò),該網(wǎng)絡(luò)在EfficientNet的基礎(chǔ)上加入SE-Net和特征金字塔網(wǎng)絡(luò)(feature Pyramid network,FPN),并引入DIoU,能在較暗的環(huán)境下工作,提高了識(shí)別的準(zhǔn)確率。
當(dāng)前,基于深度學(xué)習(xí)的智能磁粉檢測技術(shù)多為裂紋目標(biāo)檢測,對(duì)于裂紋分割的研究多基于傳統(tǒng)機(jī)器視覺,不能適應(yīng)檢測環(huán)境變化,不具備好的泛化性和魯棒性;對(duì)于裂紋分割的研究集中于輪廓簡單、裂紋明顯的零件,在復(fù)雜環(huán)境中分割小尺度裂紋精度低。傳統(tǒng)的一階段缺陷圖像分割網(wǎng)絡(luò),例如FCN、SegNet、Mask-RCNN、UNET等,在通用數(shù)據(jù)集上達(dá)到了不錯(cuò)的效果,但在面對(duì)具體工程問題時(shí),也存在局限性。針對(duì)這些問題,本文提出了一種新的基于兩階段卷積神經(jīng)網(wǎng)絡(luò)的裂紋分割方法,在保證檢測速度的情況下,實(shí)現(xiàn)對(duì)裂紋高精度分割。
為模擬磁粉檢測中識(shí)別裂紋的流程,本文搭建了裂紋檢測模擬實(shí)驗(yàn)平臺(tái)。實(shí)驗(yàn)平臺(tái)由紫外光源、相機(jī)、上位機(jī)、檢測臺(tái)組成,如圖1所示。為屏蔽白光的干擾,實(shí)驗(yàn)在暗室中進(jìn)行。紫外光源強(qiáng)度為3 000 μW/cm2,相機(jī)分辨率為 3 072 px×3 072 px。轉(zhuǎn)向節(jié)臂是非常典型的車用鍛件,連接轉(zhuǎn)向系和行駛系、承受力和載荷,其可靠性對(duì)于行車安全至關(guān)重要,絕不允許表面存在裂紋。本文以轉(zhuǎn)向節(jié)臂為例,構(gòu)造轉(zhuǎn)向節(jié)臂缺陷數(shù)據(jù)集,訓(xùn)練兩階段神經(jīng)網(wǎng)絡(luò)模型,檢驗(yàn)算法的魯棒性。
圖1 實(shí)驗(yàn)設(shè)備原理示意圖
在智能檢測時(shí),模型需要輸出的信息為是否存在裂紋,以及裂紋的位置和幾何信息。根據(jù)對(duì)數(shù)據(jù)集的分析和企業(yè)實(shí)際生產(chǎn)經(jīng)驗(yàn),發(fā)現(xiàn)轉(zhuǎn)向節(jié)臂磁粉檢測存在以下特征:
(1) 裂紋出現(xiàn)的區(qū)域比較集中,多出現(xiàn)在轉(zhuǎn)向節(jié)臂頸部,如圖2所示。
圖2 轉(zhuǎn)向節(jié)臂頸部裂紋
(2) 裂紋的尺度大小不一,數(shù)據(jù)集的裂紋分布在幾毫米到幾百毫米之間。
(3) 轉(zhuǎn)向節(jié)臂上存在的加工痕跡、氧化皮、輪廓線對(duì)檢測存在干擾。
針對(duì)上述問題,為了保證本文提出的基于兩階段卷積神經(jīng)網(wǎng)絡(luò)的裂紋分割方法的實(shí)施,建立了裂紋識(shí)別分割策略,如圖3所示。通過構(gòu)建裂紋定位模型獲得裂紋的位置,并通過構(gòu)建裂紋分割模型獲得像素級(jí)的裂紋分割結(jié)果。
圖3 裂紋識(shí)別分割策略
裂紋定位模型從復(fù)雜背景中定位裂紋位置,并將含有裂紋的區(qū)域從原圖中分離,因此需要模型具有強(qiáng)抗干擾能力和識(shí)別能力。SSD算法是由文獻(xiàn)[9]在2015年提出的基于深度學(xué)習(xí)的目標(biāo)檢測算法,具備從復(fù)雜的背景中精準(zhǔn)快速檢測出目標(biāo)物體的能力。SSD算法在YOLO的基礎(chǔ)上吸取了Faster-RCNN的錨框機(jī)制,在保證檢測速度的情況下,精度與Faster-RCNN相差不大。本文選用SSD算法為裂紋定位模型基本框架,為了保證模型能夠準(zhǔn)確提取裂紋特征,針對(duì)磁粉檢測工程環(huán)境對(duì)SSD算法進(jìn)行改進(jìn)。改進(jìn)的SSD算法以Resnet50作為基礎(chǔ)網(wǎng)絡(luò),增強(qiáng)模型特征提取能力;同時(shí)在特征提取結(jié)構(gòu)中加入空間注意力機(jī)制,使模型關(guān)注容易出現(xiàn)裂紋的位置,消除背景對(duì)檢測的干擾,增強(qiáng)模型對(duì)圖像細(xì)節(jié)的敏感度;通過引入通道注意力機(jī)制使模型關(guān)注裂紋的特征,消除自身輪廓線對(duì)檢測的干擾,增強(qiáng)模型的魯棒性,提高裂紋分割的精度。
2.2.1 模型總體結(jié)構(gòu)
裂紋定位模型結(jié)構(gòu)如圖4所示,由基礎(chǔ)網(wǎng)絡(luò)層、特征提取層、預(yù)測層、非極大值抑制構(gòu)成。
圖4 裂紋定位模型結(jié)構(gòu)
從圖4可以看出,取Resnet50的前4層[Conv-1,Conv-2,Conv-3,Conv-4]作為基礎(chǔ)網(wǎng)絡(luò),從原圖中提取特征,輸出初始特征圖F0,在此基礎(chǔ)上,添加一系列卷積層[Conv-5,Conv-6,Conv-7,Conv-8,Conv-9]作為特征提取層,生成不同尺度的特征圖[F1,F2,F3,F4,F5],從多個(gè)層次對(duì)裂紋進(jìn)行檢測,提高模型的魯棒性。
網(wǎng)格模型結(jié)構(gòu)見表1所列。表1中:w為卷積核或特征圖的寬度;h為卷積核或特征圖的高度;c為卷積核個(gè)數(shù);Ch和S分別表示通道和空間注意力模塊。
表1 網(wǎng)絡(luò)模型結(jié)構(gòu)
2.2.2 改進(jìn)殘差網(wǎng)絡(luò)
在網(wǎng)絡(luò)層數(shù)不斷加深時(shí),堆疊過度的神經(jīng)網(wǎng)絡(luò)層會(huì)加劇梯度消失和梯度爆炸,準(zhǔn)確度反而降低。文獻(xiàn)[10]提出了一種新的網(wǎng)絡(luò)結(jié)構(gòu)Resnet,采用殘差結(jié)構(gòu)避免出現(xiàn)梯度消失和梯度爆炸。為了確保對(duì)小裂紋的精準(zhǔn)識(shí)別,本文在Resnet的殘差結(jié)構(gòu)基礎(chǔ)上加入卷積注意力模塊(convolutional bock attention module,CBAM),突出檢測特征,優(yōu)化檢測結(jié)果。改進(jìn)后的殘差模塊如圖5所示。CBAM通過構(gòu)建空間和通道2個(gè)注意力模塊,從輸入的特征圖上提取出空間和通道2個(gè)方面的注意力信息,將獲得的信息進(jìn)行整合,從而使特征圖的特征更加精煉,提高計(jì)算的效率和準(zhǔn)確率,其公式[11]為:
(1)
其中:F為輸入特征圖;MC為通道注意力特征向量;MS為空間注意力矩陣;?表示矩陣對(duì)應(yīng)元素相乘;F′為提取通道注意力特征圖;F″為提取通道注意力和空間注意力特征圖。
為了能從復(fù)雜環(huán)境中識(shí)別到裂紋特征,尤其是針對(duì)小尺度裂紋的識(shí)別,在裂紋定位模塊中引入通道注意力,捕捉輸入特征圖特征通道之間的重要性,排除無關(guān)特征的干擾,從而提高模型的識(shí)別能力。通道注意力模塊由池化層、多層感知機(jī)、激活函數(shù)3個(gè)部分組成。對(duì)于輸入特征圖F,分別進(jìn)行最大值池化和平均值池化,獲得最大池化向量和平均池化向量;將2個(gè)向量輸入到一層隱藏層的多層感知機(jī),經(jīng)過感知機(jī)處理得到向量相加,通過Sigmoid激活函數(shù),就得到最終的通道權(quán)重向量。將權(quán)重向量與特征圖F點(diǎn)乘就可得到通道注意力特征提取向量MC,其計(jì)算公式如下:
MC(F)=Sigmoid(MLP(AvgPool(F))+
MLP(maxPool(F)))
(2)
其中:Sigmoid為激活函數(shù);MLP為多層感知機(jī);AvgPool為平均值池化;maxPool為最大值池化。
為了能從復(fù)雜的檢測環(huán)境下檢測出裂紋的位置,需要對(duì)目標(biāo)中的特征進(jìn)行聚焦,排除背景噪聲的干擾,關(guān)注容易產(chǎn)生裂紋的位置,因此本文引入由池化層、卷積層、激活函數(shù)組成的空間注意力模塊。在定位模型中,對(duì)于輸入的特征圖F′,在空間方向進(jìn)行最大值池化和平均值池化,生成2個(gè)池化矩陣,將這2個(gè)矩陣進(jìn)行連接運(yùn)算,組成一個(gè)張量輸入到卷積神經(jīng)網(wǎng)絡(luò),卷積計(jì)算后的向量經(jīng)過激活函數(shù)處理得到最終的空間注意力權(quán)重向量,將空間注意力權(quán)重向量與輸入特征圖F′點(diǎn)乘就得到融合空間注意力和通道注意力的特征圖F′。其計(jì)算公式為:
MC(F′)=Sigmoid(Conv7×7([AvgPool(F′);
maxPool(F′)]))
(3)
其中,Conv7×7為卷積核大小7×7的卷積層。
UNET是常用的圖像分割模型,由編碼器和解碼器組成,通過下采樣和上采樣獲取圖像特征。UNET的采樣結(jié)構(gòu)為固定4層,UNET++在UNET的基礎(chǔ)上改進(jìn)固定采樣結(jié)構(gòu),在下采樣之后都對(duì)其進(jìn)行相應(yīng)次數(shù)的上采樣,得到多個(gè)級(jí)別的特征映射層[12]。UNET++采用含有多個(gè)卷積層的跳躍連接,將編碼層的信息經(jīng)過卷積提取之后再輸入到解碼層,可以減小編碼層與解碼層之間的信息差,并且能夠讓網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)不同深度特征信息的重要性,卷積層的數(shù)量由特征層的深度決定。
UNET++結(jié)構(gòu)圖[13]如圖6所示。
圖6 UNET++結(jié)構(gòu)圖
xi,j計(jì)算公式如下:
(4)
其中:Conv()代表卷積計(jì)算;u()代表上采樣運(yùn)算。
同時(shí),UNET++在中間層加入了深監(jiān)督機(jī)制,監(jiān)測網(wǎng)絡(luò)中間層的輸出,避免模型在訓(xùn)練過程中產(chǎn)生梯度消失的現(xiàn)象,防止反向傳播損失計(jì)算時(shí)對(duì)接近輸入層的有效性降低。UNET++含有4個(gè)層級(jí)的特征圖,采用深監(jiān)督機(jī)制可以通過中間層的輸出調(diào)整網(wǎng)絡(luò)。損失函數(shù)計(jì)算公式如下:
(5)
采用深監(jiān)督機(jī)制可以計(jì)算編碼層的每一層的損失,可以使淺層的網(wǎng)絡(luò)得到更好的訓(xùn)練,網(wǎng)絡(luò)也能學(xué)習(xí)到更多低級(jí)別的語義特征,增強(qiáng)網(wǎng)絡(luò)的魯棒性和分割的精度。
本文采集的原始數(shù)據(jù)集為102張,通過labelme軟件分別進(jìn)行目標(biāo)檢測框和圖像分割真值的標(biāo)注。為防止模型過擬合,提高模型收斂的速度,將標(biāo)注完成的數(shù)據(jù)集經(jīng)過隨機(jī)旋轉(zhuǎn)、隨機(jī)縮小、改變對(duì)比度、改變亮度、改變顏色空間、隨機(jī)翻轉(zhuǎn)等8種方法,擴(kuò)充到5 100張。
數(shù)據(jù)增強(qiáng)的方法如圖7所示。從圖7可以看出,增強(qiáng)后的數(shù)據(jù)集擴(kuò)充了樣本數(shù)量,豐富了圖像姿態(tài),增強(qiáng)了模型的魯棒性和對(duì)于環(huán)境變化的適應(yīng)性。將其中的80%作為訓(xùn)練集,10%作為測試集,10%作為驗(yàn)證集。
圖7 實(shí)驗(yàn)數(shù)據(jù)集增強(qiáng)
本次實(shí)驗(yàn)采用的平臺(tái)為Inter Xeon gold 6254,GPU為NVIDIA RTX2080TI,系統(tǒng)為Windows 10。
為了合理評(píng)價(jià)本文提出的模型,本次實(shí)驗(yàn)采用平均精度(average precision,AP)和 交并比(intersection over union,IoU)作為裂紋分割網(wǎng)絡(luò)圖像分割精度的評(píng)價(jià)指標(biāo),采用檢測時(shí)間、參數(shù)量作為模型復(fù)雜度和檢測速度的指標(biāo),其中檢測時(shí)間為檢測一張圖片需要花費(fèi)的時(shí)間。檢測速度采用每秒檢測幀數(shù)(frames per second,FPS)來評(píng)價(jià)。
AP是神經(jīng)網(wǎng)絡(luò)模型識(shí)別物體的平均精度,可通過召回率與精度計(jì)算得到。具體計(jì)算公式如下:
(6)
其中:TP為正樣本判定正確的數(shù)量;FP為正樣本判斷錯(cuò)誤的數(shù)量;FN為負(fù)樣本判定錯(cuò)誤的數(shù)量;TN為負(fù)樣本判定正確的數(shù)量。
IoU為交并比,表征圖像分割結(jié)果與真值之間的相似度,其計(jì)算公式如下:
(7)
為了說明模型的識(shí)別結(jié)果,本文對(duì)SSD原模型、添加空間注意力的模型SSD(Ch)、添加通道注意力的模型SSD(S)以及添加空間和通道注意力的SSD(CBAM)進(jìn)行對(duì)比實(shí)驗(yàn),訓(xùn)練100輪,取100輪中表現(xiàn)最好的模型,實(shí)驗(yàn)進(jìn)行3次,取3次平均值。
實(shí)驗(yàn)過程中平均精度隨訓(xùn)練輪數(shù)增加的關(guān)系如圖8所示,從圖8可以看出SSD(CBAM)平均精度明顯優(yōu)于其他3種方法。
圖8 消融實(shí)驗(yàn)訓(xùn)練過程平均精度變化
消融實(shí)驗(yàn)結(jié)果見表2所列。從表2可以看出,SSD原算法的平均精度為94.9%,在模型中
表2 裂紋檢測模型消融實(shí)驗(yàn)結(jié)果
加入通道注意力模塊時(shí),平均精度達(dá)到95.8%,相比原模型上升0.9%;在模型加入空間注意力模塊時(shí),AP達(dá)到95.6%,相比原模型上升0.7%;在模型中加入空間和通道注意力模塊時(shí),AP達(dá)到97.8%,相比原模型上升2.9%。
同時(shí),從表2可以看出,相比原模型,在加入空間或通道注意力模塊以及同時(shí)加入2種模塊時(shí),空間注意力模塊與通道注意力模塊均對(duì)模型性能有所提升,并且在同時(shí)添加2種模塊時(shí),性能提升更大,達(dá)到2.6%,而且在模型中加入通道注意力模塊時(shí),SSD(Ch)比SSD原模型檢測時(shí)間下降2 ms;加入空間注意力模塊時(shí),SSD(S)比SSD原模型檢測時(shí)間下降1.7 ms;2種模塊均加入時(shí),SSD(CBAM)比SSD原模型檢測時(shí)間下降1.9 ms。因此,在模型中加入通道和空間注意力模塊有助于提高檢測速度,提升檢測精度。
在裂紋分割實(shí)驗(yàn)中,各個(gè)模型輸入圖像的尺寸均為512×512,訓(xùn)練100輪,實(shí)驗(yàn)結(jié)果如圖9所示。
從圖9a~圖9d可以看出,本文方法在訓(xùn)練開始時(shí)就有不錯(cuò)的精度,最終的精度也顯著高于其他3種方法;并且不同于其他3種方法,本文方法在驗(yàn)證集上的表現(xiàn)高于訓(xùn)練集,表明本文方法具有很強(qiáng)的魯棒性。
圖9e表示本文方法、FCN、UNET、SegNet的交并比和檢測時(shí)間,圖9f表示本文方法、FCN、UNET、SegNet的交并比和參數(shù)量。
裂紋檢測分割實(shí)驗(yàn)結(jié)果見表3所列。從表3可以看出,本文方法檢測單張圖片花費(fèi)時(shí)間為70.4 ms,相比UNET范圍時(shí)間高34.4 ms,比SegNet范圍時(shí)間高37.5 ms,比FCN范圍時(shí)間高45.0 ms,但本文方法能達(dá)到14幀/s的檢測速度,超出工程實(shí)際生產(chǎn)節(jié)拍的需要,并且本文方法在裂紋分割的精度上顯著高于其他方法,IoU達(dá)到85.7%,比UNET高出15.5%,比FCN高出28.5%,比SegNet高出18.1%。
表3 裂紋檢測分割實(shí)驗(yàn)結(jié)果
以上結(jié)果表明,本文提出的兩階段方法在檢測時(shí)間上滿足使用要求,在裂紋定位精度和裂紋分割精度上相比傳統(tǒng)的一階段分割方法有了顯著提高。
具體的檢測效果如圖10所示。
圖10 裂紋檢測示例
本文提出了一種新的基于兩階段卷積神經(jīng)網(wǎng)絡(luò)的車用鍛件磁粉檢測裂紋分割方法:第1階段定位裂紋將裂紋從原圖中裁剪分離;第2階段在裁剪的區(qū)域內(nèi)將裂紋和背景進(jìn)行分割,對(duì)裂紋進(jìn)行像素級(jí)精準(zhǔn)分割。UNET++作為裂紋分割模型,在UNET基礎(chǔ)上加入深監(jiān)督機(jī)制,改進(jìn)了損失函數(shù),圖像的分割精度更高。通過實(shí)驗(yàn)驗(yàn)證和綜合對(duì)比,相比于其他目標(biāo)檢測網(wǎng)絡(luò)和圖像分割網(wǎng)絡(luò),本文提出的方法在轉(zhuǎn)向節(jié)臂裂紋數(shù)據(jù)集上的表現(xiàn)更好,表明本文提出的裂紋分割方法具有很強(qiáng)的實(shí)用性和魯棒性,對(duì)不同尺度裂紋的敏感度高。