?

基于卷積神經網絡的鋼箱梁裂縫檢測算法研究

2023-11-01 12:14沈俊凱張令心朱柏潔
世界地震工程 2023年4期
關鍵詞:鋼箱梁尺度像素

沈俊凱,張令心,朱柏潔

(1. 中國地震局工程力學研究所 地震工程與工程振動重點實驗室,黑龍江 哈爾濱 150080;2. 地震災害防治應急管理部重點實驗室,黑龍江 哈爾濱 150080)

0 引言

隨著建筑工業化的發展,裝配式鋼箱梁在鋼結構建筑和大跨度橋梁建設中得到了廣泛應用。這類橋梁結構在服役過程中不可避免的受到車輛動載的持續沖擊或地震作用影響,鋼箱梁表面,尤其是焊縫處極易出現裂縫損傷。為確保鋼箱梁工作的安全,需要定期對鋼箱梁開展健康診斷和安全評估工作[1]。然而,這種采用鋼箱梁的橋梁結構跨度較大,裂縫常出現在工程師難以直接使用肉眼觀察到的位置[2],人工檢測難度很大。此外,由于震后地震現場安全狀況不明,工程師直接進入鋼箱梁內部進行觀察與評判存在較大的安全隱患。隨著無人機技術的飛速發展,目前已經實現了利用無人機近距離地采集裂縫圖像,工程師僅需根據采集到的圖像即可完成對鋼箱梁的健康診斷和震后損傷判別。但這種診斷過程依然費時費力,診斷準確度高度依賴于工程師的專業知識儲備,主觀性較強,無法達到快速診斷的目標。因此,為了能夠更加高效、精確地檢測出圖像中的裂縫損傷,有必要引入計算機視覺技術對采集的圖像開展裂縫識別和提取研究,為橋梁結構的健康診斷和震后損傷判別提供依據。

針對這一需求,國內外眾多學者開展了廣泛的研究,尤其是近幾年,隨著人工智能的快速發展,基于深度學習方法的計算機視覺技術被廣泛的應用于結構損傷檢測領域[3]。例如,CHA等[4]提出了一種基于卷積神經網絡的混凝土裂縫檢測算法,結果表明:該算法的檢測精度遠高于傳統的邊緣檢測方法;ZHANG等[5]提出了一種基于You Only Look Once (YOLOv3)的混凝土橋梁表面損傷檢測算法;XU等[6]提出了一種基于融合卷積神經網絡檢測鋼結構表面裂縫和筆跡的方法;李良福等[7]提出了一種基于深度學習的橋梁裂縫檢測方法,利用卷積神經網絡對切割好的小尺度子圖像進行分類實現對裂縫的檢測。然而,上述這類檢測方法都是通過對小窗口內的子圖像進行分類實現裂縫檢測,檢測精度仍停留在窗口級,無法實現像素級的裂縫檢測,也就無法對裂縫開展量化分析。

為了實現像素級的裂縫檢測,Alipour等[8]提出了基于全卷積神經網絡的CrackPix模型,像素檢測精度明顯優于窗口級模型;肖創柏等[9]提出了一種基于Faster R-CNN的鐵軌裂縫檢測算法,通過結合深度學習算法和數學形態法實現了裂縫的像素級檢測;ZHANG等[10]構建了四種不同尺度的U-Net的模型,研究了模型尺度對像素級裂縫檢測精度和效率的影響。上述像素級裂縫檢測方法均為基于編碼器-解碼器框架的單一模型。這類模型所能處理的圖像尺寸較小。然而,現實世界中采集的圖像尺寸較大,裂縫只占原始圖像中的小部分區域,直接使用像素級檢測模型檢測整幅圖像會造成大量計算資源的浪費,降低檢測效率。

綜上所述,窗口級檢測方法在檢測效率方面優勢明顯,但檢測精度不足。像素級檢測方法的檢測精度更高,但檢測效率較低。因此,本文提出了一種將窗口級方法和像素級方法級聯的鋼箱梁裂縫檢測算法,使用窗口級分類模型準確地定位并提取出原始圖像中包含裂縫區域的子圖像,再利用像素級分割模型對裂縫子圖像進行像素級的檢測,從而高效、精確地完成對任意尺度圖像的像素級裂縫檢測。

1 方法概述

