魏博文,高煒欣,劉夢溪
(1.西安石油大學電子工程學院,陜西 西安 710065;2.西安石油大學 陜西省油氣井測控技術重點實驗室,陜西 西安 710065)
金屬鑄件在工程使用過程中,常因高強度的負荷使得鑄件損傷,并且鑄件所處的惡劣環境也會使得鑄件表面發生無法挽回的損傷,嚴重的損傷甚至導致鑄件無法使用。這些損傷在工業環境中是常見的問題,例如管道在使用過程中受到腐蝕而腐蝕開裂[1]。裂紋的存在不僅使鑄件失效,嚴重的還會引發安全問題,侵害社會的安全和經濟,因此需要對這些問題進行可靠性檢測。
無損檢測技術(Nondestructive testing technology,NDT)可以探測鑄件在制造與使用過程中的缺陷問題,從而為社會帶來可觀的安全效益和經濟效益[2]。NDT是以保障鑄件完好無損為前提,應用光、電、磁、聲等多種物理現象進行多種缺陷檢測的綜合性技術。如今非接觸式NDT方法有很多,如:靜電耦合超聲無損檢測、空氣耦合超聲無損檢測[3]、電磁超聲無損檢測、激光超聲無損檢測[4],4種NDT對比如表1所示。

表1 無損檢測技術對比
通過對比發現激光超聲無損檢測技術無論是在缺陷檢測方面、適用范圍還是效率上都很出色。目前已有研究人員應用該技術取得了較好的缺陷識別成果,如:趙景超[5]等將樣品被測前后的全息干涉條紋激光超聲圖像進行數值再現,再利用MATLAB軟件對圖像進行疊加干涉從而判斷出是否存在缺陷;王余敬[6]等利用分離譜技術將樣品表面不同裂紋下的回撥信號進行特征提取,再使用徑向基函數神經網絡識別技術來對裂紋進行識別;曾偉等提出利用Wingner-Vile算法分類處理透射波傳播圖像,實現對樣本缺陷位置、大小和形狀的檢測;熊繼濤[7]等使用激光超聲換能器對樣本激勵出Lamb波,再對接收的反射信號進行延時疊加,實現對缺陷的定位;金小波[8]等將激光超聲技術結合編程和軟件TeeChart圖形顯示空間達到對接收信號的可視化,以此達到缺陷檢測目的。可見,激光超聲無損檢測技術對鑄件進行無損檢測方面是可行的。本文在激光超聲檢測技術的基礎上,提出使用結合卷積神經網絡對采集的圖像進行快速高效的缺陷識別。
激光超聲無損檢測技術以不損害被檢測對象的使用性能及微觀結構為前提,使用脈沖激光在被測構件中產生超聲應力脈沖。這一應力脈沖能夠在同一時間內激發出波形不同的超聲波信號,超聲信號會傳播被測構件的各項信息,再通過檢測超聲信號的反射、散射和衰減情況,進行缺陷特征描述。本文采用基于熱彈機制的激光超聲可視化檢測儀如圖1進行檢測。

圖1 激光超聲可視化檢測儀
激光超聲可視化檢測儀主要分為激光發射控制器、超聲波探頭和激光超聲檢測設備控制三部分。激光發射控制器對被測鑄件產生激勵,通過超聲波探頭接收信號,激光超聲檢測設備再對信號進行波形采集、可視化。檢測原理如圖2所示。

圖2 激光超聲原理圖
激光超聲可視化檢測儀波長1064 nm,最大功率650 μJ,最小脈寬7 ns。實驗中通過設定激勵掃描范圍、延遲、采樣率、激勵電壓、數據長度和檢測速度等來達到圖像獲取的目的。所有參數設定完畢后激光超聲發射器將按照預先設定的掃描范圍進行自上而下、自左至右(Y軸→X軸)的檢測,設備通過探頭接收信號并對該信號進行A/D轉換,最終經過處理,獲得最大振幅圖。
激光超聲可視化檢測儀對鑄件進行掃描時,缺陷處質點和無缺陷處質點會出現驟變的波動,這種驟變必然會導致信號振幅的變化,如此經過一系列處理便可獲得最大振幅圖。實驗中對缺陷鑄件進行圖像采集,如圖3所示為部分缺陷鑄件樣本圖像,途中所示缺陷鑄件規格為200 mm×100 mm×5 mm,其中方孔缺陷大小為5 mm×5 mm;圓孔缺陷直徑為5 mm。本次實驗共采集圖像400張,其中無缺陷圖像100張,缺陷圖像300張,圖4為部分最大振幅圖像圖像。

圖3 鑄件圖像

