王墨川, 王 波, 王熊玨, 夏文祥, 阮小麗
(1 湖北工業大學電氣與電子工程學院, 湖北 武漢 430068;2 橋梁結構健康與安全國家重點實驗室,湖北 武漢 430034; 3 中鐵大橋科學研究院有限公司,湖北 武漢 430034)
裂縫作為最主要的橋梁病害之一,嚴重影響著橋梁的安全,準確高效地檢測裂縫對橋梁養護有著積極的意義。目前,噪聲背景下的全自動裂縫檢測仍然是一個挑戰[1]。
橋梁裂縫檢測方法分為邊緣檢測和圖像分割,在輸入圖像質量高、裂縫具有良好的連續性和高對比度情況下,傳統的邊緣檢測[2]和圖像分割[3-4],都可以高精度的檢測出裂縫。然而,在實踐中,背景噪聲、陰影、曝光方向或裂縫本身形狀多樣、尺度多變等都可能影響傳統方法的裂縫檢測性能。近年來,深度學習在圖像分類[5]、圖像分割[6]、語音識別[7]等方面取得了巨大成功。基于深度學習的圖像分割對圖像整體分割,通常采用編碼器-解碼器架構。編碼階段中池化層的索引可以提高邊界定位的準確性[8]。在編解碼融合過程中,全卷積網絡[9]對多尺度特征逐點相加(add)融合,可以提高分割的準確性;與全卷積網絡不同,U-Net[10]采用了對應層卷積通道拼接(concat)的方式來共享編碼器的各層信息,提高目標檢測能力。解碼階段的卷積特征可以提高語義分割的性能,Chen等[8]提出了基于空洞卷積的空間金字塔池化(ASPP),獲取不同尺度上的卷積特征。Gu等[11]提出在編碼器-解碼器網絡中加入空間金字塔池化(SPP),降低在編碼過程中因為卷積層和池化層造成的細節損失,提高分割的準確率。
由于ASPP易出現棋盤偽影,SPP采用池化易出現局部信息的損失,為了更好的檢測橋梁裂縫,本文提出了一種基于高語義特征與注意力機制的橋梁裂縫檢測網絡,該網絡采用編碼器-解碼器框架,編碼器基于SegNet,在下采樣中利用最大池化索引捕獲并記錄特征圖中的邊界信息,避免細節缺失;在編碼器和解碼器間加入高語義特征融合(HSFF)模塊,該模塊根據分層的卷積模塊提取更高語義特征,再根據融合后的更高語義特征提取編碼器的高語義特征,得到最終的高語義特征;在解碼器階段,不是簡單的高低層特征融合,而是引入混合域注意力機制來恢復橋梁裂縫細節,實現對橋梁裂縫的準確定位,從而提高橋梁裂縫檢測的性能。
為實現對橋梁裂縫的有效檢測,提出基于高語義特征與注意力機制的橋梁裂縫檢測(DBCB)網絡,該網絡采用編碼器-解碼器框架。該網絡由三部分組成:編碼器、高語義特征融合模塊和帶有注意力機制的解碼器。DBCB基于Segnet編碼網絡,DBCB利用高低層融合連接編碼器和解碼器網絡(圖1)。編碼器網絡和解碼器網絡的特征圖在編碼器的卷積階段和解碼器的混合域注意力機制(HDAM)階段拼接(concat)融合,并且將所有尺度的融合圖拼接(concat)融合,得到DBCB網絡的輸出。DBCB的特點表現在三個方面:1)在編碼器的下采樣步驟中利用最大池化索引捕獲并記錄特征圖中的邊界信息,避免細節缺失。2)在編碼器和解碼器之間引入高語義特征融合(HSFF)模塊,使網絡在進行特征提取時采用不同的卷積核提取高語義特征,更加專注于裂縫及其相關信息,可以更好地提取裂縫的特征,實現對不同尺度裂縫識別的魯棒性。3)將混合域注意力機制(HDAM)模塊引入到解碼器中,可以保證解碼器網絡在解碼過程中更加關注裂縫的細節信息,使得裂縫細節更加豐富、定位更準確。