本文所提出的鋼箱梁裂縫檢測算法的實現框架如圖1所示。首先,通過分類模型在原始圖像中定位出裂縫所在區域,提取出裂縫子區域;然后,將裂縫子區域輸入到分割模型中,實現像素級的裂縫檢測;最后,將分割出來的像素級檢測結果依次拼接,得到最終的檢測結果。

圖1 本文方法實現框架Fig. 1 Implementation frame work of the proposed method

1.1 分類模型

分類模型主要負責在整體圖像中定位出裂縫所在的區域。首先,需要將整體圖像采用滑動窗口的方式劃分為若干個子區域,滑動窗口的尺寸為512×512像素,滑動步長為512像素;然后,采用分類模型對每個子區域進行判別,剔除大量無裂縫的背景區域,提取出含有裂縫的子區域。為了節省圖形存儲空間,用于訓練分類模型的子區域尺度可以壓縮為256×256像素,圖2(a)展示了將整體圖像劃分為子區域的過程;圖2(b)展示了經過分類模型檢測后的裂縫子區域的定位結果。

圖2 裂縫子區域定位Fig. 2 Crack sub-region location

1.1.1 模型結構

該研究中所使用的分類模型的骨架為VGG16[11]并根據分類任務的復雜度,將原來的3個全連接層減少為1層包含256個神經元的全連接層,模型架構如圖3所示。卷積層中的卷積核以給定的步幅在輸入張量上滑動,在訓練過程中通過不斷調整卷積核中的參數實現對特征的提取。最大池化層負責進一步提取特征和減少模型復雜度。同時,為了提高模型的非線性映射能力并降低反向傳播時求導的難度,本文采用了非線性激活函數(ReLU),計算公式如下:

圖3 分類模型的結構Fig. 3 Structure of classification model

(1)

式中:x是提取到的特征;f(x)是激活函數。

(2)

(3)

式中:y0和y1分別為裂縫和背景的預測類別概率。

1.1.2 分類模型的損失函數

本文采用二元交叉熵作為評價預測類別與真實類別之間差異的損失函數,計算公式如下:

(4)

式中:N為分類的類別數,此處N=2;p0和p1分別代表分類對象的真實類別。

1.2 分割模型

本文基于U-Net搭建了實現像素級裂縫檢測的分割模型[12],模型架構和各層特征圖尺度如圖4所示。分割模型是一個基于編碼器-解碼器框架的全卷積神經網絡。編碼器類似于VGG Net16中的特征提取單元,由卷積層和池化層負責提取裂縫特征。解碼器則包含了反卷積層和卷積層,負責將編碼器提取到的高維特征還原為具有與輸入向量相同尺度的像素級檢測結果。

圖4 分割模型的網絡結構Fig. 4 Network structure of segmentation model

(5)

(6)

(7)

1.2.1 邊緣填充與特征圖拼接

在編碼階段,若不采用邊緣填充的方式對輸入圖像進行補全,特征圖的尺度在卷積的過程中將不斷縮小,導致解碼后的輸出圖像尺度縮水,難以計算預測結果與真實標簽之間的損失值。因此, 本文將采用邊緣同值填充的方式為圖像四周進行補全,如圖5所示。從圖5可以看出,對輸入進行邊緣填充后,輸出尺度與輸入尺度將會保持一致。特征圖拼接操作是通過通道連接的方式將編碼器的特征和解碼器的特征進行融合,從而達到提高檢測精度的目的,而特征圖拼接的前提是兩個特征圖的寬高尺度一致。因此,邊緣填充的加入也為編碼特征圖與解碼特征圖相互拼接提供了便利。

圖5 卷積中的邊緣填充Fig. 5 Edge padding in convolution operation

1.2.2 反卷積

在解碼階段,需要將提取到的高維特征向量重新還原成與輸入圖像相同尺度的向量。本文采用反卷積對高維特征進行還原,如圖6所示。在反卷積過程中,卷積核與輸入向量中的每一個元素相乘,生成中間特征圖,之后將所有的中間特征圖按照卷積的方向和步長進行合并,得到輸出。相比于插值上采樣,反卷積操作中卷積核中的參數可以在訓練過程中動態調整,兼具特征提取的作用。

圖6 反卷積操作示意圖Fig. 6 Schematic of deconvolution operation

1.2.3 分割模型的損失函數

