韓海航 ,遲鳳霞
(1.浙江省道橋檢測與養(yǎng)護(hù)技術(shù)研究重點實驗室,浙江 杭州 310012;2.浙江省交通運輸科學(xué)研究院,浙江 杭州 310012)
瀝青路面作為公路工程的重要組成部分,是推動經(jīng)濟(jì)發(fā)展的重要基礎(chǔ)設(shè)施。隨著使用年限的增長,瀝青路面出現(xiàn)了不同形式病害,其中路面裂縫已經(jīng)成為省內(nèi)公路及城市道路的最主要病害。伴隨計算機與攝像頭等硬件的發(fā)展,將檢測裝備搭載于車輛,可以在80km/h 的車速下開展檢測工作并且不阻礙交通。車載設(shè)備能在短時間內(nèi)快速獲取大量路面高質(zhì)量數(shù)據(jù)。目前對所采集的裂縫圖像主要通過人工進(jìn)行分析判斷,但人工分析存在工作效率低、勞動強度大、復(fù)現(xiàn)性差、人力成本高、精準(zhǔn)度低等缺陷。近年來也有眾多研究利用數(shù)字圖像處理技術(shù)進(jìn)行瀝青路面病害識別,多局限于二維灰度圖像分析技術(shù)。但是二維圖像信噪比較低,無法精確提取目標(biāo)信息,因此應(yīng)用效果不盡人意。路面裂縫采集技術(shù)在各國都已經(jīng)有較為成熟的設(shè)備,并且能夠為相應(yīng)的科研機構(gòu)和科研人員提供高質(zhì)量的路面圖片;但是在瀝青路面裂縫智能分析上應(yīng)用技術(shù)尚不成熟,需要進(jìn)一步提高。近年來,基于深度學(xué)習(xí)進(jìn)行裂縫檢測的研究逐漸開展,如西安電子科技大學(xué)使用卷積神經(jīng)網(wǎng)絡(luò)對橋梁裂縫進(jìn)行檢測,長安大學(xué)應(yīng)用CNN 和Faster-CNN 進(jìn)行路面裂縫識別與定位。
為了改進(jìn)公路瀝青路面裂縫的智能識別技術(shù),提高裂縫識別的速度與準(zhǔn)確度,進(jìn)一步提高裂縫分析效率,降低工作量,本文從卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)概念出發(fā),具體分析了卷積神經(jīng)網(wǎng)絡(luò)在瀝青路面自動化檢測中的應(yīng)用。
卷積神經(jīng)網(wǎng)絡(luò)屬于機器學(xué)習(xí)的范疇,隨著不斷研究,其在瀝青路面裂縫檢測中的應(yīng)用也越來越廣泛。卷積神經(jīng)網(wǎng)絡(luò)的主要結(jié)構(gòu)層包括輸入層、卷積層、池化層、dropout 層、激活層、全連接層、輸出層等。
輸入層是卷積神經(jīng)網(wǎng)絡(luò)接受大量非線性輸入的結(jié)構(gòu),對于圖像處理問題來說,卷積神經(jīng)網(wǎng)絡(luò)的輸入層就是圖片本身,輸入的圖片可以是單通道灰度圖片,也可以是三通道的RGB 圖片。
卷積層(Convolutional Layer)是卷積神經(jīng)網(wǎng)絡(luò)最基礎(chǔ)同時也是最不可或缺的組件,其基本思路為使用一個參數(shù)化的卷積核(一般可選3*3 或者5*5),將此卷積核以滑動窗口的形式與局部輸入特征做數(shù)乘后求和。更形象的解釋如圖1 所示。
圖1 卷積層
卷積運算的主要目的是提取輸入的探地雷達(dá)圖像的不同特征,通過每個卷積核與輸入矩陣的卷積運算實現(xiàn)。卷積核的操作主要包括子矩陣和卷積核矩陣的叉乘。卷積核矩陣的初始權(quán)值通過系統(tǒng)隨機生成,隨后在訓(xùn)練過程中通過隨機梯度下降法調(diào)整;叉乘得到的值累加后與偏值相加。
相比于全連接神經(jīng)網(wǎng)絡(luò),卷積層有兩個特點:局部連接和權(quán)值共享。局部連接的含義為卷積層輸出的每一個神經(jīng)元都只與前一層輸入的一小部分相關(guān)聯(lián),這能極大減少需要訓(xùn)練的參數(shù)量;權(quán)值共享的含義為卷積層輸出的各個神經(jīng)元共享同一個卷積核參數(shù),僅僅將此卷積核應(yīng)用于輸入圖像的不同位置,這種方法能進(jìn)一步降低參數(shù)量。
在卷積操作中,圖片邊緣的像素點比圖像中間的像素點被計算的次數(shù)更少,所以用額外的0 像素填充圖像邊緣,增多邊緣像素點被計算的次數(shù)。此方方法被稱為Padding。Padding 為1 的卷積操作如圖1 所示。普通的卷積操作滑動窗口的步長為1,當(dāng)需要更大步長的滑動卷積操作時,我們需要修改Strides,當(dāng)Strides 為2 時,代表卷積操作滑動窗口的步長為2。
池化層(Pooling Layer)往往夾在連續(xù)的卷積層之間,用以壓縮數(shù)據(jù)和參數(shù)的量,實現(xiàn)特征降維,減小模型過擬合,對于探地雷達(dá)圖像而言,池化層的主要作用就是壓縮圖像。CNN 模型中常采用的池化方式有最大池化和平均池化,具體操作過程如圖2 所示。
圖2 池化層
以最大池化(Max pooling)為例,它是將輸入的圖像劃分為若干個矩形區(qū)域,對每個子區(qū)域輸出最大值。這種機制能夠有效的原因在于,在發(fā)現(xiàn)一個特征之后,它的精確位置遠(yuǎn)不及它和其他特征的相對位置的關(guān)系重要。池化層會不斷地減小數(shù)據(jù)的空間大小,因此參數(shù)的數(shù)量和計算量也會下降,這在一定程度上也控制了過擬合。
神經(jīng)網(wǎng)絡(luò)中的每個神經(jīng)元節(jié)點接受上一層神經(jīng)元的輸出值作為本神經(jīng)元的輸入值,并將輸入值傳遞給下一層,輸入層神經(jīng)元節(jié)點會將輸入屬性值直接傳遞給下一層(隱層或輸出層)。在多層神經(jīng)網(wǎng)絡(luò)中,上層節(jié)點的輸出和下層節(jié)點的輸入之間具有一個函數(shù)關(guān)系,這個函數(shù)稱為激活函數(shù)(又稱激勵函數(shù))。常用的激活函數(shù)有sigmoid,tanh,ReLU 等,函數(shù)的形式具體如表 1、表 2 所示。
由于在進(jìn)行探地雷達(dá)圖像的訓(xùn)練時,容易發(fā)生過擬合現(xiàn)象,過擬合雖然可以對訓(xùn)練集病害精確分類,但是對驗證集和測試集的病害分類結(jié)果則不理想。通過在激活層和全連接層間加入drop-out 層則能有效降低模型過擬合的可能性,drop-out 層能通過隨機斷開部分神經(jīng)元間的連接減少每一層過擬合神經(jīng)元對后續(xù)計算的影響。
與卷積層局部連接不同的是,全連接層的每一個神經(jīng)元都與前一層的所有神經(jīng)元連接。全連接層可以綜合前一層提取出的圖像特征,并將前一層具有的類別局部信息重新整合并映射到樣本標(biāo)記空間。通過全連接層的構(gòu)建可以增強對于圖像分類問題的魯棒性,但是全連接層對于圖像的空間結(jié)構(gòu)不敏感,不適合用來做目標(biāo)定位和圖像分割。除此之外,全連接層參數(shù)量大,容易造成過擬合。
輸出層在全連接層之后,對于不同的需求,具有不同的輸出形式。對于分類問題,輸出層是一個分類器,輸出的是目標(biāo)類別;對于目標(biāo)定位和分割問題,神經(jīng)網(wǎng)絡(luò)的輸出還包括目標(biāo)的位置。
瀝青路面裂縫圖像分類是一個模式分類問題,其目標(biāo)是將不同種類的裂縫,劃分到不同的類別,并保持最小的分類誤差。圖像分類網(wǎng)絡(luò)模型較為簡單,通常只有卷積神經(jīng)網(wǎng)絡(luò)堆疊構(gòu)成,且圖像分類任務(wù)樣本的標(biāo)注成本較低,只需為每一張圖提供一個類別標(biāo)簽即可。
圖像語義分割算法是一種細(xì)致到像素級別上的分類,即屬于同一類的像素都要被歸為一類,因此語義分割是從像素級別來理解圖像的。相比于分類算法只能給出圖像的類別,語義分割算法不但能處理一圖多病害的情況,給出圖中各類別病害的分類結(jié)果,甚至還能提供各類別病害數(shù)量、裂縫長度、面積、病害處于圖中具體位置等計量信息。有助于為后續(xù)維養(yǎng)方案提供數(shù)據(jù)參考。但圖像分割網(wǎng)絡(luò)較為復(fù)雜,除卷積神經(jīng)網(wǎng)絡(luò)外還具有如跳層連接等特殊的網(wǎng)絡(luò)結(jié)構(gòu),調(diào)參的復(fù)雜度較大。且圖像分割的標(biāo)注精確到像素級難度非常之大,往往很難在短時間內(nèi)提供足夠的訓(xùn)練樣本。
表2 激活函數(shù)優(yōu)缺點
本文分別研究了分類模型和語義分割模型在瀝青路面裂縫病害識別上的應(yīng)用。分類模型在圖中有單一病害的情況下具有較好的識別效果,但無法分析圖中病害數(shù)量、裂縫長度等信息。而目前語義分割算法在部分干擾因素較少的圖中已經(jīng)可以識別出接近與實際標(biāo)注的分割圖,對橫、縱向裂縫的識別較好。
表1 常用激活函數(shù)及其數(shù)學(xué)形態(tài)