王海群,王炳楠,葛 超
華北理工大學電氣工程學院,河北 唐山 063000
近些年來,隨著人民經濟水平的提高,私家車保有量正在逐年上漲,在如此繁重的交通壓力下,路面病害的出現變得越來越普遍。路面病害會影響人們的日常出行,甚至會引發嚴重的交通事故,帶來巨大的生命財產損失。因此,實現高效且精準的路面病害檢測變得越來越重要,對于延長道路使用年限、保障人民財產安全具有重要意義。
傳統的路面病害檢測方法主要分為兩種方式:第一種是通過人工巡檢來實現路面病害檢測,巡檢人員沿道路兩側觀察、測量并記錄病害位置及大小,這種方式的時間成本和人力成本較大,而且會影響道路的正常通行;第二種是通過巡檢車搭載檢測裝置實現路面病害檢測,目前主要的檢測裝置有超聲波、探地雷達與激光掃描儀等設備。如熊學堂等人[1]將三維探地雷達與深度學習技術相結合,實現了實時、高精度識別病害特征。如陳衛[2]將超聲波技術應用于公路橋梁病害檢測,實現了伸縮縫、橋面以及橋臺等病害高效、高精度檢測。雖然檢測裝置能夠實現路面病害的自動檢測,但是檢測裝置所涉及的部件較多,耗費的人力和資金成本較大,且對于檢測路段有一定限制,不利于大范圍推廣使用,尤其不利于在村莊以及小鄉鎮使用。
隨著深度學習在目標檢測領域的發展與應用,出現了一系列基于深度學習的目標檢測方法,在路面病害檢測方面也引入了深度學習技術,實現高效且精準的路面病害檢測。如Jing等人[3]改進了U-Net的解碼器和編碼器,使模型能夠提取出更加完整的裂縫。Kyslytsyna 等人[4]提出了一種帶注意力機制的生成對抗網絡方法,在無監督LⅠamas 數據集上取得了非常好的檢測效果。Deng等人[5]提出了一種路面裂縫自動檢測、分割的集成框架,首先YOLOv5 算法對圖像的裂縫區域進行檢測,然后運用Res-UNet算法對裂縫區域進行像素級別的精確分割。Chun 等人[6]在全卷積神經網絡基礎上通過半監督學習對路面損傷進行檢測,最終證明該方法能夠很好的分割路面裂縫。安學剛等人[7]改進了YOLOv4 網絡,實現了無人機影像路面裂縫檢測。杜鵑等人[8]改進了YOLOv7網絡,增加了小目標檢測層,引入K-means++重聚類先驗框,并引入新的協調坐標卷積和損失函數,提出了P-ELAN結構的輕量化骨干網絡,實現了復雜場景下的道路目標檢測。李松等人[9]基于YOLOv8網絡,提出了一種能夠提取道路損傷圖像全局特征信息和局部特征信息的BOT模塊,引入CA注意力機制和C2fGhost模塊,實現了高準確率檢測。目前,目標檢測算法主要是針對物體檢測,更加適用于特征明顯的檢測目標,對于路面病害特征提取能力不足,沒有充分考慮路面病害的具體特征,對于四種路面病害類型檢測效果較差。
目前,路面病害檢測主要存在以下問題:路面病害特征和背景環境特征具有相似性,檢測算法容易出現誤檢現象;路面病害具有空間連續性和線性特征,檢測模型容易將網狀裂縫檢測為多種其他類型病害;路面病害大小差異較大,檢測算法容易出現漏檢現象。因此,提高模型對路面病害的特征提取能力,提高對于四種路面病害的檢測效果,降低誤檢、漏檢現象變得尤為重要。
在實際研究中發現,路面病害的產生是一個緩慢的過程,對于路面病害檢測的實時性要求不高。一般的路面病害檢測是通過巡檢車或無人機采集路面病害圖片,再通過檢測網絡實現離線的路面病害檢測。因此,考慮到實際的檢測要求及應用,本文主要提升網絡的檢測精度,實現路面病害的高精度離線檢測。
YOLOv8 目標檢測算法是目前YOLO 系列的最新算法,其借鑒了YOLO 系列算法的一些優秀思想,取得了不錯的檢測效果。本文采用YOLOv8n 作為基本網絡,針對路面病害檢測準確率不高的問題進行改進。首先,構建CNX2f特征提取模塊并引入主干網絡,采用更大的卷積核提取路面病害特征,解決路面病害特征和背景環境特征易混淆問題;其次,引入重參數化結構RepConv和DBB模塊,訓練階段融合多尺度特征,解決路面病害大小差異較大問題,推理階段重參數化降低模型參數量提高檢測速度;同時,結合RepConv和DBB結構構建RBB 重參數化模塊引入檢測頭,并改進檢測頭結構為共享參數結構,解決YOLOv8網絡檢測頭參數冗余問題,將多分支結構重參數化為5×5卷積取代兩個3×3卷積,增大感受野提高特征提取能力;最后,引入SPPF_Avg模塊,解決最大池化引起的信息丟失問題,提高頸部網絡多尺度特征提取能力,提高模型的檢測效果。
YOLOv8 網絡是在YOLO 系列網絡基礎上改進而來,YOLOv8 延用了YOLOv5 縮放系數方法,將模型分為n、s、m、l、x 五種大小,五種模型網絡深度依次加深,檢測精度提高,檢測速度降低。其中YOLOv8n 是最小模型,其檢測精度相對較低,但檢測速度最快,訓練難度最小,本文在YOLOv8n的基礎上改進檢測網絡。
YOLOv8網絡結構如圖1所示,分為輸入層、主干網絡、頸部網絡和檢測頭四部分。

