王安政,黨建武*,岳彪,楊景玉
(1.蘭州交通大學電子與信息工程學院,甘肅 蘭州 730070;2.軌道交通信息與控制國家級虛擬仿真實驗教學中心,甘肅 蘭州 730070)
近年來,隨著公路交通的快速發展,人們出行不僅對公路行駛的舒適度和經濟性有了較高要求,而且更加關注出行的安全性,公路安全問題成了人們日常生活中的一個熱點問題。路面裂縫作為公路病害的常見病害之一,對道路安全具有潛在的威脅[1]。路面裂縫是公路健康狀況的重要指標,形成原因主要包括車輛擠壓、雨雪滲透和施工質量不佳。若裂縫不及時被修補,則會增加公路安全事故的風險。目前,人工方法結合半自動化方法是廣泛使用的路面裂縫檢測方式。然而,人工參與檢測成本高、效率低,檢測結果依賴于檢測人員的主觀性[2]。因此,為了滿足當前對高效路面裂縫檢測的需求,研究一種高效且準確的裂縫檢測模型具有重要意義,對于提升交通安全具有重要作用。
目前,隨著深度學習在計算機視覺領域的廣泛應用,已經涌現出多種用于路面裂縫檢測的目標檢測方法。目標檢測通常分為分類和邊界框回歸兩種,其中分類任務主要判斷圖像中是否存在裂縫,回歸任務是對圖像中的裂縫進行框選,并得到邊界框的頂點信息。文獻[3]在模型中使用可變形卷積(DCN)提高復雜場景中的裂縫檢測性能。文獻[4]利用更快速的區域卷積神經網絡(Faster R-CNN)實現路面裂縫的檢測。文獻[5]改進RetinaNet實現路面裂縫的檢測,此方法比兩階段模型計算復雜度小,并且使用Focal loss解決數據不均衡問題。文獻[6]提出一種能夠建立長距離依賴關系的裂縫檢測模型。現有的目標檢測方法主要通過回歸框實現對裂縫的定位,但普遍存在裂縫檢測不準確的情況,并且無法獲取裂縫的形狀以及參數信息,給后續的裂縫修補帶來了很多困難。
此外,大量研究者還通過基于深度學習的圖像分割方法來檢測路面裂縫。利用分割方法來檢測路面裂縫通常分為傳統的圖像分割和基于深度學習的圖像分割2種方法。對于第1種方法:文獻[7]提出使用圖像閾值分割進行裂縫檢測的模型,該模型將動態閾值和圖像熵組合使用,但該方法依賴于背景不同的閾值;文獻[8]通過Prim最小生成樹(MST)實現裂縫的連接和檢測,效果優于灰度直方圖方法,但未測試噪聲圖像;文獻[9]使用Gabor函數檢測背景紋理復雜的裂縫圖像,但檢測的準確率有待提高;文獻[10]采用小波變換(WT)方法獲取裂縫圖像的檢測模型,但該方法容易受到噪聲的干擾,不能很好地檢測連續性差的裂縫。對于第2種方法:文獻[11]提出一種編解碼結構的裂縫檢測模型,通過學習裂縫的高級特征來實現多尺度深度卷積特征融合,能夠分割裂縫區域,但檢測到的評估指標不夠高;文獻[12]通過把圖片切割成像素級圖像塊,然后輸入卷積神經網絡(CNN)進行訓練和測試,但該模型的樣本相似度高,需要考慮樣本中正負樣本的比例,且實現較困難;文獻[13]提出一種深度學習和注意力機制相結合的編解碼模型,較好地實現對路面裂縫的檢測,但檢測結果受圖像背景影響較大;文獻[14]通過殘差模塊(ResNet)來改進U-Net的卷積層結構,在多個公開數據集上獲得了優良的性能,但其并未測試陰影遮擋、背景紋理復雜的裂縫圖像,模型魯棒性不足;文獻[15]在U-Net的基礎上引入注意力機制和殘差模塊,但模型的檢測指標不夠高,有待提升;文獻[16]在高分辨率深度神經網絡(HRNet)的基礎上對模型進行優化,改變上下采樣的方式,并在上采樣的過程中加入擠壓和激勵塊(SE-Block)對特征進行加強,但裂縫的邊緣還需要細化,抗干擾能力有待提高。現有多數分割模型是在編解碼器的架構上進行優化和改進的,當存在干擾因素時,模型提取特征和關注目標的能力不夠,導致部分像素點會被誤識別,從而使得路面裂縫分割不完整。
本文受到現有工作的啟發,為了解決路面裂縫檢測不完整的問題,提出一種基于位置信息與注意力機制的路面裂縫檢測模型(PA-TransUNet),主要工作包括:1)在Transformer的自注意力機制中引入位置信息,以解決裂縫特征空間結構信息和形狀信息缺失的問題,避免對裂縫全局特征信息提取不充分;2)設計一種基于注意力門控(AD)的解碼模塊(AGDM)來提升特征圖的融合能力,不只是簡單地拼接特征圖,而且還使模型對裂縫局部區域進行更針對性的學習,突出有利于裂縫分割的特征,抑制特征圖中與裂縫不相關的特征,從而提升裂縫分割的性能;3)使用公開的路面裂縫檢測數據集(CFD)、Cracktree200和自制無人機裂縫(UAV Cracks)數據集進行實驗驗證,所提模型在各個數據集上的F1值均有所提升。
將路面裂縫檢測看成一個像素級的二分類任務,用0和255像素分別表示背景和裂縫。

