趙雪冰,王俊杰
中國海洋大學 工程學院,山東 青島 266100
公路橋梁在當前的交通運輸體系中占有重要的地位。對公路橋梁的檢測和評價不充分,會造成許多安全隱患。裂縫是評價公路橋梁安全可靠度的重要指標。起初,細小的裂縫不會產生明顯的損傷,裂縫在外力作用下會逐漸惡化。同時,空氣中的水分會通過鋼筋混凝土中的裂縫腐蝕,縮短和降低結構的壽命和強度。因此,裂縫檢測對橋梁結構的維護、安全防護和降損具有重要的實際應用價值。裂縫檢測的任務不僅是檢測已經形成的明顯的網狀或塊狀裂縫,還要檢測細小的裂縫。基于人工的裂縫檢測方法,不僅費時費力,還存在諸多不安全因素。面對大面積橋梁評估時,該方法可操作性差,維護成本和人工成本高。
隨著科學技術的發展,許多基于視覺的方法[1-3]逐漸取代了耗時、費力、主觀人工檢測。同時,結合無人機獲取的圖像[4],使橋梁裂縫檢測過程更加方便和高效。如目標檢測方法能夠快速確定裂縫的位置,張詩慧等[5]使用RetinaNet算法對高鐵無砟軌道表面裂縫進行檢測,能夠更好地滿足實際應用的需要。然而由于裂縫通常是不規則的、細長的和連續的。目標檢測方法不能準確地描述裂縫的整個區域,且目標檢測方法不能提供裂縫檢測所需的形狀信息。而語義分割方法可以對目標進行分割,常用的方法有U-Net[6]、SegNet[7]和DeeplabV3+[8],它們的共同特點是編碼-解碼結構。常惠等人[9]在U-Net模型中添加SE模塊,來提升重要特征,抑制無用特征。Liu等[10]在U-Net模型中插入scSE塊,證明了scSE塊可以提高模型的分割精度。Chen等[11]提出的改進SegNet在裂縫檢測能力方面具有較強的泛化能力,并借助遷移學習方法,模型可以在訓練過程中快速收斂。Chen等[12]提出了一種基于DeeplabV3+的弱夾層檢測和量化方法,證明DeeplabV3+具有較強的分割能力,不易受到背景噪聲的干擾。袁嘉豪等[13]基于DeeplabV3+模型,選擇多種主干網絡進行對比實驗,驗證模型在裂縫檢測中有較好的檢測性能。Wang等[14]基于DeeplabV3+模型進行隧道裂縫檢測,通過弱監督網絡進行數據集標注,降低標注成本。因此,本文將DeeplabV3+模型應用于橋梁裂縫檢測,為了使模型能夠重點關注像素之間的關系,將注意力機制融入DeeplabV3+中,提高模型的魯棒性。
此外,通過語義分割方法檢測裂縫,需要大量的像素級標簽,標注過程耗時耗力。且橋梁裂縫樣本獲取較困難,由于通常要獲取橋面板上部、底部和橋梁側面裂縫圖像,而橋梁底部裂縫受到光照影響,獲取的裂縫圖像不清晰,導致樣本獲取的數量較少,從而出現小樣本的困境。遷移學習[15]方法能夠將從源域學習到的低級特征遷移到目標域,在小規模數據集上使用遷移學習的方法訓練網絡模型可以獲得很好的效果,能夠解決數據集不足的問題。
本文創新點有以下兩點:首先,基于DeeplabV3+模型進行橋梁裂縫檢測,為提高模型對裂縫特征上下文的聯系能力,引入ECA注意力模塊和scSE注意力模塊重點關注裂縫的關鍵部分,改善模型在小樣本上檢測效果差的問題;其次,通過遷移學習的訓練方法,在建立小樣本橋梁裂縫數據集上進行特征提取,解決小樣本對網絡性能的影響。實驗結果表明:本文所提模型適用于橋梁裂縫檢測小樣本的情形,減少樣本標注的時間成本,提高模型魯棒性。
DeeplabV3+模型憑借自身良好的準確性能和計算效率,被廣泛應用于橋梁裂縫的檢測任務中。DeeplabV3+模型主要由編碼器和解碼器兩部分組成,整體網絡結構如圖1所示。

