張龍飛,高煒欣,馮小星
(1.西安石油大學(xué),西安 710065;2.陜西省油氣井測控技術(shù)重點(diǎn)實(shí)驗(yàn)室,西安 710065;3.光電油氣測井與檢測教育部重點(diǎn)實(shí)驗(yàn)室,西安 710065)
長輸油氣管道多采用焊接技術(shù)連接,在焊接過程中由于各種隨機(jī)因素的影響,不可避免的存在裂縫、氣孔等缺陷,從而降低焊件的使用壽命,甚至?xí)碇卮筘?cái)產(chǎn)損失及人身安全問題?;赬射線焊縫圖像的缺陷檢測是一種應(yīng)用較廣泛的彌補(bǔ)措施[1-2]。其檢測結(jié)果直觀、準(zhǔn)確,并可以永久保存,有很多優(yōu)良特性。
在X射線焊縫缺陷檢測領(lǐng)域,方法眾多,文獻(xiàn)[3]提出了模糊識別算法,對缺陷樣本進(jìn)行了試驗(yàn),取得了較好的識別效果。文獻(xiàn)[4]利用計(jì)算特征值的方法對分割處理后的圖像進(jìn)行缺陷分類。文獻(xiàn)[5-6]均采用支持向量機(jī)的方法,文獻(xiàn)[5]用支持向量機(jī)對已分割的缺陷進(jìn)行識別;文獻(xiàn)[6]提出了一種可以對焊縫缺陷自動(dòng)檢測的方法,該方法相比于傳統(tǒng)檢測算法具有更好的適應(yīng)性和通用性。文獻(xiàn)[7]提出了字典矩陣最優(yōu)數(shù)學(xué)模型,該模型通過使用Hopfield神經(jīng)網(wǎng)絡(luò)求解最優(yōu)字典矩陣,提高了缺陷分類的準(zhǔn)確性。
近些年來,人工智能得到了飛速發(fā)展,“深度學(xué)習(xí)”[8]的方法在無損檢測領(lǐng)域也得到了廣泛的應(yīng)用,如文獻(xiàn)[9-12]等。文獻(xiàn)[9-11]均使用基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)網(wǎng)格構(gòu)建方法,文獻(xiàn)[11]進(jìn)一步通過數(shù)學(xué)處理簡化了參數(shù)計(jì)算,防止過擬合的發(fā)生,提高了缺陷識別率。并驗(yàn)證了該方法的適用性。而文獻(xiàn)[12]使用了一種相對復(fù)雜的神經(jīng)網(wǎng)絡(luò),識別率也較高。但由于人工智能是個(gè)發(fā)展非常迅速的領(lǐng)域,將其應(yīng)用于焊縫圖像缺陷識別,仍有很多空白領(lǐng)域值得深入探究。比如一些現(xiàn)有的網(wǎng)絡(luò)復(fù)雜度過高,并不適合焊縫缺缺陷特征的識別,另外識別準(zhǔn)確度也有所不足,在識別框架上有待改進(jìn),這就是文中研究的重點(diǎn)。
文中針對X射線焊縫圖像特征,設(shè)計(jì)了相應(yīng)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks, CNN)結(jié)構(gòu),可以減少內(nèi)存開銷和網(wǎng)絡(luò)參數(shù)個(gè)數(shù),降低模型復(fù)雜度。
實(shí)際工業(yè)生產(chǎn)中X射線焊縫圖像如圖1所示。由圖1可以發(fā)現(xiàn),缺陷和噪聲對比不明顯,噪聲干擾嚴(yán)重,導(dǎo)致缺陷周圍不清晰。利用傳統(tǒng)的大津法對原始圖像進(jìn)行分割處理,結(jié)果如圖2所示。由圖2可知,分割后的圖像,缺陷和噪聲并存,不易直接區(qū)分缺陷和噪聲,且由于缺陷和噪聲面積相對較小,使得特征值求取困難。因此文中提出疑似缺陷區(qū)域(Suspected defect region,SDR)的概念,利用分割結(jié)果標(biāo)定疑似區(qū)域。然后利用CNN直接判定SDR類型,避免了因特征值求取帶來的誤差。疑似局部缺陷區(qū)域定義如圖3所示,分割出的缺陷或噪聲外切矩形外擴(kuò)展5個(gè)像素點(diǎn)后的區(qū)域?yàn)橐伤迫毕輩^(qū)域。
圖1 X射線焊縫缺陷原始圖像
圖2 X射線焊縫圖像分割實(shí)例
圖3 疑似缺陷區(qū)域定義
通過對某標(biāo)段管道焊縫的SDR圖像進(jìn)行標(biāo)定,文中已建立包含600張SDR圖像的缺陷和噪聲數(shù)據(jù)庫。從中選取200張SDR圖像作為樣本圖像,其中圓形缺陷和噪聲圖像各100張,如圖4和圖5所示。
圖4 100組圓形缺陷圖像
圖5 100組噪聲圖像
卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的一種,通過模擬人腦學(xué)習(xí)并分析數(shù)據(jù),可應(yīng)用于焊縫缺陷識別領(lǐng)域。其權(quán)值共享機(jī)制可以有效的降低網(wǎng)絡(luò)中訓(xùn)練參數(shù)的數(shù)量,簡化計(jì)算過程。從缺陷識別的角度出發(fā),卷積神經(jīng)網(wǎng)絡(luò)不但可以降低模型的復(fù)雜程度,還可以直接處理焊縫圖像,避免了特征值的求取。
卷積層將輸入的每一個(gè)神經(jīng)元與上一層的局部感受區(qū)域連接,提取該部分的特征值。卷積的過程可以表示為:
(1)
(2)
卷積后的特征圖像素值可利用式(3)計(jì)算:
(3)
式中:ai,j為卷積后第i行第j列的像素值;D為圖像深度;I為卷積核的大??;wd,m,n為第d通道第m行第n列權(quán)重;ο為偏置項(xiàng)。
卷積前后圖像的大小可由式(4)和式(5)確定。
(4)
(5)
式中:W1與H1分別為卷積后的特征圖的寬度和高度;W0與H0分別為卷積前的圖像的寬度和高度;F為對應(yīng)的卷積核的寬度或高度;P為填充數(shù)量;S為移動(dòng)步長。
池化層(Pooling)也叫下采樣層(Sub sampling layer),主要用于特征降維,壓縮數(shù)據(jù)和參數(shù)的數(shù)量,減小過擬合情況的出現(xiàn),同時(shí)提高模型的容錯(cuò)性,提升訓(xùn)練速度。常見的池化方法有最大池化、平均池化、隨機(jī)池化,而最大池化也是采用比較多的方法,主要選取最大值來作為該區(qū)域的池化結(jié)果。即有:
(6)
(7)
全連接層是神經(jīng)網(wǎng)絡(luò)的最后一層,全連接層的每一個(gè)神經(jīng)元都與前一層的每個(gè)神經(jīng)元全連接,然后經(jīng)過分類器的運(yùn)算,計(jì)算得出各缺陷種類的概率。
(8)
在全連接層中,二維圖像的特征圖被拼接為一維特征圖作為全連接層的輸入。全連接層的輸入可通過對輸入加權(quán)求和并通過激活函數(shù)的響應(yīng)得到:
ck=f(zk)
(9)
zk=wkck-1+ok
(10)
式中:zk為全連接層k的凈激活;wk為全連接層的權(quán)重系數(shù);οk為全連接層的偏置。
卷積神經(jīng)網(wǎng)絡(luò)通過反向傳播,基于梯度下降算法調(diào)整參數(shù)。根據(jù)鏈?zhǔn)角髮?dǎo)法則,反向傳播時(shí)將梯度誤差逐層傳遞、逐層優(yōu)化,達(dá)到對網(wǎng)絡(luò)參數(shù)進(jìn)行整體優(yōu)化的目的。這里針對“卷積層-池化層-全連接層”的順序分別給出向傳播算法。定義網(wǎng)絡(luò)k層的靈敏度為:
(11)
式中:ξk為總誤差對凈激活zk的梯度。計(jì)算靈敏度實(shí)際上是通過所有網(wǎng)絡(luò)層總誤差對所有網(wǎng)絡(luò)參數(shù)求偏導(dǎo),使得網(wǎng)絡(luò)的訓(xùn)練誤差朝著減小的方向迭代。
為了計(jì)算卷積層靈敏度,需要利用損失函數(shù)對偏置項(xiàng)求偏導(dǎo)為:
(12)
式中:c,d代表特征圖上的位置,損失函數(shù)對偏置項(xiàng)偏導(dǎo)等于各個(gè)位置偏置項(xiàng)偏導(dǎo)疊加。式(12)可由式(13)表示:
(13)
式中:m×n為卷積層卷積核大??;?為kronnecker product。由式(12)和式(13)可知,損失函數(shù)對卷積核的偏導(dǎo)為:
(14)
對計(jì)算池化層求靈敏度,如式(15)和式(16)所示:
(15)
(16)
(17)
全連接層求靈敏度,如式(18)和(19)所示:
ξk=(wk+1)Tξk+1°f′(zk)
(18)
ξγ=f′(zγ)°(yn-tn)
(19)
全連接層的總誤差對偏置和權(quán)重求偏導(dǎo),如式(20)和(21)所示:
(20)
(21)
為確定卷積及池化模板的大小,論文首先對數(shù)據(jù)庫中缺陷面積進(jìn)行了統(tǒng)計(jì),如圖6所示。
由圖6可知,缺陷像素點(diǎn)個(gè)數(shù)分布于6~44之間,平均值約為15。當(dāng)缺陷面積較小,近有6個(gè)像素點(diǎn)時(shí),卷積模板≥5×5時(shí),易發(fā)生漏檢、誤檢等情況,所以本文確定的卷積核大小為3×3。
圖6 缺陷像素點(diǎn)個(gè)數(shù)統(tǒng)計(jì)圖
激活函數(shù)是實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)非線性變換的重要環(huán)節(jié),常用的激活函數(shù)有ReLU 函數(shù)、Sigmoid 函數(shù)等。
ReLU函數(shù)的定義為:
f(x)=max(0,x)
(22)
ReLU函數(shù)圖像如圖7所示。
圖7 ReLU函數(shù)圖
由圖像可以知道函數(shù)取值范圍是[0,∞],則其導(dǎo)數(shù)如下式所示:
(23)
Sigmoid函數(shù)定義為:
f(x)=1/(1+e-x)
(24)
Sigmoid函數(shù)圖像如圖8所示。
圖8 Sigmoid函數(shù)圖
通過對比ReLU函數(shù)和Sigmoid函數(shù),可以發(fā)現(xiàn)ReLU函數(shù)收斂于無窮大,在測試中易發(fā)生浮點(diǎn)溢出現(xiàn)象。在圖像中待檢測物體結(jié)構(gòu)相對簡單時(shí),從計(jì)算的穩(wěn)定性角度考慮,Sigmoid函數(shù)激活函數(shù)更不易產(chǎn)生溢出且易于實(shí)現(xiàn),因此文中選取Sigmoid函數(shù)作為激活函數(shù)。
一般而言,交叉熵代價(jià)函數(shù)多與Sigmonid激活函數(shù)搭配使用,在確定激活函數(shù)的前提下,文中采用交叉熵代價(jià)函數(shù)作為神經(jīng)網(wǎng)絡(luò)代價(jià)函數(shù),如式(25)所示:
(25)
式中:γ為目標(biāo)函數(shù);n為樣本總數(shù);m為樣本;u為實(shí)際值;c為輸出值。
由于焊縫SDR圖像尺寸相對較小,CNN深度較高時(shí)易產(chǎn)生數(shù)據(jù)缺失導(dǎo)致誤識別,因此文中設(shè)計(jì)卷積層為2層,其結(jié)構(gòu)如圖9所示。其中:C1,C3為卷積層;S2,S4為池化層;F5,F(xiàn)6為全連接層。
圖9 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
C1的卷積核尺寸設(shè)定為3×3,深度為4;C3的卷積核尺寸也設(shè)定為3×3,深度為16;S2,S4均為池化層,其卷積核尺寸設(shè)定為3×3,移動(dòng)步長為1。在CNN模型中,卷積層采取了補(bǔ)零操作,保持輸入的樣本長和寬不變,深度增加;而池化層不采取補(bǔ)零,發(fā)生池化后,樣本的深度不變,長和寬減小了。
文中所確定的CNN訓(xùn)練步驟如下:①樣本輸入;②設(shè)置CNN初始參數(shù);③選擇Sigmonid的激活函數(shù);④開始訓(xùn)練;⑤缺陷識別。
文中模型采用C++編程實(shí)現(xiàn),具體流程如圖10所示。卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練樣本為樣本總數(shù)的20%,在CNN模型的訓(xùn)練中,整體學(xué)習(xí)率(α)設(shè)置為0.000 1。
圖10 CNN網(wǎng)絡(luò)模型訓(xùn)練流程圖
以某標(biāo)段管道焊縫為例,條形缺陷如圖11所示。
圖11 12組條形缺陷圖像
在實(shí)際生產(chǎn)中,條形缺陷比圓形缺陷危害性大,其數(shù)量遠(yuǎn)小于圓形缺陷數(shù)量,用傳統(tǒng)方法檢測,易于識別。雖然圓形缺陷危害性小,但是識別難度大,因此條形缺陷不是作為文中研究的重點(diǎn),而圓形缺陷識別是文中重點(diǎn)研究對象。
文中分別采用20張缺陷和噪聲作為訓(xùn)練樣本,訓(xùn)練完成后另選200張圓形缺陷和噪聲圖像作為SDR測試樣本,試驗(yàn)結(jié)果的混淆矩陣見表1,其中:TP為真正;FN為假負(fù);FP為假正;TN為真負(fù)。
表1 SDR圖像識別混淆矩陣
根據(jù)表1所示的混淆矩陣,再根據(jù)敏感度(Se)和特異度(Sp)
(26)
(27)
可以得到樣本的敏感度和特異度對比,見表2。
表2 樣本敏感度/特異度
為進(jìn)一步驗(yàn)證CNN結(jié)構(gòu)的魯棒性,文中多次進(jìn)行重復(fù)試驗(yàn),每次選擇不同缺陷及噪聲SDR各20張進(jìn)行訓(xùn)練。測試樣本為與訓(xùn)練樣本不同的SDR圖像。10次試驗(yàn)結(jié)果見表3。
表3 樣本模板試驗(yàn)結(jié)果
文中提及的噪聲是指影像中一種形似于缺陷的偽缺陷類型。從表3可知,CNN對圓形缺陷和噪聲都具有較高的識別率。
利用文中所提卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對條形缺陷和圓形缺陷進(jìn)行檢測,試驗(yàn)結(jié)果見表4。從表4可知,文中所提方法對條形缺陷依然有較好的識別率。
表4 缺陷檢測結(jié)果
分析未成功識別和成功識別的SDR圖像及其灰度直方圖如圖12~圖19所示。從視覺效果可以發(fā)現(xiàn)未識別成功的圖像灰度直方圖跨度小,視覺效果差,沒有層次感,卷積神經(jīng)網(wǎng)絡(luò)不能進(jìn)行分割處理。而已識別成功圖像灰度直方圖跨度大,視覺效果好,層次感強(qiáng)。因此卷積神經(jīng)網(wǎng)絡(luò)對于圖像是否能夠識別,可以用圖像灰度跨度來鑒定。
圖12 識別失敗的圓形缺陷圖像
圖13 識別失敗的噪聲圖像
圖14 識別失敗的圓形缺陷灰度直方圖
圖15 識別失敗的噪聲灰度直方圖
圖16 識別成功的圓形缺陷圖像
圖17 識別成功的噪聲圖像
圖18 識別成功的圓形缺陷灰度直方圖
圖19 識別成功的噪聲灰度直方圖
為了驗(yàn)證卷積神經(jīng)網(wǎng)絡(luò)對圖像識別是否與圖像灰度直方圖跨度有關(guān)。文中取10組已識別成功和6組未識別成功圖像灰度直方圖跨度進(jìn)行了對比,如圖20所示。
圖20 灰度圖跨度對比
由圖20可知,當(dāng)灰度圖跨度低于50時(shí),圖像檢測目標(biāo)與背景之間的對比度相對較低,卷積神經(jīng)網(wǎng)絡(luò)中卷積層難以提取目標(biāo)特征,此時(shí)神經(jīng)網(wǎng)絡(luò)的識別失效,無法判定缺陷。當(dāng)局部圖像灰度直方圖跨度高于50時(shí),識別目標(biāo)較背景突出,圖像整體對比度較高,卷積層可以提取識別目標(biāo)的特征,此時(shí)的卷積神經(jīng)網(wǎng)絡(luò)對焊縫圖像有較好的識別效果。
為了充分探究文中神經(jīng)網(wǎng)絡(luò)的復(fù)雜度和準(zhǔn)確率,與以往公開文獻(xiàn)的情況之間的優(yōu)劣,這里做了比對,見表5。由表5可知,文中使用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)雖然簡單但是對本領(lǐng)域有效,十分適合本領(lǐng)域的應(yīng)用。從公開的文獻(xiàn)資料中,查到了用其它的人工智能深度網(wǎng)絡(luò)算法,在該領(lǐng)域的應(yīng)用情況。在表中,通過對比可以看出,文中網(wǎng)絡(luò)結(jié)構(gòu)更加簡單實(shí)用,雖然準(zhǔn)確率并不是最高的,但比最高的98%只低1%。而誤報(bào)率僅僅是3%。表中沒有誤報(bào)率數(shù)值的,是在該文獻(xiàn)中沒有提及,無法比較。
表5 卷積神經(jīng)網(wǎng)絡(luò)算法對比
文中選取的卷積神經(jīng)網(wǎng)絡(luò)算法與傳統(tǒng)方法相比較,可以避免圖像特征值提取,能夠有效區(qū)分噪聲和圓形缺陷。通過構(gòu)建網(wǎng)絡(luò)模型,設(shè)定網(wǎng)絡(luò)參數(shù),可以直接將SDR圖像作為輸入樣本進(jìn)行訓(xùn)練與識別。試驗(yàn)結(jié)果表明CNN網(wǎng)絡(luò)結(jié)構(gòu)模型訓(xùn)練速度快,識別率高,適合于X射線焊縫缺陷圖像的檢測與識別,準(zhǔn)確率可達(dá)97%。文中通比對識別成功和識別失敗圖像的灰度圖跨度,發(fā)現(xiàn)灰度跨度在一定范圍內(nèi),卷積神經(jīng)網(wǎng)絡(luò)會(huì)有很好的識別效果,否則卷積神經(jīng)網(wǎng)絡(luò)會(huì)失效。因此在后續(xù)的研究中,對圖像進(jìn)行預(yù)處理,擴(kuò)大圖像的灰度跨度,進(jìn)一步提高識別率。