圖1 YOLOv8網絡結構Fig.1 Network structure of YOLOv8
為了提高路面病害檢測的檢測精度,本文作出如下改進:首先,在模型主干網絡引入CNX2f模塊,由于7×7深度可分離卷積的引入擴大了特征提取的感受野,提高了特征間的關聯性,更好地區分路面病害特征和背景環境特征;其次,在主干網絡引入重參數化模塊RepConv,并在頸部網絡和Head處引入DBB模塊,兩個模塊在訓練階段均使用多分支結構提高模型的訓練效果,在推理階段通過重參數化轉換為單分支結構提高推理速度,解決網絡對路面病害特征提取、融合能力不足導致的誤檢問題;同時,對網絡的Head 采用共享參數結構,并引入新的重參數化模塊RBB,解決頭部參數量冗余問題并提高頭部網絡特征提取能力。最后,改進YOLOv8網絡中SPPF 模塊,構建雙分支結構SPPF_Avg 模塊,防止路面病害特征丟失,解決路面病害多尺度特征提取不足問題。改進后的YOLOv8n網絡結構如圖2所示。

圖2 改進后的YOLOv8n網絡結構Fig.2 Ⅰmproved YOLOv8n network architecture
近些年來Tranformer[10]給CV領域帶來了巨大提升,引起了廣泛關注,而ConvNeXt[11]網絡借鑒了Tranformer的結構特點,構建了純卷積神經網絡,取得了非常好的檢測效果,并且其網絡結構簡單、訓練難度小。ConvNeXt網絡采用CNX(convnext block)作為基本模塊實現特征提取,其借鑒了自注意力機制結構,將檢測網絡中常用的3×3卷積替換為感受野更大更輕量的7×7深度可分離卷積,采用線性歸一化取代批歸一化并減少使用量,并將激活函數改進為SiLu激活函數。
考慮到路面病害特征和部分背景環境特征具有相似性的特點,采用更大的卷積核提取特征可以覆蓋更大的感受野,從而捕捉到更多的上下文信息,使特征具有更好的區分度和可解釋性,有效解決目標特征和背景特征易混淆問題。本文構建了CNX2f模塊并引入YOLOv8網絡取代C2f 特征提取模塊,經過實驗驗證發現將CNX2f模塊僅引入主干網絡對模型提升最大,實驗結果如表1所示,具體位置如圖2所示。

