王墨川, 王 波, 王熊玨, 夏文祥, 阮小麗
(1 湖北工業(yè)大學(xué)電氣與電子工程學(xué)院, 湖北 武漢 430068;2 橋梁結(jié)構(gòu)健康與安全國家重點實驗室,湖北 武漢 430034; 3 中鐵大橋科學(xué)研究院有限公司,湖北 武漢 430034)
裂縫作為最主要的橋梁病害之一,嚴(yán)重影響著橋梁的安全,準(zhǔn)確高效地檢測裂縫對橋梁養(yǎng)護有著積極的意義。目前,噪聲背景下的全自動裂縫檢測仍然是一個挑戰(zhàn)[1]。
橋梁裂縫檢測方法分為邊緣檢測和圖像分割,在輸入圖像質(zhì)量高、裂縫具有良好的連續(xù)性和高對比度情況下,傳統(tǒng)的邊緣檢測[2]和圖像分割[3-4],都可以高精度的檢測出裂縫。然而,在實踐中,背景噪聲、陰影、曝光方向或裂縫本身形狀多樣、尺度多變等都可能影響傳統(tǒng)方法的裂縫檢測性能。近年來,深度學(xué)習(xí)在圖像分類[5]、圖像分割[6]、語音識別[7]等方面取得了巨大成功?;谏疃葘W(xué)習(xí)的圖像分割對圖像整體分割,通常采用編碼器-解碼器架構(gòu)。編碼階段中池化層的索引可以提高邊界定位的準(zhǔn)確性[8]。在編解碼融合過程中,全卷積網(wǎng)絡(luò)[9]對多尺度特征逐點相加(add)融合,可以提高分割的準(zhǔn)確性;與全卷積網(wǎng)絡(luò)不同,U-Net[10]采用了對應(yīng)層卷積通道拼接(concat)的方式來共享編碼器的各層信息,提高目標(biāo)檢測能力。解碼階段的卷積特征可以提高語義分割的性能,Chen等[8]提出了基于空洞卷積的空間金字塔池化(ASPP),獲取不同尺度上的卷積特征。Gu等[11]提出在編碼器-解碼器網(wǎng)絡(luò)中加入空間金字塔池化(SPP),降低在編碼過程中因為卷積層和池化層造成的細節(jié)損失,提高分割的準(zhǔn)確率。
由于ASPP易出現(xiàn)棋盤偽影,SPP采用池化易出現(xiàn)局部信息的損失,為了更好的檢測橋梁裂縫,本文提出了一種基于高語義特征與注意力機制的橋梁裂縫檢測網(wǎng)絡(luò),該網(wǎng)絡(luò)采用編碼器-解碼器框架,編碼器基于SegNet,在下采樣中利用最大池化索引捕獲并記錄特征圖中的邊界信息,避免細節(jié)缺失;在編碼器和解碼器間加入高語義特征融合(HSFF)模塊,該模塊根據(jù)分層的卷積模塊提取更高語義特征,再根據(jù)融合后的更高語義特征提取編碼器的高語義特征,得到最終的高語義特征;在解碼器階段,不是簡單的高低層特征融合,而是引入混合域注意力機制來恢復(fù)橋梁裂縫細節(jié),實現(xiàn)對橋梁裂縫的準(zhǔn)確定位,從而提高橋梁裂縫檢測的性能。
為實現(xiàn)對橋梁裂縫的有效檢測,提出基于高語義特征與注意力機制的橋梁裂縫檢測(DBCB)網(wǎng)絡(luò),該網(wǎng)絡(luò)采用編碼器-解碼器框架。該網(wǎng)絡(luò)由三部分組成:編碼器、高語義特征融合模塊和帶有注意力機制的解碼器。DBCB基于Segnet編碼網(wǎng)絡(luò),DBCB利用高低層融合連接編碼器和解碼器網(wǎng)絡(luò)(圖1)。編碼器網(wǎng)絡(luò)和解碼器網(wǎng)絡(luò)的特征圖在編碼器的卷積階段和解碼器的混合域注意力機制(HDAM)階段拼接(concat)融合,并且將所有尺度的融合圖拼接(concat)融合,得到DBCB網(wǎng)絡(luò)的輸出。DBCB的特點表現(xiàn)在三個方面:1)在編碼器的下采樣步驟中利用最大池化索引捕獲并記錄特征圖中的邊界信息,避免細節(jié)缺失。2)在編碼器和解碼器之間引入高語義特征融合(HSFF)模塊,使網(wǎng)絡(luò)在進行特征提取時采用不同的卷積核提取高語義特征,更加專注于裂縫及其相關(guān)信息,可以更好地提取裂縫的特征,實現(xiàn)對不同尺度裂縫識別的魯棒性。3)將混合域注意力機制(HDAM)模塊引入到解碼器中,可以保證解碼器網(wǎng)絡(luò)在解碼過程中更加關(guān)注裂縫的細節(jié)信息,使得裂縫細節(jié)更加豐富、定位更準(zhǔn)確。
圖 1 DBCB結(jié)構(gòu)
編碼器網(wǎng)絡(luò)結(jié)構(gòu)與VGG16[14]網(wǎng)絡(luò)結(jié)構(gòu)類似,編碼器網(wǎng)絡(luò)主要用于特征提取,采用VGG16的前13個卷積層和5個下采樣池化層。丟棄完全連接層,有助于在最深的編碼器輸出處得到較高分辨率的特征圖。每個編碼器由卷積層、批歸一化層、RELU構(gòu)成。隨后,執(zhí)行最大池化層,窗口設(shè)置為2×2、步幅設(shè)置為2(非重疊窗口),輸出結(jié)果等價于下采樣(系數(shù)為二)。步長大于1的最大池化操作可以減少特征圖的比例,同時不會在小的空間移位上引起平移變化,但是下采樣將導(dǎo)致空間分辨率的損失,這可能導(dǎo)致邊界的偏差。為避免細節(jié)的缺失,當(dāng)執(zhí)行下采樣時,最大池化索引用于捕獲并記錄編碼器特征圖中的邊界信息。每經(jīng)過一個編碼器,輸出特征圖尺寸縮小為輸入特征圖的一半,通道數(shù)變?yōu)檩斎胩卣鲌D的兩倍,通過編碼器后輸出的特征圖尺寸為16×16×512。
由于橋梁裂縫形狀、長度和寬度在圖像占比中不盡相同,給橋梁裂縫的識別帶來了一定的困難。為了解決橋梁裂縫多尺度變化的問題,許多研究者提出了相關(guān)方法,例如采用ASPP或SPP結(jié)構(gòu),這些結(jié)構(gòu)使得識別率有一定的提高,但是這些方法存在一些問題:ASPP的空洞卷積操作易出現(xiàn)棋盤偽影效應(yīng),SPP結(jié)構(gòu)的池化操作以損失局部信息為代價[12]。在缺乏相關(guān)信息情況下,融合各尺度特征圖,提升的效果有限。為此,本文提出高語義特征融合(HSFF)模塊,在編碼器獲得高層特征后,通過分層的連續(xù)卷積操作來提取更高層特征,然后將各層的高層特征統(tǒng)一尺寸后執(zhí)行相加融合操作,最后將各層的融合結(jié)果與執(zhí)行了1×1卷積操作的高層特征執(zhí)行相乘融合,獲得最終的高語義特征。通過高語義特征融合模塊,利用不同的卷積核提取更高層特征,以實現(xiàn)對不同尺度橋梁裂縫識別的魯棒性,解決因橋梁裂縫尺寸不同導(dǎo)致識別困難的問題。
HSFF結(jié)構(gòu)如圖2所示。模塊邊的數(shù)字表示輸出的特征圖的尺寸。HSFF與編碼器直接相連,HSFF的輸入是編碼器輸出的高層特征(圖像尺寸為16×16×512),該特征同時輸入到上下兩條支路中:上條支路直接對輸入特征進行1×1卷積操作;下條支路首先通過分層的卷積(conv)模塊提取更高層特征,上一層conv的輸出作為下一層conv的輸入,一共3層。conv模塊采用不同的卷積核對特征圖分別進行卷積,再將結(jié)果相加融合,其結(jié)構(gòu)如圖2所示。conv1、conv3、conv5均采用3×3的卷積核,conv2、conv4、conv6均采用5×5的卷積核,conv1-conv6步長均為3。前兩層卷積層的輸出不僅進入下一層卷積層,而且分別再進行一次7×7和5×5的卷積操作。第三層再進行一次3×3的卷積操作之后,經(jīng)過2倍上采樣,通過反卷積操作后與上一層(第二層)的卷積結(jié)果進行逐點相加(add)融合。同理,在第二層中,第一次融合的輸出結(jié)果經(jīng)過2倍上采樣后與上一層(第一層)卷積結(jié)果逐點相加(add)融合,最后第二次的融合結(jié)果經(jīng)過2倍上采樣后與上條支路的輸出進行逐點相乘(求積)融合,從而得到HSFF的輸出。
圖 2 HSFF結(jié)構(gòu)
在編碼器-解碼器體系中,解碼器主要作用是逐層恢復(fù)圖像中目標(biāo)的細節(jié)。傳統(tǒng)的解碼器工作原理是將高層特征進行上采樣、卷積操作后與對應(yīng)編碼器的低層特征融合,實現(xiàn)目標(biāo)細節(jié)的逐漸恢復(fù)。但是簡單的高底層特征融合對橋梁裂縫細節(jié)恢復(fù)有限。人類的視覺注意力機制能夠從圖像中快速聚焦于重要的部分,忽略不重要信息。深度學(xué)習(xí)注意力機制源于人類的視覺注意力。深度學(xué)習(xí)注意力機制主要分為通道域、空間域和混合域注意力機制,通道域注意力機制主要關(guān)注學(xué)習(xí)通道域的權(quán)重,空間域注意力機制主要關(guān)注空間信息,而混合域注意力機制結(jié)合了兩者特點?;旌嫌蜃⒁饬C制不僅可以作用于底層特征,而且可以作用于高層特征,更加適用于高低層融合特征[13]。本文通過在高低層融合的過程中引入混合域注意力機制,使網(wǎng)絡(luò)提高恢復(fù)裂縫細節(jié)的能力,抑制無關(guān)信息,準(zhǔn)確定位,提高輸出質(zhì)量。高低層融合的結(jié)構(gòu)如圖3所示。
圖 3 高低層融合的結(jié)構(gòu)
首先,來自高語義特征融合模塊的特征圖經(jīng)過反卷積操作后,引入混合域注意力機制(HDAM),HDAM結(jié)構(gòu)如圖4所示,將通道注意力模塊(CA)[14]的輸出作為空間注意力模塊(SA)[14]的輸入,以著重關(guān)注裂縫的特征信息,去除冗余信息,提高輸出特征圖質(zhì)量。其次,將HDAM的輸出與解碼器網(wǎng)絡(luò)中相應(yīng)尺度的最后一個卷積層拼接(concat)。再次,1×1 卷積層將多通道特征圖減少到1個通道。最后,為了計算每個尺度中的像素級損失,加入反卷積層以對特征圖進行上采樣,并使用裁剪層將上采樣結(jié)果裁剪成輸入圖像的大小。經(jīng)過這些運算,可以得到與橋梁裂縫原始圖像大小相同的各尺度的預(yù)測圖。在五個不同尺度中生成的預(yù)測圖進一步拼接(concat),并且添加1×1 卷積層,用以融合所有尺度的輸出,得到最終的多尺度融合圖。
圖 4 HDAM結(jié)構(gòu)
為驗證DBCB的有效性,采用現(xiàn)場真實拍攝的橋梁裂縫圖像數(shù)據(jù)進行實驗,橋梁裂縫圖像是由大疆無人機經(jīng)緯M300 RTK、禪思H20系列云臺相機采集的,要求無人機相機平行于橋梁構(gòu)件表面拍攝,并且拍攝距離保持在3m,角度偏差不大于15°。一共采集了1400張原始橋梁裂縫圖像,大小為512×512,并將這1400張橋梁裂縫圖像分為集合A(700張)、集合B(200張)、集合C(500張)。對集合A中的700張圖像利用圖像平移、水平鏡像、垂直鏡像,加入高斯隨機噪聲和隨機噪聲的方法進行數(shù)據(jù)擴增,用于構(gòu)建DBCB的訓(xùn)練集。擴增后,挑選出 3100張圖像作為訓(xùn)練集。訓(xùn)練集樣本的標(biāo)簽使用labelme的Linstrip標(biāo)注,line_width設(shè)置為1。集合B作為驗證集,集合C作為測試集。
在編碼器網(wǎng)絡(luò)中的每個卷積層之后都使用批量歸一化,加快訓(xùn)練過程中的收斂。整個網(wǎng)絡(luò)中卷積層權(quán)重初始化的方法為“msra”,偏差初始化為0。初始全局學(xué)習(xí)率設(shè)置為0.00002,Batchsize設(shè)置為8,shuffle設(shè)置為True,最大訓(xùn)練輪數(shù)設(shè)置為400,優(yōu)化器選用Adam,損失函數(shù)采用交叉熵。在訓(xùn)練時,每20輪訓(xùn)練,將學(xué)習(xí)率設(shè)置為原來的一半;驗證集的損失函數(shù)值降低幅度不超過5%,則提前結(jié)束訓(xùn)練。
實驗環(huán)境為NVIDIA GeForce TITAN RTX GPU,Intel(R)Xeon(R)Gold 6146 CPU,32GB內(nèi)存,Windows10操作系統(tǒng),在Pytorch上編程實現(xiàn)。
為說明DBCB在橋梁裂縫檢測中的有效性,將本網(wǎng)絡(luò)與U-Net[15]、SegNet[16]、DANet[17]和PSPNet[18]進行比較,圖5各行展示了本文方法與對比方法的測試效果,圖中第一列至第七列分別為橋梁原始圖像、人工標(biāo)注圖像、本文方法的識別結(jié)果、U-Net的識別結(jié)果、SegNet的識別結(jié)果、DANet的識別結(jié)果、PSPNet的識別結(jié)果。從圖5可知,與其他網(wǎng)絡(luò)相比,整體而言,本文網(wǎng)絡(luò)檢測出的裂縫細節(jié)信息更豐富,定位更準(zhǔn)確,與人工標(biāo)注的裂縫較吻合,其檢測效果明顯優(yōu)于其它網(wǎng)絡(luò)。
圖 5 識別效果對比
為對本文提出的橋梁裂縫檢測網(wǎng)絡(luò)實驗結(jié)果進行量化分析,引入計算機視覺中常用的精確率P(Precesion)、召回率R(Recall)、F值[19]以及平均交并比(mIoU)[20]進行評估,各指標(biāo)定義如下
(1)
其中,TP表示真陽性、FP表示假陽性、FN表示假陰性,k+1表示類別數(shù),包含背景與裂縫兩類,k取為1。不同方法的識別結(jié)果與人工標(biāo)注進行比對,各種網(wǎng)絡(luò)在測試集中的檢測結(jié)果見表1。
表1 不同網(wǎng)絡(luò)的定量比較
由表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(xiàn)分別高出2.04%、2.50%、1.02%、1.29%,mIoU分別高出2.77%、5.12%、0.59%、1.52%。因此,DBCB橋梁裂縫檢測精度最好。在圖像處理時間上,SegNet效率最高,增加模塊處理時間會增加。
本文針對橋梁裂縫難以檢測的問題,利用深度神經(jīng)網(wǎng)絡(luò),通過在編碼階段加入最大池化索引,在編碼器和解碼器之間引入高語義特征融合模塊,在解碼階段引入混合域注意力機制,構(gòu)建了一種基于高語義特征與注意力機制的橋梁裂縫檢測網(wǎng)絡(luò)。實驗結(jié)果表明,與傳統(tǒng)網(wǎng)絡(luò)相比,本網(wǎng)絡(luò)具有更好的檢測效果和更高的檢測精度。
未來將結(jié)合MMX、SSE等優(yōu)化算法,在提高算法檢測準(zhǔn)確率的情況下,進一步提高算法的處理效率,使得網(wǎng)絡(luò)在實際應(yīng)用中表現(xiàn)出更好的性能。