圖1 DeeplabV3+模型網絡結構Fig.1 Structure of DeeplabV3+model
編碼器包含骨干網絡和空洞空間金字塔池化(atrous spatial pyramid pooling,ASPP)模塊兩部分,骨干網絡采用Xception[16]進行特征提取,輸入圖像通過骨干網絡進行下采樣后生成高級語義特征圖。ASPP模塊用于獲取輸入特征圖的多尺度信息,該模塊應用了空洞卷積,通過用不同空洞率高效、準確地提取多尺度信息。該模塊包含一個尺寸為1×1的卷積和三個尺寸為3×3的空洞卷積,當輸入特征圖的空間分辨率與輸出的空間分辨率的比值,即輸出步長為16時,三個空洞卷積的空洞率分別為6、12、18,另外采用全局平均池化得到圖片級別特征,最后將五種特征進行通道維拼接,充分融合多尺度信息。
在解碼器結構中,首先采用雙線性插值對編碼器輸出的特征圖通過4倍上采樣,然后將具有相同空間分辨率的低層特征進行級聯。由于低層特征包含更多的空間信息,低層特征與高層特征的融合提高了分割性能,同時應用1×1卷積減少底層特征的通道數量。最后,使用一些3×3卷積來優化特征后,使用雙線性插值的4倍上采樣來產生預測結果。
為生成細粒度的語義分割,改進DeeplabV3+依然采用編碼-解碼結構。由于裂縫分割任務主要涉及裂縫和背景兩個標簽,語義信息相對簡單,因此選擇更容易優化的ResNet-50[17]替代Xception作為骨干網絡。另外,裂縫分割任務更加關注裂縫的顏色和位置等細節特征,對小裂縫也需要較好的分割效果。因此,為增加模型對裂縫細粒度特征的感知,增強對小目標的檢測效果,同時解決小樣本數據集上的檢測效果差的問題,提高對上下文的聯系能力,對模型進行以下優化:(1)在ResNet-50中引入ECA模塊;(2)在解碼器結構中的批處理規范化層和ReLu層之間引入scSE模塊;(3)基于遷移學習方法與改進的DeeplabV3+模型相融合。改進后的模型如圖2所示。

圖2 改進DeeplabV3+模型網絡結構Fig.2 Structure of improve DeeplabV3+model
DeeplabV3+模型通過ASPP模塊能夠獲得多尺度信息,但是通過對各維度特征進行簡單拼接,無法獲取豐富的上下文信息,對于裂縫這種小目標特征提取是不足的。因此在編碼器結構中加入高效通道注意力(ECA)模塊[18],以提高上下文的聯系能力。ECA模塊是對SENet模塊[19]的改進,有效避免了降維產生的讓通道和維度權值之間沒有直接聯系的弊端。如圖3所示,ECA模塊主要由三部分組成。首先,通過全局平均池化生成大小為1×1×C的特征圖;其次,根據公式(1)計算自適應的卷積核尺寸:

圖3 ECA注意力模塊的結構示意圖Fig.3 Structure of ECA attention module
其中γ和b分別為2和1。最后,將卷積核尺寸應用到一維卷積中,得到每個通道的權值。該模塊通過一維卷積可以在保持性能的同時降低模型的復雜度,增加通道之間的信息交互,避免降維,有效地學習通道信息。
橋梁裂縫檢測任務對裂縫的邊緣特征和位置特征等細節信息關注度較高,且某些裂縫與背景差異不明顯,需要增強顯著性特征,抑制無用特征。因此,在解碼器結構中的批處理規范化層和ReLu層之間引入scSE注意力模塊[20]。如圖4所示,scSE注意力模塊包括基于通道注意機制的空間擠壓和通道激勵(cSE)注意力模塊和基于空間注意機制的通道擠壓和空間激勵(sSE)注意力模塊。cSE注意力模塊的計算過程是輸入特性映射F=[f1,f2,…,fC]生成一個Z向量(1×1×C)后通過全局平均池化,然后經過全連接層和ReLU層,再次通過全連接層,最后通過Sigmoid層得到激活值,它可以代表重要的渠道而忽略不重要的渠道。過程可表示為公式(2):