表1 CNX2f檢測結果Table 1 CNX2f test result
CNX2f 模塊采用了spilt 結構,使用兩個CNX 模塊取代C2f 中的兩個普通卷積C。CNX 模塊通過1×1 的普通卷積降低通道數,減小了模型的參數量和計算量,并且7×7深度可分離卷積擴大了模型的感受野,提高了模型的檢測效果,CNX2f模塊如圖3所示。
為了獲得最佳的檢測效果,將CNX2f 模塊分別引入主干網絡、頸部網絡以及整個網絡來獲得最佳改進方案,檢測結果如表1所示。
由表1可知,當CNX2f模塊僅引入主干網絡時對模型的檢測效果提升最大,雖然參數量較原網絡增大了0.22×106、計算量增加了0.2,但是mAP值提升了1.3個百分點。因此,在路面病害檢測方面,將CNX2f引入YOLOv8主干網絡給模型的檢測效果帶來了很大提升。
多分支結構(inception net[12]等)可以更好地提取多尺度特征,其檢測效果要優于單分支結構,但是由于其使用了多分支并行結構,導致計算量和參數量較大。重參數化模塊對多分支結構和單分支結構進行了融合,在模型訓練階段采用多分支并行結構,更好地實現特征提取,得到更好的權重參數,而在推理階段將多分支結構轉換為單分支結構來更高效的完成檢測任務。
在路面病害檢測任務中,縱向裂縫、橫向裂縫與網狀裂縫特征具有相似性,容易出現誤檢現象,采用重參數多分支結構實現多尺度特征提取,可以有效解決裂縫類型誤檢問題,同時重參數化后又不會影響模型檢測效率。本文在模型的主干網絡引入RepConv[13]模塊取代原網絡中的普通卷積模塊,提高主干網絡的多尺度特征提取能力,更好的融合多尺度特征獲取模型參數。將DBB[14]模塊引入頸部網絡末端,提高特征圖的多尺度特征表達能力,有效緩解頸部網絡上采樣帶來的多尺度信息丟失問題。RepConv和DBB引入位置如圖2所示。
RepConv(Re-param Conv)模塊是RepVGG 網絡的基本模塊,采用了卷積重參數化方法,在Train階段采用BatchNorm、1×1 卷積和3×3 卷積的并行結構豐富多尺度信息,在Val 階段通過卷積重參數化方法將多分支融合成單分支結構,重參數化模塊通過一個3×3卷積實現高效高精度檢測。RepConv結構如圖4所示。

圖4 RepConv模塊Fig.4 RepConv module
在YOLOv8 算法中,推理階段會自動將卷積層和BN 層融合,來達到加速推理的目的。卷積層公式如式(1)所示,BN層如式(2)所示,融合過程如式(3)所示:
其中,x為輸入值,W為卷積模塊權重,b為偏置,avg為輸入均值,σ為輸入方差,γ為BN 權重,β為權重,fuse為融合后的權重和偏差值。在模型轉換過程中需要將各分支權重大小均轉換為3×3大小,其中1×1卷積通過pad操作實現大小轉換,最后將各個分支的權值和偏執分別求和作為單支路卷積的權重和偏執。
將RepConv 引入模型主干網絡實現更好的特征提取,訓練階段和推理階段模型的參數量和計算量如表2所示。

表2 RepConv參數量對比Table 2 RepConv parameter number comparison
如表2所示,盡管RepConv的引入增加了訓練階段的參數量和計算量,但在推理階段的參數量和計算量要小于YOLOv8n 網絡,并且平均檢測精度提高了1 個百分點。綜上所述,引入RepConv在不增加模型推理階段參數量和計算量的同時提高了檢測精度。
DBB(diverse branch block)重參數化模塊采用分離分支結構,如圖5所示。Train階段通過分離分支結構提取多尺度特征,獲得不同尺寸和復雜度的特征信息,提高特征表達。Val階段結合不同尺寸和復雜度的分離分支來增加特征空間,提升單個卷積的表達能力,實現快速的模型推理。

圖5 DBB模塊Fig.5 DBB module
如圖5所示,與RepConv不同DBB需要將1×1卷積和k×k卷積在同一分支上進行融合,將1×1卷積和平均池化在同一分支進行融合可以看作為1×1 卷積與k×k卷積的融合,其中k×k卷積的每個權重均為1/(k×k)。融合過程如式(4)所示:
其中,k和b代表融合后的權重和偏置,k1和b1代表1×1卷積的權重和偏置,kk和bk代表k×k卷積的權重和偏置。先將同一分支的模塊按式(4)融合,再將不同分支模塊的權重參數求和實現模塊由多分支到單分支的轉換。
為了提高頸部網絡的多尺度特征表達能力,同時在推理階段獲得更快的推理速度,將DBB 模塊引入YOLOv8的頸部網絡,訓練階段和推理階段模型的參數量和計算量如表3所示。

