陳嘉,季雪,戴伊,蔣子平,闕云
(1. 福州大學(xué)計(jì)算機(jī)與大數(shù)據(jù)學(xué)院, 福建 福州 350108; 2. 福州大學(xué)土木工程學(xué)院, 福建 福州 350108)
路面病害的人工識(shí)別時(shí),存在一定肉眼識(shí)別容易受個(gè)人主觀性影響,不能客觀評(píng)價(jià)路面的真實(shí)情況. 為解決人工檢測(cè)方法局限性,基于圖像處理檢測(cè)方案,如路面病害區(qū)域邊緣檢測(cè)與分割[1-2]和利用小波變換進(jìn)行裂縫識(shí)別[3]等相繼被提出,并通過(guò)特征提取來(lái)借助計(jì)算機(jī)實(shí)現(xiàn)路面病害的自動(dòng)識(shí)別[4]. 這種方法雖可以大量減少人工檢測(cè)中耗時(shí)、耗力、工作量大等問(wèn)題,但在圖像分割中不可避免會(huì)產(chǎn)生各種噪音,且由于環(huán)境變換差異,在提取特征過(guò)程中會(huì)受到各種因素干擾[5-7], 導(dǎo)致病害識(shí)別率較低,產(chǎn)生路面檢測(cè)效果不佳的問(wèn)題.
針對(duì)上述兩種方法的不足, 以及隨著深度學(xué)習(xí)技術(shù)及硬件設(shè)施的快速發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)的檢測(cè)方法被廣泛應(yīng)用于圖像識(shí)別領(lǐng)域[8-9]. CNN是一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),最早由Lecun等[10-11]引用到手寫(xiě)數(shù)字識(shí)別. 其優(yōu)勢(shì)在于無(wú)需進(jìn)行繁瑣的預(yù)處理和人為提取特征過(guò)程. 專(zhuān)家學(xué)者將卷積神經(jīng)網(wǎng)絡(luò)與路面病害識(shí)別相結(jié)合,取得了較好的效果[12-15]. 然而,深度學(xué)習(xí)算法在泛化能力、訓(xùn)練時(shí)間等方面仍存在不足[16-18].
現(xiàn)有檢測(cè)技術(shù)或多或少受到光照、陰影、障礙物及訓(xùn)練速度等影響,如何做到更有效、快速、準(zhǔn)確地識(shí)別路面病害,為道路養(yǎng)護(hù)部門(mén)提供高效的檢測(cè)工具仍是一個(gè)難題. 通過(guò)研究卷積神經(jīng)網(wǎng)絡(luò)深度對(duì)圖像識(shí)別效果的影響作用,Simonyan等[19]得到VGG(visual geometry group)系列結(jié)構(gòu). VGG網(wǎng)絡(luò)建立于最基礎(chǔ)的卷積和池化單元之上,它所采用的卷積核及池化核均為小核,使得在訓(xùn)練過(guò)程中既能減少網(wǎng)絡(luò)參數(shù)量、又能對(duì)輸入信息做更有效的處理. 隨著該網(wǎng)絡(luò)的提出及其在圖像識(shí)別準(zhǔn)確率方面的優(yōu)勢(shì),它被應(yīng)用于植物葉片病害檢測(cè)、車(chē)輛識(shí)別、圖像識(shí)別等領(lǐng)域. 但目前少有直接以路面裂縫圖片作為輸入樣本檢測(cè)其破損類(lèi)型的研究.
基于此,為測(cè)試VGG網(wǎng)絡(luò)對(duì)多類(lèi)別且結(jié)構(gòu)復(fù)雜的裂縫識(shí)別準(zhǔn)確率,采用智能相機(jī),在福州市建平路等幾個(gè)區(qū)段內(nèi)進(jìn)行路面病害拍攝,獲取600張病害樣本. 直接將病害圖片作為VGG網(wǎng)絡(luò)結(jié)構(gòu)的輸入樣本,并與基于支持向量機(jī)的傳統(tǒng)機(jī)器學(xué)習(xí)算法進(jìn)行對(duì)比試驗(yàn),比較兩種算法對(duì)病害識(shí)別的差異性. 進(jìn)一步對(duì)VGG網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),得到改進(jìn)型VGG模型,并與改進(jìn)前模型進(jìn)行比較,從而選擇最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu). 通過(guò)試驗(yàn),研究3種網(wǎng)絡(luò)結(jié)構(gòu)對(duì)瀝青路面病害識(shí)別的精度,以便為道路維護(hù)提供數(shù)據(jù)支撐及有力幫助.
為確保樣本背景多樣性,采用智能相機(jī),分別在福州市建平路等地進(jìn)行路面病害圖像收集; 為防止光照不均、場(chǎng)地周邊環(huán)境如陰影等因素的影響,該數(shù)據(jù)在不同時(shí)刻、不同路段進(jìn)行拍攝.
通過(guò)一段時(shí)間的圖片拍攝,將因拍攝問(wèn)題或人為因素造成的不完整圖片篩選后,共收集到600張病害圖片,由于所獲取的圖片大小不一,將圖片大小裁剪成150 px×150 px,對(duì)其進(jìn)行均一化處理,通過(guò)人工分為5類(lèi). 每種類(lèi)別圖片均有120張.
本試驗(yàn)研究對(duì)象為常見(jiàn)的5種瀝青路面病害,分別為橫向裂縫、縱向裂縫、松散、龜裂、坑槽.
將總樣本數(shù)據(jù)中的90%作為訓(xùn)練集,用于模型訓(xùn)練,余下10%作為測(cè)試集,獲得模型對(duì)路面病害判斷的準(zhǔn)確率. 本實(shí)驗(yàn)將600張總樣本數(shù)據(jù)分為訓(xùn)練集與測(cè)試集,其中訓(xùn)練集有540張病害圖片,測(cè)試集有60張病害圖片. 將訓(xùn)練樣本中的原始病害圖片直接作為訓(xùn)練網(wǎng)絡(luò)的輸入,在網(wǎng)絡(luò)中對(duì)其進(jìn)行特征提取、反復(fù)訓(xùn)練、學(xué)習(xí)、使網(wǎng)絡(luò)獲得各類(lèi)圖片信息. 再把60張待檢測(cè)的圖片輸入到已設(shè)置相應(yīng)參數(shù)且訓(xùn)練好的模型中,最終獲取對(duì)五類(lèi)病害的識(shí)別結(jié)果.
1) 支持向量機(jī). 支持向量機(jī)(support vector machine,SVM)是一種具有分類(lèi)思想的算法,能較好地解決小樣本、非線性、高緯度和局部績(jī)效點(diǎn)等時(shí)機(jī)問(wèn)題. 其核心思想是使用盡可能少的樣本獲得最好的結(jié)果.
2) 核函數(shù)選擇. 本試驗(yàn)選用間接法中一對(duì)多分類(lèi)方法[20], 測(cè)試方法采用十折交叉驗(yàn)證法, 通過(guò)對(duì)徑向基(RBF)核函數(shù)、多項(xiàng)式核函數(shù)、Sigmoid核函數(shù)3種核函數(shù)進(jìn)行試驗(yàn)對(duì)比,選擇最佳核函數(shù). 表1為不同核函數(shù)對(duì)5種類(lèi)型病害識(shí)別結(jié)果.
通過(guò)3種不同核函數(shù)對(duì)比試驗(yàn),徑向基核函數(shù)把復(fù)雜的多維問(wèn)題轉(zhuǎn)化為簡(jiǎn)單的一維問(wèn)題,它靈活性高、擬合及預(yù)測(cè)精度良好,更適用于本試驗(yàn)研究. 最終本文試驗(yàn)采用徑向基核函數(shù)和一對(duì)多的分類(lèi)方法.
表1 不同核函數(shù)的識(shí)別結(jié)果
2.2.1VGG卷積神經(jīng)網(wǎng)絡(luò)
VGG全部采用3×3的小卷積核,小卷積核的堆疊可代替大卷積核,既可以有效減少計(jì)算量又能提高正則作用和分類(lèi)精度. VGG網(wǎng)絡(luò)所用池化核尺寸均為2×2,步長(zhǎng)為2的最大池化操作,小池化中的“小”是相對(duì)于AlexNet中3×3池化核而言的. 小核帶來(lái)更細(xì)節(jié)的信息捕捉.
2.2.2VGG模型構(gòu)建
VGG網(wǎng)絡(luò)結(jié)構(gòu)有3個(gè)卷積層,3個(gè)池化層,一個(gè)全連接層. 其中,卷積核大小均采用3×3,池化操作時(shí)采用最大池化,其大小為2×2,同時(shí)進(jìn)行了避免過(guò)擬合的Dropout技術(shù).
試驗(yàn)過(guò)程中,輸入的裂縫圖像大小為150 px×150 px×3 px. 第一層卷積層采用3×3,深度為32,步長(zhǎng)為1的卷積核去過(guò)濾,這個(gè)卷積層的參數(shù)個(gè)數(shù)為3×3×3×32+32=896個(gè). 選用非全0填充,得到32×148×148的輸出. 再以此輸出作為下層池化層的輸入. 該層選用步長(zhǎng)為2的最大池化操作,全0填充. 得到32×74×74的輸出. 第三層為卷積層,本層輸入大小為32×74×74,非全0填充,步長(zhǎng)為1,卷積層參數(shù)個(gè)數(shù)為3×3×32×32+32=9 248個(gè),得到32×72×72的輸出. 第四層為池化層,輸入大小為32×72×72,步長(zhǎng)為2,全0填充. 輸出大小為32個(gè)36×36. 第五層為卷積層. 采用64個(gè)3×3,步長(zhǎng)為1的卷積核過(guò)濾,參數(shù)個(gè)數(shù)為3×3×32×64+64=18 496個(gè),不選用全0填充. 得到64個(gè)34×34的輸出. 第六層為池化層,步長(zhǎng)為2,全0填充,得到64×17×17的輸出. 最后一層為全連接層,在該層中采Dropout技術(shù),減少過(guò)擬合,加快模型訓(xùn)練速度. 輸出層選用Softmax分類(lèi)器預(yù)測(cè)輸出類(lèi)別.
2.2.3激活函數(shù)的選取
激活函數(shù)的作用是:引入非線性,提高模型的表達(dá)力,使模型具有更好的區(qū)分度. 常用激活函數(shù)有:ReLU激活、Sigmoid激活函數(shù)、Tanh激活函數(shù). 本文模型選用ReLU函數(shù),它屬于非飽和的非線性函數(shù),可以使一部分的神經(jīng)元輸出為0,實(shí)現(xiàn)網(wǎng)絡(luò)的稀疏性. 并能減輕參數(shù)之間的相互依賴(lài)關(guān)系,緩解過(guò)擬合問(wèn)題[21].
ReLU函數(shù)表達(dá)式[22]為:
(1)
在前項(xiàng)傳播中用ReLU函數(shù)作激活函數(shù)計(jì)算單位矩陣中第t個(gè)節(jié)點(diǎn)的計(jì)算公式[23]為:
(2)
2.2.4分類(lèi)器
在結(jié)構(gòu)最后的輸出層采用分類(lèi)器基于特征映射對(duì)輸入數(shù)據(jù)進(jìn)行分類(lèi),在CNN中常用的分類(lèi)器為Softmax,其主要功能即為預(yù)測(cè)其輸入的類(lèi)別. Softmax常用函數(shù)[24]為:
(3)
式中:θ為待求的參數(shù)向量;K為類(lèi)別總數(shù);P(i)表示類(lèi)別為k類(lèi)的概率;x為輸入數(shù)據(jù).通過(guò)Softmax函數(shù)可以使P(i)的范圍在[0, 1]之間.在對(duì)輸入數(shù)據(jù)進(jìn)行分類(lèi)時(shí),Softmax所遵循的過(guò)程[24]為:
(4)
分類(lèi)結(jié)果[25]為:
(5)
式中:1·{}為示性函數(shù). 輸入值為i={1, 2, …,m},輸出標(biāo)簽為j={1, 2, …,k},上式表示將輸入值分為第k類(lèi)的概率,進(jìn)而對(duì)代價(jià)函數(shù)進(jìn)行求導(dǎo),通過(guò)最小代價(jià)化函數(shù),實(shí)現(xiàn)裂縫的分類(lèi).
2.3.1改進(jìn)型VGG網(wǎng)絡(luò)的確定
隨著病害類(lèi)型增多,復(fù)雜度不同,VGG網(wǎng)絡(luò)結(jié)構(gòu)存在識(shí)別效果下降,泛化能力需進(jìn)一步加強(qiáng)的問(wèn)題. 對(duì)卷積核深度及批處理量?jī)煞N對(duì)裂縫圖片局部信息獲取,以及對(duì)訓(xùn)練收斂程度產(chǎn)生影響的因素進(jìn)行對(duì)比試驗(yàn),最終確定了改進(jìn)型VGG網(wǎng)絡(luò)結(jié)構(gòu).
在神經(jīng)網(wǎng)絡(luò)中,影響網(wǎng)絡(luò)模型識(shí)別率和性能的主要因素有卷積核大小、權(quán)值衰減、丟棄率、批處理量等. 通過(guò)對(duì)最后一層卷積層卷積核深度和訓(xùn)練批處理量的改進(jìn),利用卷積核在不同位置進(jìn)行掃描獲取局部信息的特點(diǎn)及批處理量對(duì)訓(xùn)練收斂程度的影響來(lái)改進(jìn)VGG網(wǎng)絡(luò)結(jié)構(gòu),使算法能夠得到全局最優(yōu)精度. 表2為迭代1 000次后,不同卷積核深度與批處理量的訓(xùn)練結(jié)果.
表2 卷積核深度分別為32、64和128的不同批處理量的訓(xùn)練結(jié)果
從表2分析可知:對(duì)于相同批處理量,隨著卷積深度由32到64到128不斷加深,識(shí)別準(zhǔn)確率也在增加,如批處理量為32時(shí),隨著卷積深度的增加,最高準(zhǔn)確率由95.60%升至98.99%,增加了3.39%. 損失函數(shù)由0.130 2收斂至0.038 8,平均準(zhǔn)確率增加了5.45%. 訓(xùn)練所耗時(shí)間由250 s略增至281 s. 故將網(wǎng)絡(luò)結(jié)構(gòu)中最后一層卷積深度確定為128. 當(dāng)批處理量分別為32、64、128時(shí),網(wǎng)絡(luò)的最高識(shí)別精度達(dá)到了98.99%、99.29%、99.64%,但訓(xùn)練所耗時(shí)長(zhǎng)由原先的281 s變?yōu)樗?.1倍、3.6倍.
綜合考慮,選用最后一層卷積深度為128,批大小為32的網(wǎng)絡(luò)結(jié)構(gòu),最終確定了改進(jìn)型VGG網(wǎng)絡(luò)結(jié)構(gòu). 它與傳統(tǒng)VGG結(jié)構(gòu)不同在于,在第三次特征提取中,批處理量不變,而將卷積層中卷積核的深度大小為前者的兩倍. 表3為兩種VGG結(jié)構(gòu)的差異.
表3 兩種VGG結(jié)構(gòu)的差異
2.3.2改進(jìn)型VGG模型構(gòu)建
在改進(jìn)型VGG網(wǎng)絡(luò)結(jié)構(gòu)中,整個(gè)結(jié)構(gòu)的卷積層及池化層層數(shù)不變,在第五層卷積層中調(diào)整卷積核個(gè)數(shù),在該層將卷積核深度由64增至128,提取更深層次的圖像特征.
第五層輸入裂縫圖像大小為32 px×36 px×36 px,此時(shí)卷積核深度由64轉(zhuǎn)變?yōu)?28,輸入特征圖需經(jīng)過(guò)128個(gè)3×3的卷積核過(guò)濾,步長(zhǎng)為1,采用非全0填充,得到128個(gè)34×34的輸出. 本層的參數(shù)個(gè)數(shù)為3×3×32×128+128=36 992. 第六層為池化層,采用步長(zhǎng)為2,全0填充的最大池化操作,輸出大小為128 px×17 px×17 px. 最后一層為全連接層,在該層采用參數(shù)設(shè)置為0.5的Dropout技術(shù). 輸出層選用Softmax分類(lèi)器,得到5種分類(lèi)結(jié)果.
表4為基于支持向量機(jī)與VGG網(wǎng)絡(luò)結(jié)構(gòu)、改進(jìn)型VGG網(wǎng)絡(luò)結(jié)構(gòu)的試驗(yàn)結(jié)果對(duì)比. 由表4可見(jiàn),相比于SVM,VGG對(duì)橫向裂縫、縱向裂縫的識(shí)別精度提升了22.81%、22.50%,對(duì)龜裂、松散、坑槽的識(shí)別精度也提高了22.93%、21.61%、47.08%. 通過(guò)對(duì)比試驗(yàn)在網(wǎng)絡(luò)結(jié)構(gòu)作出改進(jìn)的方法是可行有效的. 改進(jìn)型VGG網(wǎng)絡(luò)結(jié)構(gòu)對(duì)5種病害的識(shí)別精度均優(yōu)于改進(jìn)前,它具有更強(qiáng)的泛化能力,也表明利用卷積核深度的特點(diǎn),能掃描獲取更為全面的局部信息,達(dá)到更好識(shí)別路面病害特征的目的.
表4 SVM、VGG和改進(jìn)型VGG的路面病害識(shí)別精度對(duì)比
圖1為VGG與改進(jìn)型VGG迭代100、1 000次的準(zhǔn)確率與損失率變化曲線圖.
圖1 模型迭代100次和1 000次的準(zhǔn)確率與損失率Fig.1 Accuracy and loss function of the model for 100 and 1 000 iterations
對(duì)于VGG, 在前100次迭代過(guò)程波動(dòng)明顯,之后對(duì)病害識(shí)別的準(zhǔn)確率緩慢提升; 而在迭代100次之后,準(zhǔn)確率達(dá)到73.96%; 隨著迭代次數(shù)的增加,其識(shí)別效果顯著增強(qiáng),損失率急劇收斂; 識(shí)別準(zhǔn)確率在迭代次數(shù)達(dá)到600后逐漸趨于平穩(wěn),最終達(dá)到97.63%. 對(duì)于改進(jìn)型VGG,迭代10次之后,損失函數(shù)便快速收斂而對(duì)圖片識(shí)別的準(zhǔn)確率也在平穩(wěn)上升; 在前100次迭代過(guò)程中,即使系統(tǒng)采用每30個(gè)樣本作一次迭代,樣本個(gè)體的差異性較大,改進(jìn)型網(wǎng)絡(luò)也能較好的識(shí)別病害類(lèi)型; 在迭代100次之后,隨著迭代次數(shù)的增加,對(duì)樣本信息的獲取越來(lái)越全面,改進(jìn)后的網(wǎng)絡(luò)泛化性能突顯,其識(shí)別效果顯著增強(qiáng); 在迭代1 000次完成后,識(shí)別精度達(dá)到98.99%. 同時(shí),損失率急劇收斂,最終收斂至0.03左右. 對(duì)比兩結(jié)構(gòu)可知:在迭代30次之前,由于樣本差異較大,兩種結(jié)構(gòu)的識(shí)別效果區(qū)分不大,而在迭代100次之后,兩者的效果逐漸分明. 如圖1(b),在經(jīng)過(guò)200次迭代之后,隨著網(wǎng)絡(luò)對(duì)個(gè)體信息的獲取越全面,改進(jìn)后的網(wǎng)絡(luò)識(shí)別精度明顯優(yōu)于未改進(jìn)的,損失函數(shù)更為收斂,經(jīng)過(guò)1 000次迭代后,改進(jìn)后的結(jié)構(gòu)對(duì)5種路面病害的識(shí)別準(zhǔn)確率, 較未改進(jìn)的97.63%提升了1.36%的精度,損失率也由原先的6.91%收斂至3.88%,模型每步用時(shí)為278 ms,相比于未改進(jìn)的每步用時(shí)258 ms略有增加.
絕大多數(shù)機(jī)器學(xué)習(xí)模型的典型指標(biāo)為精確度(precision,記作P)和召回率(recall,記作R). 精確度又稱(chēng)查準(zhǔn)率,召回率又稱(chēng)查全率,F(xiàn)1值(P和R的加權(quán)調(diào)和平均值)可均衡兩個(gè)指標(biāo),具體計(jì)算形式為:
(6)
圖2 3種模型評(píng)估試驗(yàn)結(jié)果Fig.2 Evaluate experimental results of the three models
圖2為SVM、VGG和改進(jìn)型VGG3種模型評(píng)估試驗(yàn)結(jié)果. 由圖2可見(jiàn),VGG模型在路面破損識(shí)別工作中的識(shí)別效果比SVM模型更優(yōu). 在同等試驗(yàn)環(huán)境、同等數(shù)據(jù)、同比例的前提下,VGG模型的精確度、召回率、F1值都遠(yuǎn)優(yōu)于SVM模型,表明VGG深度學(xué)習(xí)算法明顯優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)算法,其泛化能力更強(qiáng),具有較好的魯棒性. 同時(shí)在VGG模型中增加相應(yīng)的卷積深度后,可獲得更為全面的局部特征信息,提高模型在識(shí)別分類(lèi)下的精確度、召回率、F1值,說(shuō)明改進(jìn)型VGG模型在路面識(shí)別中存在一定優(yōu)勢(shì). 對(duì)道路路面破損進(jìn)行檢測(cè)時(shí)可獲得更為精確的結(jié)果,能夠?yàn)槁访婢S護(hù)工作提供更準(zhǔn)確的數(shù)據(jù)支撐.
卷積神經(jīng)網(wǎng)絡(luò)可以直接將拍攝獲取的瀝青路面病害樣本數(shù)據(jù)集作為輸入而不需要進(jìn)行復(fù)雜的預(yù)處理. 由于其小卷積、小池化的特點(diǎn),對(duì)路面病害檢測(cè)效果明顯優(yōu)于基于支持向量機(jī)等傳統(tǒng)機(jī)器學(xué)習(xí)算法. VGG對(duì)5種病害識(shí)別準(zhǔn)確率為97.63%,對(duì)復(fù)雜病害龜裂和坑槽識(shí)別準(zhǔn)確率分別達(dá)到95.33%,97.08%. 利用卷積核深度特點(diǎn)進(jìn)行改進(jìn)的VGG網(wǎng)絡(luò)結(jié)構(gòu),對(duì)路面病害判別的準(zhǔn)確率相比改進(jìn)前提高了1.36%,其識(shí)別效果更佳,泛化能力更強(qiáng),但模型用時(shí)略有增加. 可見(jiàn),VGG網(wǎng)絡(luò)具有較好的病害識(shí)別效果,同時(shí)也提升了路面檢測(cè)可行性.
如何快速、實(shí)時(shí)地檢測(cè)出裂縫的特征信息及位置,是今后研究的方向. 本文對(duì)幾種病害做了識(shí)別研究,然而瀝青路面破損類(lèi)型多樣,其破損的嚴(yán)重程度不一,如龜裂就分為輕度、中度、高度. 在今后的研究中可以往同一種裂縫類(lèi)型,根據(jù)其破損的裂縫寬度、深度及尺寸大小來(lái)識(shí)別其嚴(yán)重等級(jí),以期為路面養(yǎng)護(hù)工作提供更為全面、精確、有效的數(shù)據(jù)支撐.