?

基于M-Unet 的混凝土裂縫實時分割算法

2024-04-11 13:02孟慶成李明健萬達胡壘吳浩杰齊欣
土木與環境工程學報 2024年1期
關鍵詞:集上語義損失

孟慶成 ,李明健 ,萬達 ,胡壘 ,吳浩杰 ,齊欣

(1.西南石油大學 土木工程與測繪學院,成都 610500;2.西南交通大學 土木工程學院,成都 610031)

在混凝土自身材料特性影響及多重因素作用下,混凝土結構服役期間會不可避免地產生裂縫。裂縫是混凝土結構病害的一種初期表現,若初期裂縫得不到即時修補,在外力的作用下,裂縫的長度、寬度、深度會不斷地增加,使得混凝土構件的有效截面面積減小,承載力降低,繼而可能會導致事故的發生[1]。早期的裂縫檢測主要是人工檢測方法,人工檢測可以直接對裂縫的特征進行判斷,較為簡便靈活,但人工檢測的結果受限于主觀判斷,依賴檢測人員的經驗儲備,且人力物力消耗大,容易發生安全事故,導致人工檢測難以完成大量的裂縫檢測任務[2]。后來出現了基于傳統圖像處理技術的裂縫檢測方法,常見的有基于閾值的裂縫圖像分割方法和邊緣檢測方法[3]。傳統圖像處理技術促進了混凝土裂縫檢測技術的發展,取得了一定的成就,但在解決復雜裂縫以及背景噪聲多的圖像時,傳統圖像處理技術存在較多的局限性,使其無法獲得穩定的檢測結果,無法適應復雜的實際場景[4]。

深度學習(Deep Learning,DL)算法具有強大的特征提取能力,早期受限于計算機硬件設備的性能而沒有得到普遍的應用[5]。隨著計算機硬件設備性能的提升和現代科技的飛速發展,深度學習算法的應用得到了普及并促進了圖像識別技術的發展。深度學習算法是一種包含多隱含層和多感知層的網絡結構,相比于傳統算法能更好地描述物體抽象的和深層次的信息,在圖像識別領域表現突出,因此越來越多的科研人員將其應用于結構損傷檢測任務中[6]。胡文魁等[7]針對傳統方法去除裂縫圖像噪聲不明顯以及輸出結果中裂縫不連續的問題提出一種BCI-AS 方法,在像素級水平上的裂縫分割精度達到了94.45%。李良福等[8]先利用滑動窗口算法對裂縫圖像切割成多個區域,再用卷積神經網絡(Convolutional Neural Network,CNN)對切割后圖像分類,最后用改進的滑動窗口算法檢測裂縫,取得良好的檢測效果。Liu 等[9]采用U-Net 方法識別混凝土裂縫,與全卷積網絡(Fully Convolutional Networks,FCN)相比,該方法的效率更高、準確性更好,但存在邊緣平滑、細節丟失的問題。Ren 等[10]提出了一種改進的深度全卷積網絡 CrackSegNet,可有效地消除噪聲的干擾,可從復雜背景的裂縫圖像中執行端到端的裂縫分割。Xue 等[11]提出基于RFCN 的隧道襯砌裂縫圖像檢測方法,獲得了比GoogLeNet 和VGG 等模型更好的檢測效果。王森等[12]提出一種深度全卷積神經網絡用于裂縫圖像的分割,該算法準確率達92.46%,但沒有用其他數據對算法的有效性進行測試,缺乏對模型泛化能力的驗證。

上述網絡模型均取得了較好的裂縫分割效果,但所需的計算量大、缺乏對裂縫分割速度的考慮,在裂縫檢測量巨大和設備計算資源有限的前提下,難以滿足裂縫檢測實時性的要求。提出一種結合改進的MobileNet_V2 輕量網絡和U-Net 網絡的裂縫語義分割模型M-Unet,利用改進的MobileNet_V2 網絡替換U-Net 網絡的下采樣部分,減少參數量,達到網絡輕量化的效果,并設置多組對比實驗以驗證方法的有效性。

1 數據集的制作

1.1 采集裂縫圖像

