李喬喬
(廣東交科檢測有限公司,廣東 廣州 510550)
目前,橋梁裂縫的檢測識(shí)別主要是基于機(jī)器學(xué)習(xí)的方法,如針對(duì)傳統(tǒng)人工檢測方法存在成本高和危險(xiǎn)性高的問題,結(jié)合無人機(jī)技術(shù)與機(jī)器學(xué)習(xí),提出一種基于Mask R-CNN的橋梁結(jié)構(gòu)裂縫智能識(shí)別方法[1]。以卷積神經(jīng)網(wǎng)絡(luò)為核心算法,通過采用無人機(jī)技術(shù)拍攝的橋梁結(jié)構(gòu)圖像構(gòu)建數(shù)據(jù)庫,提出一種混凝土橋梁裂縫識(shí)別與定位方法[2]。提出一種基于加入殘差塊的橋梁裂縫像素級(jí)檢測算法,實(shí)現(xiàn)了橋梁裂縫的快速識(shí)別[3]。通過上述研究可以發(fā)現(xiàn),基于機(jī)器學(xué)習(xí)的檢測識(shí)別方法在橋梁裂縫檢測中取得了良好的檢測效果,但有學(xué)者認(rèn)為,現(xiàn)有的各種基于機(jī)器學(xué)習(xí)的檢測方法對(duì)橋梁纖維混凝土裂縫的檢測準(zhǔn)確率有待進(jìn)一步提高[4]。為解決該問題,以橋梁表面常用的纖維混凝土作為研究對(duì)象,提出一種基于改進(jìn)VGG16的橋梁纖維混凝土裂縫檢測方法。
VGG16模型是一種常用于目標(biāo)檢測的高效識(shí)別算法模型,基本網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示[5]。該模型輸入圖像大小為224×224×3,通過2個(gè)卷積層進(jìn)行卷積與矩陣填充,可得到224×224×1的矩陣。由于第1層包括64個(gè)卷積核,因此可得到224×224×64的矩陣。然后通過卷積核大小為2×2×64,步長為2的5層池化層,可得到7×7×512的矩陣[6]。最后,進(jìn)入具有3層結(jié)構(gòu)的全連接層,再進(jìn)行Softmax分類,即可實(shí)現(xiàn)對(duì)樣本的分類處理,得到當(dāng)前樣本屬于不同種類的概率分布。
圖1 VGG16模型結(jié)構(gòu)示意圖
研究對(duì)VGG16模型的改進(jìn)主要集中在3個(gè)方面:(1)將3層卷積層和5層池化層修改為6層包括卷積層和池化層的大卷積層,對(duì)輸入圖像進(jìn)行卷積運(yùn)算加深網(wǎng)絡(luò),以適當(dāng)提高模型的識(shí)別精度;(2)對(duì)卷積核和池化窗口進(jìn)行改進(jìn),將卷積核大小設(shè)置為3×3,池化窗口尺寸設(shè)置為2×2,以增加網(wǎng)絡(luò)的感受野;(3)同時(shí)降低模型的參數(shù)量,進(jìn)而提高模型的運(yùn)行效率[7]。
通過上述改進(jìn),得到改進(jìn)后VGG16模型結(jié)構(gòu),具體如圖2所示,由輸入層、輸出層、大卷積層、全連接層、softmax分類層組成。其中,卷積核的大小均為3×3,步長為1;池化窗口大小為2×2,步長為2。輸入224×224×3的圖像通過大卷積層卷積和池化后,可得到3×3×512的矩陣輸入3層全連接層,然后通過Softmax分類與輸出層輸出,即可對(duì)圖像進(jìn)行分類識(shí)別。
圖2 改進(jìn)VGG16模型結(jié)構(gòu)示意圖
改進(jìn)后的VGG16模型相較于標(biāo)準(zhǔn)VGG16模型,具有更快的訓(xùn)練速率和更高的識(shí)別精度。因此,研究采用改進(jìn)的VGG16模型對(duì)橋梁表面纖維混凝土裂縫進(jìn)行檢測,以實(shí)現(xiàn)高速率高精度的裂縫識(shí)別。
2.1.1激活函數(shù)確定
激活函數(shù)是影響改進(jìn)VGG16模型訓(xùn)練的關(guān)鍵參數(shù)。常見的激活函數(shù)包括Sigmoid函數(shù)、Relu函數(shù)和Tanh函數(shù)等。相較于其他激活函數(shù),Relu函數(shù)由于采用隨機(jī)梯度下降法進(jìn)行訓(xùn)練,解決了梯度消失的問題,可提高模型的稀疏表達(dá)能力。因此,研究選用Relu函數(shù)作為改進(jìn)VGG16模型的激活函數(shù),其數(shù)學(xué)表達(dá)式[8]:
f(x)=max(x,0)
(1)
2.1.2損失函數(shù)確定
損失函數(shù)是解決模型過擬合的參數(shù)。神經(jīng)網(wǎng)絡(luò)常用的損失函數(shù)包括L1正則化損失和L2正則化損失兩種。其中,相較于L1正則化不可導(dǎo),L2具有可求偏導(dǎo)的特性更適用于改進(jìn)VGG16模型。因此,研究改進(jìn)VGG16模型選用L2正則化損失,其數(shù)學(xué)表達(dá)式[9]:
(2)
式中:R(w)為模型復(fù)雜函數(shù),表示模型復(fù)雜程度;wi為參數(shù)i的權(quán)重。
2.1.3反向傳播算法確定
常用反向傳播算法包括梯度下降法和隨機(jī)梯度下降法等。雖然隨機(jī)梯度下降法訓(xùn)練時(shí)間更短,但若隨機(jī)性太強(qiáng),可能達(dá)不到理想尋優(yōu)結(jié)果[10]。因此,為實(shí)現(xiàn)快速訓(xùn)練并取得尋優(yōu)結(jié)果,研究對(duì)部分?jǐn)?shù)據(jù)采用梯度下降法進(jìn)行反向傳播,對(duì)剩余部分?jǐn)?shù)據(jù)采用隨機(jī)梯度法進(jìn)行反向傳播。
2.1.4學(xué)習(xí)率確定
學(xué)習(xí)率即神經(jīng)網(wǎng)絡(luò)每次訓(xùn)練時(shí)參數(shù)移動(dòng)的幅度。為確定學(xué)習(xí)率,研究采用指數(shù)衰減法先以較大的學(xué)習(xí)率確定范圍,然后再不斷減小學(xué)習(xí)率確定其最佳值。指數(shù)衰減法的數(shù)學(xué)描述[11]:
η=η0×λ(α/β)
(3)
式中:η、η0分別為指數(shù)衰減學(xué)習(xí)率和初始學(xué)習(xí)率;λ為學(xué)習(xí)率衰減系數(shù);α/β為總樣本數(shù)與訓(xùn)練輪次的比值。
(1)收集整理相關(guān)橋梁纖維混凝土裂縫的圖像。考慮到圖像可能存在陰影、扭曲等問題,需對(duì)圖像進(jìn)行預(yù)處理;(2)將預(yù)處理后的橋梁纖維混凝土裂縫圖像輸入訓(xùn)練完成的改進(jìn)VGG16模型中進(jìn)行學(xué)習(xí)與訓(xùn)練;(3)將改進(jìn)VGG16模型的輸出作為檢測識(shí)別結(jié)果,即實(shí)現(xiàn)了橋梁纖維混凝土裂縫的檢測。
實(shí)驗(yàn)基于TensorFlow深度學(xué)習(xí)框架和Python語言搭建并訓(xùn)練所提改進(jìn)VGG16模型,使用Visual Studio Code編譯器,在Windows10操作系統(tǒng)上運(yùn)行。系統(tǒng)配置Intel(R)Xeon(R)Gold6152 CPU,NVIDIA Tesla P40顯卡,24 GB顯存,256 GB內(nèi)存。
本次實(shí)驗(yàn)數(shù)據(jù)來自2個(gè)部分:一是自主拍攝的橋梁纖維混凝土裂縫圖像;二是網(wǎng)絡(luò)搜尋的橋梁纖維混凝土裂縫圖像。針對(duì)網(wǎng)絡(luò)搜尋的圖像,考慮到圖像采集過程中可能存在變形、模糊、亮度不均勻等問題,試驗(yàn)前對(duì)圖像進(jìn)行了預(yù)處理??紤]到圖像數(shù)量對(duì)于機(jī)器學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型相對(duì)較少,實(shí)驗(yàn)對(duì)圖像進(jìn)行裁剪、縮放、翻轉(zhuǎn)等進(jìn)行增強(qiáng)處理。共獲取用于橋梁纖維表面混凝土裂縫檢測的圖像共5 000張。
本次實(shí)驗(yàn)選用準(zhǔn)確率(CCR)作為評(píng)估所提改進(jìn)VGG16模型性能的指標(biāo),其計(jì)算方法[12]:
(4)
式中:T1、T2分別為分類正確樣本數(shù)及樣本總數(shù)。
超參數(shù)是影響模型精度的重要參數(shù),包括初始學(xué)習(xí)率、批大小、優(yōu)化器、迭代次數(shù)[13-15]。為獲取最佳模型超參數(shù),研究通過控制變量法試驗(yàn)進(jìn)行確定。圖3所示為批大小、優(yōu)化器、迭代次數(shù)3個(gè)超參數(shù)一致條件下,不同初始學(xué)習(xí)率所提改進(jìn)VGG16模型的準(zhǔn)確率。
圖3 不同初始學(xué)習(xí)率條件下改進(jìn)VGG16模型的準(zhǔn)確率
由圖3可知,當(dāng)初始學(xué)習(xí)率為0.01時(shí),所提模型的訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率最高。因此,實(shí)驗(yàn)設(shè)置所提改進(jìn)VGG16模型的初始學(xué)習(xí)率為0.01。
圖4為初始學(xué)習(xí)率為0.01時(shí),相同優(yōu)化器和迭代次數(shù)條件下,不同批大小時(shí)所提改進(jìn)VGG16模型的準(zhǔn)確率。
圖4 不同批大小條件下改進(jìn)VGG16模型的準(zhǔn)確率
由圖4可知,當(dāng)批大小為32時(shí),所提模型的訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率最高。因此,本次實(shí)驗(yàn)設(shè)置所提模型的批大小為32。
圖5為初始學(xué)習(xí)率為0.01、批大小為32,迭代次數(shù)相同而優(yōu)化器不同條件下,所提改進(jìn)VGG16模型的準(zhǔn)確率。
圖5 不同優(yōu)化器條件下改進(jìn)VGG16模型的準(zhǔn)確率
由圖5可知,采用梯度下降法作為反向傳播優(yōu)化器時(shí),模型的訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率均高于與Adam作為優(yōu)化器。因此,本次實(shí)驗(yàn)設(shè)置所提模型的優(yōu)化期為梯度下降法。
圖6為初始學(xué)習(xí)率為0.01、批大小為32、優(yōu)化器為梯度下降法時(shí),所提改進(jìn)VGG16模型在不同迭代次數(shù)下的準(zhǔn)確率。
圖6 不同迭代次數(shù)下改進(jìn)VGG16模型的準(zhǔn)確率
由圖6可知,當(dāng)?shù)螖?shù)為25時(shí),所提模型的訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率最高。因此,本次實(shí)驗(yàn)設(shè)置所提模型的迭代次數(shù)為25。
為驗(yàn)證所提改進(jìn)VGG16模型的有效性,基于上述超參數(shù),實(shí)驗(yàn)對(duì)比了改進(jìn)前后模型的訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率,結(jié)果如圖7所示。
圖7 VGG16模型改進(jìn)前后準(zhǔn)確率對(duì)比
由圖7可知,相較于改進(jìn)前VGG16模型,所提模型的訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率均得到了不同程度提升,分別達(dá)到98.65%和97.89%。由此說明,本研究對(duì)VGG16模型改進(jìn)有效。
圖8為圖片規(guī)范采集條件下,所提模型與對(duì)比模型對(duì)存在腐蝕的橋梁纖維混凝土裂縫的識(shí)別結(jié)果。
(a)原始圖像
由圖8可知,所提改進(jìn)VGG16模型可有效識(shí)別分類橋梁纖維混凝土裂縫;而Canny模型在腐蝕產(chǎn)物的干擾下不能提供裂縫的有效信息,不能對(duì)裂縫進(jìn)行有效識(shí)別。Sobel模型的識(shí)別結(jié)果存在較大的干擾,可提供部分裂縫信息,識(shí)別能力有限。改進(jìn)VGG16模型在橋梁纖維混凝土裂縫檢測識(shí)別中,相較于常規(guī)檢測識(shí)別方法,具有一定的優(yōu)越性。
綜上所述,所提基于機(jī)器學(xué)習(xí)的橋梁纖維混凝土裂縫檢測方法,通過減少VGG16部分卷積核和全連接層通道數(shù)量,并在卷積層和全連接層后添加Relu函數(shù),同時(shí)引入Dropout,提高模型的運(yùn)行速率和識(shí)別精度,可實(shí)現(xiàn)高速率高精度的橋梁纖維混凝土裂縫檢測識(shí)別。相較于標(biāo)準(zhǔn)VGG16模型以及常規(guī)檢測識(shí)別模型Canny模型和Sobel模型,所提改進(jìn)VGG16模型可實(shí)現(xiàn)對(duì)存在陰影、扭曲等問題的橋梁纖維混凝土裂縫圖像的檢測識(shí)別,且具有更好的識(shí)別準(zhǔn)確率,訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率分別達(dá)到98.65%和97.89%,具有一定的實(shí)際應(yīng)用價(jià)值。