?

基于多尺度全卷積與CRF的路面裂縫檢測算法

2021-07-29 09:51張爍瑜
燕山大學學報 2021年4期
關鍵詞:空洞尺度卷積

王 丹,李 琦,*,梁 棟,張爍瑜

(1.河北工業大學電子信息工程學院,天津300401;2.河北工業大學土木與交通學院,天津300401)

0 引言

公路是我國道路交通網中至關重要的構成部分,良好的道路狀態是保證公路交通安全的首要條件,如何更有效地規避道路安全威脅成為首要問題。其中路面裂縫就是威脅道路安全的主要因素之一,準確快速獲取路面損壞信息已成為道路養護首要任務[1]。目前實際路面裂縫檢測主要依靠人工肉眼識別,這種肉眼檢測方法具有很多弊端:耗費大量資源與人力成本;效率低危險系數大;檢測結果受人為影響,容易發生漏檢誤檢等[2]。因此,借助技術手段對公路路面裂縫實現快速高效準確的檢測具有較大的實際需求。

現階段路面裂縫檢測算法主要分為兩類,第一類是傳統的基于圖像處理的裂縫檢測方法,首先需通過圖像背景差[3]或細節增強法[4]對圖像進行預處理,然后借助邊緣檢測[5]、多尺度分析[6]、多特征融合[7]等方法對路面圖像進行分割,得到路面裂縫區域,但受道路上的多種噪聲干擾較大。另一類基于深度學習的路面裂縫檢測算法在應對路面噪聲方面表現良好,它主要使用卷積神經網絡(CNN)[8]進行裂縫塊狀區域分類。文獻[9]提出了一種自適應增強卷積神經網絡,通過增加殘差反向傳播層和自適應增強模塊提高路面裂縫的檢測精度。文獻[10]建立了3個路面裂縫識別模型,可有效檢測出病害類別,并將結果傳遞給下一模型進行特征提取,大幅度提高路面裂縫檢測效率。文獻[11]對不同尺度圖像子塊的中間層特征編碼,并將所獲取的局部特征與淺層的全局特征融合,以描述圖像多尺度特征。文獻[12]利用改進Otsu法解決了分割裂縫信息時對過小信息不敏感以及受背景光照影響較大的問題。

由于基于CNN的路面裂縫檢測算法無法做到預測結果與像素的一一對應,近年來,基于全卷積神經網絡的語義分割成為主要發展趨勢。LONG等[13]提出的全卷積神經網絡(FCN)為路面裂縫進行像素尺度的圖像分割帶來了較大的進展,成為該領域較為先進的方法。文獻[14]在其基礎上利用4倍上采樣的全卷積神經網絡對圖像做處理,融合了更多的細節信息,但4倍上采樣層大大地增加了算法迭代時間和網絡結構復雜度。文獻[15]利用不同尺寸的池化層進行多尺度特征識別來獲取多層特征,解決訓練模型匹配關系錯誤并且無視小物體的問題。BADRINARAYANAN等[16]通過編碼網絡、解碼網絡以及一個像素級別的分類層代替FCN編解碼器,做到解碼器低分辨率特征映射放大特征圖,但以犧牲分割性能為代價提高了對占用內存空間的壓縮。YU等[17]在原算法基礎上采用空洞卷積與FCN結合擴大感受野,一定程度上融合了更大尺度信息而不損失分辨率。然而,目前的路面裂縫檢測算法沒有充分考慮到全局特征信息,損失了大量圖像細節。

針對上述問題,為了探尋準確率更高的路面裂縫檢測算法,本文提出了一種更為精確的多尺度全卷積與條件隨機場(CRF)結合的方法對路面裂縫檢測展開研究。通過對比性能指標發現,相較于經典的全卷積網絡,改進后的算法分割效果有顯著提高。

1 算法框架

基于VGGNet優異的特征提取能力,本文算法采用以VGG-16為主體框架的FCN-8s網絡,并針對提高網絡模型檢測準確性進行改進。改進算法步驟為:

1) 將VGG-16的池化層pool3、pool4的strides設置為[1,1,1,1],padding設置為SAME,使圖像特征信息不因池化層影響而損失,又可保留池化整合的特性。