圖4 scSE注意力模塊示意圖Fig.4 Structure of scSE attention module
sSE注意力模塊的計算過程是輸入特征映射F=[f1,1,f1,2,…,fi,j,…,fH,W]通過卷積Wsq×F生成q向量,然后通過sigmoid層得到激活值。過程可表示為公式(3):
在進行模型訓練時,由于實驗平臺配置的限制,批次大小只能設置為2或4。當進行批量歸一化[21]操作時,批次大小設置較小會導致模型錯誤率很大[22]。本文采用的遷移學習訓練方法能夠解決目標橋梁裂縫數據集少,且批次大小較小(批次大小為4)的問題。遷移學習的過程如圖5所示。第一階段在PASCAL VOC數據集上初始化模型參數。第二階段不僅凍結ResNet-50的批量歸一層,而且凍結ASPP模塊和解碼器結構的批量歸一層,進行特征遷移期間批量歸一化層不更新,能夠減少模型錯誤率并保證遷移效果。同時,通過在ALL_CRACK數據集上訓練,對預先訓練好的模型參數進行微調。最后階段,在目標橋梁裂縫數據集上再次執行第二階段操作。

圖5 遷移學習方法訓練過程Fig.5 Transfer learning method training process
通過遷移學習,本階段產生了兩種數據集,分別為供遷移學習使用的源域數據集和目標域數據集。源域數據集中包含兩個數據集,一個為Pascal VOC公共數據集,用于初始化模型參數;另一個圖像選取自公共裂縫數據集[23-27],共2 524幅圖像,其中包含分辨率為227×227的2 020幅圖像和448×448的504幅圖像,用于遷移裂縫的通用特征。為了保證遷移效果能夠達到預期的效果,本數據集包含了建筑物和道路場景中的各種裂縫,如圖6所示,這些裂縫的分布、形狀、寬度和大小都不同。裂縫標注工具采用Labelme[28],對圖像中裂縫的目標類型、點坐標、裂縫圖像的寬和高等信息進行標注,Labelme的標注流程及注釋可視化如圖7所示。本研究中數據集格式為PASCAL VOC數據集格式,最后只需要用Python程序將Json注釋文件轉換PASCAL VOC數據集格式,其中背景像素用0表示,裂縫像素用1表示。此數據集名為ALL_CRACK數據集。

圖6 源域橋梁裂縫樣本Fig.6 Bridge crack sample in Source area

圖7 Labelme標注流程及注釋可視化Fig.7 Labelme annotation process and annotation visualization
目標域數據集來源于Original_Crack_DataSet_1024_1024[29],主要是公路橋梁裂縫圖像,樣本實例如圖8所示。為了提高訓練速度和減少權重,將分辨率為1 024×1 024的圖像裁剪為448×448大小,隨機選取510張圖像。注釋方法與第一個數據集的方法類似。訓練集、驗證集和測試集以大約6∶2∶2的比例隨機劃分,訓練集包括306張圖片,驗證集包括102張圖片,測試集包括102張圖片。

圖8 目標域橋梁裂縫樣本Fig.8 Bridge crack sample in target area
第三部分數據集用于研究遷移學習對樣本標注成本的影響。將本文源域和目標域中的裂縫數據集進行整合,將源域的2 524張裂縫數據集加到目標域數據集中的訓練集中,組成一份包含3 034張圖片的數據集。訓練集包括2 830張圖片,驗證集包括102張圖片,測試集包括102張圖片。
為了定量地證明本文所提方法的有效性,將改進DeeplabV3+模型與典型語義分割模型的訓練與測試結果進行對比。實驗平臺軟硬件信息如表1所示。

表1 實驗平臺配置Table 1 Experimental platform configuration
為了準確地評估該方法的分割性能,需要考慮推理時間和精度。推理時間被認為是語義分割的重要指標之一,因為在模型部署后的推理階段,知道測試模型所需的時間是有意義的。通過有效評估設備與模型之間的匹配關系,為模型在各種場景下的應用提供有效信息。
在精度方面,采用平均交并比(MIoU)代替傳統的機器學習分類任務的評估標準,如召回率和F1值。MIoU通常被用作語義分割的標準度量。符號的象征意義定義如下:假設n+1類數據集的數量(從0到n,其中0通常代表背景類別)和Pij代表所有像素數量中屬于i類別,但是被預測為j類別的個數。同樣,Pii和Pji有相似的含義。
本文中類別只有背景和裂縫兩類,其中0表示背景類別,1表示裂縫類別。如圖9所示,IoU為真值與預測值的交集與并集之比,可表示為公式(4):

