楊 魁, 王丹妮, 唐 雙, 李 巖, 劉 綱
(1.國網(wǎng)重慶市電力公司建設(shè)分公司,重慶 617000; 2.重慶大學(xué) 土木工程學(xué)院, 重慶 400045)
橋梁是保障國家經(jīng)濟(jì)建設(shè)的重要基礎(chǔ)設(shè)施,其服役質(zhì)量直接關(guān)系到國民經(jīng)濟(jì)發(fā)展和人民生命財(cái)產(chǎn)安全[1]。在我國,混凝土橋梁應(yīng)用最為廣泛[2],但由于施工缺陷、材料老化以及長期交變荷載、突發(fā)事件過載等作用,混凝土極易出現(xiàn)蜂窩、露筋、裂縫、剝落等各類表觀病害[3],對橋梁結(jié)構(gòu)的耐久性造成較大影響,并可能危及結(jié)構(gòu)的安全性[4-5]。因此,如何及時(shí)和快速發(fā)現(xiàn)這些病害對提高橋梁全壽命周期安全至關(guān)重要。
多年來,混凝土表觀病害常采用人工進(jìn)行檢測,工作量大、效率低,難以滿足高墩、大跨等橋梁結(jié)構(gòu)表觀病害全面檢測的需求。同時(shí),檢測過程中往往存在一定的安全風(fēng)險(xiǎn),例如2018年南寧三岸大橋因檢測車故障導(dǎo)致3名檢測人員罹難。近10 a來,隨著無人機(jī)及攝影技術(shù)的快速發(fā)展,采用無人機(jī)拍攝圖片逐漸成為表觀病害檢測的新手段[6]。但海量圖片若采用人工進(jìn)行識別,便無法解決效率低下的問題,故通過機(jī)器視覺從圖片中自動識別表觀病害已成為當(dāng)前研究熱點(diǎn)。目前,采用主成分分析、支持向量機(jī)和貝葉斯分類器等機(jī)器學(xué)習(xí)方法實(shí)現(xiàn)混凝土裂縫的自動識別技術(shù)已較為成熟;且隨著深度學(xué)習(xí)的快速發(fā)展,國內(nèi)外學(xué)者針對基于卷積神經(jīng)網(wǎng)絡(luò)的混凝土裂縫自動識別方法進(jìn)行了大量研究,取得了豐碩的研究成果,裂縫識別的相對誤差已可控制在10%以內(nèi)[7]。但混凝土表觀病害類型較多,不同病害類型需采用不同的識別方法,故如何實(shí)現(xiàn)各種病害類型的自動分類仍亟待研究。
You Only Look Once(YOLO)系列算法采用直接回歸方法獲取檢測目標(biāo)的類別,是目前速度最快的基于深度學(xué)習(xí)的目標(biāo)分類算法之一[8],被廣泛應(yīng)用于車輛、行人和手勢識別等多個領(lǐng)域[9-10],能滿足混凝土表觀病害類型分類識別的需求。但該方法需大量訓(xùn)練樣本才能獲得較高的分類精度,這在工程上較難滿足,特別在早期缺乏病害樣本時(shí)。因此,本文將最新的YOLOv3方法引入混凝土表觀病害分類中,并從兩個方面進(jìn)行改進(jìn),一是融合仿射變換數(shù)據(jù)增強(qiáng)和遷移學(xué)習(xí)技術(shù),分別從增加學(xué)習(xí)樣本的多樣性以及引入深度網(wǎng)絡(luò)預(yù)訓(xùn)練模型降低對訓(xùn)練樣本的要求,二是采用拉普拉斯圖像銳化技術(shù)對圖像進(jìn)行預(yù)處理,提升病害的對比度以提升病害分類精度,從而建立基于深度學(xué)習(xí)的混凝土表觀病害自動分類方法(Concrete Surface Defects Identification)CSDI-YOLO,為通過數(shù)字圖像實(shí)現(xiàn)混凝土表觀病害的自動識別、分類提供技術(shù)支撐。
YOLOv3算法主要用于目標(biāo)識別及分類,其基礎(chǔ)網(wǎng)絡(luò)架構(gòu)是卷積神經(jīng)網(wǎng)絡(luò),通過特征提取網(wǎng)絡(luò)對輸入圖像采用回歸思想直接提取特征,該算法的基本思路如圖1所示。首先將圖片分成S×S個大小相同的網(wǎng)格,每個單元格負(fù)責(zé)預(yù)測中心落在該格內(nèi)的目標(biāo),如圖1(a)中黑色小圓點(diǎn)所示。每個單元格將預(yù)測3個邊界框及各邊界框?qū)?yīng)的置信度c,其計(jì)算公式為:
(1)
同時(shí),每個網(wǎng)格還會預(yù)測針對C個條件類別的概率,即在網(wǎng)格中含有物體的條件下,該物體屬于某一類別的概率,如圖1(c)所示。在進(jìn)行分類識別時(shí),將條件概率與置信度相乘,得到每個邊界框在各個類別的綜合得分值,從而得到該類別物體出現(xiàn)在框中的概率以及邊界框與物體的吻合程度,以此達(dá)到分類識別的目標(biāo),最終識別結(jié)果如圖1(d)所示。
圖1 YOLOv3識別及分類原理Figure 1 YOLOv3 identification and classification principle
在網(wǎng)絡(luò)結(jié)構(gòu)上,YOLOv3深度學(xué)習(xí)網(wǎng)絡(luò)主要由Darknet-53特征提取網(wǎng)絡(luò)、多尺度融合特征網(wǎng)絡(luò)組成,如圖2所示。圖中y1,y2,y3分別表示算法在3個不同尺度的特征圖輸出。
圖2 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)[12]Figure 2 YOLOv3 network structure[12]
Darknet-53特征提取網(wǎng)絡(luò)借鑒了特征金字塔[11]網(wǎng)絡(luò)思路,由53個卷積層構(gòu)成,并分別在原圖片分辨率的1/32、1/16、1/8尺度上提取特征。例如對分辨率為416×416像素的輸入圖片,分別在13×13、26×26、52×52尺度上提取圖片的特征。因YOLOv3設(shè)定每個網(wǎng)格可預(yù)測3個邊界框,每個邊界框有5個基本屬性值,同時(shí)可預(yù)測80個類別概率,所以3個尺度上的預(yù)測深度均為3×(5+80)。
在網(wǎng)絡(luò)訓(xùn)練階段,需在作為訓(xùn)練樣本的圖片中用長方形框人工標(biāo)記出病害位置、類型;其次,將圖片輸入YOLOv3網(wǎng)絡(luò),在Darknet-53特征提取網(wǎng)絡(luò)中經(jīng)過一系列深度卷積過程,其像素?cái)?shù)量逐漸減小,并在3個尺度上得到預(yù)測框,當(dāng)人工標(biāo)記框與預(yù)測邊界框的交并比超過一定閾值,則計(jì)算該預(yù)測邊界框與標(biāo)記框之間的誤差,包括兩框之間的坐標(biāo)誤差、置信度誤差和類別誤差;然后,將誤差反向傳播回特征提取網(wǎng)絡(luò),從而自適應(yīng)調(diào)整網(wǎng)絡(luò)中各個卷積核的參數(shù),訓(xùn)練足夠的次數(shù)后,誤差減小到預(yù)設(shè)的閾值后,深度網(wǎng)絡(luò)的訓(xùn)練完成。
在病害識別和分類階段,將圖片輸入訓(xùn)練完成的網(wǎng)絡(luò)中進(jìn)行特征提取,每張圖像可分別得到3種尺度的特征圖;其次,根據(jù)特征圖預(yù)測出目標(biāo)的位置和類別,得到3種結(jié)果;然后,對所得3種結(jié)果進(jìn)行回歸,得到準(zhǔn)確的預(yù)測信息,完成目標(biāo)的識別和分類。
從YOLOv3的識別過程可知,其在3個層級的特征圖上進(jìn)行目標(biāo)檢測,同時(shí)利用低層和高層特征的語義信息,使得提取的特征更加豐富,這非常適合混凝土表觀病害的識別和分類,因混凝土表觀病害在圖片中的尺寸通常較小,其面積往往僅占圖片總面積的5%~30%左右,需從不同的尺度上才能提取較精確的特征。
YOLOv3算法的主要目標(biāo)是識別目標(biāo)并分類,故可采用R指標(biāo)評價(jià)其識別和分類效果:
(2)
本節(jié)通過在YOLOv3算法的基礎(chǔ)上融入遷移學(xué)習(xí)策略、仿射變換數(shù)據(jù)增強(qiáng)以及拉普拉斯圖像銳化增強(qiáng)技術(shù),提出適合小樣本學(xué)習(xí)的混凝土表觀病害類型分類方法CSDI-YOLO方法。
遷移學(xué)習(xí)是指根據(jù)目標(biāo)圖像集的特征,選取類似圖像集對深度網(wǎng)絡(luò)進(jìn)行學(xué)習(xí),取得預(yù)訓(xùn)練網(wǎng)絡(luò)模型;然后再采用目標(biāo)圖像集的少量訓(xùn)練樣本,通過對預(yù)訓(xùn)練模型的再次訓(xùn)練,即可快速得到適合目標(biāo)圖像集的深度網(wǎng)絡(luò)模型,從而達(dá)到舉一反三的效果,故遷移學(xué)習(xí)可大幅降低對目標(biāo)圖像集訓(xùn)練樣本數(shù)量的要求。
從遷移學(xué)習(xí)的原理可知,采用遷移學(xué)習(xí)所得網(wǎng)絡(luò)模型的精度取決于類似圖像集與目標(biāo)圖像集的相似度,若兩者的相似度較低,所得深度網(wǎng)絡(luò)模型的精度將會受到較大影響。而針對混凝土表觀病害而言,較難找到與其非常類似的相關(guān)圖像集,故本文采用類似圖像集訓(xùn)練YOLOv3深度網(wǎng)絡(luò)得到預(yù)訓(xùn)練網(wǎng)絡(luò)模型后,保留所得Darknet-53特征提取網(wǎng)絡(luò)的模型及參數(shù),即圖2中的虛線框部分;然后將預(yù)訓(xùn)練模型頂層網(wǎng)絡(luò)的參數(shù)移除(即將參數(shù)設(shè)置為0),再用表觀病害訓(xùn)練集重新訓(xùn)練整個深度網(wǎng)絡(luò),獲得新的網(wǎng)絡(luò)權(quán)重,以生成一個適用于表觀病害識別、分類的深度網(wǎng)絡(luò)模型,從而在保留網(wǎng)絡(luò)計(jì)算精度的前提下減少所需訓(xùn)練樣本。
仿射變換通過將圖片在平面上進(jìn)行移動、旋轉(zhuǎn)、鏡像等操作,產(chǎn)生新的圖片從而增加訓(xùn)練樣本,是一種幾何空間變換形式的數(shù)據(jù)增強(qiáng)方法。設(shè)原始圖片中位置為(x,y)的像素點(diǎn)經(jīng)過仿射變換后對應(yīng)的坐標(biāo)為(x′,y′),則仿射變換的運(yùn)算形式為:
(3)
其中,M為變換矩陣。M矩陣取不同的參數(shù)值可實(shí)現(xiàn)平移、縮放、旋轉(zhuǎn)、鏡像翻轉(zhuǎn)、偏移等操作,例如旋轉(zhuǎn)的M矩陣為:
(4)
其中,θ為順時(shí)針旋轉(zhuǎn)角度。
無人機(jī)在拍攝圖片時(shí),往往無法控制光線、振動等外界因素的影響,會對圖片中表觀病害的顯示造成影響,導(dǎo)致病害的特征較難提取,故選用拉普拉斯圖像銳化算法對圖像進(jìn)行銳化濾波以突出有用信息。該算法通過二階微分提取邊緣輪廓特征,較一階微分定位邊緣的能力更強(qiáng),銳化效果更好[13]。拉普拉斯算子定義為:
f(x,y+1)+f(x,y-1)-4f(x,y)
(5)
其中,f(x,y)表示圖片坐標(biāo)(x,y)處圖像灰度的數(shù)值大小。某蜂窩圖像進(jìn)行拉普拉斯算子銳化增強(qiáng)后的效果如圖3所示。從該圖可知,銳化增強(qiáng)后蜂窩病害的邊緣輪廓更加清晰,許多細(xì)小的蜂窩病害也更加清楚。
(a)原始圖像
基于YOLOv3深度學(xué)習(xí)算法原理,采用拉普拉斯圖像銳化增強(qiáng)提升原始圖片的特征信息,利用遷移學(xué)習(xí)及仿射變換數(shù)據(jù)增強(qiáng)降低深度網(wǎng)絡(luò)訓(xùn)練階段對訓(xùn)練樣本數(shù)量的要求,從而構(gòu)建了CSDI-YOLO方法進(jìn)行混凝土表觀病害的識別和分類,其具體步驟如下:
a.建立混凝土表觀病害圖片數(shù)據(jù)集。采集混凝土表觀病害圖像,并采用LabelImg工具通過手工標(biāo)記各類病害在圖片中的位置和類型。
b.圖像預(yù)處理。使用拉普拉斯銳化算法將病害圖像進(jìn)行銳化增強(qiáng),然后將所得圖像進(jìn)行順時(shí)針90°、180°和270°旋轉(zhuǎn)進(jìn)行仿射變換數(shù)據(jù)增強(qiáng),以提升病害特征及增加數(shù)據(jù)集的數(shù)量。
c.YOLOv3深度網(wǎng)絡(luò)預(yù)訓(xùn)練。選用已有圖像集對YOLOv3網(wǎng)絡(luò)進(jìn)行訓(xùn)練,建立預(yù)訓(xùn)練網(wǎng)絡(luò)模型。
d.新YOLO網(wǎng)絡(luò)模型訓(xùn)練。按2.1節(jié)內(nèi)容移除預(yù)訓(xùn)練模型頂層網(wǎng)絡(luò)的參數(shù),然后從數(shù)據(jù)集中選取表觀病害訓(xùn)練集,再次對新深度網(wǎng)絡(luò)進(jìn)行訓(xùn)練,直至達(dá)到最大迭代次數(shù),得到新的YOLO網(wǎng)絡(luò)模型。
e.表觀病害識別和分類。對新獲得的圖片進(jìn)行拉普拉斯銳化增強(qiáng),然后采用新YOLO網(wǎng)絡(luò)模型識別病害位置和類別。
搜集混凝土表觀病害圖片1 304張,選取1154張作為訓(xùn)練集,150張作為測試集,根據(jù)我國現(xiàn)行《公路橋梁技術(shù)狀況評定標(biāo)準(zhǔn)》和《公路橋涵養(yǎng)護(hù)規(guī)范》標(biāo)準(zhǔn)將病害分為裂縫、剝落、露筋、滲水、蜂窩、麻面、空洞共7種類型,采用LabelImg工具人工標(biāo)注每張圖片中的病害類型、病害部位,如圖4所示。為驗(yàn)證所提方法的適用性,訓(xùn)練集、測試集中包含的各類病害標(biāo)記框數(shù)量如表1所示。實(shí)驗(yàn)硬件配置的CPU為Intel ? CoreTMi7-6900K,GPU為NVIDIA GeForce GTX 1080,顯存為8GB GDDR5X,內(nèi)存為96 G。
圖4 數(shù)據(jù)集中的病害標(biāo)記
表1 各類病害標(biāo)記框數(shù)量Table 1 Details of defect datasets病害類型訓(xùn)練集測試集標(biāo)記框合計(jì)裂縫1 1881161 214剝落1 0571631 220蜂窩1 1541601 314麻面1 0401001 140空洞956651 021露筋963691 032滲水1 0611101 171
在YOLO網(wǎng)絡(luò)模型中,設(shè)置權(quán)重衰減系數(shù)為0.000 5,初始學(xué)習(xí)率為0.001,采用多分布策略,沖量常數(shù)取0.9。為防止過度擬合并提高訓(xùn)練速度,設(shè)置每次迭代訓(xùn)練的圖像數(shù)量為64,最大迭代次數(shù)為20 000;在迭代次數(shù)分別為15 000、17000時(shí)將學(xué)習(xí)率依次衰減為原來的0.1;設(shè)置分類類別classes為7,故本文中深度網(wǎng)絡(luò)模型3個尺度上的預(yù)測深度為3×(5+7)。
預(yù)訓(xùn)練的圖像集采用華盛頓大學(xué)的ImageNet圖像集,該圖像集包括超過1 400萬張圖片,共分為21 841個類別。
采用2.4節(jié)的流程得到新YOLO深度網(wǎng)絡(luò)模型,然后采用測試集驗(yàn)證所提方法識別、分類混凝土表觀病害的效果,如表2所示。7類病害的識別示例如圖5所示。
表2 所提算法的識別結(jié)果Table 2 Detection results of the proposed algorithm 序號目標(biāo)類別標(biāo)記框數(shù)量預(yù)測框數(shù)量R值1裂縫116940.812剝落1631520.933蜂窩1601520.954麻面100930.935空洞69660.966露筋1101060.967滲水65600.92合計(jì) 7837230.92
圖5 7類病害檢測結(jié)果示例Figure 5 Detection results examples of 7 types of defects
從表2可知,除裂縫的識別精度為81%外,其余各類病害的識別精度均高于92%,7類病害總體的識別精度為92%。裂縫識別效果相對較低的原因主要在于圖像數(shù)據(jù)在輸入到網(wǎng)絡(luò)中進(jìn)行特征提取時(shí),3 000×3 000像素的原圖像需壓縮到416×416像素,而訓(xùn)練集中絕大部分裂縫的寬度小于100像素,裂縫在經(jīng)過圖像壓縮后,其主要特征信息損失較大,導(dǎo)致識別精度所有降低。
在圖像識別和分類領(lǐng)域,另外常用的兩個深度網(wǎng)絡(luò)分別為Faster Region-based Convolutional Network(Faster R-CNN)算法[14]和Single Shot MultiBox Detector(SSD)算法[15],故針對混凝土表觀病害識別和分類問題,采用相同的訓(xùn)練集、測試集以及計(jì)算環(huán)境,將這2種方法與本文方法進(jìn)行對比,對測試集150張圖片的識別結(jié)果如表3所示。
表3 3種算法的病害識別結(jié)果對比Table 3 Comparison of defects detection using three differ-ent algorithms算法名稱識別結(jié)果R值計(jì)算時(shí)間/sFaster R-CNN0.93113SSD0.8767CSDS-YOLO0.9224
從表3可看出,SSD算法的識別精度低于Faster R-CNN和CSDI-YOLO算法,且SSD算法的計(jì)算時(shí)間是CSDI-YOLO算法的2倍以上;雖Faster R-CNN的識別精度比本文的CSDI-YOLO算法的精度高1%,但其計(jì)算耗時(shí)卻是本文方法的5倍左右。因此,綜合識別精度和計(jì)算時(shí)間,本文所提CSDI-YOLO方法能較好適用于混凝土表觀病害的識別。
基于能快速識別、分類的YOLOv3深度學(xué)習(xí)網(wǎng)絡(luò)算法,結(jié)合遷移學(xué)習(xí)策略提取圖像特征以減少對訓(xùn)練樣本數(shù)量的要求,借助仿射變換數(shù)據(jù)增加技術(shù)擴(kuò)充訓(xùn)練樣本集的多樣性,并采用拉普拉斯圖像銳化增強(qiáng)圖片中病害的輪廓特征,提出了CSDI-YOLO算法。采用所搜集的混凝土表觀病害圖片1 304張作為數(shù)據(jù)集,對數(shù)據(jù)集中包含的7類混凝土常見表觀病害進(jìn)行識別和分類,計(jì)算結(jié)果表明:
a.采用CSDI-YOLO算法的總體識別精度可達(dá)92%。裂縫識別精度相對較低的原因在于特征提取時(shí),算法將對圖片進(jìn)行壓縮,而細(xì)長的裂縫在圖像壓縮時(shí)將丟失部分特征。
b.通過與Faster R-CNN及SSD兩種算法對比,表明CSDI-YOLO算法在保證較高識別和分類精度的同時(shí),計(jì)算速度遠(yuǎn)遠(yuǎn)優(yōu)于Faster R-CNN及SSD算法,可為無人機(jī)采集的混凝土表觀病害的快速識別提供技術(shù)支撐。