圖像采集于已投入使用的包括橋梁、擋土墻、大壩和隧道等各種混凝土結構,經過一周的采集,共計采集到1 226 張分辨率為4 032×3 024 的三通道RGB 原始混凝土裂縫圖像。為了讓網絡學習到更多不同背景噪聲條件下的裂縫特征,反映混凝土結構在服役期間所處的真實環境,采集到的裂縫圖像包含了不同時間段、不同光照條件、不同污漬情況、不同清晰度等情況的圖像,采集到的部分裂縫圖像如圖1 所示。

圖1 混凝土裂縫圖像Fig.1 Image of concrete cracks

1.2 圖像標注及增強

從1 226 張裂縫圖像中挑選出250 張效果較好的裂縫圖像,利用語義分割標注軟件Labelme 對250張裂縫圖像進行標注,標注過程如圖2 所示,不同于目標檢測任務中的數據標注,在目標檢測中對圖像數據的標注僅需用矩形框將目標區域框住,而在語義分割任務的圖像標注過程中,需要將裂縫圖像放大,并沿著目標的輪廓逐點標注,實現亞像素級別的裂縫標注,標注點間的線寬與裂縫尺寸相比是微不足道的,不會對裂縫幾何尺寸測量造成影響。將所有標注點閉合成環即完成對裂縫的標注,閉合區域以外的其他區域為背景區域。

圖2 混凝土裂縫標注過程Fig.2 Labeling process of concrete cracks

對標注后的裂縫圖像進行切分,將每一張裂縫圖像切分成分辨率大小為512×512 的不重疊區域,并從中剔除缺乏裂縫特征的圖像。使用Labelme 標注的圖像會生成記錄標注過程中關鍵點位置信息的json 文件,但json 文件并不能作為裂縫語義分割網絡訓練所需的直接數據,為了將其用于訓練,通過編寫的Python 腳本將json 文件中的位置信息轉換為可直接訓練的掩碼位圖GroundTruth 圖像,圖3為轉換后的部分圖像。

圖3 已標注的裂縫圖像Fig.3 Labeled crack images

對標注好的裂縫圖像進行數據增強,使用數據擴增工具Augmentor 對裂縫數據集擴增操作,如旋轉、放大、扭曲等,最終得到5 160 張帶有掩碼位圖的裂縫圖像,將數據集命名為SegCracks,將SegCracks 按7∶2∶1 劃分成訓練集、驗證集和 測試集。

2 M-Unet 裂縫語義分割網絡

2.1 改進的MobileNet_V2 網絡

MobileNet_V2[13]是一種適用于移動設備的輕量級的卷積神經網絡,其核心是采用反向殘差的深度可分卷積代替了普通卷積,使用深度可分卷積可顯著降低網絡計算復雜度,減少參數量。MobileNet_V2 在網絡訓練中使用的激活函數為ReLU6,并采用批量標準化Batch Normalization 和Dropout 操作,以達到加快網絡收斂速度和防止過擬合現象。對MobileNet_V2 的改進主要有以下兩方面。

一是對網絡結構層進行修剪,減少線性瓶頸結構bottleneck 的重復次數,以減少網絡復雜度并且進一步輕量化模型,改進后的MobileNet_V2 網絡結構如表1 所示。

表1 改進后的MobileNet_V2 網絡結構Table 1 Network structure of improved MobileNet_V2

二是優化了原始網絡的激活函數。激活函數是神經網絡處理非線性問題的關鍵,在MobileNet_V2 網絡中使用的是ReLU6 激活函數,函數圖像如圖4(a)所示,雖然ReLU6 激活函數可以顯著提高網絡非線性映射能力,但由其函數圖象也可看出,當x<0 時,激活函數的梯度為零,并且在其后面的神經元梯度也將變為零,神經元壞死后不會對傳入的數據響應,參數也得不到更新。因此,對原網絡激活函數進行優化,引入LeakeyReLU 激活函數,其表達式如式(1)所示,其函數圖像如圖4(b)所示。與ReLU6 激活函數相比,使用LeakeyReLU 不僅能有效解決ReLU6 梯度消失和神經元壞死等問題,而且因其函數圖象左側的軟飽和性使其具備更強的噪聲干擾抵抗能力。

