?

基于卷積神經網絡的鐵氧體零件裂縫檢測

2020-11-17 06:56李子豪魏東辰嚴小軍
計算機工程與設計 2020年11期
關鍵詞:鐵氧體步長卷積

李子豪,魏東辰,嚴小軍

(北京航天控制儀器研究所 工藝技術研究室,北京 100854)

0 引 言

鐵氧體是一種常見于慣性儀表[1]中的材料,如磁懸浮陀螺軸向定子磁芯、加速度計軸向定子磁芯等零件均由鐵氧體制成。在鐵氧體零件的生產、加工過程中,由于各種原因,其表面可能會出現裂縫。在載體的震動顛簸下,存在裂縫逐漸加深的風險,從而導致零件失效,引起慣性儀表的卡滯,影響導航系統的正常工作。目前通過人工檢測的方式在顯微鏡下檢測鐵氧體零件是否存在裂縫時,存在檢測時間長、精度低等問題。在待檢零件的批次較多、批量較大時,會耗費檢測人員大量的時間與精力,且長時間的檢測會造成檢測人員眼睛疲勞,導致誤檢概率提高。因此,機器自動檢測零件裂縫十分重要。

隨著計算機算力的不斷提升,卷積神經網絡在圖像分類、定位和檢測等領域[2-6]得到了廣泛的應用。深度學習的方法逐漸應用到裂縫檢測領域,鐵路軌道的裂縫檢測[7]、建筑物混凝土的裂縫檢測[8]和人行橫道的裂縫檢測[9]等大型物體利用卷積神經網絡進行裂縫檢測得到了研究人員的廣泛關注,而對于小型、微型物體的裂縫檢測的研究較少。且目前常見的基于卷積神經網絡的裂縫檢測方法[7-9],只適用于整張圖像全是待測物體的情況,不能適用于圖像中包含其它區域信息的圓環形物體。

本文針對以鐵氧體為材質的小型圓環形零件,開展了基于卷積神經網絡的零件裂縫自動檢測研究,實現了小型圓環形物體的裂縫檢測,具有以下幾點優勢:①基于卷積神經網絡,通過對圖像進行四分類,實現了小型圓環形零件的裂縫檢測,在驗證集上達到了97%的準確率;②提出了一種滑動子區域計分方法,可有效地剔除錯檢區域,提升檢測區域的精細程度,最小能夠檢測寬為0.1 mm、長度超過0.2 mm的裂縫。

圖1為鐵氧體裂縫檢測的整體流程圖,包括訓練步驟、測試步驟和標注步驟。

圖1 鐵氧體裂縫檢測流程

1 數據集制作

1.1 數據準備

選用Nikon SMZ745T顯微成像系統,設置放大倍數為4倍,采集了20張分辨率為4088×3072帶有裂縫區域的零件圖像。去除圖像中多余的背景部分,僅保留大小為3000×3000的零件最小外接矩形區域,如圖1中Training下方的圖所示。以步長為64像素對其進行裁剪,共得到15K張分辨率為128×128的圖像組成原始數據集,有效地增加了數據集的樣本數量,可以防止模型過擬合,并提高了模型對裂縫在各個位置的適應性。

將原始數據集中的圖像人工分類為(a)背景區域、(b)零件邊緣區域、(c)零件完好區域和(d)零件裂縫區域4個類別,如圖2所示。在原始數據集中,由于屬于背景區域類別的圖像遠遠多于屬于零件裂縫區域類別的圖像,為了保證樣本數量均衡,在各個類別中分別挑選出質量最好的2355張圖像組成訓練集,即訓練集的圖像數量為2355×4=9420。在訓練的過程中,采用訓練集中20%的圖像作為驗證集,用于檢驗模型是否過擬合。

圖2 訓練集圖像的4種類別

選用不同類型的25張分辨率同樣為4088×3072的鐵氧體零件圖像,僅保留大小為3000×3000的零件最小外接矩形區域作為原始測試集,如圖1 Testing下方圖片所示。具體測試方法將在第4章中進行介紹。

1.2 圖像增廣

為提高模型性能,解決神經網絡的過擬合問題,采用鏡像翻轉、加入隨機噪聲、隨機變化亮度、對比度和飽和度等方式對訓練集進行圖像增廣。其中,加入的隨機噪聲為高斯噪聲,它的概率密度函數服從高斯分布。

最后對圖像進行標準化,將原始圖像中RGB三通道的像素值從[0,255]標準化到[0,1]之間,標準化的公式為