圖4 部分樣本圖像
考慮到實驗只需對最大振幅圖像進行是否存在缺陷的判斷,為了簡化實驗,提高檢測效率,完善CNN架構,在最大振幅圖像識別之前先進行圖像預處理。預處理即將三通道最大震幅圖像通過灰度化轉換成為單通道的灰度圖像,再將灰度化的圖像統一分辨率,統一成為100×100的格式。灰度化采用均值灰度化這一方式,如公式(1)所示:
f(i,j)=(R(i,j)+G(i,j)+B(i,j))/3
(1)
其中,i,j代表圖像同一通道下的位置;R、G和B代表三個通道即紅色、綠色和藍色,通過計算將三個通道的像素值進行平均后再輸出為一個灰度化的圖像。如圖5所示。

圖5 灰度化樣本圖像
通過對圖5進行分析可以發現由于圖像噪聲干擾較大,一般的圖像處理手段難以確定最大振幅圖是否存在缺陷,因此本文提出用卷積神經網絡(CNN)對圖像進行識別。
卷積神經網絡[9](Convolutional Neural Network,CNN)通過卷積核(filter)將圖像進行加權求和再加偏置的方式進行輸出,每一次計算都可視為將輸入圖像依據filter大小分為一個個小的圖像再進行計算輸出為輸出圖像的一個個像素點。CNN的神經元通過響應周圍單元,能夠快速、高效的完成圖像處理工作[10-11]。CNN不僅可以更改感受野的大小,而且它的池化層(下采樣結構)可以在不影響特征識別的前提下極大的減少參數量,以此提高識別速度。相較一般的圖像處理技術[12],CNN獨特的圖像處理方式不僅為圖像處理技術提供了新的思路,更為圖像處理技術帶來了突飛猛進的發展。
卷積是CNN中的一種提取輸入圖像特征的方法,是一種使用一個正方形卷積核遍歷輸入圖像,將重合部分進行加權求和再加偏置[13]的方法。將計算的像素值作為輸出圖像的像素值,以此類推將一張圖片遍歷完成即可完成一次輸出。如公式(2)及圖6所示。

圖6 卷積層計算
(2)
式中,Nout為輸出圖像長寬;Nin為輸入圖像長寬;p為padding大小;k為filter大小;s為stride大小。
由于CNN作為一個實踐遠超理論的研究,目前CNN卷積層設置層數大多是基于經驗或者通過實驗驗證得到,通過閱讀文獻發現Cao Xudong[14]關于卷積層設置層數的結論,這里做一引用,文章中提出CNN滿足2個約束條件并使用公式(3)可使卷積層層數最大化在不浪費算力時間的基礎上取得較好的識別精度。
(3)
式中,z為輸入圖像長寬;m為卷積層層數;k為filter大小;t為固定值1/6。應用公式(3)通過計算得到m即卷積層設置層數為3,并設置2層卷積層作為對照。
Filter是提取輸入圖像特征的關鍵,filter的結構為W×D×C×N,分別對應長寬高數量,屬于人為設置,通常長寬相等,C是圖像通道數channel,N是filter個數。為了提高識別效率,前文已經講述將樣本圖像進行灰度化預處理,所以輸入圖像的通道數為1。由于filter大小只有大于1時才具有提升感受野的作用,所以通常filter不取1;由于偶數的filter會造成特征偏移從而影響識別效果,所以通常filter均為單數;通過對圖5分析發現,最大振幅圖中缺陷處像素點會發生梯度變化,于是此處可以引入邊緣檢測法[15]來對圖像進行識別。邊緣檢測法分為3種梯度變化,即水平、垂直和傾斜三種,其公式分別為:
水平梯度:

(4)
垂直梯度:

(5)
傾斜梯度:

(6)
通過引入梯度變化設置3個filter,分別檢測輸入圖像中的3種梯度變化。綜上實際filter設置見表3。
池化層[16-17]作為降采樣的一種方式,常用方法有最大池化、最小池化和均值池化3種方式。因為3種方式中最大池化能夠保留輸入圖像信息的最大值,在提取特征時可以保留更多細節,所以實驗選擇最大池化方式。最大池化方式如圖7所示。實驗中將卷積層與池化層設置為一一對應的關系,即選擇3層池化層,且設置2層池化層與之對照。池化層計算方式同公式(2),此處不做贅述。

圖7 最大池化
激活函數[18]的作用時給CNN計算加入非線性因素,如果在CNN中不適用激活函數將導致每一層的計算都有關聯從而使最后一層的輸出和第一層的輸入具有線性關系。由于缺陷檢測僅用計算機對圖像做出是否存在缺陷的判斷,而Sigmoid函數在這種二分類問題上使用的最多,同時求導的特殊性,便于反向傳播過程的計算,故使用Sigmoid函數作為激活函數。公式(7)為Sigmoid函數,公式(8)為其求導,Sigmoid圖像如圖8所示。

圖8 激活函數Sigmoid
(7)
f′(x)=f(x)*(1-f(x))
(8)
前向傳播即CNN的正向傳播,將輸入層的值通過卷積計算傳送給下一層,直至輸出層。反向傳播即通過將正向傳播的值與期望值做對比將誤差方向傳輸給filter,不斷地更新filter的權重,直至輸出與期望值的誤差達到預期目的。表2列舉符號及釋義。