圖9 預測值與真值關系圖Fig.9 Relationship between predicted value and true value
MIoU表示兩類IoU值之和,再取其平均值,可表示為公式(5):
由于本文只涉及兩種類別,因此訓練模型采用的是二分類交叉熵損失函數,該損失函數收斂較快,能夠描述真實結果的概率分布與預測結果概率分布之間的差異,損失值越小,模型錯誤率越小。損失函數公式如公式(6)所示:
式中,y為標簽中對應像素x的真實值,a表示網絡的預測值,n為圖像中的像素總數。
所有模型的超參數如表2所示,DeeplabV3+模型采用二分類交叉熵損失函數,U-Net模型采用Lovasz損失函數來比較模型預測值與真實值的概率分布。隨著模型的訓練,繪制各模型在圖像驗證過程中的MIoU度量值,比較各模型的性能。

表2 模型的超參數Table 2 Model hyperparameters
將本文改進的模型與典型語義分割模型U-Net、SegNet進行對比,五種模型均用ResNet-50作為主干網絡提取裂縫特征,實驗的精度和推理時間指標見表3。本文提出的模型精度指標均高于其他三種網絡,其MIoU較SegNet、U-Net、DeeplabV3+模型分別提高了9.04、6.75、3個百分點。計算效率略低于其他模型。

表3 不同模型的檢測性能Table 3 Detection results of different models
首先,應用ResNet101[17]、MobilenetV2[30]、Xception[16]替代DeeplabV3+骨干網絡進行消融實驗。為了說明模型精度和推理時間之間的權衡,圖10比較了各種模型的精度和推理時間。以ResNet-50作為骨干網絡時,DeeplabV3+分割準確率最高。當采用MobilenetV2作為編碼器架構時,參數個數較少,訓練和推理速度最快,但精度略低于DeeplabV3+(ResNet-50)。

圖10 各種語義分割模型檢測結果Fig.10 Detection results of various semantic segmentation models
另一方面,通過在DeeplabV3+(ResNet-50)中添加注意力模塊進行消融實驗。實驗結果表明,注意力模塊的添加并沒有降低模型的推理速度。圖11展示了注意力模塊提高模型精度的效果。如果只在模型中加入ECA或scSE模塊,模型的精度會略有提高或降低。但添加兩個模塊后,模型的分割精度提高了0.5個百分點。

圖11 是否添加注意力模塊檢測結果Fig.11 Detection results whether adding attention module
為了展示遷移學習方法帶來的提升效果,同時突出本文提出的遷移學習訓練得到的模型良好性能,進行了對比實驗。模型的性能總結如圖12所示,所有模型的MIoU值在訓練過程的前10個階段快速增長,在訓練過程的后期平穩收斂。使用遷移學習方法訓練后比原始DeeplabV3+(ResNet-50)模型的準確率提高了2.5個百分點。此外,應用遷移學習方法后,在較短的訓練時間內可以達到較高的準確性。綜上所述,實驗結果表明,遷移學習方法可以提高DeeplabV3+模型的分割精度。

圖12 DeeplabV3+和遷移學習的檢測性能Fig.12 Detection of DeeplabV3+and transfer learning
本文通過消融實驗來尋找一種最適合該檢測任務的遷移學習方法。通過比較兩種遷移學習策略。實驗結果如表4所示,當源任務向目標任務遷移更多相似的知識時,目標任務訓練的模型會有更高的性能。此外,遷移學習在兩個不同數據集上的精度比在一個數據集上略有提高。綜合考慮了推理時間和準確性的評價指標,本文提出的方法在推理時間小幅度減少的情況下,準確性顯著提高。

