高子洋 師芳芳 張碧星 蘇業旺
(1 中國科學院大學 北京 100049)
(2 中國科學院聲學研究所 聲場聲信息國家重點實驗室 北京 100190)
(3 中國科學院力學研究所 非線性力學國家重點實驗室 北京 100190)
(4 中國科學院大學工程科學學院 北京 100049)
在超聲檢測中,如果不能準確判斷缺陷的性質,就會使某些無危險或者危險性很小的產品返修從而導致浪費,也會造成含有危險性缺陷的產品被忽視,使得其在使用過程中產生安全隱患[1],因此對缺陷的類型識別分析尤為重要,對保障產品質量和安全運行意義重大。超聲檢測中對缺陷進行類型識別,開始主要依靠人工經驗,識別結果有一定的主觀性。自20世紀70年代起,研究者開始使用神經網絡對超聲檢測數據進行缺陷分類,這部分研究主要集中在兩個方面,一方面是采用特征提取加淺層神經網絡的方法對檢測數據進行分類,另一方面是采用深度學習方法,輸入數據主要是人工提取的特征值,近年逐漸發展到自動提取特征。
在淺層神經網絡方面,Song等[2]提出利用概率神經網絡對通過超聲散射特征提取的時域特征進行焊接缺陷分類。Masnata等[3]提出了利用Fischer線性判別分析對缺陷回波信號提取形狀參數,使用神經網絡實現焊縫缺陷的自動分類。Margrave等[4]選擇對神經網絡進行調整,使用各種類型和配置的神經網絡對時域和頻域分別進行訓練以找到未知缺陷。盧超等[5]利用小波變換對超聲檢測回波信號進行分解,并將分解信號的能量分布特征送入神經網絡中進行訓練和分類。Liu 等[6]提出利用仿真得到的A 掃超聲無損檢測信號提取的特征值和反向傳播(Back propagation, BP)網絡結合對裂紋的大小、類型和位置進行判別。Drai 等[7]對焊接缺陷回波通過時域、頻域和離散小波提取特征值,使用K近鄰分類(K-nearest neighbor classification, KNN)算法、貝葉斯統計、人工智能網絡進行分類識別。Veiga等[8]對脈沖焊縫使用脈沖回波和超聲衍射時差(Time of flight diffraction, TOFD)技術獲得的超聲信號,通過預處理以后使用BP 網絡進行缺陷分類。Sambath 等[9]利用小波變換得到缺陷的特征向量,通過BP 網絡對這些特征向量進行識別分類。Filho 等[10]提出通過離散傅里葉變換、小波變換和余弦變換對超聲信號進行特征提取,使用BP網絡對復合材料中的缺陷進行訓練分類檢測。Cruz等[11]采用了Filho 等[10]的特征提取方法,并使用了不同的特征選擇手段,采用多層感知(Multilayer perceptron, MLP)機,使用不同分類器對焊接缺陷進行分類。
在深度學習方面,對卷積神經網絡(Convolutional neural network, CNN)的研究可追溯到20世紀80年代,1998年,Lecun 等[12]在前人基礎上提出了LeNet-5,形成了當代CNN 的雛形,在識別手寫數字上取得了不錯的效果。2012年,Krizhevsky等[13]提出的Alexnet 網絡在Imagenet 圖像識別大賽中取得了歷史性突破,從此人們意識到CNN 在圖像識別領域的優勢。
在超聲檢測領域也有不少研究者開展了采用深度學習方法進行缺陷分析的工作。施成龍等[14]使用小波包變換對A 掃信號進行缺陷特征信息提取,將得到的能量分布特征向量通過深度信念網絡進行分類識別,準確率達到了98.83%。Meng 等[15]提出分層組合小波變換系數,利用CNN 對不同特征提取方法分類器進行訓練,從而實現對碳纖維聚合物的缺陷分類,準確率達到了98.15%。Khumaidi等[16]提出使用焊接表面缺陷超聲檢測圖像作為輸入,使用CNN 對不同類型焊接缺陷進行分類,準確率達到了95.83%。Munir等[17?18]對焊接缺陷進行超聲檢測得到的信號在不同信噪比下使用全連接深度神經網絡、CNN進行缺陷分類,發現CNN效果更好。張重遠等[19]采用基于相似矩陣的盲源分離方法對得到的超聲檢測信號進行預處理,使用CNN進行識別,準確率達到90%。Munir 等[20]將超聲信號通過自編碼器進行去噪后使用CNN進行分類。
目前為止,多數研究者都是在預處理階段使用統計或信號處理方法提取特征來提高識別準確率。本文將不對信號進行特征提取,直接針對陣列探頭采集的原始超聲信號,使用一維數據(A 掃信號數據)和二維圖像(A 掃信號的波形顯示圖)分別作為輸入,采用不同CNN 結構實現缺陷的分類識別,在此基礎上對網絡性能進行優化,實現識別準確率的提升。
CNN 通過卷積核與輸入數據的卷積操作提取特征,然后通過激活函數和池化來對特征進行處理,經過訓練之后使網絡輸出端能夠正確識別輸入數據進行分類。訓練過程如圖1 所示,輸入特征經過網絡主干部分后分類識別,如未達到迭代次數,跟真實標簽比較通過損失函數和優化函數來對參數進行修正,再次進入卷積訓練過程,當達到迭代次數以后,停止訓練并保存當前網絡的權重。