output=(input-mi)/si

(1)

其中,mi表示第i通道的平均值,si表示第i通道的標準差(i=3)。文中的m=(0.485,0.456,0.406),s=(0.229,0.224,0.225)。該步驟的目的是消除奇異樣本數據導致的不良影響,提高分類精度并加速神經網絡的收斂速度。

2 裂縫檢測神經網絡

本章主要介紹了用于裂縫檢測的深層卷積神經網絡的完整框架和訓練方法。

2.1 網絡框架

本次研究使用了包含殘差網絡結構的深層卷積神經網絡,以ResNet-18[10]為基礎,根據實驗圖像尺寸、各層輸出的特征圖尺寸以及分類數對網絡進行了修改。該神經網絡主要由輸入層、卷積層、池化層、激活函數和輸出層組成,其中卷積層和池化層用于進行卷積運算和池化運算,dropout[11]、批量歸一化層[12]、殘差塊,用于防止深層神經網絡性能退化和過擬合的問題。

圖3展示了本研究設計的網絡框架。表1給出了網絡每一層的結構以及輸出特征圖大小。網絡的輸入為128×128×3的圖像,通過卷積層和4個殘差塊,到達平均池化層,將特征圖尺寸變為1×1×512,最后通過全連接層和Softmax層,輸出一個4×1的向量,向量中的4個元素分別對應該輸入圖像屬于背景區域、零件邊緣區域、零件完好區域和零件裂縫區域4個類別的概率大小,其中概率最大的元素即對應神經網絡輸出的類別。

表1 各層網絡與輸出

圖3 卷積神經網絡框架

2.1.1 卷積層

卷積層用于提取圖像特征,遠離輸出的卷積層,對應原圖像的感受野小,可以提取出細節特征;靠近輸出層的卷積層,對應原圖像的感受野大,反映圖像的整體特征。相較于全連接層,卷積層可以保留像素點與其上下左右像素點的關系,學習到更多特征信息。卷積層局部感知和參數共享的特點大大降低了網絡參數量,保證了網絡的稀疏性,有效地防止了過擬合的問題。

2.1.2 池化層

池化層的作用是對特征圖降采樣。池化層的特征不變性使得模型更關注圖像是否存在某些特征而不是特征的具體位置。池化層相當于對特征降維,特征圖每個元素對應原輸入數據的一個子區域,使模型可以抽取更廣范圍的特征。池化層還降低了輸入大小,進而減小參數個數和計算量。

2.1.3 ReLU

本次研究均使用ReLU作為卷積神經網絡的激活函數。ReLU的表達式為

f(x)=max(0,x)

(2)

當輸入大于0,輸出等于輸入;當輸入小于0時,輸出等于0。相比于sigmoid激活函數,ReLU很好地解決了sigmoid函數在深層神經網絡中出現的梯度消失問題,同時ReLU保持了sigmoid函數非線性的特點。因此,ReLU在提高神經網絡性能的同時,減小了網絡的訓練難度。

2.1.4 Dropout

Dropout以一個設定的概率p丟棄神經元,在訓練模型時可以起到正則化的作用,有效地防止模型過擬合。在本次設計的神經網絡中,靠近輸入層的Dropout設置p為0.1或0.2,位于網絡中間的Dropout設置p為0.5。

2.1.5 Softmax

在神經網絡做分類任務時,往往選擇Softmax作為最后的分類層,其作用是使得所有類別得分歸一化到0和1之間,正樣本的結果趨近于1,負樣本的結果趨近于0。神經網絡輸出部分的全連接層輸出一個K維向量z(K為類別個數),向量的元素代表每一個類別的得分。Softmax再將向量z“壓縮”到另一個K維實向量σ中,使得每一個元素的范圍在(0,1)之間且所有元素的和為1,計算公式如式(3)所示

(3)

2.1.6 殘差塊

由于鐵氧體零件表面紋理在顯微成像系統下較為復雜,導致裂縫識別難度大,并且要求裂縫檢測的準確率高,需要使用較深的神經網絡模型。然而,深層神經網絡會出現梯度消失的問題,本次研究在網絡中加入殘差塊解決這一問題。殘差學習相比原始特征直接學習更容易:當殘差為0時,堆積層僅僅做了恒等映射,網絡性能不會下降;當殘差不為0時,堆積層會在輸入特征基礎上學習到新的特征,從而擁有更好的性能。殘差塊結構如圖4所示。

圖4 殘差塊結構

2.2 訓練方法

2.2.1 損失函數

