張艷君,沈 平,郭安輝,高 博
(中交第二公路勘察設(shè)計研究院有限公司, 武漢 430056)
隨著國民經(jīng)濟和基礎(chǔ)建設(shè)的快速發(fā)展,我國公路在建設(shè)里程和服役里程上正呈現(xiàn)逐年增加的趨勢。據(jù)統(tǒng)計,截至2021年,全國公路總里程已達到528.07萬千米,而需要養(yǎng)護的服役公路里程達到525.16萬千米,占公路總里程的99.4%[1]。目前,我國高速公路的總里程已經(jīng)躍居世界第一位,但大部分公路在完工不久后便出現(xiàn)了各種形式的早期破壞,其實際使用壽命遠達不到設(shè)計所要求的使用壽命。“十四五”現(xiàn)代綜合交通運輸體系發(fā)展規(guī)劃明確指出要強化交通運輸領(lǐng)域關(guān)鍵核心技術(shù)研發(fā),同時綜合利用科技手段,開展公路風(fēng)險動態(tài)監(jiān)測預(yù)警和分析研判[2]。
隨著攝像設(shè)備和計算機算力的提高,路面缺陷檢測正由傳統(tǒng)人力檢測朝著自動化、智能化的方向發(fā)展。目前,基于深度學(xué)習(xí)的圖像處理方法是道路缺陷檢測領(lǐng)域的研究熱點,首先利用安裝在移動設(shè)備上的高速相機對道路表面的圖像信息進行實時采集,再通過圖像處理系統(tǒng)對數(shù)據(jù)進行分析處理。有較多學(xué)者開展了基于深度學(xué)習(xí)的目標(biāo)檢測研究,深度學(xué)習(xí)具有成本低、魯棒性高以及檢測速度快等優(yōu)點[3]。但現(xiàn)有方法對于路面缺陷檢測存在可信度不足、缺陷檢測精度不高以及工作效率低等問題。王麗蘋等[4]利用基于AlexNet網(wǎng)絡(luò)架構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)來進行混凝土路面裂縫檢測,通過對像素矩陣進行卷積、池化、激活和全連接操作來輸出分類檢測結(jié)果,但該架構(gòu)增加了訓(xùn)練擬合的次數(shù)和時間,減緩了收斂速度,降低了模型的工作效率。史夢圓等[5]利用改進的U-Net算法進行路面裂縫檢測,該方法利用連續(xù)卷積和池化來提取特征信息,并通過反卷積進行圖像恢復(fù),能夠提高邊界信息的預(yù)測精度,但在多尺度特征圖的信息提取方面存在較大缺陷。為解決路面細小缺陷檢測難點問題,王丹[6]提出了一種多尺度全局全卷積神經(jīng)網(wǎng)絡(luò)算法,該算法構(gòu)建了一種多尺度空洞卷積結(jié)構(gòu),能夠在維持原分辨率的基礎(chǔ)上增強細小特征感知,但該方法在檢測速度方面仍有較大進步空間?;谏鲜鲅芯楷F(xiàn)狀,從檢測速度和檢測精度兩方面深入研究了基于深度學(xué)習(xí)驅(qū)動的路面缺陷檢測技術(shù)。
缺陷檢測是機器視覺中目標(biāo)檢測領(lǐng)域重要的研究方向之一,該工作的主要任務(wù)是根據(jù)用戶提出的信息來找出圖片中相應(yīng)的目標(biāo),并對目標(biāo)進行類別和位置分析。隨著用戶對缺陷檢測速度和精度要求的提高,基于深度學(xué)習(xí)的缺陷檢測方法也在迅速發(fā)展。卷積神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)的代表,具有參數(shù)數(shù)量少、檢測效率高、防滑性強以及魯棒性高等方面的優(yōu)勢,逐步在目標(biāo)檢測領(lǐng)域中引起廣泛關(guān)注[7]。2014年Girshick等[8]提出了R-CNN(Region-CNN)算法,正式將CNN引入目標(biāo)檢測領(lǐng)域。R-CNN系列算法首先根據(jù)候選區(qū)域算法獲得目標(biāo)樣本候選框,之后通過卷積神經(jīng)網(wǎng)絡(luò)進行樣本候選框的篩選分類,因此這一系列模型被稱為two-stage算法[9]。但隨著目標(biāo)檢測要求的提高,two-stage算法難以滿足實時性要求,因此以YOLO(you only look once)算法[10]為代表的one-stage算法應(yīng)運而生。YOLO網(wǎng)絡(luò)首先將輸入圖像分割為M×M個局部區(qū)域,每個區(qū)域檢測中心點位于本區(qū)域內(nèi)的目標(biāo)物體,而每個局部區(qū)域會預(yù)測出N個錨框,因此會產(chǎn)生M×M×N個預(yù)測框,最后對每個框采取置信度評估值來評價預(yù)測準(zhǔn)確度[11]。YOLO模型自提出之后就被廣泛應(yīng)用于目標(biāo)檢測任務(wù)中,YOLOv7模型作為當(dāng)前該系列中集成度最高模型,在網(wǎng)絡(luò)結(jié)構(gòu)、特征提取方法以及訓(xùn)練方式等多方面優(yōu)于其他模型。該模型首先在網(wǎng)絡(luò)結(jié)構(gòu)中引入重參數(shù)化操作來減少模型推理時間,其次提出了高效聚合模塊來強化特征提取能力,最后在訓(xùn)練過程中添加輔助訓(xùn)練模塊來提升模型精度[12]。在路面缺陷檢測任務(wù)中,模型在進行特征提取的過程中會產(chǎn)生較多冗余特征,而抑制冗余特征、關(guān)注重要特征是提高模型精度的重要舉措,卷積注意力模塊(convolutional block attention module,CBAM)作為綜合性的注意力模塊能夠在通道和空間兩個維度加強重要特征的權(quán)重[13]。為此,提出了基于CBAM-YOLOv7模型的路面缺陷檢測方法。經(jīng)實驗驗證,該方法在道路缺陷檢測任務(wù)中表現(xiàn)出的速度和精度性能均優(yōu)于其他目標(biāo)檢測方法。
CBAM-YOLOv7模型是在YOLOv7模型中融入CBAM注意力,以此來提升模型精度的。YOLOv7模型主要由輸入層、主干網(wǎng)絡(luò)層、特征融合層、輸出層組成。其中,輸入層負責(zé)將輸入的原始三通道圖像尺寸定義成640×640;主干網(wǎng)絡(luò)層通過深度卷積來提取不同尺度的特征信息;而特征融合層負責(zé)將不同尺度的特征圖像信息進行深度融合;輸出層將預(yù)測出的錨框坐標(biāo)、種類以及置信度進行非極大值抑制后輸出。YOLOv7模型中含有多個高度集成的卷積運算模塊,分別是ELAN模塊、MP模塊、SPPCSPC模塊,這些集成結(jié)構(gòu)在優(yōu)化模型結(jié)構(gòu)、提升特征提取能力方面具有突出貢獻。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
其中,卷積模塊均包括卷積、歸一化、激活操作,是對圖像進行特征提取的基本工具,并通過改變卷積核大小及卷積步長來實現(xiàn)多尺度特征提取。ELAN模塊是一個網(wǎng)絡(luò)聚合結(jié)構(gòu),它通過改變特征提取的路徑來豐富主干層提取到的特征信息,并提高模型的魯棒性。MP模塊是實現(xiàn)下采樣的結(jié)構(gòu),它通過最大池化和下采樣卷積的并聯(lián)操作來實現(xiàn)對特征圖的深度下采樣。SPPCSPC模塊的作用是增大感受野,提升算法的泛化性能。該模塊將多通道特征圖分成2部分:一部分采用多尺寸最大池化操作來獲得不同的感受野;另一部分采用常規(guī)卷積操作提取特征。該模塊在提升模型精度的基礎(chǔ)上能最大程度降低計算量,是提升模型效率的重要結(jié)構(gòu)。
圖1 集成化卷積結(jié)構(gòu)圖
此外,針對特征提取過程中出現(xiàn)的特征冗余問題,在原始模型的基礎(chǔ)上融合了CBAM注意力模塊,旨在通過特征加權(quán)來提升模型精度。CBAM作為綜合性的注意力機制,能夠融合通道注意力和空間注意力的優(yōu)勢,在抑制一般特征干擾的基礎(chǔ)上著重關(guān)注部分特征通道和空間區(qū)域,并通過最大池化和平均池化的組合使用來豐富特征信息。其模型結(jié)構(gòu)如圖2所示。
圖2 CBAM結(jié)構(gòu)示意圖
上述模塊與多尺寸卷積模塊的有效組合就構(gòu)成了CBAM-YOLOv7模型的基本結(jié)構(gòu),網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
YOLOv7模型在結(jié)構(gòu)上的創(chuàng)新使得該模型在分類精度和推理速度上都取得了較大進步。同時,YOLOv7模型在運算過程中提出了重參數(shù)化操作,該操作在訓(xùn)練過程中將一個模塊細化為多個模塊分支,從而豐富了訓(xùn)練過程獲取的信息,而在模型推理的過程中將多個分支模塊集成為等價模塊,從而在豐富訓(xùn)練過程的同時減少模型的推理時間。CBAM-YOLOv7模型首先對輸入圖像進行尺寸重定義,然后利用主干網(wǎng)絡(luò)層來提取輸入圖像的特征信息,對于主干層輸出的特征采用多個CBAM模塊進行重點特征信息加權(quán),之后將提取出的深層特征和淺層特征進行注意力加權(quán),并輸入特征融合層進行信息融合,最后由輸出層輸出預(yù)測信息,包括預(yù)測框的位置、預(yù)測種類以及置信度,從而完成整個推理過程。
神經(jīng)網(wǎng)絡(luò)模型主要包括訓(xùn)練和推理過程,而YOLOv7模型的訓(xùn)練效果主要受到損失函數(shù)的影響。損失函數(shù)是計算預(yù)測信息與目標(biāo)信息距離的工具,預(yù)測信息越接近目標(biāo)信息,損失函數(shù)值就越小。YOLOv7的損失函數(shù)可以分為目標(biāo)置信度損失、坐標(biāo)損失和分類損失。其中,前兩者采用帶log的二值交叉熵損失函數(shù)(BCE with logits loss),后者采用CIoU損失函數(shù)。該模型使用的交叉熵損失函數(shù)相較于之前的損失函數(shù),加入了sigmoid函數(shù),能夠起到穩(wěn)定數(shù)值、加速模型收斂的效果,原理如下:
(1)
li=-w[yi·log(σ(xi))+
(1-yi)·log(1-σ(xi))]
(2)
式中:I表示目標(biāo)樣本的數(shù)量;li表示第i個樣本對應(yīng)的loss值;xi表示第i個樣本的預(yù)測值;yi表示第i個樣本的真實值;σ表示sigmoid函數(shù)。坐標(biāo)損失是影響模型預(yù)測精度的重要指標(biāo),CIoU損失函數(shù)能夠在訓(xùn)練過程中考慮重疊面積、中心點距離以及長寬比,具有提高模型精度的效果,原理如下:
(3)
(4)
(5)
式中:IoU表示真實框與預(yù)測框之間的交并比;Agt與A分別表示真實框與預(yù)測框的中心坐標(biāo);ρ表示計算兩點之間的歐氏距離;c表示能夠包含真實框與預(yù)測框的最小線框的對角線長度;w、h分別表示框的寬和高。CIoU計算示意圖如圖4所示。
圖4 CIoU計算示意圖
在目標(biāo)檢測領(lǐng)域中,通常需要從預(yù)測類別的分類精度、預(yù)測框的定位精度以及模型的運行速度方面去評價模型的綜合性能。上述模型精度指標(biāo)都是基于統(tǒng)計學(xué)指標(biāo)來計算的,而在模型推理過程中可以基于統(tǒng)計學(xué)將推理結(jié)果分為4個類別,即正樣本預(yù)測正確(TP)、正樣本預(yù)測錯誤(TN)、負樣本預(yù)測正確(FP)和負樣本預(yù)測錯誤(FN)。預(yù)測精確度P(Precision)和召回率R(Recall) 可以對上述分類結(jié)果進行綜合評價,計算原理如下:
(6)
(7)
在實驗過程中,采用F1(F-Measure)值、mAP(mean average precision)值以及FPS(frame per second)對YOLOv7模型進行綜合評價。F1值是衡量分類模型性能的重要指標(biāo),表示精度和召回率的調(diào)和平均數(shù)。mAP值是基于不同IoU閾值對不同召回率下的預(yù)測精度進行計算,是評價定位精度和預(yù)測精度的綜合指標(biāo)。FPS值表示在同一運行環(huán)境下模型每秒能處理的圖像幀數(shù),是評價模型速度的重要指標(biāo)。
(8)
(9)
式中:m表示分類的類別數(shù);n表示單個類別中預(yù)測出的目標(biāo)數(shù)量;P(r)表示召回率為r時的精確度值。
實驗采用RDD2022道路缺陷數(shù)據(jù)集中的China_Drone數(shù)據(jù)。該數(shù)據(jù)集由DJI M600 Pro無人機采集于南京東極大道[14],由2401張512×512像素的道路缺陷圖組成,每張圖像都包含道路缺陷目標(biāo)。數(shù)據(jù)采集設(shè)備及數(shù)據(jù)示例如圖5所示。
圖5 數(shù)據(jù)采集設(shè)備及數(shù)據(jù)示例圖
實驗所用數(shù)據(jù)集包含縱向裂紋、橫向裂紋、復(fù)雜裂紋、坑洞以及修補塊5種類型的道路缺陷,其數(shù)量分布如表1所示。該數(shù)據(jù)集具有環(huán)境復(fù)雜、道路類別多變、缺陷類別不均衡等特點,因此對驗證YOLOv7模型的泛化性能和適用范圍具有重要的參考作用。實驗將數(shù)據(jù)集按照6∶2∶2的比例劃分為訓(xùn)練集、驗證集和測試集。
表1 數(shù)據(jù)集內(nèi)缺陷數(shù)據(jù)分布情況
在驗證實驗中,設(shè)置了3組對比實驗,分別利用CBAM-YOLOv7、YOLOv7、YOLOv6、Faster-RCNN 4種目標(biāo)檢測模型對China_Drone數(shù)據(jù)集進行缺陷檢測。4組實驗所采用的硬件設(shè)備和軟件環(huán)境都是一樣的,都是基于Windows操作系統(tǒng)和GPU進行運算的,具體參數(shù)如表2所示。
表2 實驗配置參數(shù)
為保證各個模型在訓(xùn)練過程中的收斂效果,所有模型均使用官方提供的預(yù)訓(xùn)練權(quán)重。經(jīng)過多次實驗發(fā)現(xiàn)模型在80次訓(xùn)練時損失函數(shù)均已完全收斂,其中CBAM-YOLOv7模型的訓(xùn)練損失曲線如圖6所示,因此所有模型的訓(xùn)練迭代次數(shù)均設(shè)置為80次。
同時,在綜合考量運算設(shè)備顯存、內(nèi)存以及訓(xùn)練效果之后,將單批訓(xùn)練量設(shè)置為8,線程數(shù)設(shè)置為4。此外,一個性能良好的目標(biāo)檢測模型需要大量且復(fù)雜的數(shù)據(jù)作為訓(xùn)練基礎(chǔ),而YOLOv7模型能夠?qū)σ延袛?shù)據(jù)進行增強、增廣操作,通過縮放、旋轉(zhuǎn)、拼接、透視、馬賽克等方法實現(xiàn)訓(xùn)練圖像的復(fù)雜化,從而提升模型的魯棒性和泛化性能。在模型參數(shù)更新的過程中,采用隨機梯度下降算法(stochastic gradient descent,SGD),SGD的優(yōu)點在于每次更新模型參數(shù)只需要計算單批樣本的梯度,能夠極大地提升訓(xùn)練速度。同時為了防止模型出現(xiàn)過擬合現(xiàn)象,該模型采用權(quán)值衰減來平衡模型復(fù)雜度與損失函數(shù)的關(guān)系。上述過程通過迭代實現(xiàn)損失函數(shù)的快速收斂,從而獲得性能良好的道路缺陷檢測模型。模型在網(wǎng)絡(luò)訓(xùn)練的準(zhǔn)備過程中,首先根據(jù)數(shù)據(jù)特點配置網(wǎng)絡(luò)(配置參數(shù)如表2所示),然后將帶有缺陷標(biāo)注的圖片重新定義到固定尺寸,最后通過模型的數(shù)據(jù)增強模塊來增加訓(xùn)練數(shù)據(jù)的多樣性。需要說明的是,在訓(xùn)練過程中,模型需要根據(jù)訓(xùn)練效果不斷更新權(quán)重參數(shù),具體可以分為前向傳播、損失計算、反向傳播、參數(shù)更新、迭代訓(xùn)練、學(xué)習(xí)率調(diào)整和模型保存7個步驟,訓(xùn)練過程如圖7所示。
利用訓(xùn)練好的實驗?zāi)P蛯y試集中的道路圖像進行缺陷檢測,結(jié)果顯示各個模型對缺陷道路圖像具有不同的檢測效果,其中大部分缺陷均能被檢測出來,但在置信分數(shù)、小目標(biāo)檢測、定位框準(zhǔn)確度等方面表現(xiàn)出不同的性能。以圖8中的道路圖像為例,對4種實驗?zāi)P瓦M行對比分析,3種對比模型存在檢測框置信分數(shù)低、小目標(biāo)檢測不準(zhǔn)、預(yù)測框與實際缺陷匹配度不高等問題。其中,Faster-RCNN和YOLOv6-v7模型出現(xiàn)較為明顯的缺陷漏檢、誤檢問題;相比之下,CBAM-YOLOv7在上述問題上表現(xiàn)出的性能較優(yōu),具有最好的觀測效果。
最后分別對訓(xùn)練好的Faster-RCNN、YOLOv6、YOLOv7、CBAM-YOLOv7模型進行對比分析,并采用mAP值、F1值、FPS值對模型性能進行定量分析,結(jié)果如表3所示。
圖8 典型樣本上不同模型的表現(xiàn)效果
表3 4種模型測試效果
Faster-RCNN作為目標(biāo)檢測領(lǐng)域中two-stage系列算法的代表,由于兩階段網(wǎng)絡(luò)結(jié)構(gòu)的局限性,該模型在推理速度上具有很差的效果,難以實現(xiàn)實時檢測的標(biāo)準(zhǔn),同時訓(xùn)練過程中通過超參數(shù)限定了正負樣本數(shù)量,使得模型在預(yù)測精度方面存在較大局限性。而在one-stage系列算法中,YOLOv6與YOLOv7具有相似的網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方式,且YOLOv7作為前者的改進版本,通過高效聚合網(wǎng)絡(luò)、重參數(shù)化思想以及動態(tài)標(biāo)簽分配策略等方式來提高模型的預(yù)測精度和運行速度。而CBAM-YOLOv7作為YOLOv7的提升版本,能在相同的運行速度上大幅提升模型精度。從表3的數(shù)值對比中可以看出CBAM-YOLOv7模型在mAP值、F1值兩項精度指標(biāo)中均優(yōu)于其他模型,而在FPS值指標(biāo)上與原始YOLOv7模型幾乎相同,因此CBAM-YOLOv7模型在實現(xiàn)精確、快速的道路缺陷檢測任務(wù)中具有較大優(yōu)勢。
針對傳統(tǒng)目標(biāo)檢測模型存在的運行速度與檢測精度不能兼顧的問題,YOLOv7模型分別從模型結(jié)構(gòu)、運算方式和訓(xùn)練流程方面進行改進優(yōu)化。在模型結(jié)構(gòu)方面,該模型采用高效聚合網(wǎng)絡(luò)ELAN來提高深層網(wǎng)絡(luò)的特征提取能力,該結(jié)構(gòu)能夠通過改變梯度復(fù)雜度的方式來提高網(wǎng)絡(luò)的學(xué)習(xí)能力。在運算方式方面,該模型采用重參數(shù)化的思想,能夠在豐富訓(xùn)練過程的基礎(chǔ)上減少模型推理過程的數(shù)據(jù)量,從而提升運行速度。在訓(xùn)練流程方面,該模型提供輔助訓(xùn)練模塊來優(yōu)化標(biāo)簽分配策略,從而提升模型分類精度。對YOLOv7模型提出改進,在保證模型推理速度基本不變的基礎(chǔ)上,通過融合綜合性能良好的CBAM注意力來提升模型的精度。
將CBAM-YOLOv7模型應(yīng)用到復(fù)雜路面缺陷檢測任務(wù)中,對比該模型與Faster-RCNN、YOLOv6、YOLOv7模型的檢測結(jié)果,并采用mAP值、F1值和FPS值進行定量分析,結(jié)果顯示CBAM-YOLOv7在觀測效果和數(shù)值對比層面均具有最好的性能,因此應(yīng)用該模型進行復(fù)雜路面的實時缺陷檢測具有較大優(yōu)勢。