肖彭昊 楊修偉 范媛媛
(1.長江大學地球物理與石油資源學院,湖北 武漢 430100;2.鄭州大學地球科學與技術學院,河南 鄭州 450001)
路面裂縫作為道路中常見病害之一,是道路養護工作的重點和難點。目前,基于圖像處理的方法是路面病害的常用檢測方法[1]。
國外現有研究中,任亮[2]采用脊線檢測方式對所有可疑裂縫目標進行一一標注,最大程度地保留明顯的裂縫特征,通過Prim 算法來構造最小生成樹將所有不連續裂縫相連,刪除所有強制偽連接,通過填充操作增強裂縫并獲得完整的裂縫結構。Li[3]提出基于邊界框的自動化圖像分割方法,該方法嵌入了多種子融合算法,結合車輪路徑和車道標記的位置生成邊界框,對裂縫的災害嚴重性進行評估,取得了不錯的分類效果。Saar 等[4]提出一種使用二級分段神經網絡檢測裂縫圖像的道路路面測量系統,該方法的預測效果要優于貝葉斯以及最近鄰分類器。Miguel[5]提出了基于線性SVM 的路面破損分類方法,該方法能將錯誤分類特征的影響降低,但是,除了使用分類器算法外,該方法的效果還取決于樣本數量,正樣本和負樣本的比例以及樣本的泛用性。Zhang 等[6]訓練了一個基于監督學習的深度卷積神經網絡,對收集的每個路面圖像塊進行分類,通過對智能手機收集的圖像數據集進行評估,與手工提取特征對比,該方法裂縫檢測性能更好,證明了將深度學習與路面裂縫識別相結合的可行性。Zhang等[7]提出了一種基于遞歸神經網絡(Recurrent Neural Networks,RNN)的三維瀝青路面全自動像素級裂縫檢測方法,實現了序列生成和序列建模兩個階段的序列處理方式,通過對500 幅路面圖像進行測試,取得了不錯的效果。
在國內研究中,李剛等[8]提出基于徑向基函數神經網絡識別裂縫,該方法能很好地提取邊緣特征,具有較強的抗噪能力。沙愛民等[9]建立卷積神經網絡模型對設備采集后尺寸分割的路面圖像進行訓練,最終實現路面裂縫、坑槽病害識別。張采芳等[10]提出了基于特征分析的裂縫分類方法,在不構建分類器的前提下,利用方向特征調整閾值以確定類別,然后根據分布密度的特性,識別塊狀裂縫與龜裂裂縫。陳瑤等[11]利用爬壁機器人采集橋梁路面裂縫,使用小波變換以及二值圖像路面形態學分析增強圖像中的裂縫特征并提取裂縫特征,最后運用SVM 進行分類識別。李偉等[12]對預處理后二值化的路面裂縫圖像以聚類方式進行識別,運用杠桿原理確定聚類后裂縫中心點位置,通過計算路面裂縫弧度辨別路面裂縫的類型,并對網狀裂縫的毀壞程度進行了參數分析。錢彬等[13]將多屬性特征構建在不同的結構,并嵌套到矩陣分解算法中,可以實現函數的自適應融合和原始灰度屬性維度的減少,從而成為一個整體的目標函數。琚曉輝等[14]提出SVM-Adaboost 分類器對SVM 參數進行動態優化,自適應地調整訓練樣本分布,隨著訓練迭代次數的改變,最終由弱分類器多次迭代,生成分類誤差最小的強分類器,有效提高分類器的性能。
本文提出的基于VGGNet-plus 網絡模型的路面裂痕自動分類識別方法,是在傳統的VGGNet[15]的基礎上,增加了Dropout 層和殘差層,并在每個卷積層后連接批量正則化層和LeakyReLu 層。該網絡保留了VGGNet 簡潔的網絡結構,并且通過不斷加深網絡,使用小濾波器卷積層組合來提升性能,解決了訓練量過多的問題,簡化計算量的同時也加速了模型的收斂。本文針對訓練樣本有限的問題,提出了通過灰度處理,上下翻轉,左右翻轉,灰度二值處理,均值濾波,灰度gamma 處理,高斯濾波,中值濾波等方法來進行數據增容,不僅增加了數據的數量,同時對采集光照條件、角度、噪聲等造成的影響具有更強的適應性和魯棒性。
本文所使用的路面裂縫圖像數據集來源于道路檢測車拍攝的路面視頻和智能手機拍攝的路面圖像。根據裂縫特征,將數據集分為縱向裂紋、橫向裂紋、塊狀裂紋、龜裂裂紋、無裂紋5 類典型裂縫(圖1)。該方法的關鍵步驟包括:數據增容,VGGNet-plus 網絡搭建與訓練,模型集成,裂痕自動識別。

圖1 典型路面裂縫特征
由于訓練數據過少,我們首先通過灰度處理,上下翻轉,左右翻轉,灰度二值處理,均值濾波,灰度gamma 處理,高斯濾波,中值濾波等方法來進行數據增容,完成數據集的構造(圖2)。通過數據增容,不僅增加了數據的數量,同時對采集光照條件、角度、噪聲等造成的影響具有更強的適應性和魯棒性。將增容后的樣本數據通過VGGNet-plus 卷積神經網絡進行裂縫辨別訓練,獲取訓練后的神經元參數集合。

