蘇 可 ,郭學俊 ,楊瑩 ,陳澤華
(1.太原理工大學 電氣與動力工程學院,山西 太原 030024;2.太原理工大學 大數據學院,山西 晉中 030600;3.山西省交通科技研發有限公司,山西 太原 030006)
道路建設是衡量國家現代化水平的重要指標之一,我國道路交通網龐大復雜,道路養護問題凸顯。如何從道路圖像快速準確地檢測出損傷區域及類型成為學者研究的熱點。
隨著深度學習的快速發展,使用卷積神經網絡(Convolution Neural Network,CNN)[1]自主地從數據集中提取相應特征信息成為主流方法,如快速的R-CNN[2]、SSD[3]、YOLO[4]等。這些網絡能夠定位和識別圖中具有邊界框的對象,為復雜背景下道路檢測提供了有效的框架。
Li[5]等人運用R-CNN 自動定位和識別了不同照明條件下的6 種道路損傷,穩定性較高,但是實時性很差。路雪[6]等人使用Fast R-CNN 網絡對特征進行規格化和并行回歸計算得到非機動車的目標檢測模型,但不適用于目標檢測。Yuan[7]等使用灰度值閾值分割法對道路裂縫進行識別,但不適合于裂縫與背景差異不明顯的情況。阮小麗[8]等使用連通區域的方法識別較小裂縫的寬度,但不能排除灰度差異的干擾。YANG[9]等使用全卷積網絡(FCN)來檢測不同裂縫,存在較大誤差。王森[10]等使用Crack FCN 模型解決了復雜背景下的裂縫檢測,但是檢測效率有待提高。Zhou[11]等使用裂縫碎片拼接和圖像處理方法,實現了對裂縫寬度的高精度測量,但是在復雜背景下的裂縫識別準確度較低。YOLO 網絡最先實現了實時檢測目標,但是沒有生成先驗框,所以定位誤差較大。沈新烽[12]等人使用SSD 目標檢測算法,減小了原始圖像的輸入尺寸并引入了特征金字塔網絡,能實現多個分辨率不同的特征映射預測,并在單個網絡中實現了區域分類和坐標回歸的封裝。因此,SSD 的速度和精確度優于YOLO。但是SSD 算法的淺層特征圖的表示能力不強,導致其在復雜背景的道路損傷檢測中對難分類目標會出現漏檢。
綜上,在道路損傷圖像檢測中,主要存在如下問題:(1)網絡對道路損傷類型識別精度不高;(2)小目標損傷存在漏檢;(3)道路損傷數據集樣本類別不平衡問題。
針對上述問題,受到注意力機制和Focal loss 的啟發,本文提出使用DSSD 算法,將注意力機制與主要特征提取網絡結構ResNet-101 相結合,使不同模塊的特征隨著網絡的加深產生適應性改變,保留小目標損傷的位置信息。同時,采用了焦點損失函數(Focal loss),通過調整簡單樣本和復雜樣本的權重,降低了簡單樣本對復雜樣本的影響,同時也降低了裂縫在圖像中占比遠遠少于背景像素的問題,加速了模型的收斂,提高了難分類損傷的檢測準確率,使整體的檢測精度有效提高。
Wei Liu 在ECCV2016 上提出基于SSD 的目標檢測算法,算法提取特征的骨干網絡為VGG16[13],采用多種尺度的特征進行目標檢測。網絡以300 px×300 px 的圖像作為輸入。網絡中Conv4_3、FC7 層作為淺層特征,特征尺寸較大,包含的細節信息較多,用來檢測小目標物體。網絡中Conv8_2、Conv9_2、Conv10_2、Conv11_2 層作為深層特征,這些層感受野比較大,包含的語義信息比較多,用來檢測大目標物體。SSD 的算法框架如圖1 所示。
從圖1 中可以看出,SSD 算法雖然采用了多尺度特征進行目標檢測,但是Conv4_3 層網絡比較淺,能夠得到的語義信息就會減少,對難分類道路損傷特征的提取能力下降,最終導致整個網絡對難分類損傷的檢測精度較差,無法滿足對道路損傷中難分類損傷的檢測精度要求。

圖1 SSD 算法框架
DSSD 算法[14]框架如圖2 所示。

