王 華
(江西九江長江公路大橋有限公司,江西 九江 332000)
公路系統不斷發展,交通流量顯著增加,同時重載、超載交通等不利因素以及環境影響導致公路路面出現多種病害,其養護和管理狀態直接影響到區域交通的互聯互通。針對不同病害需要采取的措施并不統一,因此能夠正確地對路面病害進行檢測是路面養護的前提,而對道路病害進行高效檢測是道路養護質量水平的關鍵。
在深度學習框架下,基于端到端的目標病害檢測算法能夠更好地實現對目標特征的提取,具備檢測精度高、速度快等特點。Redmon[1]等人提出了YOLO目標檢測算法,將生成候選框、通過神經網絡對邊框進行分類和回歸兩個步驟合并到一個神經網絡中,神經網絡計算的復雜程度大大降低。Du[2]等人提出了一種基于YOLO網絡的局部病害檢測及分類技術,對7種病害進行識別和分類,準確率達到了73.64%。陳旭丹[3]等人采用了YOLO目標檢測算法快速識別路面常見病害,并保證了一定準確率。黎洲[4]等人應用YOLOv2算法實現車載視頻中的車輛檢測,取得97.42%的準確率,解決了使用以往算法實時性不足的問題。將神經網絡模型應用于工業領域可適當較少檢測精度以提高網絡模型檢測速度,Adarsh[5]等人提出的YOLOv3-Tiny目標檢測模型是基于YOLOv3網絡通過剪枝操作減小結構體量,大大地提高了檢測速度;Huang[6]等人提出的YOLO-Lite模型則注重適用性,實現了在無GPU的計算機上進行目標檢測;Wong[7]等人提出的YOLO Nano模型在結構體量上相比YOLOv3-Tiny減小了近8.3倍,從而獲得了更快的檢測速度;隨后Wang[8]等人提出了Scaled-YOLOv4模型在保持檢測速度優勢的同時提升了一定的檢測精度。
在深度學習框架下探究YOLOv5網絡結構建立病害圖像的識別、提取與分類算法體系,并將YOLOv5與YOLOv3、R-CNN系列的快速區域神經網絡與掩膜區域神經網絡在同一個路面病害數據集下的訓練時間、訓練結果、相關參數進行分析,評估準確率、召回率訓練指標,選擇最優的網絡架構更加直觀地反映病害特征。
YOLOv5的輸入端對圖像進行Mosaic數據增強,更好適用于小目標檢測。YOLOv5改進自適應圖片縮放功能,使其能夠在調整圖片大小時添加最少的灰邊,并提高網絡檢測速度。主干網絡的主要作用是在不同圖像細粒度上聚合,形成對應圖像特征的卷積神經網絡。YOLOv5增加Focus結構,其原理是將圖像進行切片操作,輸入圖像的原始大小為608×608×3、經過Focus層后轉化成304×304×12、再經過一個卷積核大小為32×32的卷積層后轉化成304×304×32的特征矩陣。此外YOLOv5將CSP(Cross Stage Paritial Network)模塊插入主干網絡及瓶頸層中,在不影響檢測效率的同時增強網絡的特征提取和學習能力。YOLOv5算法的結構示意圖如圖1所示。YOLOv5選擇SiLU函數作為激活函數,其具體計算方法如公式(1)所示。