表3 DBB參數量對比Table 3 DBB parameter number comparison
如表3所示,盡管在頸部網絡引入DBB模塊導致訓練階段參數量增加了1.81×106,但在推理階段參數量僅增加了0.77×106,并且檢測精度提高了1.3個百分點,模型的檢測效果得到了較大提升。
YOLOv8的檢測頭采用解耦頭結構,共分為兩個分支,一個分支用來計算分類損失,一個分支用來計算錨框損失,這兩個分支分別由兩個卷積塊組成,這就帶來了巨大的參數量和計算量。為了解決檢測頭參數量、計算量冗余問題,本文將檢測頭的兩個檢測分支改為共享參數結構,并引入了新的重參數化模塊(RBB),提高頭部網絡的多尺度特征融合能力及特征提取能力。
RBB 重參數化模塊借鑒了RepConv 和DBB 結構,融合了RepConv 和DBB 多分支結構和重參數化方案,采用了5分支結構并使用更大的卷積核實現特征提取,RBB結構如圖6所示。為了提高網絡的特征提取能力,在Train階段分別用1×1卷積、3×3卷積、5×5卷積和最大池化提取多尺度特征,提高特征圖的特征表達能力,在Val階段轉化為5×5卷積的單分支結構提高模型的推理速度。模型重參數化過程依然采用DBB和RepConv的重參數化方案,先融合串聯結構,再融合多分支并聯結構。

圖6 RBB模塊Fig.6 RBB module
將檢測頭結構改進為共享參數結構,再將RBB 模塊引入檢測頭來實現多尺度特征提取,如圖7所示。將原來的雙分支結構共享參數化,組成更小更輕量的頭部結構,首先經過1×1 卷積降低通道數減小計算量,再經過重參數化模塊RBB 提取多尺度特征,最后經過卷積變成相應的通道數計算損失。

圖7 改進的檢測頭部Fig.7 Ⅰmproved detection head
改進前后模型的參數量和計算量大小,如表4所示。

表4 RBB參數量對比Table 4 RBB parameter number comparison
如表4所示,采用共享參數結構后模型的參數量明顯降低,并且RBB模塊的引入提高了模型的檢測精度,模型的參數量降低了0.41×106,平均檢測精度提高了0.5個百分點。綜上所述,本文的頭部改進方案降低了模型的參數量并提高了檢測效果。
YOLOv8頸部網絡采用SPPF結構來豐富特征圖包含的特征性信息,SPPF 通過三個最大池化層提取不同尺度特征,再通過拼接操作實現特征融合。雖然SPPF能夠很好地實現局部特征和全局特征的融合,但是由于其僅使用了最大池化操作提取特征可能會導致部分局部信息丟失。為解決部分特征信息丟失問題,緩解由于路面病害大小差異較大導致的漏檢現象,實現更好的多尺度特征提取,提高特征圖的豐富度,現將SPPF引入新的平均池化支路構建SPPF_Avg模塊,如圖8所示。

圖8 SPPF_Avg模塊Fig.8 SPPF_Avg module
如圖8所示,SPPF_Avg模塊可以分為兩部分,一部分為SPPF分支,另一部分為AvgPool分支。通過1×1卷積降低通道數減小計算量,SPPF 分支通過最大池化來提取全局特征和局部特征并實現特征融合,AvgPool 分支通過平均池化來補償SPPF 分支可能引起的特征丟失,最后將兩個分支的特征圖進行拼接操作實現特征融合,提高特征圖的豐富度。具體計算流程如式(5)所示:
其中,Y1和Y2分別代表MaxPool 分支和AvgPool 分支的輸出,M(1~3)代表經過1~3 個最大池化后的輸出,A(1~3)代表經過1~3 個平均池化后的輸出。引入SPPF_Avg模塊能夠更好地實現了多尺度特征提取和融合,提高特征圖所包含信息的豐富度,以及模型檢測效果。
本實驗平臺的操作系統,如表5所示。