在訓練分類模型時,裂縫圖像樣本和背景圖像樣本是均衡的,可以采用常規的二元交叉熵作為損失函數。與分類模型不同,訓練分割模型所使用的圖像中存在裂縫像素和背景像素樣本嚴重不平衡的問題。由公式(6)計算得到的預測結果p和真實標簽r中的裂縫像素與背景像素間存在著數量級的差異,常規的損失函數無法有效的描述預測結果與真實標簽之間的差異。為了解決問題,本文引入了generalized dice loss (GDL)作為損失函數,該函數通過給不同類別的數據賦予不同的權重來提高裂縫像素在損失函數中的比重,計算公式如下:

(8)

(9)

式中:i是真實標簽里的類別的總數,以本文的裂縫檢測任務為例,i為2,分別包括裂縫像素和背景像素;rin是像素n中類別i的真實值;pin是相應的預測值;wi是每個類別的權重;N是一張圖像中的像素總數。例如,在一張尺寸為512×512像素的圖像標簽中,裂縫像素數量為5000個,背景像素數量為257144。裂縫像素值為1,背景像素值為0。按照公式(8)計算,裂縫像素的權重為1/50002,背景像素的權重為1/2571442。

2 實驗與分析

2.1 實驗數據集和超參數設置

本文所有代碼運行的硬件平臺為:CPU:i7-7800x,GPU:2×Nvidia GeForce GTX-1080Ti。代碼均采用Windows下的Pycharm平臺開發,使用基于Python語言的Keras深度學習框架。本文所采用的數據集是由IPC-SHM提供[13]。數據集中包括120張分辨率分別為3264×4928和3864×5152的原始圖像和裂縫標注圖像。原始圖像與標注出的裂縫圖像如圖7所示。選取其中的100張圖像用于訓練模型,20張用于測試訓練好的模型。

圖7 原始圖像與標注后裂縫圖像樣例Fig. 7 Samples of original image and annotated crack image

首先將100張原始圖像切割成5145個512×512像素的子圖像,其中447張裂縫子圖像,背景子圖像與裂縫子圖像的比例為10.5∶1。為了解決兩類子圖像之間數據不平衡的問題,需要對裂縫子區域進行數據增強,對裂縫子圖像進行拉伸、旋轉等操作以獲取更多裂縫子圖像。最終用于訓練分類模型的數據集中包含4000個裂縫子圖像和4000個背景子圖像。用于訓練分割模型的數據集中包含447張裂縫區域的子圖像和其對應的裂縫標簽。兩個數據集都按照8:2的比例分別劃分為訓練集和驗證集。

本研究采用Adam優化器來優化分類模型和分割模型。Adam優化器中的一階和二階矩估計的默認指數衰減率分別設置為0.9和0.999。初始學習率設置為0.0001,學習衰減率設置為0.01,每一個epoch的學習率根據下式確定:

(10)

式中:lrepoch為該epoch下的學習率;lr初始為初始學習率。分類模型的batch_size設置為120,分割模型的batch_size設置為6,epoch均設置為100。分類模型和分割模型在訓練階段的損失函數變化情況如圖8所示。

圖8 分類模型和分割模型的損失Fig. 8 Loss value of classification model and segmentation model

2.2 分類模型結果分析

測試集中共包括20張原始圖像,經過裁切后,共有1080張子圖像,其中裂縫子圖像112張,背景子圖像968張,表1展示了訓練好的分類模型在該數據集上的表現。

表1 分類模型在測試集上的混淆矩陣Table 1 Confusion matrix of the classification model on the test set

從表1中可以看出:分類模型對于裂縫和背景子圖像的分類精度均達到了96%以上。圖9展示了分類模型的部分預測結果。從圖9中可以看出:大部分裂縫子圖像和背景子圖像能夠被準確的識別出來。但是,也有少數背景區域由于受到字跡和陰影的干擾而被誤識別為裂縫(圖9(a)紅色虛線方框內),還有少數處在子圖像邊緣或過細的裂縫也未能被正確識別(圖9(b)紅色虛線方框內)。

圖9 分類模型預測結果Fig. 9 Prediction results of classification model

2.3 分割模型結果分析

用于檢驗分割模型的測試集中共包含112個裂縫子圖像及其對應的標簽圖像,分割模型的部分檢測結果如圖10所示。從圖10中可以看出:大部分的裂縫都能夠被分割模型精準的檢測出來,只有少數處于圖像陰影處和非常細微的裂縫未能被完整的檢測出來。

