廖祥燦,李彩林,2,姚玉凱,郭寶云,王悅
(1. 山東理工大學(xué) 建筑工程學(xué)院,山東 淄博 255049;2.黃河中下游數(shù)字地理技術(shù)教育部重點實驗室(河南大學(xué)),河南 開封 475001)
橋梁在交通運輸和促進社會經(jīng)濟發(fā)展的過程中發(fā)揮著重要作用。橋梁在使用過程中,由于汽車行駛產(chǎn)生的荷載、溫度變化、地基沉降等因素的影響,容易出現(xiàn)大量裂縫,如不及時進行維護保養(yǎng),裂縫程度會日益加重,導(dǎo)致混凝土對內(nèi)部鋼筋的保護失效,最終引起橋梁變形甚至倒塌,嚴(yán)重影響交通運輸安全。因此,開展橋梁裂縫檢測,及時掌握裂縫變化情況,對于保障交通安全具有較高的實際價值與安全意義。
Zhao等[1]提出利用Canny邊緣檢測算法進行裂縫檢測,并通過設(shè)定閾值對裂縫邊緣進行提取,以達到把裂縫和背景分離的目的;Li等[2]提出了利用集成策略檢測裂縫的方法,但是這種檢測方法對于圖像亮度要求較高;Liu等[3]利用基于多尺度增強和視覺特征的混凝土結(jié)構(gòu)魯棒圖像裂紋檢測方法優(yōu)化了裂縫圖像的魯棒性處理效果,但形態(tài)學(xué)處理后的圖像邊緣容易失真;Talab等[4]使用Sobel算子對混凝土圖像進行濾波和去噪,然后執(zhí)行Otsu(最大類間方差法)閾值分割以完成裂縫邊緣檢測,雖然證明了Sobel算子在檢測混凝土表面裂縫時具有較高的實用性,但Sobel算子處理的裂縫邊緣較厚,這將影響裂縫識別的準(zhǔn)確性。以上這些傳統(tǒng)的圖像處理算法泛化能力差,手工設(shè)計的特征對于環(huán)境變化魯棒性差。所謂手工設(shè)計特征顧名思義就是人為設(shè)計的特征,即直接設(shè)計特征本身,仿照人類視覺對什么樣的特征敏感、什么樣的特征不敏感的特點,提取圖像中有區(qū)分能力的特征,因此提取出來的特征每一維往往都有具體的物理含義。
目前主流的基于深度學(xué)習(xí)模型的目標(biāo)檢測算法可以分成兩大類別:(1)One-Stage(一階段)目標(biāo)檢測算法,這類檢測算法不需要產(chǎn)生候選區(qū)域(region proposals),可以通過一個Stage(階段)直接產(chǎn)生物體的類別概率和位置坐標(biāo)值,比較典型的算法有YOLO[5]、SSD[6](single shot multibox detector,單次多核探測器)和Corner Net[7];(2)Two-Stage(兩階段)目標(biāo)檢測算法,這類檢測算法將檢測問題劃分為兩個階段,第一個階段產(chǎn)生候選區(qū)域,包含目標(biāo)大概的位置信息,第二個階段對候選區(qū)域進行分類和位置精確定位,這類算法的典型代表有R-CNN[8](region-CNN),Fast R-CNN[9],Faster R-CNN[10]等。目標(biāo)檢測模型的主要性能指標(biāo)是檢測準(zhǔn)確度和速度,其中準(zhǔn)確度主要考慮物體的定位以及分類準(zhǔn)確度。一般情況下,Two-Stage算法在準(zhǔn)確度上有優(yōu)勢,而One-Stage算法在速度上有優(yōu)勢。目前有部分學(xué)者將深度學(xué)習(xí)應(yīng)用于橋梁裂縫的檢測,廖延娜等[11]提出基于熱力圖(heat map)的YOLO V4檢測算法,定位出橋梁裂縫的大致走向;余加勇等[12]采用MASK R-CNN算法以及閾值分割、形態(tài)學(xué)操作、邊緣檢測等算法來自動識別橋梁結(jié)構(gòu)裂縫;余加勇等[13]以深度學(xué)習(xí)YOLO V5與U-Net3+算法為基礎(chǔ),構(gòu)建了橋裂縫識別檢測的智能算法。上述深度學(xué)習(xí)方法盡管可以實現(xiàn)裂縫的檢測識別,但檢測效率、識別及定位精度仍有待進一步提高。深度學(xué)習(xí)檢測方法雖然在精度和速度上優(yōu)于傳統(tǒng)檢測方法,但是橋梁裂縫圖像固有的低分辨率,使得深度學(xué)習(xí)檢測方法經(jīng)過多次下采樣后特征圖持續(xù)減小,從而導(dǎo)致裂縫的細(xì)節(jié)信息丟失嚴(yán)重。
針對以上問題,本文在目前主流的YOLO V5目標(biāo)檢測模型基礎(chǔ)上,通過引入C3-B注意力機制模塊,提高模型對目標(biāo)的精確定位能力;使用PAN(路徑聚合網(wǎng)絡(luò))加權(quán)跨層級聯(lián),防止淺層語義的丟失;選取SIOU損失函數(shù)替換GIOU損失函數(shù),提高收斂速度,實現(xiàn)復(fù)雜環(huán)境下的橋梁裂縫高精度檢測。
本文以YOLO V5模型為基礎(chǔ),結(jié)合C3-B注意力機制模塊、PAN加權(quán)跨層級聯(lián)及SIOU損失函數(shù)構(gòu)建了一種新的橋梁裂縫檢測模型,模型結(jié)構(gòu)如圖1所示。輸入端部分包括Mosaic數(shù)據(jù)增強、自適應(yīng)錨框計算、自適應(yīng)圖片縮放,其中,Mosaic數(shù)據(jù)增強是隨機使用4張圖片,隨機縮放,再隨機分布進行拼接,豐富檢測數(shù)據(jù)集,使網(wǎng)絡(luò)的魯棒性更好;自適應(yīng)錨框計算是在訓(xùn)練過程中,在初始錨框的基礎(chǔ)上自動輸出預(yù)測框,通過將預(yù)測框和真實框進行比對并計算它們之間的差距,再反向更新,對模型參數(shù)進行迭代;自適應(yīng)圖片縮放是將原始圖片統(tǒng)一縮放到一個標(biāo)準(zhǔn)尺寸,再送入檢測網(wǎng)絡(luò)中。
Backbone模塊包含F(xiàn)ocus結(jié)構(gòu)和C3-B注意力機制單元,其中,Focus結(jié)構(gòu)是在輸入的圖片進入Backbone前,對圖片進行切片操作,為后續(xù)的特征提取保留了更完整的圖片下采樣信息;C3-B注意力機制模塊先將基礎(chǔ)層的特征映射劃分為三部分,然后通過跨階段層次結(jié)構(gòu)將它們合并,擴大感受野。
Neck模塊采用“FPN+PAN”(特征金字塔網(wǎng)絡(luò)+路徑聚合網(wǎng)絡(luò))加權(quán)跨層級聯(lián)方式,FPN是自頂向下的,將高層的特征信息通過上采樣的方式進行傳遞融合,得到進行預(yù)測的特征圖;FPN層添加一個自底向上的特征金字塔,其中包含兩個PAN結(jié)構(gòu);對PAN結(jié)構(gòu)進行加權(quán)跨層級聯(lián),從而增強了金字塔自底向上傳達淺層語義。
圖1 改進后YOLO V5模型結(jié)構(gòu)
Prediction模塊采用SIOU損失函數(shù)分別計算分類、定位和置信度損失,在目標(biāo)檢測后處理過程中,使用非極大值抑制(non-maximum suppression,NMS)來對多目標(biāo)框進行篩選,增強了多目標(biāo)和遮擋目標(biāo)的檢測能力。
由于圖像拍攝距離的變化導(dǎo)致裂縫在圖像中成像的尺度不同,為了消除裂縫尺度的影響,需要在裂縫識別定位中擴大感受野。為了擴大感受野,本文提出在原C3模塊上新增一個X2路徑,將C3模塊的輸入特征映射與另外兩個分支X1、X3的輸出特征圖直接進行特征融合,并在X3分支的Conv卷積塊后新增一個Bottleneck_1,與原bottleneck相比多加了一個3*3標(biāo)準(zhǔn)卷積塊。C3-B注意力機制模塊可以在增加極少計算量的情況下學(xué)到更多特征,提高識別精度,其結(jié)構(gòu)如圖2所示。
圖2 C3-B注意力機制模塊
為了進一步增強模型對淺層語義的關(guān)注度,充分融合FPN各層提取出的語義信息,增強網(wǎng)絡(luò)對目標(biāo)邊界的回歸能力,本文對PAN結(jié)構(gòu)的輸出、輸入節(jié)點間加入加權(quán)跨層級聯(lián)??鐚蛹壜?lián)結(jié)構(gòu)能夠有效地將淺層的細(xì)節(jié)、邊緣、輪廓等信息融入到深層的網(wǎng)絡(luò)中,可以在幾乎不增加計算量的同時,融合到目標(biāo)的淺層細(xì)節(jié)信息,使網(wǎng)絡(luò)對目標(biāo)邊界的回歸更加精準(zhǔn),有效提升預(yù)測框與真實框的交并比。同時,考慮到使用跨層級聯(lián)時淺層特征的融入會對深層語義信息造成一定的影響,所以采用可學(xué)習(xí)權(quán)重的加權(quán)add操作進行特征融合,add操作既可以減少計算量,也可以減少無效淺層信息的融合,其計算公式如下:
out=kx+(1-k)y,
(1)
式中:x、y表示每個需要進行融合的特征圖;k是該特征圖的權(quán)重系數(shù),可通過學(xué)習(xí)進行更新。
到目前為止,損失函數(shù)的發(fā)展過程經(jīng)過了IOU-Loss[14]->GIOU-Loss[15]->DIOU-Loss[16]->CIOU-Loss[16]->SIOU-Loss[17]五個階段,各個損失函數(shù)具有不同的檢測側(cè)重點:IOU-Loss主要考慮檢測框和目標(biāo)框重疊面積;GIOU-Loss在IOU-Loss的基礎(chǔ)上,解決邊界框不重合時的問題;DIOU-Loss在GIOU-Loss的基礎(chǔ)上,考慮了邊界框中心點距離的信息;CIOU-Loss在DIOU-Loss的基礎(chǔ)上,考慮邊界框?qū)捀弑鹊某叨刃畔ⅰ?/p>
本文采用綜合考慮邊界框中心點的距離信息及邊界框?qū)捀弑瘸叨刃畔⒑推谕貧w之間向量角度的SIOU損失函數(shù),加快了收斂速度。利用傳統(tǒng)神經(jīng)網(wǎng)絡(luò)和相應(yīng)數(shù)據(jù)集進行的實驗表明,SIOU損失函數(shù)提高了訓(xùn)練速度和推理精度,控制訓(xùn)練的優(yōu)勢變得更為明顯,對于epoch具有更好的收斂性,通過大量的仿真和測試證明了SIOU損失函數(shù)的有效性。
SIOU損失函數(shù)由分類損失函數(shù)和回歸損失函數(shù)組成,其中包含Cost函數(shù):Angle cost、Distance cost、Shape cost、IOU cost。SIOU損失函數(shù)公式如下:
L=WboxLbox+WclsLcls,
(2)
式中:Lbox為回歸損失函數(shù);Lcls為分類損失函數(shù);Wbox、Wcls為回歸損失和分類損失的權(quán)重。
本文所用的混凝土橋梁裂縫數(shù)據(jù)集包含3 532張圖片,裂縫數(shù)據(jù)集是在不同光照、不同干擾條件下采集得到的,可有效地測試目標(biāo)檢測模型的魯棒性和泛化能力。數(shù)據(jù)集按照6∶2∶2劃分為訓(xùn)練集、驗證集和測試集。訓(xùn)練集用來訓(xùn)練擬合模型權(quán)重參數(shù),驗證集用來調(diào)整模型參數(shù)以便得到最優(yōu)模型,測試集則利用得到的最優(yōu)模型進行最終輸出預(yù)測和評價。圖3呈現(xiàn)的是部分具有代表性的橋梁裂縫照片。
圖3 橋梁裂縫照片
本文使用LabeImag對采集到的圖片中的裂縫進行標(biāo)注,構(gòu)建橋梁裂縫數(shù)據(jù)集,共標(biāo)注裂縫3 044個。將標(biāo)注好的圖像標(biāo)注信息保存為.xml格式,內(nèi)容包括目標(biāo)物體的類別和目標(biāo)框的坐標(biāo)信息。
實驗中采用的硬件配置:CPU為Intel(R) Core(TM) i7-11800H,主頻為2.3 GHz,內(nèi)存為16 GB,顯卡為NVIDIA GeForce RTX3060;軟件配置為Win10操作系統(tǒng),顯卡驅(qū)動為461.92版For Win10-64和CUDA10.1,深度學(xué)習(xí)框架采用PyTorch-3.7.3,使用Lableimg作為標(biāo)注工具,編程語言為Python3.7。
考慮到橋梁裂縫在實際工程中的應(yīng)用,本文使用檢測精度(Precision)、召回率(Recall)、mAP@0.5、mAP@0.5∶0.95、參數(shù)量和計算量作為模型的評價指標(biāo)。檢測精度的含義為模型正確識別的有目標(biāo)判例占模型所有認(rèn)為有目標(biāo)判例的比例;召回率的含義為模型正確識別的有目標(biāo)判例占所有正確判例的比例;mAP是指平均準(zhǔn)確率,是多個類別AP(即P-R曲線下方面積)的平均值,用來衡量模型在所有類別上的好壞;mAP@0.5代表在IOU閾值為0.5時的平均AP,主要用于體現(xiàn)模型的識別能力;mAP@0.5∶0.95表示在不同IOU閾值(從0.5到0.95,步長0.05)上的平均mAP,主要用于體現(xiàn)定位效果以及邊界回歸能力。參數(shù)量和計算量指標(biāo)分別從空間和時間上描述模型的復(fù)雜度。Precision、Recall、AP、mAP的計算公式如下:
(3)
(4)
(5)
(6)
式中:TP代表樣本的真實類別與模型的預(yù)測結(jié)果一致均為正例,即預(yù)測正確數(shù)目;FP代表樣本的真實類別為負(fù)例,模型預(yù)測為正例,即預(yù)測錯誤數(shù)目;FN代表樣本的真實類別為正例、模型預(yù)測為負(fù)例,即預(yù)測錯誤。
利用本文提出的模型對混凝土橋梁表面裂縫進行檢測,檢測結(jié)果如圖4所示。由圖4可以看出,模型的收斂性較高且最終趨于平穩(wěn),表明本文的橋梁裂縫檢測模型沒有發(fā)生過擬合或欠擬合現(xiàn)象,模型檢測出的結(jié)果準(zhǔn)確可靠。
為了對比本文模型的有效性,設(shè)計7組實驗對不同的模型進行結(jié)果分析,每組實驗使用相同的訓(xùn)練參數(shù),不同模型對檢測性能產(chǎn)生的影響結(jié)果如表1所示。對表1進行分析可見,SSD和Faster R-CNN模型參數(shù)量及計算量遠(yuǎn)高于本文模型且精度低于本文模型。在YOLO V5主干網(wǎng)絡(luò)中使用C3-B注意力機制模塊,增大了感受野,學(xué)到更多圖像特征,且減少了模型參數(shù)數(shù)量,使得模型在原有基礎(chǔ)上mAP和檢測精度都有較大提升。在PAN結(jié)構(gòu)上進行加權(quán)跨層級聯(lián),使淺層語義信息得到了更好的利用,識別精度有了較大提高。選取最新SIOU損失函數(shù),使難以檢測的較小尺寸目標(biāo)得以正確識別。針對YOLO V5在橋梁裂縫檢測任務(wù)中感受野小、特征融合不充分的問題,通過使用C3-B注意力機制模塊,增大感受野,提高模型對目標(biāo)的精確定位能力;結(jié)合PAN加權(quán)跨層級聯(lián),防止淺層語義的丟失,使網(wǎng)絡(luò)對目標(biāo)邊界的回歸更加精準(zhǔn);最后選取SIOU為損失函數(shù),加快模型收斂速度,提高橋梁裂縫檢測效率。改進后模型的mAP值為0.874,比原始YOLO V5算法的mAP值高4.3%,精度提升了5%,且需要的參數(shù)量更少。
(a)Box (b)Objectness (c)Precision (d)Recall
表1 不同模型檢測結(jié)果對比
本節(jié)對不同模型檢測裂縫的結(jié)果進行可視化,以更加直觀的方式表達各種方法的檢測效果。為體現(xiàn)模型的泛化能力和強魯棒性,選取不同條件下的裂縫檢測結(jié)果進行展示,裂縫可視化結(jié)果如圖5所示。由圖5可知,分別單獨使用C3-B注意力機制模塊的檢測模型、PAN加權(quán)跨層級聯(lián)的檢測模型和使用了SIOU損失函數(shù)的檢測模型對于不同條件下的原始裂縫圖片檢測準(zhǔn)確度不高,有漏檢或過檢現(xiàn)象,而使用本文的檢測模型都能對裂縫進行準(zhǔn)確檢測,這體現(xiàn)了本文模型具有良好的泛化能力和魯棒性,同時模型的準(zhǔn)確預(yù)測結(jié)果可在實際橋梁裂縫檢測與智能識別中發(fā)揮重要作用。
(a)YOLO V5+C3-B (b)YOLO V5+PAN (c)YOLO V5+SIOU (d)YOLOV5+C3-B+PAN+SIOU
1) 本文基于YOLO V5目標(biāo)檢測模型,提出引用C3-B注意力機制模塊結(jié)合PAN加權(quán)跨層級聯(lián)設(shè)計了高效的目標(biāo)檢測模型,并選取最新的SIOU-Loss作為邊框回歸的損失函數(shù),提高了訓(xùn)練速度和推理精度,控制訓(xùn)練的優(yōu)勢變得更為明顯,提高了邊框回歸精度。
2) 實驗表明,本文所提出的檢測方法能夠準(zhǔn)確、快速地檢測出不同干擾因素下的橋梁裂縫。實際應(yīng)用中檢測精度達到0.866,召回率達到0.808,mAP達到0.874,性能高于普通目標(biāo)檢測模型,對橋梁裂縫檢測具有實際應(yīng)用價值。
3) 本文主要對橋梁裂縫病害進行自動化檢測,還可推廣應(yīng)用于橋梁混凝土剝落、鋼筋暴露、銹蝕、漏水等橋梁病害識別。后續(xù)研究中將采用語義分割方法對橋梁病害進行量化。