表5 實驗環境Table 5 Experimental environment
本實驗網絡訓練的超參數如表6所示,其中Patience代表訓練過程中模型不再提升超過指定次數時停止訓練。

表6 訓練超參數Table 6 Training hyperparameter
本實驗選用全球道路損傷檢測挑戰賽提供的GRDDC2022 公開數據集,從中選取出與國內路面環境相近的圖片共13 866張作為本實驗數據集,并將數據集按照8∶1∶1劃分為訓練集、測試集和驗證集。其中路面病害共分為4 個類別:D00(縱向裂縫)、D10(橫向裂縫)、D20(網狀裂縫)、D40(坑洞)。
本文選用參數量、計算量和平均精度均值mAP(mean average precision)作為評價指標,mAP具體計算如式(6)~(9)所示:
其中,TP 代表預測樣本中將正樣本正確預測為正樣本的個數,FP 代表預測樣本中將負樣本錯誤預測為正樣本的個數。AP 是對P-R曲線的積分,即曲線與橫縱坐標所圍成的面積,而mAP為各類預測對象精度的均值,mAP@0.5是ⅠoU閾值為0.5時的mAP。
在本文所選路面病害數據集上分別對YOLOv8n網絡和改進后的YOLOv8n 網絡進行訓練,然后分別用訓練好的模型在驗證集上進行驗證。YOLOv8n算法和改進后的YOLOv8n 算法在測試集上的檢測結果,如表7所示。

表7 算法改進前后對比Table 7 Comparison before and after algorithm improvement
由表7 可知,在訓練階段改進后的YOLOv8n 模型參數量較YOLOv8n增加了1.83×106,計算量增加了6.1,但在推理階段參數量僅增加了0.59×106,計算量增加了2.3,并且改進后的模型對各類病害檢測精度以及平均檢測精度均得到了較大提升。其中,縱向裂縫的檢測精度提高了0.5 個百分點,橫向裂縫提高了1.2 個百分點,網狀裂縫提高了1.2 個百分點,坑洞提升了8.1 個百分點,平均檢測精度提升了2.8個百分點。綜上所述,本文改進算法在實際檢測應用中參數量和計算量上僅增加了0.59×106和2.3,但是模型的平均檢測精度提高2.8 個百分點,尤其是針對坑洞小目標檢測精度提升較大。模型改進前后在驗證集上的mAP 曲線如圖9(a)、(b)所示,在模型訓練時mAP對比曲線如圖9(c)所示。

圖9 mAP對比圖Fig.9 mAP comparison diagram
由圖9(a)和(b)可知,改進后YOLOv8n 算法的mAP 曲線所圍成面積均大于YOLOv8n,特別是在坑槽小目標檢測方面提升巨大,較原算法提高了8.1 個百分點,整體平均mAP提高了2.8個百分點。由圖9(c)可知改進后的模型在訓練時mAP值位于YOLOv8n上方,說明改進后模型的檢測效果得到了提升。
本文對訓練完成后的YOLOv8n以及改進后算法從路面病害測試集中選取圖片進行檢測,檢測結果如圖10所示。

圖10 檢測結果對比Fig.10 Comparison of test results
如圖10(a)所示,改進后的網絡解決了YOLOv8n存在的漏檢問題;如圖(b)所示在對病害密集區域檢測時,改進后的網絡能夠更好地區分病害類型并獲得檢測結果;如圖(c)所示在路面顏色產生變化時,改進后的網絡仍能檢測出病害類型;如圖(d)所示在面對坑槽小目標時,YOLOv8n漏檢了坑洞小目標,并且將陰影誤檢為橫向裂縫,而改進后的網絡正確的檢測到了坑槽并避免了誤檢情況;如圖(e)所示在雨天視線模糊時,改進后的網絡檢測效果要優于YOLOv8n。綜上所述,改進后的網絡在測試集上的檢測效果整體上要優于YOLOv8n。
為了驗證本文所提出各種改進方案對模型檢測效果的提升,在YOLOv8n網絡的基礎上進行了消融實驗,每一組實驗都設置相同的超參數,采用相同的訓練策略,實驗結果如表8所示。