2) 利用空洞卷積構建多尺度模塊,并聯三條空洞率分別為1、2、5的空洞卷積通道,將VGG-16的卷積層conv5的輸出特征圖作為該模塊的輸入,并將三條通道得到的特征信息進行融合。

3) 增加BN層和PReLU層,刪除FCN-8s原有的dropout層,防止過擬合現象并進行特征歸一化。

4) 對卷積層輸出結果進行反卷積操作,再與pool4節點進行跳躍連接和特征融合。通過選擇不同步長的反卷積層對融合結果進行二次反卷積,并與pool3節點進行跳躍連接,以修正層級迭代帶來的特征消失現象。

5) 將CRF層與多尺度全卷積網絡進行端到端的連接,通過SoftMax層做歸一化處理,計算出損失函數并不斷迭代,實現網絡的全局感知。

算法模型結構如圖1所示。為了更清晰地展示本文所提出的網絡結構,在圖1中省略了VGG-16框架的部分主體結構。

圖1 本算法模型結構圖Fig.1 Structural diagram of the algorithm model

2 FCN網絡改進算法

2.1 具有跳躍連接結構的全卷積神經網絡

在CNN算法中,通常由全連接層起到分類器作用,但由于全連接層將輸入特征展開為一維向量,無法將分類結果與像素一一對應,損失了輸入的空間信息。

本文采用了以VGG-16為主體框架的FCN算法,將全連接層替換為卷積層,構成全卷積神經網絡。采用跳躍連接結構將淺層網絡特征與深層網絡特征融合,利用反卷積層[18]對特征融合結果進行上采樣,恢復特征圖分辨率。這是由于在網絡迭代過程中,較深層的感受野變大,造成細節特征丟失現象,而較淺層的感受野較小,具有更多細節信息。深層特征與淺層特征的融合可提高網絡模型的細節捕獲能力,有利于共享中間特征。

根據反卷積層位置,可將FCN劃分為FCN-32s,FCN-16s,FCN-8s三種模型,模型結構如圖2所示。本文算法采用FCN-8s模型。

圖2 經典FCN模型結構圖Fig.2 Structural diagram of classical FCN model

2.2 具有多尺度結構的空洞卷積2.2.1 標準空洞卷積

FCN卷積尺寸的增加使感受野變大,但帶來參數計算量的增多。Chen[19]提出了空洞卷積結構,在擴大感受野的同時避免了額外參數計算量的增加。同時,空洞卷積對池化層的替代,有效地減少池化層帶來的特征信息損失,保留圖像細節。

空洞卷積利用空洞率r控制輸出特征圖分辨率大小,對輸出特征圖y[m,n],空洞卷積過程定義如下:

(1)

式中,x[m,n]為輸入特征圖;w[i,j]為空洞濾波器;m與n分別為特征圖像素的長和寬;i與j分別為卷積核的長和寬??斩绰蕆決定卷積核的采樣間隔,當r≥1,表示卷積核之間引入r-1個空洞,當r=1,空洞卷積為正常卷積??斩淳矸e結構如圖3所示。

圖3 空洞卷積結構Fig.3 Dilated convolution structure

如圖3所示,分別為卷積核大小為3×3,空洞率為1、2、4的空洞卷積。當空洞率為r,卷積核大小為k×k時,空洞卷積的感受野擴大為

k+(k+1)(r-1),

(2)

使用stride為1的普通卷積,當卷積層數為Μlayer,感受野大小為

(k-1)×Μlayer+1。

(3)

相比之下,空洞卷積可有效地增大感受野。在圖3中,當卷積層數為1時,空洞卷積將普通卷積的感受野由3擴大為7和15,有效地減少了參數計算量。

2.2.2改進多尺度空洞卷積

路面裂縫識別算法多采用單尺度網絡結構進行特征提取,忽略了多尺度裂縫特征的感知,造成細小裂縫特征丟失等問題。若再對細小裂縫特征進行重復獲取會導致結構冗余[20]。為解決這一問題,本文算法提出利用空洞卷積構建多尺度模塊,該模塊共包括3條并行通道。