訓練采用多分類交叉熵損失函數,用來判定實際輸出與期望輸出的接近程度,如式(4)所示

(4)

其中,K表示類別數量,對應2.1.5節中Softmax的類別數量;yc為指示變量,如果該類別和樣本的類別相同則為1,否則為0;pc為觀測樣本屬于類別c的預測概率。全卷積層輸出每個類別的得分,該得分經過Softmax層獲得概率輸出,模型預測的類別概率輸出與真實類別的one hot形式進行交叉熵損失函數的計算。

2.2.2 優化算法

常用的優化算法有很多,例如隨機梯度下降法、動量法[13]、RMSprop、Adam[14]等。通過對各種不同優化算法進行對比(見第3章節),本次研究采用了Adam優化算法。Adam是一種自適應學習率的方法。它利用梯度的一階矩估計和二階矩估計動態調整每個參數的學習率。Adam的優點主要在于經過偏置校正后,每一次迭代學習率都有確定范圍,使得參數比較平穩。

2.2.3 網絡參數初始化

在開始訓練前對神經網絡參數進行初始化,采用了Xavier的方法。此初始化方法旨在使所有層中的梯度比例保持大致相同,將神經網絡中的參數初始化為[-c,c]范圍內的隨機數,且該隨機數服從高斯分布,c的計算方法如式(5)所示

(5)

其中,nin和nout分別是輸入的神經元數量和輸出的神經元數量。

3 實驗結果評估

3.1 實驗環境

本文使用的卷積神經網絡在Mxnet和Pytorch框架下實現。文中出現的實驗數據以Mxnet或Pytorch框架下的較好結果為準。所有的實驗在Intel Core i7-5920K CPU和NVIDIA Geforce RTX 2080Ti(×2) GPU上運行。

3.2 優化算法評估

為了使損失函數更快收斂且收斂效果更好,本文分別對不同優化算法進行測試,分別選擇隨機梯度下降法(學習率為0.001,權重衰減5×10-4)、隨機梯度下降+動量法(學習率為0.001,動量0.9,權重衰減5×10-4)、RMSProp(學習率為0.001)和Adam(學習率為0.001)作為優化算法,其損失函數收斂曲線如圖5所示。由于優化算法只對訓練時的損失函數起到優化的作用,因此訓練時的損失函數收斂曲線可以反映算法性能。從圖5中可以看出,使用Adam算法,損失函數收斂最快、收斂效果最好,在第49代時,損失函數低至0.5,且低于其它方法,因此選擇性能最好的Adam算法作為優化算法。

圖5 不同優化算法下模型損失函數收斂曲線

3.3 神經網絡性能評估

本文主要使用兩個評價指標——損失函數和準確率來評估神經網絡的性能。在給定的測試數據集上,正確分類的樣本數與總樣本數之比為準確率,如式(6)所示

(6)

按照上述數據集和訓練方法對基于AlexNet[15]、VGG-16[16]、ResNet-18、ResNet-34、ResNet-50的卷積神經網絡進行訓練。由于驗證集結果比訓練集結果更能說明模型的性能,圖6給出了各網絡在驗證集上的損失函數及準確率的對比。

從圖6可以看出,相比于AlexNet和VGG-16,ResNet模型收斂更快、結果更好。ResNet模型在第5代就達到了90%以上的驗證集正確率,在第50代時可以將損失函數降低到0.09以下,將驗證集準確率提高到97%以上。表2給出了各網絡可達到的最小損失函數值、最高準確率以及網絡參數個數??梢钥闯?,ResNet模型參數個數明顯少于AlexNet和VGG-16,而性能卻更優。原因主要有兩個:①在相同參數的情況下,神經網絡越深,訓練后的神經網絡性能越好,淺層神經網絡的性能遠遠弱于深層神經網絡;②ResNet在網絡中使用了殘差塊,殘差塊使得深層神經網絡性能更好、收斂更快。

圖6 不同優化器下模型準確率和損失函數

表2 各網絡參數和結果對比

從圖6和表2中可以看出,ResNet-18、ResNet-34和ResNet-50的性能相差不大,原因如下:在神經網絡中,多次使用卷積層對圖像進行特征提取,越接近輸出層對應的感受野越大,遠離輸出的層對應的感受野越小,實驗中很多長裂縫在圖像中跨度很大,加入更多的卷積層才能夠使得神經網絡學到裂縫完整的特征信息,而圖像的尺寸大小僅為128×128,更深的卷積神經網絡接近輸出的層的感受野重疊面積太多,學到的裂縫特征信息出現冗余,因此導致ResNet-18比AlexNet和VGG-16得到的結果更好,而ResNet-18、ResNet-32和ResNet-50得到的結果接近。

