王向前,成高立,胡 鵬,夏曉華
(1.陜西高速機械化工程有限公司,陜西 西安 710038;2.長安大學 公路養(yǎng)護裝備國家工程研究中心,陜西 西安 710064)
近年來,我國公路蓬勃發(fā)展,公路保養(yǎng)維護任務貫穿路面整個使用階段[1]。在裂縫出現(xiàn)初期及時實現(xiàn)病害檢測并修復,可有效地減緩或防止初期裂縫的惡化,對于提高路面使用壽命、保障行車安全具有重要意義。
路面裂縫檢測方法主要有3 種:傳統(tǒng)的人眼觀察識別方法主觀性強;常規(guī)圖像處理方法存在開發(fā)成本大、檢測精度不高等問題;卷積神經(jīng)網(wǎng)絡相較于常規(guī)圖像處理方法具有泛化性好、開發(fā)成本低等優(yōu)點,但存在模型體積較大、檢測精度有待提高的問題。文獻[2]通過實驗表明R-CNN 系列、SPP-net 和SSD 等現(xiàn)有卷積神經(jīng)網(wǎng)絡模型體積較大;文獻[3]證明YOLO 的參數(shù)量較上述目標檢測算法較少。但YOLO[3-4]系列算法在實際應用中依然存在模型體積大、裂縫檢測精度不高等問題[5]。
因此,為減少YOLO 系列模型體積,本文首先利用輕量級網(wǎng)絡MobileNetv3 代替YOLOv5 的主干網(wǎng)絡[6-7]。其次,為提高模型的表征能力,在其主干網(wǎng)絡末端加入嵌有Transformer[8]的C3TR 模塊。此外,文獻[9]在YOLOv4 中加入卷積注意力模塊(Convolutional Block Attention Module,CBAM)[10]、文獻[11]在Faster-RCNN 中加入CBAM 模塊,對細小裂縫的檢測能力都有提升。鑒于此,在C3TR 模塊后引入CBAM 模塊。最后,將CIOU損失函數(shù)替換為回歸性能較好的損失函數(shù)(Efficient Intersection-Over-Union,EIOU)[12],提升模型的魯棒性。
本文提出一種基于輕量化網(wǎng)絡的無人機航拍圖像裂縫檢測方法,如圖1 所示。通過無人機搭載云臺相機采集瀝青路面圖像,并對其進行預處理,包括數(shù)據(jù)幀截取、剔除相似度高的圖像。用LabelImg 標注工具標記圖像,并對數(shù)據(jù)進行增強,建立瀝青路面裂縫數(shù)據(jù)集,接著隨機劃分訓練集、驗證集。訓練集用于模型訓練;驗證集用于模型性能驗證;測試集用于檢驗模型的預測效果。
圖1 瀝青路面裂縫檢測方法
YOLOv5 是one-stage 目標檢測算法的典型代表,其網(wǎng)絡結構如圖2 所示。
圖2 YOLOv5 模型結構
YOLOv5 在YOLOv4 基礎上對網(wǎng)絡層、數(shù)據(jù)預處理、損失函數(shù)、訓練策略和模型優(yōu)化等層面進行了優(yōu)化。YOLOv5 中有5 種網(wǎng)絡深度和寬度不同的模型,面對不同場景具有更好的適應性。YOLOv5 使用了Leaky ReLU 激活函數(shù)和空間金字塔池化融合(Spatial Pyramid Pooling Fusion,SPPF)[13],池化速度得到了提升。采用路徑聚合網(wǎng)絡(Path Aggregation Network,PAN)和特征金字塔網(wǎng)絡(Feature Pyramid Network,FPN)[14-15]結構實現(xiàn)不同尺度特征間的融合。此外,YOLOv5 中采用Mosaic方法對輸入數(shù)據(jù)采用隨機旋轉、抖動、縮放和裁剪等方式進行增強。YOLOv5 中對損失函數(shù)進行正則化優(yōu)化,增強了網(wǎng)絡檢測小目標的性能。YOLOv5 采用余弦退火學習率調(diào)度策略[16]進行訓練調(diào)度,能有效地避免過擬合。YOLOv5 還采用TorchScript 對模型進行自動優(yōu)化,使模型在CPU 和GPU 上運行更加高效。
深度神經(jīng)網(wǎng)絡(Deep Neural Network,DNN)模型體積通常較大,不易在邊緣化設備上部署。為解決這一問題,將YOLOv5 的主干網(wǎng)絡替換為MobileNetv3 網(wǎng)絡,以降低模型大小。MobileNetv3 是一種采用深度可分離卷積等輕量化技術的卷積神經(jīng)網(wǎng)絡。深度可分離卷積通過逐通道卷積和逐點卷積兩個步驟來實現(xiàn)卷積操作,如圖3 所示。它使用3 個相同的卷積核對3 個通道同時進行卷積運算,最后使用一個卷積核對前3 個卷積的結果進行卷積運算。相比于普通標準卷積,深度可分離卷積參與運算的參數(shù)更少。
圖3 深度可分離卷積
在卷積神經(jīng)網(wǎng)絡中,注意力可以增強模型對目標特征的關注,從而提高檢測性能。CBAM 模塊是一種混合注意力模塊,結構如圖4 所示,包括空間注意力模塊(Spatial Attention Module,SAM)和通道注意力模塊(Channel Attention Module,CAM)。SAM 和CAM 以串行方式連接,CAM 先處理通道信息,SAM 則在CAM 的輸出上進行操作。CAM 部分使用最大池化和平均池化操作后,通過共享參數(shù)的神經(jīng)網(wǎng)絡生成兩個權重向量,相加后得到一個通道維度的注意力權重。這個權重被應用到原始輸入特征圖上,自適應地調(diào)整不同通道的重要性。SAM 部分的輸入來自CAM 的輸出,首先對輸入進行最大池化和平均池化操作,然后將結果堆疊成一個特征圖。再通過卷積層將其壓縮為一個通道數(shù)為1 的特征圖。這個特征圖的sigmoid 函數(shù)計算生成了空間維度上的注意力權重,它被應用到輸入特征圖上以獲得具有空間信息的特征圖。CBAM 有助于更好地捕捉裂縫特征信息,從而提高模型的表征能力,進而提高檢測性能。
圖4 CBAM 注意力機制模塊結構
C3TR 模塊是基于Transformer 的算法,在區(qū)分目標特征和背景特征方面具有強大的優(yōu)勢,將其嵌入到DNN中使網(wǎng)絡擁有更強的特征提取能力。Transformer 是一種基于編碼器-解碼器結構的網(wǎng)絡結構[17],如圖5 所示,由6 個相同的編碼器、解碼器串聯(lián)而成。
圖5 Transformer 網(wǎng)絡結構
編碼器由堆疊式多頭注意力機制和前饋神經(jīng)網(wǎng)絡(Feed Forward Neutral Network,FFN)構成。多頭注意力機制由自注意力機制構成,不僅關注當前結點處特征,還能兼顧全局特征之間的相關性。FFN 則不斷更新來自上層多頭注意力輸出的信息。
損失函數(shù)在目標檢測中衡量模型預測值和真實值之間的差異,其選擇是至關重要的。好的損失函數(shù)可使網(wǎng)絡準確、快速地檢測出目標。
YOLOv5 采用復合式損失函數(shù),由定位損失、置信度損失和類別損失三者的加權和構成。原始的YOLOv5損失函數(shù)CIOU 兼顧了預測框和真實框之間的重疊度、中心點距離以及寬高比例等因素,但采用寬高比例來實現(xiàn)寬高的牽制,導致預測框不能同時增大或縮小,從而阻礙了模型的快速收斂。為此,將CIOU 替換為EIOU 損失函數(shù),其利用真實寬高來實現(xiàn)寬高的牽制,提高了模型的收斂速度和檢測精度。
融合了上述方法之后,前12 層為MobileNetv3 結構,第13 層、14 層、15 層分別為C3TR 模塊、CBAM 模塊、SPPF 模塊。
數(shù)據(jù)集的制作包含瀝青路面圖像采集、裂縫標記和圖像增強3 部分。其中,SG906 PR0 無人機搭載云臺相機共采集2 000 張分辨率為1 920×1 080 的道路裂縫圖像。隨后,隨機挑選出1 311 張圖像作為測試集,并從余下的圖像中選擇相似度不高的271 張圖像,并采用LabelImg 工具進行標記,部分示例如圖6 所示。之后,采用旋轉、縮放等多種增強方式對數(shù)據(jù)進行5 倍擴充,擴充后的數(shù)據(jù)集規(guī)模達1 626 張圖像。最后,將訓練集和驗證集按9∶1 的比例隨機劃分,最終訓練集有1 464 張圖像,驗證集有162 張圖像。
圖6 部分數(shù)據(jù)集示例
消融實驗在臺式機上進行,實驗環(huán)境如表1 所示。
表1 實驗環(huán)境
實驗采用平均精度均值(mean Average Precision,mAP)、模型大小和檢測速度(FPS)作為評價指標。其中,mAP由精確率(P)和召回率(R)兩個指標組成,如式(1)~式(3)。另外,F(xiàn)PS 是指模型在測試集上每秒完成預測的圖像數(shù)量。模型大小則是指模型文件的大小,通常使用MB 或GB 作為單位。
式中,TP 為裂縫被識別為裂縫的樣本數(shù),TN 為背景被識別為背景的樣本數(shù),F(xiàn)P 為背景被識別為裂縫的樣本數(shù),F(xiàn)N 為裂縫被識別為背景的樣本數(shù)。本文在置信度閾值為0.5 時進行mAP 值的比較,當預測框和真實框的交叉比(Intersection of Union,IoU)大于0.5 時,則確定當前樣本為裂縫;當兩框的IoU 大于0 小于0.5 時,確定當前樣本為背景;當兩框的IoU 為0 時,表示沒有真實框。
網(wǎng)絡訓練中使用梯度下降算法優(yōu)化模型權重參數(shù),采用SGD 優(yōu)化器更新參數(shù),不斷減小真實值和預測值之間的差異,提升檢測性能。初始學習率為0.001,采用余弦退火策略調(diào)整學習率,先增后減,加速模型收斂并避免過擬合。Batch-size(每個訓練批次處理的圖像數(shù)量)為16,worker(多線程)設置為4,以提高訓練速度。共進行500 個epoch 的訓練,輸入圖像分辨率設為640×640。模型采用遷移學習策略,首先在DOTA[5]數(shù)據(jù)集上預訓練權重,再通過權重共享微調(diào)到本文數(shù)據(jù)集。
本次消融實驗設置了5 組實驗,分別驗證了添加輕量級網(wǎng)絡MobileNetv3、C3TR 模塊、CBAM 模塊和替換CIOU 損失函數(shù)4 種方法對裂縫檢測性能的影響,訓練過程如圖7 所示,圖7(a)表示訓練批次-損失值曲線,圖7(b)表示訓練批次-精度曲線。消融實驗結果如表2 所示。不同實驗的部分檢測效果如圖8 所示。
表2 消融實驗結果
圖7 消融實驗訓練過程
圖8 消融實驗部分檢測結果
由表2 可知,實驗2 在實驗1 的基礎上,使用Mobile-Netv3 作為YOLOv5 主干網(wǎng)絡,模型大小減小了55%,檢測速度提高,但檢測精度下降5.7%。實驗3 在實驗2 的基礎上嵌入C3TR 模塊,模型大小和檢測速度基本不變,但檢測精度提高了2.9%。實驗4 在實驗3 的基礎上引入CBAM 模塊,模型大小基本不變,檢測精度提高了0.8%。實驗5 在實驗4 的基礎上使用EIOU 損失函數(shù),檢測精度提高了3.2%,而檢測速度未受影響。綜上所述,MobileNetv3 降低了模型大小并提高了檢測速度,但犧牲了一些檢測精度。C3TR 模塊、CBAM 模塊和EIOU 損失函數(shù)都對提高檢測精度有幫助,而且計算成本相對較低,適用于邊緣化設備。
為驗證本文改進方法的有效性,將其與YOLOv5、Faster-RCNN[18-20]模型、YOLOX[21]模型和Efficientdet[22]模型進行對比,對比結果如表3 所示。
表3 不同模型對路面裂縫的檢測效果
結果表明,本文提出的改進方法相較于Faster RCNN 模型、YOLOX 模型和Efficientdet 模型,在mAP@0.5、模型大小和檢測速度3 方面都表現(xiàn)更好,驗證了本文改進方法的有效性。
本文提出一種基于MobileNetv3 輕量化網(wǎng)絡的無人機航拍圖像裂縫檢測方法,旨在實現(xiàn)準確且高效的路面裂縫檢測。該方法利用輕量化的Mobilenetv3 網(wǎng)絡作為YOLOv5 主干網(wǎng)絡,降低了模型的大小,從而更容易在移動平臺上部署。此外,引入了C3TR 模塊和CBAM 模塊,增強了網(wǎng)絡對裂縫特征的提取能力,并采用EIOU 損失函數(shù)提高模型的魯棒性。通過消融實驗和與其他目標檢測模型的對比,證明了該改進方法的有效性,具備在路面裂縫檢測領域廣泛應用的潛力,為路面養(yǎng)護提供了重要支持。