圖10 分割模型檢測結果Fig. 10 Detection results of segmentation model

2.4 整體檢測結果

為了更精確的評估所提出方法的裂縫檢測性能,本文選取F1分數和均交并比(Mean_IoU)作為評價指標。F1分數的計算公式如下:

(11)

(12)

(13)

式中: TP為標簽標注為裂縫且檢測結果也為裂縫的像素點的個數;FP為標簽標注為背景但檢測結果為裂縫的像素點的個數;FN為標簽標注為裂縫但檢測結果為背景的像素點的個數。Mean_IoU的計算公式如下:

(14)

式中: DR為檢測結果中裂縫像素點的個數,GT為標簽中裂縫像素點的個數。

本文所提出的方法在測試集20張圖上的F1分數和Mean_IoU如圖11所示,兩個評價指標越接近1說明檢測的效果越好。從圖11可以看出:除對少數圖像中的裂縫檢測效果較差外,本文方法對于多數圖像均可以精確地檢測出裂縫。為了更清楚地觀察對于不同裂縫的檢測效果,本文將檢測出的裂縫圖像與真實裂縫圖像進行疊加。若檢測出的裂縫與真實裂縫圖像中的裂縫重疊,表明裂縫檢測結果是準確的,將該像素標記為黃色;若不重合,表明檢測結果與真實裂縫存在誤差,將該像素標記為藍色。圖12展示了4張裂縫圖像的檢測結果。

圖11 測試集檢測結果的F1分數和Mean_IoUFig. 11 F1 score and Mean_IoU of detectionresultontestingset

圖12部分測試集裂縫檢測結果Fig. 12 Partial crack detection results on testing set

從圖12可以看出:無論是長裂縫還是短小裂縫,本文所提出的方法都可以有效的進行精確檢測。從圖12還可以看出:本文所提出的方法可以有效地分辨出裂縫與筆跡之間的區別,不會出現將筆跡誤認為裂縫的情況。但本文方法對于兩塊高低不平整的鋼板之間所形成的狹小陰影區域容易出現誤判??傮w而言,本文方法對于大部分常規裂縫都能實現精確檢測。本文方法的檢測效率和檢測精度與僅使用分割模型的對比見表2。從表2可以看出:本文方法檢測一張千萬像素級的完整圖像中的裂縫平均僅花費9.25 s,而僅使用分割模型需要花費15.86 s。相比于僅使用分割模型,本文所提出的基于級聯的檢測方法的檢測速度提高了70%。同時,本文方法的檢測精度也明顯高于僅使用分割模型的方法,F1分數和Mean_IoU分別提高了0.12和0.10。

表2 兩種檢測方法的檢測效率對比Table 2 Detection efficiency comparison of two methods

3 結論

為精確和快速的實現對橋梁鋼箱梁內部裂縫的像素級檢測,本文提出了一種基于深度學習的級聯式混合方法,得出以下結論:

1)所提出的方法結合了基于深度學習的分類模型和分割模型,利用分類模型效率高、定位準確的特點快速定位裂縫區域,利用分割模型檢測精度高的特點對裂縫區域進行像素級檢測,解決了窗口級算法精度低和像素級算法效率低的問題。

2)相較于現有方法只能檢測固定尺度圖像中的裂縫,本文采取的級聯策略可以實現任意尺度圖像裂縫的像素級檢測。

3)本文方法在測試集上的結果表明:訓練好的級聯模型可以對大部分圖像中的裂縫進行像素級檢測,不僅精度高于僅采用分割模型的精度,提取效率也提高了70%,處理一張千萬像素級的圖像平均用時僅為9.25 s。

4)本文方法具有提高檢測效率,降低人工成本的特點,后續可對提取出的裂縫進行量化分析,進而對其進行更為精細的健康診斷。

猜你喜歡
鋼箱梁尺度像素
趙運哲作品
像素前線之“幻影”2000
170m下承式拱橋鋼箱梁安裝關鍵技術
財產的五大尺度和五重應對
基于多點頂推施工的連續鋼箱梁橋結構分析
“像素”仙人掌
互通式立交連續鋼箱梁計算分析
淺析鋼箱梁橋施工方法及造價組成
宇宙的尺度
高像素不是全部
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合