圖2 DSSD 算法框架
對比SSD 網絡,DSSD 網絡用ResNet-101 替換VGG網絡,在分類回歸之前引入了殘差模塊,并且在SSD 的輔助卷積層后添加了反卷積層,使DSSD 網絡的整體結構呈現為“寬-窄-寬”的“沙漏”結構,即“encorderdecorder”結構。其目的是將高層語義信息和低層語義信息進行融合,豐富預測回歸位置框和分類任務輸入的多尺度特征圖,以此提高精度。
注意力機制[15]的主要思想是給關鍵特征標識權重,進而獲得圖像中的有用區域。視覺注意力包括軟注意力和強注意力。軟注意力又包括空間域注意力、通道域注意力和混合域注意力。
軟注意力中的空間域注意力的實現如圖3 所示。將原始圖片中的空間信息變換到另一個空間中,增強了特征在空間中的位置信息,實現了空間維度上的特征聚焦,從而提升了小目標損傷的捕獲效果。

圖3 空間注意力模塊
空間域注意力的計算公式如下:

其中,Ms(F)表示空 間注意力,f 代表卷積操作,1×1 表示濾波器尺寸為1,BN 表示批標準化(Batch Normalization),3×3 是空洞卷積。
通道域注意力的原理如圖4 所示。由于每一張圖片都是由R、G、B 三通道表示的,在神經網絡中經過不同的卷積核之后,每一個通道又會生成新的信號,給每個通道上的信號都增加一個權重來調整通道與關鍵信息的相關度,這個權重越大,則表示相關度越高,這個通道越重要。

圖4 通道注意力模塊
通道域注意力的計算公式如下:

其中,Mc(F)代表通道注意力,MLP 代表多層感知器,W0∈RC/r×C,b0∈Rr×C,W1∈RC/r×C,b1∈RC,C 表示圖像的 通道數,r 表示壓縮率。圖3、圖4 中的BN 操作相同,用來保證兩個注意力模塊輸出一致。
DSSD 利用反卷積操作,單向融合高低層特征,提高了整體目標檢測效果,但并不適用于小目標道路損傷檢測。此時將注意力機制添加到DSSD 提取特征的骨干網絡ResNet-101 中,對特征信息進行篩選,抑制非目標區域的特征,使得網絡在特征提取過程中更關注小目標損傷區域特征,提升檢測效果。
在ResNet-101 中添加注意力的方法如圖5 所示。

圖5 添加注意力機制的ResNet-101
在ResNet-101 網絡的一個階段結束后,將得到的特征圖分別輸入空間注意力和通道注意力模塊,得到Ms(F)和Mc(F);再將兩者進行求和,然后用sigmoid 函數得到一個取值為0 到1 的最終注意力的映射M(F),公式如下:

把最終的注意力圖與最初輸入的特征圖F 進行逐元素相乘的操作,然后將其加入到原始輸入特征圖上,得到細化后的特征圖F′,再輸入到ResNet-101 的下一個階段中。F′的公式如下所示:

本文選擇的數據集是由手機現場拍攝的圖像,存在以下問題:(1)數據集各種損傷類型的數據復雜度不同,即類內不平衡問題,簡單樣本(坑洼、明顯的長裂縫、人行橫道線模糊等)的數量和復雜樣本(細小裂縫)的數量相差較大;(2)受裂縫自身寬度、深度、方向的影響,細微裂縫與背景對比度弱且難以表現出完整的幾何形態,使目標像素在圖像中的占比遠遠少于背景像素,即類間不平衡問題。為解決這些問題,本文選擇使用Focal loss[16](焦點損失函數)替換了DSSD 網絡原本的損失函數。
Focal loss 的函數公式如下:

式中,pt為預測樣本的預測概率,pg為真實樣本的預測概率。Focal loss 給經典的交叉熵損失函數添加了調制系數(1-pt×pg)γ,其中的γ為大于零 的聚焦參數。因為 調制系數的值在0~1 之間,所以整體的loss 值會變小,但是簡單樣本和復雜樣本的預測概率pt值相差較大,所以二者使loss 值減小的數值經過γ 調整后會相差較大,最終改變兩者對于模型的影響程度。
通過不斷調整參數γ 的值,使簡單樣本在圖像中的權重減小,復雜樣本在圖像中的權重增加,實現模型整體性能的提升。
表1 列出了不同的損傷類型及其定義。在本文中,每種損傷類型都用一個標簽(如D00)表示。