圖1 訓練過程Fig.1 Training process
CNN 中卷積的特點在于獲得輸入的局部空間特征,依靠的是內部包含的多個卷積核,按照維度的不同可分為一維卷積、二維卷積和多維卷積。一維卷積輸入通常為時間或頻譜采樣,卷積核在一維空間滑動計算,計算公式如下:

其中,wk為卷積核權重,yt為卷積輸出,常用于信號、序列模型、自然語言處理領域等。二維卷積輸入一般包含多個通道,通常為圖像,卷積核在二維空間滑動計算,計算公式如下:

跟一維卷積類似,wuv為卷積核權重,yij為卷積輸出,常用于計算機視覺、圖像處理領域。
目前對于CNN 激活函數的研究中普遍使用ReLU(Rectified Linear Unit)函數[21]或ReLU 函數的變種,ReLU函數定義為

其中,zi,j,k是第k通道在(i,j)位置激活函數的輸入,優點是計算效率高,可以很快收斂,但是會導致神經元死亡問題,如果學習率過大,那么網絡中可能有很多神經元都無法正常更新參數。在此基礎上衍生出了Leaky ReLU函數[22],定義為

其中,λ是(0,1)范圍內的預定義參數,它與ReLU函數的區別是在輸入小于0 時,會有一個很小的常數λ與輸入相乘,使得信息不會全部丟失,解決了神經元死亡問題。圖2 為ReLU 和Leaky ReLU 函數示意圖。

圖2 ReLU 與Leaky ReLU 函數Fig.2 ReLU and Leaky ReLU activation function
Dropout 和Batch Normalization 為在訓練過程中防止過擬合使用的優化手段,Dropout 是在訓練的時候,隨機使一部分隱藏節點值為0,即不參與訓練,減少隱藏節點間的相互作用。Batch Normalization[23]為將輸入分布轉化為均值為0、標準差為1 的正態分布,其主要作用為加快網絡收斂速度,防止過擬合,在最近幾年的深度學習模型Faster RCNN、YOLO 系列中,都已經使用Batch Normalization來代替Dropout功能。
在計算機視覺領域,數據增強是深度學習增加數據量的一種非常有效的方式。在這種技術中,從原有實例生成相似的類似實例,人為地增加數據庫的大小。本研究中,由于沒有適用的關于超聲無損檢測的數據庫,實驗中也較難獲得大量的實測數據,最有效可行的方法是對數據進行增強,即對已有的數據進行翻轉、平移或旋轉等操作,創造出更多的數據,來使神經網絡具有更好的泛化效果,同時提升模型的識別準確率。
本文采用超聲相控陣系統對不同的缺陷進行檢測,將得到的缺陷信號進行預處理,然后利用不同網絡結構對缺陷信號進行分析,實現缺陷類型識別,調節網絡中參數來觀測識別準確率的影響。
獲取數據的實驗系統如圖3 所示,包括Verasonics Vantage超聲相控陣系統、計算機主機、探頭及試塊。Verasonics Vantage 超聲相控陣系統含有32 個獨立通道,可以同時激發與接收所有通道,并能存儲所有通道的原始回波數據。探頭使用超聲相控陣探頭,該探頭中心頻率為5 MHz,陣元數量為32,如圖3(b)所示。

圖3 實驗系統Fig.3 Experimental system
實驗中對3 種類型試塊進行檢測,如圖4 所示。3 種試塊對應3 類缺陷,分別為:(1)?3 mm 通孔,試塊長300 mm,寬40 mm,高25 mm,通孔直徑為3 mm,埋深為15 mm;(2)?3 mm 平底孔,試塊長100 mm,寬40 mm,高25 mm,平底孔直徑為3 mm,埋深為15 mm;(3)?3 mm 球底孔,試塊長100 mm,寬40 mm,高25 mm,球底孔直徑為3 mm,埋深為15 mm。