ResNet-18參數少,訓練時間相對較短,批量大小設置為64的情況下,每一代訓練時間大約在20 s左右,少于其它各網絡訓練時長。同時,ResNet-18框架在本實驗中的性能相對較好,更適合裂縫檢測特征提取。因此,本實驗采用了基于ResNet-18的卷積神經網絡,并且在該網絡中加入了ReLU層、Dropout層和殘差塊等用于防止過擬合。圖7展示了本實驗設計的模型在訓練集和驗證集上的損失函數和準確率,模型訓練集準確率最高可達到98.3%,損失函數減小至0.05;驗證集準確率最高可達到97%,損失函數降低至0.087。從訓練結果可以看出,訓練集和驗證集的準確率隨著每一代穩步提升,未出現過擬合現象。

3.4 對四分類的解釋

以上的裂縫檢測神經網絡可將目標圖像分為背景區域、零件邊緣區域、零件完整區域和零件裂縫區域4個類別,圖7為其實驗結果圖。然而,在過去的一些裂縫檢測研究[8,9]中,設計的卷積神經網絡多采用二分類的方法尋找裂縫,神經網絡模型只區分圖像中有無裂縫,即背景區域、零件邊緣區域和零件完好區域均屬于無裂縫區域,但是類似的方法并不適用于本次研究的鐵氧體零件裂縫檢測。圖8展示了本文設計的卷積神經網絡進行二分類(將Softmax層改為2層)的損失函數及準確率。模型在訓練集中可以達到90%以上的準確率;而在驗證集中,準確率不到25%。

圖7 實驗模型在訓練集和驗證集的損失函數和準確率

圖8 鐵氧體裂縫檢測二分類實驗

相較于圖7所示的四分類實驗結果,二分類神經網絡并不能很好地識別裂縫特征,分析原因如下:背景區域、零件邊緣區域和零件完好區域的特征相差巨大、沒有顯著的共同點,模型不能找到同時適應3種特征的模型參數。因此,將有無裂縫的二分類改變為背景區域、零件邊緣區域、零件完好區域和零件裂縫區域的四分類可以解決二分類存在的問題,圖7的實驗結果驗證了此結論。

4 測 試

4.1 粗檢測

測試集中原始圖像的分辨率是3000×3000像素,神經網絡的輸入是128×128像素的圖像,需要以大小為128×128的采樣窗口,對原始圖像進行等間隔滑動采樣,圖9顯示了當滑動步長設置為128像素時的采樣示意圖,此時可得到529個128×128的采樣區域。

圖9 步長為128像素的等間隔滑動采樣

對采樣區域分別進行標準化后,依次將其作為神經網絡的輸入,神經網絡的輸出即為該采樣區域所屬的類別。將每個采樣結果的類別標注在原圖中,如圖10(a)、圖10(b)所示,其中深灰色區域表示背景區域,淺灰色區域表示零件邊緣區域,白色區域表示零件完整區域,黑色區域表示零件裂縫區域。圖10(a)、圖10(b)各有14和16個區域檢測錯誤。測試集的零件和訓練集的零件有明顯區別,但仍有97%以上的分類結果是正確的,說明本次設計的神經網絡對鐵氧體零件各類型區域的分類性能好、泛化能力強。

圖10 粗檢測結果

4.2 滑動子區域計分

雖然粗檢測可以達到較高的分類準確率,但由圖10可以看出,粗檢測得出的結果中錯檢區域較多,且檢測出的裂縫區域的精細程度不高。本文提出了一種滑動子區域計分方法,可以使檢測出的裂縫更加精確,同時剔除錯誤檢測。首先將滑動步長由128像素減小為128/2N像素,其中N為縮小倍數,取值為[1,7],本文以N=2為例,即滑動步長為32像素,采樣如圖11所示。

圖11 步長為32像素的等間隔滑動采樣

每一個128×128的采樣區域可以看作是16個32×32的子區域,采用如下方式對子區域進行計分:

(1)若采樣區域被分類為零件裂縫區域,給予它的所有子區域一個較大的信心分數;

(2)若采樣區域被分類為零件完好區域或背景區域,給予它的所有子區域一個懲罰分數;