圖1 PA-TransUNet模型結構Fig.1 PA-TransUNet model structure

(1)
其中:H和W分別為輸入圖像的高和寬;P為Patch的大小。

(2)

針對裂縫檢測時出現的陰影遮擋、背景復雜造成的裂縫檢測不完整問題,TransUNet有優異的性能表現,因此選擇TransUNet作為本文的基礎網絡。
Transformer由VASWANI等[19]于2017年提出并將其應用于機器翻譯。在計算機視覺領域,Vision Transformer[20]首創性地應用了Transformer。目前,自注意力機制已經廣泛被應用于計算機視覺領域,得益于自注意力機制,模型能夠獲取卷積神經網絡所無法獲得的裂縫全局信息,以輔助提升最終輸出結果。然而,在獲取裂縫全局信息的過程中,自注意力機制并未考慮查詢項(q)、鍵(k)、值(v)的位置信息,而這些位置信息對于捕捉路面裂縫的空間結構和形狀也具有重要意義。為了增強對裂縫的空間和形狀信息的捕獲能力,在Transformer中引入位置信息。這樣做有效地解決了在特征提取過程中可能出現的信息丟失問題,并提高了分割的性能。
原始的自注意力機制中并沒有考慮到q、k、v的位置信息,如圖2所示,輸入特征圖通過變換矩陣得到q、k、v,q和k相乘結果通過Softmax操作,然后將得到的結果與v相乘得到最終的輸出,計算公式如式(3)所示:

圖2 自注意力機制Fig.2 Self-attention mechanism

(3)
其中:q=MQx、k=MKx、v=MVx,q、k、v為輸入x的線性投影;MQ、MK、MV為可學習的矩陣;Softmax為激活函數;dk為k的維度。
在模型中初始的q、k、v的位置編碼通過一個可學習的矩陣初始化獲得,然后初始化的位置編碼和q、k、v分別相加,賦予每個q、k、v位置信息,這樣模型可以根據具體任務學習到更適合的位置表示,計算公式如(4)所示:

(4)
其中:rq、rk、rv分別為q、k、v的位置信息;qposition、kposition、vposition分別為q、k、v初始化可學習的矩陣。
引入q、k、v的位置信息之后的自注意力機制如圖3所示,輸入特征圖通過變換矩陣分別得到q、k、v,此處的q、k、v并沒有像式(3)一樣直接進行計算,而是q和k先相乘,再分別與自己的位置信息相乘并相加,結果通過Softmax操作分別與v的位置信息和v相乘,最終相加得到輸出結果,計算公式如式(5)所示:
Attention(q,k,v)=