表1 道路損傷類型
本文的數據集由5 590 個標記的道路損傷圖像組成,11 639 個損傷邊界框被標記。其中,訓練集包含3 090幅圖像,測試集包含2 500 幅圖像。
本文實驗環境為Windows 10 的Intel COREi7,顯卡是Nvidia GeForce GTX 1660 Ti,主頻是2.6 GHz,內存是8 GB,基于pytorch1.2 框架,用Python 語言實現。使用標準梯度下降法訓練模型,參數設置:批處量大小為8,基礎學習率和權重衰減均為0.000 1。
目標檢測的核心是目標識別準確率和實時性。mAP(mean Average Precision)是衡量算法準確度的重要指標[17],其值越大性能越好。Fps(Frames per second)是每秒識別的圖像數,用來評價算法的檢測速度。
在DSSD 網絡中添加注意力機制后,實現了特征在通道維度上的加權與空間維度上的聚焦,使網絡可以更好地對小目標道路損傷進行檢測,圖6 所示為對比效果。

圖6 改進的DSSD(左)與原DSSD(右)
與DSSD 相比,改進的DSSD 可以檢測到更多較小的道路損傷(左圖目標框變多),且精確度提升。
為比較Focal loss 中不同γ 值對模型檢測不同類型損傷平均精度值(AP)的影響,將基于不同γ 值的模型在道路損傷數據集上進行測試,γ 的值分別取0、0.1、0.5、1、2、5。得到的實驗結果如表2 所示。
從表2 中可以得出,綜合各類損傷的平均精度均值,當γ 的取值為2 時,Focal loss 效果最好。

表2 不同取值下各類損傷的AP 值
為了驗證道路損傷檢測模型的可行性,將目前用于道路損傷檢測的算法與小目標檢測算法以及本文模型進行對比,包括SSD 算法[18]、YOLOv3 算法[19]以及原始的DSSD 算法[14]。其中,對比網絡的參數設置與原論文中相同。在道路損傷圖像數據集上進行目標檢測,表3 展示了道路損傷數據集中各類損傷的平均精度對比。從表中可以看出,改進的DSSD 算法比SSD 算法、YOLOv3 算法和原DSSD 算法在大部分損傷檢測的平均精度上均有提高。

表3 不同算法平均精度(AP)對比
表4為3 種算法的平均精度均值與實時性的對比。由于本文在原DSSD 網絡的基礎上添加了注意力機制,加大了網絡的計算量,網絡的檢測速率為15.4 幀/s,但是與原DSSD 網絡的檢測速率相差不大,同樣可以滿足實時性的需求。然而本文方法的mAP 值比SSD 算法、YOLO 算法與DSSD 算法分別提高了12.21%、5.99%與7.94%。

表4 平均精度均值與實時性對比
在不同場景下,改進的DSSD 算法、SSD 算法、YOLO算法對道路損傷檢測結果如圖7 所示。從圖中可以直觀地看出,改進的DSSD 算法比SSD 算法與YOLO 算法檢測到了更多類型的缺陷,包括目標更小的道路損傷,而且準確度更高,直觀地證明了本文提出的改進的DSSD算法能有效提高對復雜場景下各種類型道路損傷的檢測精度。

圖7 改進的DSSD(左)、SSD(中)、YOLO(右)算法結果對比
本文提出了一種基于改進DSSD 的道路損傷識別方法。以ResNet-101 作為基礎網絡,結合注意力機制實現小目標損傷檢測精確度的提升,采用Focal loss 解決了數據集樣本類別不平衡導致的檢測準確度低的問題。實驗結果表明,經過訓練,得到改進的道路損傷檢測模型DSSD 的mAP為83.95%,且在大部分道路損傷類型的精確度(AP)均優于SSD、YOLO 與原DSSD 等網絡的道路損傷檢測方法。同時,相比SSD、YOLO 與DSSD 等方法,改進的DSSD 方法在檢測小目標道路損傷時也具備更高的準確性。該方法在實際應用中具有一定的實踐和現實意義。本文方法的不足之處和未來需要做的工作如下:
(1)本文使用的DSSD 網絡模型結合了注意力機制,計算量有所增加,導致Fps 下降,雖然滿足實時性的需求,但是未來可以通過優化DSSD 網絡模型來提高檢測速度。
(2)道路損傷的類型較多,本文算法的AP 值并不是所有類型都是最優的。因此,未來可以繼續研究如何提高其他種類損傷的檢測精確度。