表4 不同遷移學習階段的檢測結果Table 4 Detection of different transfer learning stages
除了基于精度和推理時間的性能評估之外,在測試集上評估可視化的分割結果也是有必要的。在本研究中,測試集圖片用來測試模型的分割效果。在預測結果中選取了不同裂縫分布走向的預測結果來分析本文方法裂縫檢測的效果。從圖13的預測結果可以看出,U-Net和DeeplabV3+兩種模型對裂縫都有很好的分割效果,特別是對寬度較大、特征明顯的裂縫。然而,這兩個模型受背景噪聲的影響較大,如圖13中前三行都存在誤檢的情況,把周圍孔洞識別為裂縫,并且圖13中后三行增加了冗余的裂縫信息。因此,這兩種模型在裂縫場景中對背景的魯棒性較差。在原有的DeeplabV3+模型中加入注意力模塊進行改進后,誤檢的情況在一定程度有所改善,但分割結果仍然達不到滿意的結果。在運用遷移學習訓練改進的Deeplabv3+后,遷移了更多其他類型裂縫的特征。圖13中裂縫邊緣的細節分割效果得到了很大的改善,預測的裂縫結果與真值非常吻合。該模型幾乎不受背景的影響,沒有明顯的多余裂縫信息,具有較強的魯棒性。因此,本文提出的橋梁裂縫檢測方法是可行的。

圖13 不同方法的裂縫預測結果對比Fig.13 Comparison of fracture prediction results of different methods
前面的部分研究了本文提出的裂縫檢測方法在分割性能方面的有效性,本節定量分析遷移學習降低的標注成本。通過是否應用遷移學習進行DeeplabV3+模型訓練實驗,如表5所示,為達到檢測精度相近,未使用遷移學習訓練模型則需要近十倍的訓練集數量。因此,應用遷移學習訓練可以節省大量標注樣本的工作量。

表5 訓練模型所需的樣本對比Table 5 Comparison of samples required for training model
同時,在實際檢測裂縫項目中,收集場景中的510張圖片可能仍然比較困難,使用不同數量的訓練樣本作為遷移學習中目標域數據集中的訓練集進行實驗,以此試圖在應用遷移學習訓練改進的DeeplabV3+模型時,估計出最低的樣本要求,并且提供一個參考標準。實驗結果如圖14所示,訓練樣本越少,遷移學習方法的效果就越明顯,雖然隨著訓練樣本數量的增多,但是精度的差距越來越小。當訓練樣本數超過200張時,模型的分割精度增長趨勢較小,分割精度在93.26%到93.3%區間;當訓練樣本小于100張時,分割精度為93%,精度有稍微的降低,但是訓練樣本數量能減少一半。因此,建議訓練樣本數量為100到200張,訓練樣本最小數量為100張。

圖14 訓練樣本與精度之間的關系Fig.14 Relationship between training samples and accuracy
本文提出了一種使用遷移學習訓練改進DeeplabV3+模型檢測橋梁裂縫的方法。該方法使用空間注意力模塊和通道注意力模塊分別捕獲裂縫圖像中空間和通道的全局依賴關系,以提高DeeplabV3+模型的魯棒性,進而通過遷移學習的訓練方法以實現在小樣本數據集上獲取更高的精度,進而降低標注成本,提高工作效率。消融實驗結果表明,注意力模塊能有效捕捉上下文信息,提高模型的性能,能達到91.34%的MIoU,提高0.5個百分點的精度。通過遷移學習方法訓練改進的DeeplabV3+模型,分割精度達到了93.3%,較原始的DeeplabV3+提高了3個百分點。此外,該方法受背景噪聲或類不平衡的影響較小,具有較好的魯棒性。本文提出的方法在提高模型性能的同時,解決了小樣本訓練的問題和像素級標注成本高問題。相比直接訓練模型,在標注成本上可以節省10倍的時間,大幅提高工作效率;另外實驗結果顯示應用遷移學習方法訓練改進的DeeplabV3+模型需要100到200張訓練樣本即可獲得較高的檢測效果。在將來,一方面對模型進行進一步優化,提高模型對裂縫邊緣和細小裂縫的分割能力,提高模型的泛化能力。另一方面,為了提高在各種實際場景中的泛化能力,將更多受光照、遮擋等因素影響的圖像將擴展到當前的數據集。