(5)

圖3 帶有位置信息的自注意力機制Fig.3 Self-attention mechanism with location information
為了確保網絡在訓練過程中能夠獲得更大的感受野,進而捕獲足夠的特征圖上下文語義信息,卷積神經網絡會逐漸對輸入的原始圖像進行下采樣。為了提升分割性能,在上采樣解碼過程中,通過跳躍連接充分利用解碼器的深層特征和編碼器的淺層特征。然而,原始的TransUNet僅將深層特征上采樣并將其與淺層特征融合,隨后經過卷積操作和激活函數,這樣會缺乏對裂縫局部的精細學習。這種融合過程可能會丟失許多關鍵特征信息,進而導致裂縫分割不完整。AG可以自動學習聚焦于不同形狀和大小的目標結構,抑制輸入圖像中不相關的區域,同時突出對特定任務有用的顯著特征[21]。為了在上采樣過程中恢復裂縫的細節信息,提升裂縫分割的完整性,設計AGDM。AGDM主要包含左側和右側兩個子模塊,左側子模塊利用AG增強深層特征和淺層特征之間的特征表達,右側子模塊將經過注意力提取的特征與深層特征進行融合。AGDM結構如圖4所示。

圖4 AGDM結構Fig.4 AGDM structure
AG結構如圖5所示,其中,g為門控向量,是來自解碼器的深層特征圖,xl為輸入圖,是來自編碼器的淺層特征圖,g和xl分別通過1×1的卷積操作Wg和Wx得到特征圖F1和F2。因為g和xl不是來自同一層操作的特征圖,g的空間尺寸要小于xl,所以要對g進行上采樣,或者對xl進行下采樣,然后才可以實現特征圖F1和F2的相加操作。

圖5 AG結構Fig.5 AG structure
首先,通過特征圖F1和F2相加操作得到特征圖F3,計算公式如式(6)所示:
F3=F1⊕F2
(6)
其中:⊕為對應元素相加操作。
其次,特征圖F3通過ReLU激活函數生成特征圖F4,計算公式如式(7)所示:
F4=ReLU(F3)
(7)
其中:ReLU表示激活函數。
再次,特征圖F4通過ψ操作,ψ操作是一個卷積操作,該卷積操作的作用是通過一個1×1的卷積核對輸入特征圖F4進行卷積運算,生成一個通道數為1的新特征圖F5,計算公式如式(8)所示:
F5=f1×1(F4)
(8)
其中:f1×1()為1×1的卷積操作。
然后,特征圖F5再通過一個Sigmoid激活函數生成特征圖F6,計算公式如式(9)所示:
F6=Sigmoid(F5)
(9)
其中:Sigmoid表示激活函數。
最后,通過上采樣對特征圖F6的尺寸進行重構,使其與輸入特征圖xl的尺寸相同,得到注意力系數矩陣α,計算公式如式(10)所示。輸入xl與α通過相乘的操作得到最終的輸出。
α=fup(F6)
(10)
其中:fup()表示上采樣操作。
使用PyTorch深度學習框架,硬件為Intel?Xeon?CPU E5-2678 v3,實驗使用的顯卡為NVIDIA Tesla K80,顯卡內存為12 GB。在訓練過程中,選用SGD優化器對模型進行優化,學習率設置為0.01,動量系數為0.9,衰減值為0.000 1,設置的批次大小為16,迭代次數(epoch)為100。
為了驗證所提模型的有效性,選取公開數據集CFD、Cracktree200和自制數據集UAV Cracks進行實驗。
CFD數據集由SHI等[22]創建,包含118張分辨率為480×320像素的北京城市道路路面裂縫圖像,圖像中包含了水漬、陰影等噪聲。Cracktree200數據集由ZOU等[23]創建,包含206張分辨率為800×600像素的路面裂縫圖像,這些圖像被進行了像素級標注,其中包含了陰影遮擋、背景復雜等噪聲。UAV Cracks數據集是一種自制數據集,使用無人機對甘肅省路面進行拍攝而得,該數據集包含了299張分辨率為512×512像素的路面裂縫圖像,圖像中包含了水漬、行車線等噪聲,旨在測試模型在實際工程應用中的性能。此外,由于光照條件、視角和尺度等因素影響,無人機收集的道路裂縫圖像可能更具挑戰性[24]。
由于3個數據集的數據量較小且所提模型需要輸入256×256像素的圖像,因此對數據集進行數據增強操作,包括隨機裁剪、亮度調整、對比度調整和角度調整等。最終CFD數據集包含3 150張圖像,Cracktree200數據集包含3 000張圖像,UAV Cracks數據集包含3 800張圖像,將每個數據集按照8∶1的比例隨機分為訓練集和測試集。當訓練數據較少時,模型可能會過度依賴有限的樣本,導致在新的未見過的數據上表現不佳。通過數據增強操作,可以有效地擴大訓練數據集的規模和增加數據多樣性,避免模型在訓練過程中出現過擬合的現象。
為了對比評價所提模型的分割性能,主要使用了精確率(P)、召回率(R)、F1值(F1)、交并比(IoU)4個性能評價指標。
精確率是指在預測為正的樣本中真正樣本所占的比例,計算公式如式(11)所示:

(11)
其中:NTP表示模型將樣本中的正樣本正確預測為正樣本的數量;NFP表示模型將樣本中的負樣本錯誤預測為正樣本的數量。
召回率是指在所有的正樣本中被預測為正樣本的比例,計算公式如式(12)所示:

(12)
其中:NFN表示模型將樣本中的正樣本錯誤預測為負樣本的數量。
F1值是精確率和召回率的調和平均值,在分割任務中常用來評價模型的分割性能,F1值越高代表模型性能越好,計算公式如式(13)所示:

(13)
交并比是真值集合和預測集合之間交集和并集的比例,計算公式如式(14)所示:

(14)
路面裂縫檢測屬于二分類的分割任務,并且由于路面裂縫的形態差異,會導致在路面裂縫數據集中存在嚴重的正負樣本不平衡現象,因此經典二值交叉熵(BCE)損失函數不適用于分割正負樣本極不平衡的任務,計算公式如式(15)所示:
LBCE=

(15)
其中:LBCE代表二值交叉熵損失函數;N代表分類的類別數;yi代表第i個像素的標簽值;pi代表第i個像素的預測概率值。
在路面裂縫分割任務中,如果只使用交叉熵損失函數訓練模型,則會使得模型更傾向于分割占比更大的類別,而裂縫恰巧是占比更小的類別,因此采用適用于解決這種樣本不平衡問題的Dice損失函數,計算公式如式(16)~式(17)所示:

(16)
(17)
其中:DDice代表Dice系數;LDice代表Dice損失函數。
將BCE和Dice損失函數組合使用,不僅能夠保證像素的有效性,而且還能夠解決樣本中正負樣本不平衡的問題,計算公式如式(18)所示:
L=(1-λ)LDice+λLBCE
(18)
其中:L為總的損失;λ為交叉熵損失函數所占權重,在訓練過程中λ被設定為0.5。
本文的裂縫檢測任務屬于圖像分割任務的范疇,而像素點分類則是作為該分割任務的一個輔助任務。因此,在衡量模型輸出與真實值之間差距的交叉熵損失函數中,應該避免將權重設置過大。如果權重過大,則模型會更加傾向于預測占比較大的背景像素,進而影響分割結果的準確性。
為了驗證所提模型的有效性,將其與TransUNet[17]、Attention U-Net[21]、SegNet[25]、U-Net[26]、DeepCrack[27]5種先進的深度學習模型進行實驗對比,并在CFD、Cracktree200、UAV Cracks數據集上進行訓練和測試。
為了驗證所提模型對裂縫圖像的分割性能,在CFD數據集上進行實驗,不同模型的實驗定量結果如表1所示,其中最優指標值用加粗字體標示,下同。由表1可以看出,PA-TransUNet優于其他分割模型,F1值達到87.44%,交并比達到78.52%,相比于原始TransUNet模型分別提升了2.24和3.67個百分點,能夠達到更好的裂縫分割效果。然而,PA-TransUNet在精確率上沒有取得最優值,但是較原始的TransUNet提升了2.82個百分點,可能的原因為模型在預測過程中分割的裂縫更加明顯,使得裂縫邊緣的1或2個像素點也被預測為裂縫像素所致。
為了能夠更加直觀地感受不同模型的分割差異,展示了3幅測試集中圖片在不同模型上的分割結果,如圖6所示。通過對比3幅圖片發現,經典分割模型SegNet、U-Net、Attention U-Net、DeepCrack對于較為復雜的裂縫分割效果很差,出現很多漏檢的情況,雖然原始TransUNet的分割效果要優于前面4種模型的分割效果,但也存在裂縫細節部分的漏檢,從標注框中可以看出,PA-TransUNet的分割效果更好,分割的裂縫與真值標簽最相似,很少出現漏檢、誤檢的情況。

圖6 CFD數據集上的可視化效果對比Fig.6 Visual effect comparison on CFD dataset
為了進一步驗證所提模型的有效性,在Cracktree200數據集上進行了實驗,不同模型的定量實驗結果如表2所示。由表2可以看出,PA-TransUNet的精確率、召回率、F1值和交并比分別達到83.55%、81.64%、82.58%和69.70%,相比于在CFD數據集上的定量結果,在Cracktree200數據集上PA-TransUNet相對于SegNet、U-Net、Attention U-Net和DeepCrack的分割性能提升更加明顯,F1值和交并比相對于原始TransUNet分別提升了0.96和0.84個百分點,指標提升不明顯的主要原因為:1)該數據集的數據比較單一,大多是比較簡單的裂縫,存在少量陰影遮擋的裂縫,雖然PA-TransUNet在檢測陰影遮擋的裂縫時效果有顯著提升,但此類數據的數量遠少于普通的裂縫;2)數據的標注過于精細,正負樣本嚴重失衡。

表2 不同模型在Cracktree200數據集上的評價指標對比Table 2 Comparison of evaluation indexes of different models on Cracktree200 dataset %
為了能夠更加直觀地觀察不同模型在Cracktree200數據集上的分割性能,選取4幅測試集中的圖片進行可視化對比,如圖7所示。通過對比4幅圖片發現:對于第1行簡單路面裂縫的分割,6種模型的分割性能并沒有太大差別,只是在一些細節處理方面PA-TransUNet表現更好;對于第2行復雜路面裂縫,SegNet、U-Net、Attention U-Net和DeepCrack的分割效果遠不如TransUNet和PA-TransUNet;對于第3、4行這種陰影遮擋的路面裂縫,SegNet、U-Net、Attention U-Net、DeepCrack和TransUNet的分割出現大量的漏檢情況,而PA-TransUNet表現出更好的分割性能。觀察圖8的分割結果可以看出,PA-TransUNet把原圖中存在但真值標簽中沒有標注的裂縫也檢測了出來。

圖7 Cracktree200數據集上的可視化效果對比Fig.7 Visual effect comparison on Cracktree200 dataset

圖8 PA-TransUNet檢測結果對比Fig.8 Comparison of PA-TransUNet detection results
為了驗證所提模型在實際工程中的應用,使用UAV Cracks數據集對模型的性能進行實驗驗證,自制的UAV Cracks數據集更具挑戰性,其中背景更加復雜,裂縫更加不明顯。不同模型的定量實驗結果如表3所示。由表3可以看出,PA-TransUNet的所有評價指標均優于SegNet、U-Net、Attention U-Net和DeepCrack,精確率、召回率、F1值和交并比分別達到了90.84%、86.62%、88.68%和80.90%,較原始的TransUNet的F1值和交并比分別提升了3.78和5.66個百分點。可見,PA-TransUNet在公開數據集和自制數據集上都取得了較好的分割結果,表明其具有更好的泛化性。