3條通道的空洞率選擇應滿足彼此間不具有大于1的公約數,則該卷積結構可以避免損失信息的連續性,且需滿足

Mi=max[Mi+1+2ri,
Mi+1-2(Mi+1-ri),r],

(4)

式中,ri為第i層的空洞率;Mi為第i層的最大空洞率。當共有n層時,Mn=rn。當卷積核大小為k×k時,要求M2≤k,則該空洞率下的空洞卷積核可以覆蓋圖像所有空洞[21]。

經多次實驗,當空洞率r分別為1、2、5時,網絡模型對路面裂縫的學習效果最好,故采用空洞率r分別為1、2、5的三層空洞卷積層,卷積核大小均為3×3。每個尺度為一個獨立分支,分別感知不同尺度感受野的信息。然后,將3個空洞卷積的信息進行融合,并傳遞給下一模塊。

一方面,不同的空洞率可控制多尺度模塊學習不同尺度的特征,既保留了原有特征信息,又融合了多個尺度的特征信息,解決了模型對細小裂縫信息不敏感的問題。另一方面,并行的多尺度模塊避免了卷積層過多帶來的結構冗余,減少了參數計算量。多尺度空洞卷積結構如圖4所示。

圖4 多尺度空洞卷積結構Fig.4 Multiscale dilated convolution structure

2.3 條件隨機場

由于SoftMax層中的交叉熵損失函數反映的是每一個像素損失值的和,具有不連續性,并不能充分考慮相鄰像素之間的空間一致性。

為了克服SoftMax層的局限性,本文算法將CRF與FCN進行端到端連接,使FCN可有效提取全局信息。這是由于CRF充分考慮到相鄰像素標簽間的上下文聯系,能有效地增強模型的邊緣約束能力,讓圖像在邊界處進行分割,避免標簽間獨立決策導致的準確率限制。

CRF的能量函數[22]為

(5)

式中,i、j為像素點;xi、xj為像素i、j對應的標簽值。式中第一項為一元勢函數,描述前端FCN網絡的輸出,當P(xi)為像素i的標簽分配概率時,

ψi(xi)=-logP(xi),

(6)

式中第二項為二元勢函數,描述像素間的空間一致性,表示當i≠j時,鄰近的像素點i、j的標簽xi、xj之間的相關關系以及觀測值對其影響,可理解為當觀測值接近,xi和xj屬于同一標簽的概率較大,反之則較小。二元勢函數可用如下公式計算:

(7)

在運算過程中,CRF首先確定模型對像素的預測值,再確定像素值,即該像素的實際類別。接著,對相鄰兩像素之間的實際類別和像素預測值進行編碼,求出依賴關系勢能值。當相鄰像素間的實際類別相同時,其依賴關系勢能較高,由于CRF是完全連接的,所以即使是路徑很遠的像素間也可共享信息。最后,利用SoftMax層歸一化[23]輸出結果:

(8)

式中,Zi為歸一化因子。該式計算出每個類別的對應概率,輸出特征圖的預測值。

3 實驗結果分析

3.1 模型訓練

實驗模型搭載Tensorflow深度學習框架,基于Windows操作系統,硬件配置為Intel Core i5 8300H CPU、Nvidia 1050 Ti顯卡、8GB內存,軟件配置為CUDA 9.0、cuDNN 7.5.1,代碼均使用Python 3.5實現。

由于目前的開放數據集如ImageNet、COCO等缺乏路面裂縫數據,本實驗訓練所用數據集來自于自行采集并標注的1 006幅路面裂縫圖像,包括了不同光照、干擾、場景下的數據。為了獲得更多數據,通過旋轉、鏡像、隨機裁剪、添加椒鹽噪聲的方式進行數據增強,將其擴充為8 048幅。測試集為自行采集并標注的200幅路面裂縫圖像。均由Nikon D5200相機拍攝,并將圖像分辨率壓縮為320 pixel×320 pixel。

采集的部分圖像數據集如圖5所示。

圖5 部分圖像數據集Fig.5 Part of image data set

