周清松,董紹江,2,羅家元,秦 悅,夏宗佑,楊建喜
(1.重慶交通大學(xué) a.機(jī)電與車輛工程學(xué)院; b.信息科學(xué)與工程學(xué)院,重慶 400074;2.西南交通大學(xué) 磁浮技術(shù)與磁浮列車教育部重點(diǎn)實(shí)驗(yàn)室,成都 610031)
橋梁的可靠性和安全性對(duì)社會(huì)的福祉至關(guān)重要。因此有必要盡早發(fā)現(xiàn)橋上出現(xiàn)的缺陷,以防止橋的結(jié)構(gòu)能力和耐用性進(jìn)一步損失。在識(shí)別和監(jiān)測(cè)缺陷的非破壞性評(píng)估技術(shù)中,人工目視檢查是評(píng)估橋梁狀況的主要手段[1],但其結(jié)果是主觀的且可能是不可靠的[2]。在這種情況下,人們提出了基于計(jì)算機(jī)視覺的檢測(cè)技術(shù),借助爬壁機(jī)器人或無(wú)人機(jī)獲取圖像[3-4]?;跈C(jī)器學(xué)習(xí)的方法是更先進(jìn)的檢測(cè)方式,它利用提取圖像中的特征來(lái)完成特定的任務(wù),如Nishikawa等[5]基于機(jī)器學(xué)習(xí)方法來(lái)研究橋梁表面裂縫。盡管機(jī)器學(xué)習(xí)技術(shù)比傳統(tǒng)的圖像處理技術(shù)在效率和魯棒性方面有顯著提高,但是這些方法仍然有基于手工制作的低級(jí)功能,并且需要進(jìn)行預(yù)處理和后處理。因此,橋梁表面病害自動(dòng)檢測(cè)識(shí)別技術(shù)應(yīng)運(yùn)而生。
近年來(lái),隨著基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法不斷改進(jìn)創(chuàng)新,自動(dòng)檢測(cè)識(shí)別技術(shù)在行人檢測(cè)、車輛檢測(cè)等領(lǐng)域有很好的效果,但在橋梁表觀病害檢測(cè)方面效果較差。在目標(biāo)檢測(cè)算法的網(wǎng)絡(luò)體系結(jié)構(gòu)方面,這些對(duì)象檢測(cè)器可分為兩大類。一類以兩級(jí)檢測(cè)器R-CNN[6]系列為代表。R-CNN方法使用選擇性搜索[7](SS)方法生成區(qū)域建議,然后分別提取每個(gè)潛在邊界框的特征以進(jìn)行分類和邊框回歸。但是,使用選擇性搜索方法生成區(qū)域建議的步驟緩慢且復(fù)雜。為克服R-CNN存在的問題,Ren等[8]提出Faster R-CNN方法,用區(qū)域建議網(wǎng)絡(luò)(RPN)代替選擇性搜索方法生成區(qū)域建議。這種兩級(jí)檢測(cè)器被用于檢測(cè)結(jié)構(gòu)缺陷,如Kim等[9]將R-CNN與形態(tài)學(xué)后處理相結(jié)合,以檢測(cè)和量化混凝土橋梁中的裂縫;Cha等[10]使用Faster R-CNN架構(gòu)檢測(cè)混凝土和鋼結(jié)構(gòu)中的5種表面損傷類型。盡管上述研究證明了兩級(jí)檢測(cè)器可用于檢測(cè)結(jié)構(gòu)缺陷,但由于采用區(qū)域建議作為中間步驟,其檢測(cè)速度不夠理想。另一類是以單級(jí)檢測(cè)器SSD[11]、YOLO[12]系列為代表。由于SSD和YOLO都刪除了生成區(qū)域建議步驟,并同時(shí)預(yù)測(cè)了多個(gè)邊界框和類別概率,因此檢測(cè)速度比兩級(jí)檢測(cè)器快。但是,SSD算法的缺點(diǎn)明顯,一是不能充分利用淺層的高分辨率特征圖,二是候選框的尺寸比例需要人工根據(jù)經(jīng)驗(yàn)設(shè)置。因此,本研究的目的是探討先進(jìn)的單級(jí)檢測(cè)器YOLOv3[13]的適用性,用以識(shí)別橋梁表觀的多種病害,并提高檢測(cè)精度。
目前在主流的目標(biāo)檢測(cè)網(wǎng)絡(luò)中,YOLO網(wǎng)絡(luò)直接對(duì)圖像中的目標(biāo)進(jìn)行回歸檢測(cè),因此其檢測(cè)速度比其他網(wǎng)絡(luò)快。分析YOLOv1至YOLOv3網(wǎng)絡(luò)的優(yōu)缺點(diǎn)得出,初始YOLOv1網(wǎng)絡(luò)檢測(cè)精度差;YOLOv2[14]在YOLOv1的基礎(chǔ)上通過添加批量標(biāo)準(zhǔn)化、高分辨率的分類器、多尺度的訓(xùn)練等方法,在繼續(xù)保持處理速度基礎(chǔ)上,在預(yù)測(cè)更準(zhǔn)確、速度更快、識(shí)別對(duì)象更多這3個(gè)方面進(jìn)行了改進(jìn);YOLOv3在YOLOv2的基礎(chǔ)上取代了新的骨干網(wǎng)絡(luò),將單標(biāo)簽分類改進(jìn)為多標(biāo)簽分類,采用了多尺度融合預(yù)測(cè)方法。YOLOv3網(wǎng)絡(luò)模型如圖1所示,它的基本體系結(jié)構(gòu)包括3個(gè)主要部分:特征提取網(wǎng)絡(luò)層(DarkNet-53)、檢測(cè)層和分類層。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 1 YOLOv3 network structure diagram
特征提取網(wǎng)絡(luò)層:它是被命名為DarkNet-53的特征提取算法。它由53個(gè)卷積層組成,每個(gè)卷積層都包含1個(gè)歸一化層,每層的激活函數(shù)是Leaky ReLU。它借鑒了殘差網(wǎng)絡(luò)[15](ResNet)的做法,在一些層之間建立快捷鏈路,通過快捷鏈路躍層連接可以解決隨著網(wǎng)絡(luò)的逐步深入導(dǎo)致模型難以優(yōu)化的問題,減小梯度爆炸風(fēng)險(xiǎn),加強(qiáng)網(wǎng)絡(luò)的學(xué)習(xí)能力并利用到更多的圖像淺層特征信息。特征圖的尺寸在某些卷積層之間減小了2倍,該算法總共將尺寸減小了32倍。為了YOLOv3網(wǎng)絡(luò)的下一步工作,特征提取網(wǎng)絡(luò)部分將輸出3個(gè)不同尺寸的特征圖作為下一個(gè)網(wǎng)絡(luò)模塊的輸入,其尺寸分別比原始圖像尺寸減小8倍、16倍和32倍。
檢測(cè)層:卷積核大小為1×1和3×3的卷積層交替出現(xiàn),最后一層的卷積核大小必須為1×1。最小輸入尺度的特征圖僅在檢測(cè)層進(jìn)行處理。特征提取網(wǎng)絡(luò)層輸出的另外2個(gè)尺度的特征圖在被發(fā)送到檢測(cè)層之前,先與已經(jīng)處理過的較低維映射進(jìn)行拼接,然后輸入檢測(cè)層。
分類層:以檢測(cè)層生成的包含多尺度特征信息的融合特征為輸入,通過卷積核大小為3×3和1×1的卷積層產(chǎn)生模型的最終特征輸出,且最后一層的通道數(shù)(Filters)大小為
Filters=3×(4+1+classes),
(1)
式中:3代表3個(gè)預(yù)測(cè)尺度,4和1分別為網(wǎng)絡(luò)最終輸出檢測(cè)目標(biāo)類別歸一化后的中心坐標(biāo)(x,y,w,h)和置信度,classes代表檢測(cè)目標(biāo)類別數(shù)。本研究中檢測(cè)類別有4類,因此Filters=27。
空間金字塔池化[16]( SPP-Net)對(duì)圖片進(jìn)行不同的分塊池化,把每個(gè)塊中提取出的一個(gè)特征圖作為一個(gè)維度,確保最后得到特征圖的維度一致,從而解決信息丟失和尺度不統(tǒng)一的問題。此外,特征圖中的通道數(shù)被擴(kuò)展以提供有效的全局信息,因此它具有更強(qiáng)的細(xì)節(jié)特征描述能力,對(duì)不同類型目標(biāo)的檢測(cè)精度更高。病害圖像的預(yù)處理和多尺度預(yù)測(cè)中可能產(chǎn)生信息丟失或者尺度不一致,從而影響最終的檢測(cè)效果。因此本研究中參考空間金字塔池化方法,在YOLOv3檢測(cè)層中融合空間金字塔池化的操作,不僅解決了在檢測(cè)層中輸入特征圖的尺寸變化和圖像失真的問題,也實(shí)現(xiàn)了特征圖的局部特征和全局特征更好地融合。如圖2所示,選擇3個(gè)不同尺度(n1 圖2 空間金字塔池化模塊Fig. 2 Spatial pyramid pooling module 雖然特征映射具有豐富的特征信息,但經(jīng)過深層和淺層特征融合后存在一定的冗余。因此在空間金字塔池化結(jié)構(gòu)中,n1、n2和n3這3個(gè)尺度的池化層分別對(duì)應(yīng)3個(gè)不同程度的去冗余操作。尺度為n1的池化層的池化區(qū)域最小,能夠?qū)μ卣鲌D上的局部特征進(jìn)行去冗余;尺度為n3的池化層的池化區(qū)域最大,能夠?qū)μ卣鲌D上的全局特征進(jìn)行去冗余;尺度為n2的池化層屬于過渡操作,保留介于局部和全局之間的特征。完成冗余操作后,使用拼接操作聚合所有特征映射。經(jīng)過去冗余再聚合操作的特征圖的信息更有層次且表征性更強(qiáng),檢測(cè)器能夠根據(jù)全局特征對(duì)缺陷進(jìn)行定位,再根據(jù)局部特征對(duì)目標(biāo)病害的類別進(jìn)行判定。為實(shí)現(xiàn)局部特征和全局特征的特征圖級(jí)別的融合,空間金字塔池化結(jié)構(gòu)最大的池化核(n3)要盡可能接近等于需要池化的特征圖的大小。因此在YOLOv3預(yù)測(cè)大目標(biāo)的檢測(cè)層分支中嵌入空間金字塔池化,設(shè)置n1=5,n2=9,n3=13。 Xi=Hi([X0,X1,…,Xi-1])。 (2) 圖3 DenseNet的密集連接機(jī)制Fig. 3 Dense connection mechanism of DenseNet 圖4 密集模塊中的非線性轉(zhuǎn)換結(jié)構(gòu)Fig. 4 Non-linear transformation structure in dense module 假設(shè)一個(gè)密集模塊的輸入X0維度為m,每個(gè)密集層輸出k個(gè)特征圖。根據(jù)密集連接網(wǎng)絡(luò)的原理,第n個(gè)密集層的輸入是m+(n-1)k個(gè)特征圖,所以直接進(jìn)行3×3卷積運(yùn)算會(huì)帶來(lái)大量的計(jì)算量,造成網(wǎng)絡(luò)的負(fù)擔(dān)。這時(shí)可以使用瓶頸結(jié)構(gòu)來(lái)減少網(wǎng)絡(luò)的計(jì)算量,主要方法是在原來(lái)的密集模塊上增加一個(gè)1×1卷積層來(lái)減少特征的數(shù)量,即BN+ReLU+1×1 Conv+BN+ReLU+3×3 Conv。在構(gòu)建的瓶頸結(jié)構(gòu)的密集層中,首先通過1×1卷積層可得2k個(gè)特征圖,然后通過3×3卷積層輸出k個(gè)特征圖。其結(jié)構(gòu)如圖5所示。 圖5 含有瓶頸結(jié)構(gòu)的密集模塊結(jié)構(gòu)Fig. 5 Dense module structure with a bottleneck structure 在使用瓶頸結(jié)構(gòu)方法的基礎(chǔ)上,為進(jìn)一步減少網(wǎng)絡(luò)計(jì)算量,在每?jī)蓚€(gè)密集模塊之間使用卷積核大小分別為1×1的卷積層和2×2的平均池化層組成過渡層。假設(shè)一個(gè)密集模塊的輸出特征圖數(shù)量為p,使用輸出連接的過渡層輸出θp個(gè)特征圖,其中θ(0<θ≤1)表示壓縮系數(shù)。在本研究中構(gòu)建的過渡層中θ=0.5,因此經(jīng)過渡層壓縮操作后,輸入到下一個(gè)密集模塊的特征圖的數(shù)量與尺度減少一半。 將YOLOv3網(wǎng)絡(luò)與所構(gòu)造的密集連接網(wǎng)絡(luò)結(jié)合起來(lái),提出了一種新型YOLOv3網(wǎng)絡(luò)結(jié)構(gòu),如圖6所示。為了平衡檢測(cè)速度和準(zhǔn)確率,將原網(wǎng)絡(luò)的輸出尺寸為208×208和104×104的殘差模塊保留,將輸出為52×52、26×26和13×13的3組殘差模塊替換為密集模塊。 圖6 改進(jìn)的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Improved YOLOv3 network structure diagram 實(shí)驗(yàn)環(huán)境為Windows操作系統(tǒng),AMD Ryzen 5 3600 (CPU),32 GB隨機(jī)存取內(nèi)存(RAM),RTX 2060-SUPER(GPU),16 GB顯示內(nèi)存,深度學(xué)習(xí)框架為pytorch。網(wǎng)絡(luò)的初始化參數(shù)如表1所示。 表1 初始化參數(shù) 數(shù)據(jù)集CODEBRIM(COncrete DEfect BRidge IMage dataset[18],混凝土缺陷橋圖像數(shù)據(jù)集)是2019年公布的,用于計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)中的多目標(biāo)病害的橋梁混凝土缺陷檢測(cè),該數(shù)據(jù)集含有風(fēng)化(efflorescence)、鋼筋外露(exposed bars)、腐蝕(corrosion stain)和脫落(spallation)4種橋梁病害。由于該數(shù)據(jù)集樣本數(shù)量不足,利用數(shù)據(jù)增強(qiáng)技術(shù)對(duì)數(shù)據(jù)進(jìn)行樣本擴(kuò)充,如表2所示。擴(kuò)充后的部分圖片存在病害標(biāo)簽失效現(xiàn)象,其失效形式為原圖像中的病害標(biāo)簽尺寸超過圖像本身尺寸,造成輸入網(wǎng)絡(luò)中歸一化的值不屬于0~1的范圍,因此需要對(duì)增強(qiáng)后的圖片進(jìn)行排查,刪除失效的圖像。 表2 數(shù)據(jù)增強(qiáng)方式 擴(kuò)充后的圖片效果如圖7所示。 圖7 使用數(shù)據(jù)增強(qiáng)的圖片對(duì)比Fig. 7 Non-enhanced and data-enhanced images 對(duì)目標(biāo)檢測(cè)算法,平均準(zhǔn)確率(mAP)是評(píng)價(jià)模型性能的標(biāo)準(zhǔn)度量。對(duì)二元分類問題,根據(jù)其標(biāo)記類和預(yù)測(cè)類的組合,判斷結(jié)果可分為4類:真正例(TP)、假正例(FP)、真負(fù)例(TN)和假負(fù)例(FN)。分類結(jié)果的混淆矩陣如表3所示。 表3 二元分類的混淆矩陣 精確率和召回率計(jì)算公式如下: (3) (4) 精確率是一個(gè)模型真實(shí)預(yù)測(cè)目標(biāo)總數(shù)與所有預(yù)測(cè)目標(biāo)總數(shù)比率,召回率是真實(shí)預(yù)測(cè)目標(biāo)總數(shù)與數(shù)據(jù)集中目標(biāo)總數(shù)的比率。以精確率為橫軸,以召回率為縱軸,可以得到精確的校準(zhǔn)曲線,稱為P-R曲線。P-R曲線與坐標(biāo)軸圍成的面積為每個(gè)類的精度值(AP),mAP則是計(jì)算所有類的P-R曲線下面積的平均值(該面積通過黎曼求和來(lái)計(jì)算)。公式如下: (5) (6) 式中:N為用于測(cè)試的圖像數(shù)量,M為檢測(cè)的類別數(shù)。 以改進(jìn)YOLOv3網(wǎng)絡(luò)檢測(cè)層 (YOLOv3-a),改進(jìn)特征提取網(wǎng)絡(luò)層 (YOLOv3-b1:使用瓶頸結(jié)構(gòu);YOLOv3-b2:使用瓶頸結(jié)構(gòu)和過渡層)以及同時(shí)加入以上2種改進(jìn)的網(wǎng)絡(luò)(YOLOv3-a-b1;YOLOv3-a-b2)與原YOLOv3進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如表4所示。 表4 改進(jìn)的YOLOv3和YOLOv3實(shí)驗(yàn)結(jié)果詳情 通過上表可以看出,改進(jìn)的YOLOv3比原YOLOv3在橋梁表觀病害檢測(cè)上的平均準(zhǔn)確率有所提高。其中,YOLOv3-a的平均準(zhǔn)確率提升了1.6%,由于融合空間金字塔池化操作,增加了網(wǎng)絡(luò)計(jì)算參數(shù)量,因此訓(xùn)練時(shí)間增加2.4%;YOLOv3-b1的平均準(zhǔn)確率提升了1.8%,由于替換了原YOLOv3特征提取網(wǎng)絡(luò)的最后3個(gè)殘差模塊,網(wǎng)絡(luò)計(jì)算參數(shù)量減少50%,因此訓(xùn)練時(shí)間減少17.8%;而在YOLOv3-b1上做進(jìn)一步改進(jìn)的YOLOv3-b2,與原YOLOv3相比,其平均準(zhǔn)確率提升了1.9%,網(wǎng)絡(luò)計(jì)算參數(shù)量減少59%,因此訓(xùn)練時(shí)間減少34.3%。融合兩種改進(jìn)YOLOv3-a-b1的平均準(zhǔn)確率提升2.4%,網(wǎng)絡(luò)計(jì)算參數(shù)量減少49%,導(dǎo)致訓(xùn)練時(shí)間減少15.2%;YOLOv3-a-b2的平均準(zhǔn)確率的提升最大,達(dá)到3.0%,網(wǎng)絡(luò)計(jì)算參數(shù)量減少57%,導(dǎo)致訓(xùn)練時(shí)間減少33.2%。分析結(jié)果表明替換YOLOv3特征提取網(wǎng)絡(luò)的最后3個(gè)殘差模塊為密集模塊結(jié)構(gòu)后,不僅使深層特征和淺層特征更好地融合,提高了網(wǎng)絡(luò)的特征復(fù)用能力,還大大減少了網(wǎng)絡(luò)模型的訓(xùn)練時(shí)間;添加空間金字塔池化結(jié)構(gòu)雖增加了模型的復(fù)雜度,導(dǎo)致訓(xùn)練時(shí)間增加2.4%、3.1%和1.7%,但平均準(zhǔn)確率得到提升。分析結(jié)果證明了對(duì)YOLOv3的改進(jìn)是有效的。 為進(jìn)一步驗(yàn)證本研究中提出的模型在橋梁表觀病害檢測(cè)上優(yōu)于其他目標(biāo)檢測(cè)算法,使用同樣的橋梁表面病害數(shù)據(jù)集對(duì)YOLOv3-a-b2和Faster R-CNN、SSD、RetinaNet等目標(biāo)檢測(cè)算法進(jìn)行病害識(shí)別任務(wù)的訓(xùn)練與測(cè)試。實(shí)驗(yàn)結(jié)果如表5所示。 表5 不同算法檢測(cè)結(jié)果對(duì)比 從表5可以看出無(wú)論是兩級(jí)檢測(cè)器Faster R-CNN還是單級(jí)檢測(cè)器SSD,其平均準(zhǔn)確率均低于改進(jìn)模型,且訓(xùn)練時(shí)間更長(zhǎng)。證明了改進(jìn)的YOLOv3在橋梁表觀病害檢測(cè)上有更好的檢測(cè)效果。 隨機(jī)抽取測(cè)試集中的3張圖片進(jìn)行測(cè)試,結(jié)果如圖8所示。 圖8 YOLOv3(左)和YOLOv3-a-b2(右)的檢測(cè)結(jié)果Fig. 8 YOLOv3 (left) and YOLOv3-a-b2(right) test results 從圖8(a)對(duì)比圖片看出,左圖中出現(xiàn)了將風(fēng)化誤檢為腐蝕,而右圖準(zhǔn)確地檢測(cè)出風(fēng)化這一病害類型;圖8(b)中左圖對(duì)病害部位的檢測(cè)結(jié)果僅為腐蝕,而右圖對(duì)病害部位的檢測(cè)結(jié)果不僅有腐蝕,還有脫落 (由于檢測(cè)為脫落的結(jié)果準(zhǔn)確率比腐蝕的結(jié)果準(zhǔn)確率高,腐蝕的檢測(cè)結(jié)果被覆蓋了一部分,在右圖中能看見腐蝕的結(jié)果準(zhǔn)確率為0.33);圖8(c)中左圖出現(xiàn)了對(duì)脫落部位的漏檢,右圖則識(shí)別了全部脫落部位。從對(duì)檢測(cè)結(jié)果的分析可以看出本研究中的模型的檢測(cè)效果優(yōu)于原YOLOv3檢測(cè)效果,而且還降低了對(duì)目標(biāo)病害的誤檢率與漏檢率。 針對(duì)目前通用目標(biāo)檢測(cè)算法在橋梁表觀病害檢測(cè)上精度低、誤檢率和漏檢率高的缺點(diǎn),提出了基于單級(jí)檢測(cè)器YOLOv3的橋梁表面病害檢測(cè)方法。將本研究中構(gòu)造的密集連接網(wǎng)絡(luò)嵌入YOLOv3特征提取網(wǎng)絡(luò)后,不僅增強(qiáng)了橋梁病害特征在網(wǎng)絡(luò)層之間的傳播和利用效率,使檢測(cè)層得到更強(qiáng)的語(yǔ)義信息,為目標(biāo)分類任務(wù)提供了更強(qiáng)的特征支持,還減少了網(wǎng)絡(luò)的訓(xùn)練時(shí)間。引入空間金字塔池化結(jié)構(gòu)使淺層與深層的特征信息更好地融合,提升了目標(biāo)分類與定位的能力。經(jīng)過實(shí)驗(yàn)結(jié)果分析,改進(jìn)的網(wǎng)絡(luò)模型對(duì)橋梁病害有更高的檢測(cè)精度。下一步工作將研究基于YOLOv3改進(jìn)算法的智能爬壁機(jī)器人進(jìn)行病害檢測(cè)實(shí)際應(yīng)用,以機(jī)器人自主的目視檢查代替以人眼目視的檢查。2.2 改進(jìn)特征提取網(wǎng)絡(luò)結(jié)構(gòu)
3 實(shí)驗(yàn)結(jié)果及分析
3.1 實(shí)驗(yàn)環(huán)境與數(shù)據(jù)集
3.2 評(píng)價(jià)指標(biāo)
3.3 實(shí)驗(yàn)結(jié)果與分析
3.4 圖片檢測(cè)效果
4 結(jié) 論