圖2 數據增容方式
VGGNet-plus 網絡結構如表1 所示。其中包括了5 個卷積層、5 個殘差層、1 個平坦層以及3 個全連接層。殘差層和卷積層內部結構如圖3 所示。

圖3 殘差層和卷積層內部結構

表1 VGGNet-plus 網絡結構
每個卷積層中利用核大小分別為2×2 尺度的特征圖進行最大池化,使用3×3 卷積核進行特征提取(體現在圖上),各卷積層后都接有批量標準化層和LeakyReLu 層,簡化計算量,同時加速模型收斂。殘差層通過充分提取裂縫圖像的屬性來減少模型參數的數量,并解決了網絡層數過深引起的計算量大的問題,將傳統神經網絡的逐層訓練方式調整為逐階段訓練方式。然后通過3 個全連接層存儲所有特征參數,加入dropout 層,每次訓練丟棄一半的參數,從而防止模型過擬合。
模型訓練利用Adam 優化算法取代傳統的SGD算法,反向傳播后迭代更新網絡權重,通過梯度調整每個參數的學習率。通過模型集成中的Bagging 方法,在原數據集的基礎上有放回選取,形成多個子訓練集,然后把每個基模型預測的結果進行綜合評估產生最佳的預測結果。
混淆矩陣是衡量分類模型準確度中最直觀,計算最簡單的方法。它也是評估模型結果的度量標準,通常用于評估分類器的性能。除了混淆矩陣之外,本文還使用準確度和召回率指標來衡量網絡模型的性能,并計算F1-score 以充分評估模型的影響(表2)。

表2 準確率、召回率和F1-score 的計算公式
其中,準確率是正確識別和分類的目標與總體目標的比率,反映了模型區分圖像背景的能力。準確率越高,意味著模型就可以更好地區分復雜背景。召回率是最終被正確歸為其目標類別的圖像數量占該目標類別圖像總數的比例,反映了模型在圖像中檢索目標的能力。召回率越高,意味著模型的識別能力就越高。F1-score 是兩者的綜合表現,其分值越高,模型越可靠。
本文以道路檢測車拍攝的路面視頻和智能手機拍攝的路面圖像為實驗樣本進行算法驗證。其中,每類裂縫有800 個樣本數據,我們通過數據增容,將數據集擴展為原來的12 倍,獲得9 600 個樣本。選取8 400 個作為我們的訓練集,1 200 個作為測試集。訓練過程中,隨機選擇訓練集的90%作為訓練數據,剩下的10%作為驗證數據。
利用訓練好的VGGNet-plus 網絡對測試集進行測試比較,并繪制混淆矩陣、計算準確率、召回率和F1值(圖4,表3)??梢钥闯?,混淆矩陣對角線顏色較深,總體準確率、召回率和F1值分別為0.924、0.905 和0.883,縱向裂紋、橫向裂紋、龜裂裂紋和無裂紋的準確率和召回率均達到了90%以上,表明模型測試效果較好。

圖4 VGGNet-plus 模型混淆矩陣

表3 VGGNet-plus 模型評價
為了突出本文方法的優勢,選擇了3 種經典圖像分類方法在同等條件下進行對比,即AIexNet 算法、InceptionNet 算法以及VGGNet 算法。表4 為各種方法對裂縫圖像進行分類的準確率、召回率、F1值以及耗時的對比。為了保證客觀性,實驗結果均為執行20 次實驗得到的平均值。

表4 路面裂縫分類算法測試結果比較
從表4 中的各項評價指標可以看出,AlexNet 網絡層數相對較淺,應對復雜環境下各種干擾因素的能力也相對較差,因此,識別結果和計算效率均是四類方法中最差的。InceptionNet 相比于AlexNet 既減少了參數量,又在一定程度上擴展其深度和廣度,提高了非線性表達能力,識別結果和計算效率得到了一定的提升。VGGNet 使用多個相同的卷積核,使決策函數更有判別性,識別精度和訓練耗時均優于AlexNet方法,但不及InceptionNet 方法。本文提出的VGGNet-plus 模型保留了VGGNet 模型的主要結構,并通過增加Batch_normalize(BN)層和LeakyReLu 層緩解梯度消失,梯度爆炸等問題,增加Dropout 層和殘差層解決了因網絡過深,參數過大引起的過擬合問題,從而加快訓練速度,加速模型收斂。表4 結果也表明:本文提出的方法具有最高的精度以及最小耗時,優于AIexNet,InceptionNet 和VGGNet 模型。
本文提出了一種基于VGGNet-plus 卷積神經網絡識別路面5 種典型裂縫的方法,該方法在VGGNet算法的基礎上,增加了Dropout 層和殘差層,此外,各卷積層后都接有批量標準化層和LeakyReLu 層,解決訓練參數過多,從而加快訓練速度,降低計算量,同時加速模型收斂。本文通過對比AIexNet、InceptionNet、VGGNet 以及本文方法(VGGNet-plus),分析了各模型的優缺點,評價了各模型的圖像識別能力、運行性能,證明本文方法的性能最佳。
本文提出的裂縫分類算法具有分類效果較優、訓練速度較快、同時在小樣本訓練性能較佳等優勢。但仍存在一些可改進的地方:
(1)增加更多的噪音數據,提高模型的泛化能力,增強其魯棒性。
(2)使用TTA(Test Time Augmentation)集成學習,對同一個樣本預測三次,然后對三次結果進行平均。