圖像共標注了2類標簽,人為地將裂縫處像素值標注為1,背景處像素值標注為0。加載了VGG-16網絡在ImageNet上的參數來初始化模型,減少模型訓練時間,并將網絡參數設置為:Batch size=2,Learning rate=10-6,Max iteration=105。

3.2 結果分析

實驗針對多尺度FCN-8s結合CRF的算法對路面裂縫識別進行研究,在所有訓練參數相同,迭代次數均為105次的基礎上,對8 048幅路面裂縫數據集進行訓練。在訓練過程中,本文算法經迭代得到的訓練集和驗證集損失函數曲線如圖6所示。其中:縱坐標為損失值,橫坐標為迭代次數??梢钥闯?,在模型訓練迭代初期,訓練集與測試集的損失函數較大,下降速度較快,此時的訓練結果不夠真實。經過不斷迭代,損失函數下降趨勢逐漸平緩,當迭代次數為40 000次時接近收斂,該情況下模型對于各類別之間的判定接近于期望結果。

圖6 迭代過程中損失函數變化曲線Fig.6 Loss function curve in iteration process

為了更直觀地展示算法檢測效果,通過對比分析經典算法FCN-16s、FCN-8s和本文多尺度FCN算法、本文多尺度FCN結合CRF算法的性能,利用測試集中幾種路面裂縫圖片,對比了算法實際的圖像分割效果,如圖7所示。

通過對比各算法產生的路面裂縫識別效果,由圖7(c)可以看出,經典的FCN-16s算法雖然融合了Pool4層,再進行16倍上采樣,將深層次特征與淺層次特征進行初步融合,但結果較為平滑,對裂縫形狀不夠敏感,只能得到裂縫信息的大致輪廓;由圖7(d)可以看出,經典的FCN-8s算法依次融合了Pool4層和Pool3層,有效地提升了分類效果,但是仍然損失很多細節特征,對更細小的信息無法準確識別。

由圖7(e)可以看出,本文多尺度FCN算法有效地避免了池化層帶來的特征損失現象,可同時感知不同尺度大小的裂縫信息,與單尺度網絡相比,減少了分割效果的平滑性和模糊性,檢測出上述網絡中未感知到的細小裂縫,同時避免了非裂縫信息的干擾,不受路面背景中的污漬、凹坑的影響,具有較強的魯棒性;由圖7(f)可以看出,本文多尺度FCN結合CRF的算法與標簽圖像的細節最相似,具有良好的邊緣約束能力,使圖像在細小裂縫的邊界處進行分割,具有更多的細節信息,表現出良好的分割性能。

圖7 幾種算法圖像分割效果對比Fig.7 Comparison of image segmentation effects of several algorithms

3.3 性能指標

路面裂縫分割問題可等效為像素的分類問題,為了評估本文算法的性能,通過分析每個像素映射到標簽的分類結果,對經典算法FCN-16s、FCN-8s和本文算法多尺度FCN-8s、多尺度FCN-8s與CRF結合算法分別計算了其性能指標。

為了更好地描述性能指標的意義,引入以下4種性能指標的度量標準。True Positive(TP)表示當像素的標簽值為1時預測值也為1的情況,False Positive(FP)表示當像素標簽值為0時預測值為1的情況,False Negative(FN)表示當像素的標簽值為1時預測值為0的情況,True Negative(TN)表示當像素標簽值為0時預測值也為0的情況。性能指標的度量標準如表1所示。

表1 性能指標的度量標準Tab.1 Measure standard of performance indicators

利用NTP、NFP、NFN、NTN分別表示TP、FP、FN、TN情況下的像素個數,并用其計算性能指標交并比(IOU)、平均準確率(Mean-Accuracy)、查準率(Precision)、召回率(Recall),根據指標數據評估本文算法的性能。

3.3.1交并比

交并比指預測值與標記值的交疊率,即被預測正確的路面裂縫像素占其他所有像素的比例,是兩個標簽集合的交集與并集的比值,可以表示為

(9)

它反映了模型對判斷目標的捕獲程度和精確程度,是語義分割、目標檢測領域最常用的指標。交并比的值越大,分割結果越好,細節也就越多。如表2所示為4種算法在不同迭代次數下的交并比的值。