(3)為了保證當裂縫出現在零件邊緣部分時仍能將其檢測為裂縫(裂縫出現在零件邊緣區域時,神經網絡往往將這種情況判斷為零件的邊緣),被檢測為零件邊緣區域的采樣區域給予它的所有子區域一個較小的信心分數。

由于采樣區域之間相互重疊,大部分子區域會得到多次賦值,子區域的最終分數p如式(7)所示

p=Oc+Pe-Qn

(7)

其中,O代表零件裂縫區域的信心分數,c代表該子區域被檢測為零件裂縫區域的次數;P代表零件邊緣區域的信心分數,e代表被檢測為零件邊緣區域的次數;Q代表零件完好區域和背景區域的懲罰分數,n代表被檢測為這些區域的次數。設定一個閾值Tp,若子區域的最終分數p大于等于Tp,則認為該子區域是裂縫區域。

經過多次實驗,在滑動步長為32像素的情況下,建議設定裂縫的信心分數O為1,邊緣的信心分數P為0.5,其它區域的懲罰分數Q為2,閾值Tp為5。以該組參數,采用滑動子區域計分方法得出的裂縫檢測結果如圖12所示,經計算,該方法可將寬度在0.1 mm左右、長度在0.2 mm以上的裂縫檢測出來。

圖12 滑動子區域計分結果

此外,還可以將縮小倍數N設置為更大的值,從而將原采樣區域分割為更精細的子區域,使用類似的計分方式,能夠得到更精確的裂縫檢測結果。

4.3 結果評估

本文使用了3種評估系數精確率Pr、召回率Re和F1分數,來測試裂縫檢測方法在測試圖像中的性能,式(8)、式(9)、式(10)分別是這3種評估系數的表達式

(8)

(9)

(10)

其中,TP、FP和FN分別是實際有裂縫檢測為有裂縫,實際有裂縫檢測為無裂縫和實際無裂縫檢測為有裂縫的區域個數。對25張測試集圖片進行測試。將步長為128像素(粗檢測)與步長為64像素、32像素的檢測結果進行對比,對比結果見表3,可以明顯看出,步長為32時的精確率、召回率和F1分數更高,效果更好。

表3 不同步長的Pr、Re和F1對比

將滑動子區域計分方法的步長設置為128、64和32的裂縫檢測結果對比如圖13所示,其中從左到右依次是步長設置為128、64和32的裂縫檢測結果圖。從圖中可以明顯看出,在步長逐漸減小時,檢測出的裂縫區域更加精細、準確,在步長為32像素時的檢測結果最優。

圖13 裂縫檢測結果對比

在采用傳統圖像處理方法檢測該類圓環形零件的裂縫時,無法將零件裂縫區域與零件邊緣區域區分開,因此無論是精確率、召回率和F1分數,或是檢測的精細程度、準確程度,都比本文提出的神經網絡分類器結合滑動子區域計分的方法效果差。

5 結束語

本文針對小型圓環形鐵氧體零件的裂縫檢測難題,開展了一系列研究。在第一章建立了一個包含9K張大小為128×128的圖像的鐵氧體零件數據集。在第二章設計了一種基于卷積神經網絡的裂縫檢測網絡,該網絡可實現鐵氧體零件圖像的四分類。在第三章對裂縫檢測網絡的性能進行了評估,在驗證集上的準確率可以達到97%。在第四章提出了一種滑動子區域計分方法,通過縮小滑動步長、對子區域計分、設定閾值Tp,篩選出最終分數較高的子區域作為檢測結果,得出更精確的裂縫區域,并有效地剔除了錯檢區域,在測試集可達到97.9%的檢測精度。實驗數據和實驗結果表明本文設計的基于卷積神經網絡的鐵氧體零件裂縫檢測網絡,結合滑動子區域計分方法,可以有效、精準地檢測出鐵氧體零件中寬度在0.1 mm左右、長度超過0.2 mm的裂縫,達到了小型圓環形物體裂縫檢測的最優水平,具有較高的工程應用價值。

猜你喜歡
鐵氧體步長卷積
四川省重大科技專項成果—柔性鐵氧體實現產業化
基于Armijo搜索步長的BFGS與DFP擬牛頓法的比較研究
基于3D-Winograd的快速卷積算法設計及FPGA實現
基于隨機森林回歸的智能手機用步長估計模型
卷積神經網絡的分析與設計
單個鐵氧體磨粒尺寸檢測電磁仿真
基于Armijo搜索步長的幾種共軛梯度法的分析對比
從濾波器理解卷積
再生膠的制備及性能研究
基于傅里葉域卷積表示的目標跟蹤算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合