表3 不同模型在UAV Cracks數據集上的評價指標對比Table 3 Comparison of evaluation indexes of different models on UAV Cracks dataset %
為了更加直觀地觀察各個模型的分割性能,選取4幅測試集中的圖片進行可視化對比,如圖9所示。由圖9可以看出,SegNet、U-Net、Attention U-Net和DeepCrack在UAV Cracks數據集上對于背景復雜的路面裂縫會出現大量的誤檢和漏檢現象,原始的TransUNet的表現優于前面4種模型,但是在某些部位的檢測也會出現漏檢現象,而PA-TransUNet的分割性能要優于前面5種模型,誤檢和漏檢的情況比較少,證明了該模型的性能更好,可以應用在實際工程中。

圖9 UAV Cracks數據集上的可視化效果對比Fig.9 Visual effect comparison on UAV Cracks dataset
為了驗證本文在編碼器的Transformer中引入q、k、v的位置信息和AGDM模塊的有效性,選擇在CFD數據集上將其與原始TransUNet進行對比測試,在與上文同一個環境下進行消融實驗。消融實驗總共分為4組,實驗0是原始的TransUNet;實驗1在原始TransUNet的基礎上改進編碼器的Transformer,即為q、k、v引入位置信息;實驗2是在原始TransUNet的基礎上改進解碼器部分,即使用AGDM模塊;實驗3是在原始TransUNet上結合第2組和第3組的改進。
表4為消融實驗的對比結果,其中,N表示未使用該信息和模塊,Y表示使用該信息和模塊。由表4可以看出:對比實驗0和實驗1可以發現,F1值和交并比分別提升了0.98和1.09個百分點,驗證了在編碼器的Transformer中引入q、k、v的位置信息可以提升分割性能;對比實驗0和實驗2可以發現,F1值和交并比分別提升了1.81和3.23個百分點,驗證了AGDM模塊可以提升分割性能;對比實驗0和實驗3可以發現,F1值和交并比分別提升了2.24和3.67個百分點,驗證了兩個改進部分的結合可有效提升分割性能。

表4 消融實驗結果對比Table 4 Comparison of ablation experiment results %
通過在編碼器的Transformer中引入q、k、v位置信息,模型能夠更好地關注裂縫的形狀,從而提高了分割裂縫的準確性。同時,本文設計的AGDM模塊有效地融合了淺層特征和深層特征,進一步提升了模型在分割裂縫中的精度。綜上所述,兩個改進部分對提升模型的路面裂縫分割性能方面起到了積極作用,并且兩者的結合達到了更好的效果。
本文提出一種基于位置信息和注意力的PA-TransUNet模型,旨在解決路面裂縫在背景復雜、陰影遮擋等干擾因素下分割不完整的問題。由卷積神經網絡和Transformer混合的編碼器對全局特征提取不充分,在Transformer的自注意力機制中引入位置信息,實現了模型對裂縫形狀信息和空間信息的充分提取,在特征提取部分確保局部信息和全局信息的有效結合提升了分割的完整性。考慮到采用直接拼接的編碼模塊的特征融合能力弱,設計AGDM模塊,增強了深層特征和淺層特征的融合能力,突出裂縫特征并抑制不相關特征,從而提高了裂縫分割的準確性。在CFD、Cracktree200公開數據集以及UAV Cracks自制數據集上的實驗結果表明,PA-TransUNet模型取得了較好的裂縫分割效果,可應用于實際工程任務。由于本文通過Transformer提取全局信息,造成模型的計算量較大和復雜度較高,因此后續將考慮采用輕量化的Transformer結構進一步改進PA-TransUNet模型。