表8 消融實驗結果Table 8 Ablation experimental results
表8中,“√”代表在YOLOv8n網絡基礎上引入了對應的改進方案,“×”代表未引入該改進方案。方案一代表僅引入CNX2f模塊后的檢測模型,方案二代表引入重參數化RepConv和DBB模塊,方案三代表引入SPPF_Avg模塊,方案四改進了檢測頭部作為本文的改進方案。
由表8可知,每一種優化方案的引入都提升了模型的檢測效果,其中引入CNX2f 模塊后模型的mAP 提高了1.3個百分點,說明CNX2f模塊提升了主干網絡的特征提取能力;引入重參數化RepConv 和DBB 模塊后模型的mAP較方案一提高了0.5個百分點,較原網絡提高了1.8 個百分點;引入SPPF_Avg 模塊后模型的mAP 較方案二提高了0.7個百分點,較原網絡提高了2.5個百分點,說明SPPF_Avg 模塊能夠更好地提取并融合多尺度特征,提高特征圖的表達能力;最后,改進模型的檢測頭部,將頭部改為共享參數結構并引入RBB 重參數化模塊,改進后模型的mAP 較方案三提高了0.3 個百分點,較原網絡提高了2.8個百分點;綜上所述,方案四的檢測效果最佳,模型精確率提高了2.6個百分點,召回率提高了3.0個百分點,mAP提高了2.8個百分點,證明了本文所改進算法對模型的檢測性能有很大提升。
為了進一步驗證本文改進算法對路面病害檢測的優越性,將本文算法與傳統的目標檢測算法進行對比試驗,其中二階段檢測算法有Faster-RCNN[15]算法,一階段檢測算法有SSD[16]、YOLOv3[17]、YOLOv4[18]、YOLOv5s、YOLOX[19]、YOLOv7[20]、RTMDet[21]、PP-YOLOE[22]算法,實驗結果如表9所示。

表9 對比實驗結果Table 9 Comparison of experimental results
由表9 可知,本文改進算法提高了YOLOv8n 模型的檢測精度,四種路面病害檢測精度均得到了提升。本文改進算法的參數量和計算量小于除YOLOv8n 和YOLOv5n外的目標檢測算法,與其他9種目標檢測算法相比mAP分別提高了20.2、23.4、9.7、17.8、5.6、8.0、15.8、3.1、2.4個百分點。雖然參數量和計算量大于YOLOv5n和YOLOv8n,但在平均精度上分別提升了11.2和2.8個百分點。綜上所述,通過將本文改進算法與傳統算法對比,證明了本文改進算法在路面病害檢測方面要優于目前常用的目標檢測算法,mAP 值在所有算法中達到了最佳,在精度和參數量的綜合考量方面較其他算法有明顯優勢,可以有效且高精度的實現路面病害檢測,并且參數量和計算量較小完全可以部署在移動端或無人機設備。
為了解決路面病害特征和背景特征易混淆、不同類型病害容易誤檢、檢測目標大小差異較大容易漏檢、檢測精度低等問題,提出了重參數化YOLOv8路面病害檢測算法。首先構建CNX2f特征提取模塊并引入主干網絡,提高網絡的特征提取能力,更好地區分路面病害特征和背景環境特征;引入RepConv 和DBB 重參數化模塊使模型在訓練階段獲得更好的權重和偏置,在推理階段降低模型參數,有效解決路面病害多尺度特征提取能力差的問題,解決不同類型病害的誤檢問題;改進模型檢測頭部采用共享參數結構,并構建重參數化模塊RBB引入檢測頭部,解決檢測頭部冗余問題,提高頭部網絡特征提取能力;最后構建SPPF_Avg 多尺度特征提取模塊,提高網絡的多尺度特征提取能力,提高特征表達,解決了病害尺度差異較大和部分特征丟失引起的漏檢現象。實驗結果表明,改進后YOLOv8n 算法在路面病害數據集上mAP提高了2.8個百分點,相比傳統的目標檢測算法取得了較大提升。綜上所述,本文改進算法在面對背景復雜和病害大小差異較大的檢測任務具有一定的優越性,促進了路面病害檢測朝著智能化和無人化的方向發展。