圖 1 DBCB結構
編碼器網絡結構與VGG16[14]網絡結構類似,編碼器網絡主要用于特征提取,采用VGG16的前13個卷積層和5個下采樣池化層。丟棄完全連接層,有助于在最深的編碼器輸出處得到較高分辨率的特征圖。每個編碼器由卷積層、批歸一化層、RELU構成。隨后,執行最大池化層,窗口設置為2×2、步幅設置為2(非重疊窗口),輸出結果等價于下采樣(系數為二)。步長大于1的最大池化操作可以減少特征圖的比例,同時不會在小的空間移位上引起平移變化,但是下采樣將導致空間分辨率的損失,這可能導致邊界的偏差。為避免細節的缺失,當執行下采樣時,最大池化索引用于捕獲并記錄編碼器特征圖中的邊界信息。每經過一個編碼器,輸出特征圖尺寸縮小為輸入特征圖的一半,通道數變為輸入特征圖的兩倍,通過編碼器后輸出的特征圖尺寸為16×16×512。
由于橋梁裂縫形狀、長度和寬度在圖像占比中不盡相同,給橋梁裂縫的識別帶來了一定的困難。為了解決橋梁裂縫多尺度變化的問題,許多研究者提出了相關方法,例如采用ASPP或SPP結構,這些結構使得識別率有一定的提高,但是這些方法存在一些問題:ASPP的空洞卷積操作易出現棋盤偽影效應,SPP結構的池化操作以損失局部信息為代價[12]。在缺乏相關信息情況下,融合各尺度特征圖,提升的效果有限。為此,本文提出高語義特征融合(HSFF)模塊,在編碼器獲得高層特征后,通過分層的連續卷積操作來提取更高層特征,然后將各層的高層特征統一尺寸后執行相加融合操作,最后將各層的融合結果與執行了1×1卷積操作的高層特征執行相乘融合,獲得最終的高語義特征。通過高語義特征融合模塊,利用不同的卷積核提取更高層特征,以實現對不同尺度橋梁裂縫識別的魯棒性,解決因橋梁裂縫尺寸不同導致識別困難的問題。
HSFF結構如圖2所示。模塊邊的數字表示輸出的特征圖的尺寸。HSFF與編碼器直接相連,HSFF的輸入是編碼器輸出的高層特征(圖像尺寸為16×16×512),該特征同時輸入到上下兩條支路中:上條支路直接對輸入特征進行1×1卷積操作;下條支路首先通過分層的卷積(conv)模塊提取更高層特征,上一層conv的輸出作為下一層conv的輸入,一共3層。conv模塊采用不同的卷積核對特征圖分別進行卷積,再將結果相加融合,其結構如圖2所示。conv1、conv3、conv5均采用3×3的卷積核,conv2、conv4、conv6均采用5×5的卷積核,conv1-conv6步長均為3。前兩層卷積層的輸出不僅進入下一層卷積層,而且分別再進行一次7×7和5×5的卷積操作。第三層再進行一次3×3的卷積操作之后,經過2倍上采樣,通過反卷積操作后與上一層(第二層)的卷積結果進行逐點相加(add)融合。同理,在第二層中,第一次融合的輸出結果經過2倍上采樣后與上一層(第一層)卷積結果逐點相加(add)融合,最后第二次的融合結果經過2倍上采樣后與上條支路的輸出進行逐點相乘(求積)融合,從而得到HSFF的輸出。

圖 2 HSFF結構
在編碼器-解碼器體系中,解碼器主要作用是逐層恢復圖像中目標的細節。傳統的解碼器工作原理是將高層特征進行上采樣、卷積操作后與對應編碼器的低層特征融合,實現目標細節的逐漸恢復。但是簡單的高底層特征融合對橋梁裂縫細節恢復有限。人類的視覺注意力機制能夠從圖像中快速聚焦于重要的部分,忽略不重要信息。深度學習注意力機制源于人類的視覺注意力。深度學習注意力機制主要分為通道域、空間域和混合域注意力機制,通道域注意力機制主要關注學習通道域的權重,空間域注意力機制主要關注空間信息,而混合域注意力機制結合了兩者特點。混合域注意力機制不僅可以作用于底層特征,而且可以作用于高層特征,更加適用于高低層融合特征[13]。本文通過在高低層融合的過程中引入混合域注意力機制,使網絡提高恢復裂縫細節的能力,抑制無關信息,準確定位,提高輸出質量。高低層融合的結構如圖3所示。