圖4 原激活函數和改進的激活函數Fig.4 Original and improved activation function

式中:α 為偏移量,默認值為0.01。

2.2 M-Unet 網絡

U-Net[14]網絡主要是由左邊的壓縮路徑和右邊的擴展路徑兩部分組成,是一種典型的編碼-解碼結構,如圖5 所示。壓縮路徑由3×3 的卷積層和2×2的池化層組成,主要用于對裂縫圖像特征信息的逐層提取和壓縮,而擴展路徑由卷積層和反卷積層組成,用于還原裂縫圖像特征的位置信息,從而實現端到端的裂縫檢測。U-Net 網絡的壓縮路徑在池化操作前都會自動保存裂縫特征圖像,并以跳躍連接的方式將裂縫圖像特征傳輸給對應的擴展路徑部分,這樣可以有效彌補因池化操作而丟失的裂縫特征信息。

圖5 U-Net 網絡結構Fig.5 Network structure of U-Net

U-Net 網絡的下采樣部分通常是參數量很大的VGG16 網絡,在裂縫分割任務中會消耗大量的計算資源,難以滿足在實際工程應用中的實時性要求。輕量級卷積神經網絡MobileNet_V2 的模型參數量僅為VGG16 網絡的1/41,為了進一步降低對設備性能的要求和提高裂縫語義分割速度,對U-Net 網絡進行優化,采用改進后MobileNet_V2 網絡替換U-Net 網絡的下采樣部分,以實現模型的輕量化、減少計算復雜度并提高裂縫的語義分割效果,將優化后的輕量級語義分割網絡命名為M-Unet。

3 實驗與結果分析

3.1 實驗環境與實驗設置

實驗硬件環境為第10 代英特爾處理器i7-10700,32 GB 的運行內存,NVIDIA GeForce RTX 2060 顯卡,顯存為6 GB。軟件環境為64 位Windows 10 操作系統,使用高級程序設計語言Python,在深度學習框架Pytorch 下運行。

實驗使用的數據集為SegCracks 數據集,經過超參數的調優,最終選取批量大小為4、Adam 自適應學習率優化器和指數衰減學習率的組合。共設置4 組實驗:第1 組實驗為對比3 種損失函數,選取1種最適用于裂縫語義分割任務的損失函數;第2 組實驗是對提出的M-Unet 網絡進行迭代訓練,通過多種指標對網絡的性能進行分析;第3 組實驗是將M-Unet 網絡與3 種主流的深度學習語義分割網絡和傳統圖像處理方法的裂縫分割結果進行對比分析,以驗證提出方法的有效性;第4 組實驗是為驗證網絡的泛化能力,在CFD[15]、CRACK500[16]、GAPS384[17]3 個開源數據集進行交叉驗證。

3.2 模型性能評價指標

通常情況下,單一的準確率評判標準不一定能全面反映網絡的裂縫分割效果,為更加全面準確地評估網絡性能而引入混淆矩陣?;煜仃囀且环N可視化工具,其中每一行表示網絡預測值,每一列表示真實值,通過將網絡的預測結果和真實結果放在同一個表中,混淆矩陣能清楚地表示出每個類別識別正確和錯誤的數量,如表2 所示。

表2 混淆矩陣Table 2 Confusion matrix

由混淆矩陣可以定義裂縫語義分割網絡的重要評價指標,包括交并比(IoU)、精確率(Precision)、召回率(Recall)和F1_Score,其值越高,表示網絡的裂縫語義分割越好、綜合性能越優,計算公式如式(2)~式(5)。

式中:TP、FP、FN分別為表2 中的TP、FP、FN;I為模型的預測窗口與原來標記窗口的交疊率,是語義分割中常用的一種度量標準;Pr為正確預測為裂縫占全部預測為裂縫的比值;R為正確預測為裂縫占全部實際為裂縫的比值;F1為精確率和召回率的調和指標。

3.3 損失函數的選取