表2 不同迭代次數下的交并比Tab.2 IOU with different iterations

3.3.2平均準確度

準確度為預測值正確的像素占所有像素的比值,可以表示為

(10)

平均準確度分別計算每個類內被正確分類的路面裂縫像素比例,再求平均值,是準確度的一種提升,可以表示為

(11)

式中,k為標簽類別的數量;Ai為第i類的平均準確度。如表3所示為算法在不同迭代次數下的平均準確度的值。

表3 不同迭代次數下的平均準確度Tab.3 Mean accuracy with different iterations

3.3.3查準率

查準率表示預測值為1且真實值也為1的像素在預測值為1的所有像素中所占的比例,即預測正確的路面裂縫像素占所有被預測為路面裂縫的像素的比例,可以表示為

(12)

表4所示為4種算法在不同迭代次數下的查準率的值。

表4 不同迭代次數下的查準率Tab.4 Precision with different iterations

3.3.4召回率

召回率也稱為查全率,表示預測值為1且標簽值也為1的像素與標簽值為1的所有樣本像素的比值,即在所有標簽值應為路面裂縫的像素中,被預測為路面裂縫的像素所占的比例??梢员硎緸?/p>

(13)

表5所示為4種算法在不同迭代次數下的召回率的值。

表5 不同迭代次數下的召回率Tab.5 Recall with different iterations

從表5中數據可以看出,在模型迭代105次時,本文多尺度FCN算法的IOU較經典FCN-8s提升了0.96%,平均準確度提升了1.11%,查準率提升了0.69%,召回率提升了1.24%。本文多尺度FCN結合CRF算法與未添加CRF之前的IOU相比提升了1.47%,平均準確度提升了2.71%,查準率提升了2.2%,召回率提升了2.28%。

可以看出本文算法在準確性、對細節的敏感性上均優于傳統FCN算法,可有效地提升圖像分割的準確性,減少誤判漏判情況,性能更優。

4 結語

針對道路養護工作中路面裂縫難以精確定位的需求,提出了一種利用條件隨機場結構結合全局特征的多尺度全卷積神經網絡路面裂縫檢測算法。相較于經典算法主要做了以下三方面的改進:

1)將FCN-8s的反卷積層跳躍結構應用于路面裂縫檢測中,并融合淺層特征信息擴充圖像細節。相比傳統卷積神經網絡,此方法可提高模型檢測準確度。

2)移除FCN的部分池化層,避免特征損失,提高路面裂縫檢測準確率。并提出一種空洞率分別為1、2、5的三條空洞卷積支路并行模塊。其中,不同的空洞率可實現對較大裂縫和較小裂縫的多尺度特征感知,彌補了層級迭代帶來的細節損失,提高了對不同尺度的裂縫特征的敏感度??斩淳矸e可減少前述池化層移除帶來的參數計算量,提高訓練速度。最終實現準確率提高、模型訓練時間減少。

3)設計了一種FCN與CRF端到端連接的層級結構,利用CRF與SoftMax函數結合的方式計算損失函數。充分考慮到相似像素之間標簽相同的可能性,有效融合了全局特征,使網絡在持續迭代中不斷優化訓練結果,實現了將分類結果與像素一一對應。

通過將FCN-16s、FCN-8s以及本文改進算法模型性能指標做對比,在迭代十萬次后,本文多尺度FCN結合CRF算法的交并比可達到80.3%,平均準確度為96.9%,查準率為69.7%,召回率可達到91.7%,均高于經典網絡。該算法較經典FCN算法的路面裂縫識別精確度有顯著提高,可以滿足實際裂縫識別任務的需求。

猜你喜歡
空洞尺度卷積
基于全卷積神經網絡的豬背膘厚快速準確測定
環境史衰敗論敘事的正誤及其評判尺度
番茄出現空洞果的原因及防治措施
一種基于卷積神經網絡的地磁基準圖構建方法
基于3D-Winograd的快速卷積算法設計及FPGA實現
一種并行不對稱空洞卷積模塊①
如何避免想象作文空洞無“精神”
空洞的眼神
以長時間尺度看世界
9
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合