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