損失函數用于衡量預測值和真實值之間的誤差,其決定了網絡的訓練方法,在網絡訓練優化過程中起指導性作用,可通過損失函數的反饋來調整和改進模型的權重系數。第1 組實驗是對比語義分割領域常用的Dice Loss、BCE Loss 和BCEWithLogits Loss 損失函數的性能,在其余參數相同的情況下,經過10 輪的迭代,3 種損失函數的訓練集損失曲線如圖6 所示、驗證集損失曲線如7 所示??梢钥闯?,在訓練集損失曲線圖中,選用不同損失函數的損失值隨著迭代次數不斷增加而逐漸降低,網絡逐漸收斂。在驗證集損失曲線圖中,選用Dice Loss 損失函數的模型損失值明顯小于其余兩種,對網絡的優化有更好的指導作用。因此,選用Dice Loss 作為搭建網絡的損失函數。

圖6 訓練集損失曲線Fig.6 Loss curves of training set

圖7 驗證集損失曲線Fig.7 Loss curves of verification set

3.4 測試模型性能

采用構建的SegCracks 數據集對搭建的MUnet 網絡進行訓練,經過50 次迭代后,網絡損失值變化曲線如圖8 所示,可以看出,迭代35 次以后損失值變化波動趨于穩定,網絡開始收斂,且驗證集準確率小于訓練集準確率,未產生過擬合現象。IoU_Score 變化曲線和F1_Score 變化曲線如圖9 和圖10 所示,量化結果如表3 所示,提出的網絡在訓練集和驗證集上獲得的IoU_Score 分別為97.34%和96.10%,F1_Score 分別為98.65% 和97.99%,在SegCracks 數據集上取得了較好的裂縫分割結果,表明所提出的網絡模型具有良好的性能。使用完成訓練后保存的最優網絡權重對測試集進行測試,結果表明分割一張裂縫圖像所需時間為0.211 s,滿足了實際工程應用中對實時性的要求。

表3 網絡評價指標結果Table 3 Results of network evaluation indicators

圖8 損失值變化曲線Fig.8 Variation curves of loss value

圖10 F1_Score 變化曲線Fig.10 Variation curves of F1_Score

3.5 不同模型性能對比

將搭建的M-Unet 網絡與U-Net、FCN8 和SegNet 主流語義分割網絡模型進行對比分析,采用建立的數據集進行訓練,經過50 次迭代后4 種網絡的評價指標如表4 所示,模型權重文件大小和每輪迭代所需時間如圖11 所示。由圖11 可知,FCN8 網絡模型權重文件較大且運行時間長,難以應用于現場檢測移動端平臺并滿足實時檢測的需求,SegNet網絡雖然權重文件最小,但其迭代時間和預測時間均比M-Unet 網絡長,且裂縫分割效果不如U-Net 網絡和M-Unet 網絡。搭建的網絡迭代時間最短,相比于U-Net 網絡,由于M-Unet 網絡采用改進后的MobileNet_V2 替換了原U-Net 網絡中參數量巨大的下采樣部分,使得權重文件大小減少了7%,迭代時間縮短63.3%。

表4 不同網絡結果對比Table 4 Comparison of results for different networks

圖11 權重文件大小及迭代時間Fig.11 Weight file size and iteration time

由表4 可以看出,在4 個網絡模型中,M-Unet網絡在訓練集和驗證集上的IoU_Score 和F1_Score均最高,網絡損失值最小,對裂縫的語義分割效果最好,且對裂縫的預測時間最短,分割一張裂縫的時間僅為SegNet 的43.88%、U-Net 的31.40%、FCN8 的13.38%。與未改進的U-Net 網絡相比,M-Unet 網絡在測試集上分割一張裂縫圖像時間僅需0.211 s,比U-Net 縮短了68.6%,且IoU_Score和F1_Score 有較大的提升,在訓練集上分別提升2.94%和1.55%,在驗證集上分別提升5.79%和3.14%。綜上,M-Unet 網絡在實現模型輕量化的同時提升了對裂縫的分割精度,驗證了改進方法的有效性。