表2 符 號
4.5.1 損失函數
文章中使用最直觀的損失函數[19]:均方差損失函數[20](Mean Square Error,MSE),如式(9)所示計算a的第l層損失函數。
(9)
4.5.2 前向傳播
CNN前向計算如圖6所示,即對輸入層進行加權求和,其公式如下:
a=w×x+b
(10)
對公式(10)進行非線性化即得到激活函數Sigmoid如下:
z=f(a)
(11)
3.5.3 反向傳播
反向傳播的核心是計算w和b的梯度變化,為簡化計算,設置中間量δl即對第l層的z求偏導,其公式如(12)所示。
(12)
由于CNN前向計算中卷積層和池化層的計算并不相同,所以在反向傳輸過程中他們的反向傳播計算也不相同。
已知池化層的δl推導上一層的δl-1如公式(13),其中unsample如公式(14),其中Nout為輸出,Nin為輸入,s為步長,f為卷積核大小,p為填充。
δl-1=unsample(δl)⊙f′(zl-1)
(13)
Nout=s(Nin-1)+k-2p
(14)
已知卷積層的δl,推導上一層的δl-1如公式(15)所示,其中rot180的意思是卷積核被反轉了180°。
δl-1=δl×rot180(wl)⊙f′(zl-1)
(15)
至此可以計算卷積層的w和b,由于池化層并沒有w和b,故不需計算,如公式(16)和(17):
(16)
(17)
式中,由于δl是高維張量,而b只是一個向量,所以需要將δl的各個子矩陣的項分別求和,得到一個誤差向量,即是b的梯度。
綜上所述設計實驗所用CNN架構,其中數據如表3所示,架構圖示如圖9所示。

表3 CNN數據

圖9 CNN架構
為了得到更為詳盡的實驗數據,并且對比出符合實驗要求的結果。實驗中對相同的樣本設置不同的參數來進行對比,共進行4個大組進行對照。對照組(1)為卷積層層數設置為2,卷積核長寬設置為3;對照組(2)為卷積層層數設置為3,卷積核長寬設置為3;對照組(3)為卷積層層數設置為2,卷積核長寬設置為5;對照組(4)卷積層層數設置為3,卷積核長寬設置為5。其中每一組中又將樣本分為四組以保障實驗數據的真實性。表4為16組實驗識別率。圖10為16組識別率散點圖。

圖10 樣本識別率散點圖

表4 樣本識別率
通過對實驗結果進行整理,對比不同組數據中因為卷積層數不同、卷積核大小不同以及參數量不同對識別率產生的影響,表5為4大組平均識別率、表6為卷積層相同卷積核大小不同的平均識別率、表7為卷積層不同卷積核大小相同的平均識別率。

表5 平均識別率

表6 不同卷積核識別率

表7 不同卷積層識別率
通過表中匯總數據分析得到:表2顯示識別率最高的是卷積層數3卷積核3×3達預期要求。表3顯示卷積層數3相較于卷積層數2的識別率提升27.125%;表4顯示卷積核3×3相較于卷積核5×5的識別率提升14.375%。綜上,通過實驗印證本文預先設計的卷積層數3卷積核大小3×3能夠較好的完成鑄件缺陷檢測要求,本次實驗中的平均識別率可達93.5%,達到實驗預期。
最后識別錯誤的圖像與識別正確的圖像進行了對比,圖11為部分識別錯誤圖像,圖12識別正確的圖像。
通過對比圖11和圖12發現識別錯誤圖像與識別正確圖像存在一定相似性。考慮到邊緣檢測的應用,識別錯誤的原因既有可能是因為這一原因所導致,圖13為無缺陷圖像中可能存在的邊緣檢測識別,圖中箭頭表示該方向上可能存在的邊緣檢測判斷。

圖11 部分識別錯誤圖像

圖12 識別正確圖像

圖13 識別錯誤圖像與邊緣檢測
實驗中發現最大振幅圖成像效果的參差對于識別效果產生了很大的影響。在樣本采集過程中發現激光強度設置為70 %、采樣率為10 Ms/s、檢測速度500 Hz所取得的圖像效果較好。通過實驗驗證,本次實驗較好的完成了鑄件缺陷的識別工作。
本文提出將激光超聲檢測技術與卷積神經網絡技術結合,幫助提高鑄件缺陷檢測效率。經過預先設計和實際驗證,設計出一個符合本次實驗識別精度要求,檢測經過激光超聲可視化檢測儀輸出的最大振幅圖像的卷積神經網絡架構,經過多組對照實驗驗證發現,預先設計的卷積神經網絡架構能夠較好地完成實驗任務。未來可以通過對比更多的卷積神經網絡架構,得到一個更好的檢測最大振幅圖像的卷積神經網絡架構。