圖4 3 種缺陷實物圖Fig.4 Three kinds of test blocks
使用如圖3 所示的實驗系統獲取檢測原始數據,檢測過程中相控陣系統的采樣率為20 MHz,采用全聚焦方法依次激發所有陣元,每次激發所有陣元接收,即陣元1 發射,1~32 陣元接收,陣元2 發射,1~32 陣元接收,以此類推,一次檢測共可接收1024 個回波信號。從每種缺陷回波信號的1024個數據中各選取100 個樣本,每個樣本時長為2 μs,表1 中列出了每種缺陷的信號數量。圖5 展示了3種缺陷的回波信號,可以觀察到從信號中很難分辨出它們的缺陷類型。

表1 各缺陷類型信號樣本數量Table 1 Number of signal samples of each defect type

圖5 3 種缺陷的回波信號Fig.5 Echo signals of three defects
在超聲檢測數據集中,由于原始數據樣本只有幾百個,在復雜的神經網絡結構中容易造成過擬合,不易判斷測試信號的類別,本文對數據庫進行數據增強并研究其增強效果。在對數據集進行數據增強時分為兩種方式,第一種[18]是改變缺陷與陣元之間的距離,反映到信號上為改變信號的到時,即將數據向前和向后各時移0.05 μs,樣本數增加兩倍;第二種是改變信號的幅度,將信號向上和向下分別平移,樣本數增加兩倍,如圖6 所示。針對二維數據,采取這兩種方式,此時數據樣本數變為原來的5 倍。針對一維數據,只采取第二種措施,此時數據樣本數變為原來的3倍。擴增的樣本數量如表2所示。

表2 數據擴增的數量Table 2 The number of data augmentation

圖6 數據增強示意圖Fig.6 Data augmentation schematic
在訓練網絡時,為了驗證網絡性能是否達到滿意的效果,通常會對數據集進行劃分,選取一部分數據集不進行訓練而用來驗證網絡效果。在本文中選擇總數據集的90%用于訓練,10%用于測試。表3顯示了數據增強后不同維度用于訓練和測試數據集的每個缺陷的總樣本數量。

表3 訓練集和測試集Table 3 Training and testing datasets
本文中用于訓練和測試的數據分為兩種類型,一類是一維缺陷回波數據,用一維卷積模型進行訓練;另一類是缺陷回波的二維顯示圖形,用二維卷積模型進行訓練。為了加快收斂速度,在將數據輸入到神經網絡之前,對數據進行歸一化處理。在對A顯波形的圖片進行預處理時,因為只需要學習其信號特征,在讀取時以單通道進行讀取來減少計算量。
本研究采用的CNN 是基于Tensorflow2.0 版本中的Keras 框架實現的,CPU 型號為I7-8750H,GPU型號為1050TI,內存為16 G。
采用的網絡結構有3 種, 分別是LeNet-5、VGG16 和ResNet。LeNet5 結構最為簡單,含有2個卷積層、2 個池化層、3 個全連接層;VGG16 結構較為復雜,含有13 個卷積層、5 個池化層、3 個全連接層;殘差網絡ResNet 含有殘差結構,結構最為復雜,含有5 個殘差模塊和2 個全連接層,其中2 個殘差模塊分別包含4 個卷積層、1 個池化層,另3 個殘差模塊分別包含5 個卷積層、1 個池化層。一維卷積和二維卷積使用的網絡結構完全一樣。表4 展示了不同網絡結構的參數對比。

表4 不同網絡參數對比Table 4 Parameters between different networks
本文將根據CNN 理論從以下5 個方面對識別準確率及效率的影響來進行對比分析,分別是一維卷積和二維卷積模型、數據增強、迭代次數、Dropout和Batch Normalization優化、ReLU和Leaky ReLU激活函數。
采用不同的網絡結構模型,分別使用一維卷積和二維卷積進行訓練,迭代次數為100次,數據集使用擴充后的數據集。識別準確率及訓練時長如表5所示。LeNet5、VGG16、ResNet 在一維卷積模型中的識別準確率分別為95.56%、98.89%和97.78%,訓練時間分別為10.47 s、49.37 s、50.28 s。在二維卷積模型中的識別準確率分別為99.33%、100%、100%,訓練時間分別為263.8 s、494.1 s、521.5 s。可以看到二維卷積模型的識別率比一維卷積模型有了明顯的提升,但是在訓練時間上大大增加,為一維卷積模型的10倍以上,這是由于二維卷積比一維卷積在參數量上有了幾十倍的增加,可以更好地擬合函數,但是也會增加訓練時間。
從表5 可以看出,在本文數據集樣本數目有限的情況下,VGG16 和ResNet 網絡在二維卷積識別準確度可達到100%,無需進行優化,因此下文中的優化針對LeNet5結構進行。