除與幾種主流深度學習語義分割網絡進行對比外,還將傳統圖像處理方法中基于Prewitt 算子、Canny 算子、Sobel 算子3 種邊緣檢測方法[18]以及大津閾值法Otsu[19]與網絡分割結果進行對比分析,不同方法的裂縫分割效果如圖12 所示。由圖12 可以看出,傳統圖像處理方法受噪聲影響較大,分割結果中噪聲干擾點較多,其中大津閾值法Otsu 受噪聲和光照不均的影響最大,只能分割出部分裂縫,漏檢問題較嚴重,難以滿足實際需求?;谶吘墮z測方法能分割出裂縫大致形狀,分割效果優于大津閾值法,但抵抗噪聲能力差,分割結果中也存在較多噪聲點,裂縫分割效果一般。其中基于Canny 算子在分割細小的裂縫時難以保證裂縫邊緣的連續性,存在部分漏檢問題。相比于以上4 種傳統圖像處理裂縫分割方法,基于深度學習的M-Unet 網絡通過堆疊多層卷積層,可更好地提取裂縫更抽象的和更高層的特征,能夠獲得豐富的裂縫信息,且具有較強的去噪能力,提出的M-Unet 網絡分割結果中僅有極少量的噪聲干擾點,且裂縫的連續性好,邊緣分割結果清晰,表明該方法具有比傳統圖像處理方法更好的裂縫語義分割效果。

圖12 不同方法語義分割結果Fig.12 Semantic segmentation results of different methods

3.6 不同數據集上交叉驗證

為進一步驗證網絡的性能,在 CFD、CRACK500 和GAPS384 三個開源數據集上進行交叉驗證。3 個數據集上包含多種不同背景,不同噪聲和不同形態特征的裂縫,契合混凝土結構服役運營期間所處的實際環境。M-Unet 網絡在3 種不同數據集上的模型評價指標如表5 所示,其中IoU_Score 均達到了97%以上,F1_Score 均達到了98%以上,表明優化后的M-Unet 網絡在新的數據集上也能獲得很高的裂縫分割精度,具有良好的魯棒性和泛化能力,可滿足實際工程對裂縫檢測的需求。

表5 交叉驗證結果Table 5 Results of cross validation

4 結論

針對混凝土結構裂縫檢測量大、噪聲干擾多和檢測時間較長等問題,提出M-Unet 輕量級裂縫語義分割網絡,實現了對混凝土裂縫圖像在像素級上的分類,并進行多組對比實驗,得出以下結論:

1)構建包含5 160 張裂縫圖像的SegCracks 數據集,并基于此訓練集對M-Unet 網絡迭代優化,優化后的M-Unet 網絡獲得IoU_Score 為96.10%,F1_Score 為97.99%,對裂縫的分割效果優于主流語義分割網絡U-Net、FCN8 和SegNet,且在保持高檢測精度的同時大幅降低模型權重文件體量和減少裂縫分割時間。

2)M-Unet 通過將改進MobileNet_V2 輕量級網絡替換U-Net 的編碼器部分,與原始U-Net 相比,在實現模型輕量化的同時提高裂縫的分割精度,使得權重文件大小減少了7%,迭代一輪時間縮短63.3%,預測時間縮短68.6%,在驗證集上獲得的IoU_Score 和F1_Score 分別提升5.79%和3.14%,證明了改進方法的有效性。

3)與傳統的圖像處理方法相比,提出的M-Unet網絡對混凝土裂縫語義分割具有更強的抗噪性,且裂縫分割結果連續性好,邊緣清晰,很好地契合了裂縫的實際走向和形狀。

4)將M-Unet 網絡在CFD、CRACK500 和GAPS384 三個開源數據集上進行交叉驗證,獲得的IoU_Score 均達到了97%以上,F1_Score 均達到了98%以上,表明搭建的網絡具有精度高、魯棒性好和泛化能力強等優點。

猜你喜歡
集上語義損失
胖胖損失了多少元
Cookie-Cutter集上的Gibbs測度
語言與語義
鏈完備偏序集上廣義向量均衡問題解映射的保序性
玉米抽穗前倒伏怎么辦?怎么減少損失?
復扇形指標集上的分布混沌
“上”與“下”語義的不對稱性及其認知闡釋
一般自由碰撞的最大動能損失
損失
認知范疇模糊與語義模糊
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合