李永緒 謝政專 唐文娟



摘要:針對傳統裂縫識別方法準確性低、環境適應性差的問題,文章提出一種基于卷積神經網絡的瀝青路面裂縫識別方法,融合了CLAHE與深度學習算法。試驗結果表明,該方法能夠更準確地識別裂縫,識別精確率達到94.9%,且泛化能力良好。
關鍵詞:瀝青路面;CLAHE算法;卷積神經網絡;裂縫識別
0 引言
瀝青路面是現行鋪筑面積最多的一種高級路面,裂縫是其常見的路面病害之一。裂縫若不及時精準識別并修復,將會衍生出其他更為嚴重的次生病害,進而引發安全事故。如雨水滲入裂縫可能腐蝕路基,在車輛荷載的反復作用下,會導致裂縫加寬加深甚至路面塌陷,降低道路的使用壽命,危害行車安全。因此,研究如何進行快速、準確地檢測裂縫是路面養護工作中最為重要的任務之一。
目前路面裂縫識別仍以人工巡查為主,效率低、存在安全隱患且結果易受主觀影響。現行主流的路面裂縫識別算法有閾值分割[1]和邊緣檢測方法[2],這兩類算法均基于圖像處理技術,需要手工提取特征,同時對噪聲敏感,存在檢測速度慢、準確度不高并且性能不穩定的缺陷。
鑒于以上原因,本文結合瀝青路面自身復雜、噪點多、裂縫分布無規律等特點,提出了一種基于卷積神經網絡的瀝青路面裂縫識別方法,融合了CLAHE與深度學習算法。該方法在試驗過程中取得了優良的效果,是一種可行性較高的方法,可以提高管養效率。
1 關鍵技術
1.1 卷積神經網絡
卷積神經網絡(CNN)表達能力強,由卷積層、池化層及全連接層疊加組成,層與層之間采用權值共享及局部連接方式。卷積層和池化層在上一層輸出的結果上進行下一輪計算,通過多層卷積和池化,逐漸抽象出高階特征,在擬合復雜特征方面有突出優勢,是近幾年深度學習在機器視覺領域取得突破性進展的基石。
激活函數有Relu、Sigmoid等函數,經過卷積操作會輸出一定數量的新特征圖。
輸出的新特征圖進入到池化層進行池化操作,促使縮小特征圖,減小特征參數,簡化計算復雜度,同時由于池化操作對局部位置不敏感,因此進一步為網絡引入了不變性。
1.2 CLAHE圖像增強算法
瀝青路面裂縫具有灰度值低、細長、分布無規律的特點。此外,受限于天氣因素和采集圖像時間,圖片通常表現為亮度不均且噪點多。因此,本文采用CLAHE[3]圖像增強算法突出裂縫部分。實現步驟如下:
(7)移動至相鄰像素,重復上述過程,直至處理完整張圖片。
本文在不同參數下對原圖增強并進行分析,以確定最佳參數。經過比較發現,當m=8、剪切閾值clipL=2時增強效果最好。因此,本文取m=8,剪切閾值clipL=2。圖像增強前后對比如圖1所示。由圖1可知,圖片經CLAHE算法處理后,避免了相鄰灰度對比度相差過大,整個畫面更為清晰,對比度和亮度得以提升,裂縫細節也更加突出。
2 方法
2.1 基于CNN的瀝青路面識別流程框架
基于CNN對瀝青路面裂縫識別包含圖片采集、預處理、CNN網絡模型搭建及訓練等,其流程見圖2。實驗所用的圖片均在真實城市瀝青道路用手機拍攝得到,包含了陰天、陰影、雨天、霧天等多種場景,分辨率為1200×1600,共700張。考慮到采集的圖片數量較少,并且裂縫在圖像中占比小,很難提取到裂縫的有效特征[4],另因圖片裁剪過小,給標注帶來困難,故本文使用預處理圖像裁剪成像素為100×100的圖片,共15000張,并打上標簽。使用keras框架搭建CNN網絡模型,訓練過程采用隨機梯度下降。
2.2 基于卷積神經網絡瀝青路面裂縫識別模型
針對交通環境下瀝青路面裂縫的特殊性,從多方面對模型結構和超參數進行優化調整,最終完成了瀝青路面裂縫分類器的構建。如圖3所示,包含了4個卷積神經網絡(C1~C4),4個池化層(P1~P4),4個歸一化層(B1~B4),1個全連接層(F1),1個Dropout層。另外,在卷積層后均使用了Relu激活函數。
(1)輸入層。本文將瀝青路面圖片作為輸入,大小為100×100,通道為1。
(2)卷積層。特征圖在卷積操作后,形成包含更高級更多抽象信息的新特征圖。C1~C4的卷積核數量分別為(32,64,64,128),對應的卷積核尺寸依次為5×5,5×5,3×3,3×3。C1~C2層使用較大的卷積核,一方面有利于提取圖像中裂縫的結構信息,另一方面有利于忽略與裂縫結構無關的其他噪聲信息。
(3)池化層。新特征圖經過池化層能減小特征參數,減輕網絡模型過擬合現象。本文使用最大池化方式,池化大小為2×2,步長為1。
(4)歸一化層。對特征圖局部進行歸一化,能進一步矯正亮度不均,提取高階統計信息。因此,本文卷積層之后均添加了歸一化層。
(5)Dropout層。Dropout層的加入,使網絡在訓練過程中隨機丟棄隱藏層的節點,輸出結果不過度依賴任一節點,起到正則化的作用,這種方式能有效防止網絡過擬合。因此,在全連層F1之后添加了Dropout層。Dropout取值為0.55。
(6)輸出層。通過Sigmoid回歸算法將輸出特征值映射到0~1之間,對應相應類別的條件概率。在Sigmoid回歸函數中y=i的概率為:
3 試驗結果分析
本文的算法基于深度學習開源框架keras,使用python語言開發,依賴模塊主要有CV2、Skimage、Matlpotlib等,訓練和測試階段使用的主要硬件設備為NIVIDIA公司的TitanXPascalGPU服務器,顯存為8G。
3.1 評價指標
本文使用三個指標評估所提出的方法:準確率(P)、召回率(P)和F1值。其中準確率(P)描述準確檢測出的裂縫圖片占被檢測出來的像素的比例;召回率(R)描述正確被檢測出的裂縫圖片占總裂縫圖片的比例;而F1則能綜合判斷識別效果。三者的計算公式分別為:
3.2 試驗結果對比與分析
為驗證本文所提方法的有效性和可行性,設計了2組對比試驗。具體試驗分析如下:
試驗1:用于測試CLAHE算法對于本文所提模型準確率的影響。首先,將裁剪成100×100像素大小并標注好的5000張圖片組成數據集A,用于測試,其余10000圖片組成集合B,并按8∶2的比例構建訓練集、驗證集訓練本文模型。然后使用CLAHE算法處理集合B中的訓練集、驗證集,共同構成數據集C,用來訓練本文模型。最后隨機從集合A中選取1000張圖片測試訓練好的模型。測試的結果如表1所示。由此可以看出,利用CLAHE算法處理后的數據訓練模型顯著提升了裂縫識別效果,能保持較高的準確率和召回率,而原始圖片訓練的網絡識別準確率低。這主要是由于CLAHE算法提升了圖像的質量,突出了裂縫部分,有利于提取裂縫的參數信息,并減弱了影響識別的干擾因素。
試驗2:用于對比經典Alex[5]網絡模型和本文模型對瀝青路面裂縫最終檢測結果的影響。首先,使用實驗1中集合C的數據集訓練Alex網絡模型,接著使用滑窗方式將新采集的圖片分成像素為100×100小圖片,最后依次輸入到訓練好的Alex網絡和本文模型,識別為裂縫則用黑框框出來。檢測結果如圖4所示。由實驗結果可知,基于本文模型的瀝青路面裂縫檢測結果非常逼近裂縫真實的區域,魯棒性好,對干擾噪聲的排除能力更強;而直接使用Alex模型將干擾信息誤認為裂縫,準確率較低。一方面是因為經典Alex網絡模型專門針對像素為227×227圖像的識別模型,其識別性能的優越性建立在大量訓練樣本的基礎上,卷積層的卷積核個數非常多(依次為96,256,384,384,256),全連接層數量均為4096,而本文訓練圖片數量相對較少,Alex網絡過度擬合了裂縫特征,把干擾誤認為裂縫;另一方面本文建立的模型,針對輸入圖像尺寸,只使用4個卷積層,并優化了各卷積核的數量及大小,以減小整個網絡的寬度,卷積層后均使用池化層減小參數量,除此之外,還使用了更多歸一化層減輕網絡過擬合現象。因此,相比而言,本文模型具有更好的泛化能力,更適合瀝青路面裂縫識別。
4 結語
本文提出了一種基于卷積神經網絡的瀝青路面裂縫識別方法,融合了CLAHE與深度學習算法,其中CLAHE算法增強了裂縫細節信息,為后續提取特征提供了基礎。基于CNN構建的模型,結合瀝青路面裂縫自身特點,提取到了全面且具有辨別性的特征,具有良好的泛化能力。本文方法在多種場景能有效識別裂縫,對實現智慧化路面養護具有重要意義。
參考文獻:
[1]褚文濤,李鄭明,陸 鍵.路面病害檢測中的裂縫信息快速識別方法研究[J].中外公路,2013,33(6):80-84.
[HJ]
[2]ZhangA,LiQ,WangKCP,etal.Matchedfilteringalgorithmforpavementcrackingdetection[J].Transportationresearchrecord,2013,2367(1):30-42.
[3]ZuiderveldK.Contrastlimitedadaptivehistogramequalization[C].GraphicsgemsIV.AcademicPressProfessional,Inc.,1994.
[4]英 紅,丁海明,侯新月,等.基于BP神經網絡的瀝青路面裂縫識別方法研究[J].河南理工大學學報(自然科學版),2018,37(4):105-111.
[5]KrizhevskyA,SutskeverI,HintonGE.Imagenetclassificationwithdeepconvolutionalneuralnetworks[C].Advancesinneuralinformationprocessingsystems,2012.