圖1 YOLOv5結構示意圖(以YOLOv5s 例)
SiLU(x)=x/Sigmoid(x)
(1)
YOLOv5的損失函數由中心坐標損失、寬高坐標損失、置信度損失與分類損失組成。
本文選取裂縫作為路面病害的典型代表,訓練網絡所用的路面病害數據來源于以下公開數據集:Crack Forest[9]、Cracktree200、AEL、GAPs384、CFD、Crack 500[10]。初始的樣本圖像共1 509張,其中Crack Forest數據集包含118張樣本、Cracktree200數據集包含206張樣本、AEL數據集包含58張樣本、GAPs384數據集包含509張樣本、CFD數據集包含118張樣本、Crack500數據集包含500張樣本。為了模擬網絡進行多目標檢測的效果,將裂縫病害細分為橫向裂縫、縱向裂縫、網狀裂縫作為3種病害。
路面病害數據集中的80%作為訓練集、10%作為驗證集、10%作為測試集。訓練集輸入的圖像數據分辨率為1 920×1 080,batchsize設置為2,學習率為0.001,Epoch迭代次數大小設定值為25 000,使用學習率指數衰減讓學習率隨著學習進度降低以達到更好的訓練目的。識別模型的構建使用pytorch 1.3.1版本在ubuntu18.04上部署建模環境,并使用i9-9900k和RTX2080ti來進行模型的訓練和測試。
4種網絡訓練的Loss值變化趨勢如圖2所示,迭代次數達到5 000次左右時4種網絡的Loss值都有較大幅度下降,但YOLO系列網絡早于另2個網絡先趨于平穩,且趨于平穩時的Loss值較另2類網絡較高,約為0.06,在后續的迭代過程中波動幅度較大;相反R-CNN系列網絡的Loss值雖然下降趨勢較緩,但是其趨于穩定時的表現更加優秀,約為0.03。YOLO系列的輕量化結構使其在梯度下降方面具有優勢,可以在較少迭代次數的情況下獲得較為理想的損失率;而R-CNN中興趣候選框的機制以及多候選框重復率高的特點注定其在前期訓練的過程中與驗證集的偏差較大,需要更多的迭代次數獲取目標的相關特征并成功收斂回歸。在迭代次數為12 500次左右時,4種算法的Loss值變化基本穩定不變,平均數值分別為0.05與0.03。雖然存在微小差距,但是由于損失值均小于等于0.05,可以認為4種網絡的訓練參數設置情況比較合理,目標特征的學習工作較為成功。

圖2 不同網絡訓練的Loss值變化趨勢
通過在相同情況下對路面病害集中1 207張訓練圖像進行訓練,并使用150張病害圖像對4種網絡進行網絡效果測試,比較不同網絡對橫向裂縫、縱向裂縫、網狀裂縫3種常見路面病害的檢測直觀效果、AP值、mAP值、幀率情況。另外也加入了基于傳統機器學習的目標檢測算法的典型代表SVM支持向量機算法進行縱向比較。具體的評價指標數值如表1所示。

表1 不同網絡檢測的評價指標數據表

圖3 不同網絡的性能指標比較
通過分析可以發現相較于SVM這樣的基于傳統機器學方法,基于深度學習的目標檢測算法具有巨大的優勢:R-CNN系列與YOLO系列網絡分別相較于它mAP平均提高了22.69%和18.20%,這對于目標檢測領域來說是非常巨大的差距,且在多類、數據量較小的檢測條件下基于深度學習的目標檢測算法具有顯著的性能優勢。
通過分析,網狀裂縫的檢測相比另兩種裂縫效果較差,經過計算AP平均相差5.31%,主要有兩個原因:一是在路面病害數據集中網狀裂縫占比較少,僅有21.47%,雖然有大量的訓練迭代次數作鋪墊,但也可能導致網絡的特征提取能力不足;二是網狀裂縫病害特征復雜,很難完全準確檢測,一旦出現檢測假正例或假反例的情況都會影響最終的AP值。橫向對比R-CNN系列算法和YOLO系列算法的檢測表現,不難看出兩種算法具備各自的優勢:R-CNN系列算法側重于高mAP值和優秀的檢測表現,mAP相比YOLO系列算法平均提高了3.80%;而YOLO系列算法憑借其輕量化的優勢,減少了一定比例的檢測精度,而在幀率表現上遠超前者,平均提高了193.57%。
本文詳盡分析了YOLO、R-CNN等網絡的具體結構、優化措施、損失函數等,使用4種算法對典型路面病害數據集進行了訓練、驗證、測試工作。研究成果表明,與基于傳統機器學習的目標檢測方法作對比,深度學習在多類、低數據量檢測情景下體現了顯著精度與效率優勢。實際應用中,R-CNN算法具備較好的檢測表現,mAP相比YOLO系列算法平均提高了3.80%;YOLO算法在檢測效率上顯著高于R-CNN算法,平均提高了193.57%。