表5 一維卷積和二維卷積模型對識別準確率的影響Table 5 The influence of one-dimensional convolution and two-dimensional convolution models on identification accuracy
表6展示了不同網絡結構在原始數據集和數據增強后總數據集下的表現差異,迭代次數為100 次。LeNet5、VGG16、ResNet 在原始數據集上一維卷積模型識別準確率分別為90%、93.33%、90%,二維卷積模型識別準確率分別為96.67%、100%、96.67%,對比在增強后數據集上各網絡的表現,可以看到數據增強后各網絡結構的識別準確率均有明顯的提升。

表6 數據增強對識別準確率的影響Table 6 The influence of data augmentation on identification accuracy(單位: %)
每一次迭代都要對參數進行修正,迭代次數代表著對數據的擬合程度,迭代次數越多說明對數據擬合得越好,但是迭代次數過多又會造成過擬合。針對原始數據集,使用不同網絡結構在一維卷積上迭代不同輪次,對比識別準確率。從表7 可以看出,LeNet5 在訓練100、200、300 輪次時的準確率分別為90%、93.33%、96.67%,準確率一直上升,說明網絡還沒有完全擬合,隨著迭代次數的增加網絡識別準確率更高。VGG16 在訓練100、200、300 輪次時的準確率分別為93.33%、96.67%、90%,ResNet在訓練100、200、300 輪次時的準確率分別為90%、93.33%、86.67%,這兩個網絡在訓練300 輪次的時候準確率都出現了降低,說明這個時候網絡已經過擬合。由此可見,在網絡訓練的時候迭代次數并不是越多越好,特別是復雜網絡,選擇合適的迭代次數很重要。

表7 迭代次數對識別準確率的影響Table 7 The influence of iteration number on identification accuracy(單位: %)
不同的優化方法(Dropout 和Batch Normalization)對識別準確率及訓練時間的影響如表8 所示。使用LeNet5 結構在擴充后的數據集上進行訓練,結果表明當使用Dropout 時準確率為97.78%,訓練時間為11.4 s,使用Batch Normalization 時準確率為100%,訓練時間為13.67 s,兩者都不使用時準確率僅為95.56%,訓練時間為10.47 s。圖7 展示了3 種模式在訓練過程中驗證集準確率和損失函數隨著迭代次數的變化,可以看出Batch Normalization 在訓練過程中驗證集準確率增長速度最快,損失值最低,說明收斂速度更快。綜合來看,使用Dropout 或Batch Normalization 雖然在訓練時間上都有了一定的增加,但是準確率也有一定的提升,Batch Normalization表現尤為突出。

圖7 網絡訓練曲線Fig.7 Training curve of network

表8 Dropout 和Batch Normalization 對識別準確率的影響Table 8 The influence of Dropout and Batch Normalization on identification accuracy
表9 展示了不同激活函數ReLU 和Leaky ReLU 對識別準確率的影響。使用LeNet5 結構在擴充后數據集上進行訓練,Leaky ReLU中的λ取值為0.1。結果表明當使用ReLU 激活函數時準確率為95.56%,使用Leaky ReLU 激活函數時準確率為98.89%,可以看出Leaky ReLU 的效果更好。這是因為Leaky ReLU 激活函數保留了更多的信息,使識別準確率得到提升。

表9 ReLU 和Leaky ReLU 對識別準確率的影響Table 9 The influence of ReLU and Leaky ReLU on identification accuracy
本研究采用CNN 對超聲檢測回波信號進行缺陷識別,目標是尋找一種不依賴于特征提取技術的網絡結構,它要有良好的魯棒性,并具有很高的識別準確率。研究得出以下結論:
(1)合適的網絡結構很重要。在實驗對比中,發現VGG16 網絡的性能要優于LeNet5 和ResNet。LeNet5 模型相對簡單,不能更好地擬合數據,而ResNet 具有殘差結構,在復雜度方面高于VGG16,導致在訓練過程中更容易過擬合。
(2)使用相同的CNN 結構訓練時,二維圖像比一維數據的識別準確率高。當使用相同的CNN 結構訓練時,二維卷積的參數數量比一維卷積多了幾十倍,可以更好地擬合函數。
(3)當數據量少的時候使用數據增強能夠提高識別準確率。由于目前沒有公開的超聲缺陷檢測回波信號數據集,想要大規模的獲取也很困難,數據增強就可以部分解決這個問題。
(4)不同的優化手段有利于提高識別準確率。可以在網絡中將激活函數改為Leaky ReLU,添加Batch Normalization 層等來減少過擬合,提高網絡的泛化能力。
分析實驗證明,只要選取合適的CNN 模型,不需要進行特征提取就可以得到非常高的準確率,這正是因為CNN獨特的結構和優秀的性能。