圖 3 高低層融合的結構
首先,來自高語義特征融合模塊的特征圖經過反卷積操作后,引入混合域注意力機制(HDAM),HDAM結構如圖4所示,將通道注意力模塊(CA)[14]的輸出作為空間注意力模塊(SA)[14]的輸入,以著重關注裂縫的特征信息,去除冗余信息,提高輸出特征圖質量。其次,將HDAM的輸出與解碼器網絡中相應尺度的最后一個卷積層拼接(concat)。再次,1×1 卷積層將多通道特征圖減少到1個通道。最后,為了計算每個尺度中的像素級損失,加入反卷積層以對特征圖進行上采樣,并使用裁剪層將上采樣結果裁剪成輸入圖像的大小。經過這些運算,可以得到與橋梁裂縫原始圖像大小相同的各尺度的預測圖。在五個不同尺度中生成的預測圖進一步拼接(concat),并且添加1×1 卷積層,用以融合所有尺度的輸出,得到最終的多尺度融合圖。

圖 4 HDAM結構
為驗證DBCB的有效性,采用現場真實拍攝的橋梁裂縫圖像數據進行實驗,橋梁裂縫圖像是由大疆無人機經緯M300 RTK、禪思H20系列云臺相機采集的,要求無人機相機平行于橋梁構件表面拍攝,并且拍攝距離保持在3m,角度偏差不大于15°。一共采集了1400張原始橋梁裂縫圖像,大小為512×512,并將這1400張橋梁裂縫圖像分為集合A(700張)、集合B(200張)、集合C(500張)。對集合A中的700張圖像利用圖像平移、水平鏡像、垂直鏡像,加入高斯隨機噪聲和隨機噪聲的方法進行數據擴增,用于構建DBCB的訓練集。擴增后,挑選出 3100張圖像作為訓練集。訓練集樣本的標簽使用labelme的Linstrip標注,line_width設置為1。集合B作為驗證集,集合C作為測試集。
在編碼器網絡中的每個卷積層之后都使用批量歸一化,加快訓練過程中的收斂。整個網絡中卷積層權重初始化的方法為“msra”,偏差初始化為0。初始全局學習率設置為0.00002,Batchsize設置為8,shuffle設置為True,最大訓練輪數設置為400,優化器選用Adam,損失函數采用交叉熵。在訓練時,每20輪訓練,將學習率設置為原來的一半;驗證集的損失函數值降低幅度不超過5%,則提前結束訓練。
實驗環境為NVIDIA GeForce TITAN RTX GPU,Intel(R)Xeon(R)Gold 6146 CPU,32GB內存,Windows10操作系統,在Pytorch上編程實現。
為說明DBCB在橋梁裂縫檢測中的有效性,將本網絡與U-Net[15]、SegNet[16]、DANet[17]和PSPNet[18]進行比較,圖5各行展示了本文方法與對比方法的測試效果,圖中第一列至第七列分別為橋梁原始圖像、人工標注圖像、本文方法的識別結果、U-Net的識別結果、SegNet的識別結果、DANet的識別結果、PSPNet的識別結果。從圖5可知,與其他網絡相比,整體而言,本文網絡檢測出的裂縫細節信息更豐富,定位更準確,與人工標注的裂縫較吻合,其檢測效果明顯優于其它網絡。

圖 5 識別效果對比
為對本文提出的橋梁裂縫檢測網絡實驗結果進行量化分析,引入計算機視覺中常用的精確率P(Precesion)、召回率R(Recall)、F值[19]以及平均交并比(mIoU)[20]進行評估,各指標定義如下
(1)
其中,TP表示真陽性、FP表示假陽性、FN表示假陰性,k+1表示類別數,包含背景與裂縫兩類,k取為1。不同方法的識別結果與人工標注進行比對,各種網絡在測試集中的檢測結果見表1。

表1 不同網絡的定量比較
由表1可知,DBCB的P分別比U-Net、SegNet、DANet、PSPNet高出1.69%、2.46%、0.67%、1.38%,R分別高出2.39%、2.54%、1.37%、1.19%,F分別高出2.04%、2.50%、1.02%、1.29%,mIoU分別高出2.77%、5.12%、0.59%、1.52%。因此,DBCB橋梁裂縫檢測精度最好。在圖像處理時間上,SegNet效率最高,增加模塊處理時間會增加。
本文針對橋梁裂縫難以檢測的問題,利用深度神經網絡,通過在編碼階段加入最大池化索引,在編碼器和解碼器之間引入高語義特征融合模塊,在解碼階段引入混合域注意力機制,構建了一種基于高語義特征與注意力機制的橋梁裂縫檢測網絡。實驗結果表明,與傳統網絡相比,本網絡具有更好的檢測效果和更高的檢測精度。
未來將結合MMX、SSE等優化算法,在提高算法檢測準確率的情況下,進一步提高算法的處理效率,使得網絡在實際應用中表現出更好的性能。