游江川
(昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650500)
裂縫是反映路面質(zhì)量的重要指標(biāo)。裂縫的形成會加速道路的老化,影響路基的強度和穩(wěn)定性。如果裂縫不能得到及時維護,就會產(chǎn)生更嚴(yán)重的缺陷,甚至影響交通安全,造成人員傷亡或材料浪費。在針對路面裂縫的檢測中,傳統(tǒng)的人工檢測方法存在檢測效率低、影響正常交通、耗時且不安全等問題[1],因此自動化裂縫檢測方法已成為研究的重點。
隨著圖像處理技術(shù)的發(fā)展,研究人員提出了一系列路面裂縫的自動檢測方法。文獻[2]提出了一種基于直方圖和大津閾值法的裂縫圖像分割方法。該方法將輸入圖像分成4 個大小相同的子圖像,然后對每個子圖像進行裂縫搜索,最后將子圖像重新組合成預(yù)測圖像。這種無監(jiān)督學(xué)習(xí)方法適用于低信噪比圖像下瀝青路面裂縫的粗略檢測。文獻[3]結(jié)合二維經(jīng)驗?zāi)B(tài)分解(BEMD)和Sobel 邊緣檢測器用于路面裂縫檢測。首先,使用BEDM 對圖像進行過濾以去除噪聲,然后使用Sobel 邊緣檢測器對剩余圖像進行分析,但是邊緣檢測容易受到噪聲的影響。文獻[4]使用連續(xù)小波變換在路面圖像中進行自動裂縫檢測,但基于小波的裂縫圖像處理方法不適用于具有大量裂縫的圖像。文獻[5]提出了一種基于紋理分析和形狀描述的裂縫檢測方法。該方法使用形狀描述來區(qū)分不規(guī)則裂縫和不均勻的亮度特征,最后使用SVM 分類器輸出預(yù)測結(jié)果。與邊緣檢測相比,該方法提高了復(fù)雜背景下裂縫檢測的準(zhǔn)確率。文獻[6]使用機器學(xué)習(xí)方法對路面裂縫進行分類,但路面裂縫的分類精度僅為85%左右,與實際工程應(yīng)用仍有差距。文獻[7]基于機器學(xué)習(xí)算法構(gòu)建了適用于瀝青路面裂縫檢測和分類任務(wù)的模型。該模型最高分類準(zhǔn)確率達到87.50%,可用于輔助專業(yè)人士評估路況,但基于圖像處理技術(shù)的裂縫檢測方法對裂縫圖像中的噪聲敏感。當(dāng)應(yīng)用于實際任務(wù)時,由于圖像的變化、裂縫背景的復(fù)雜性、裂縫的多樣性以及光照的不均勻性,此方法的性能并不是很理想。路面裂縫的自動檢測對于研究人員來說仍然是一項具有挑戰(zhàn)性的任務(wù)。為了提升路面裂縫的檢測效果,本文在原始Deeplab V3+網(wǎng)絡(luò)[8]的基礎(chǔ)上將主干網(wǎng)絡(luò)替換成resnet-50 網(wǎng)絡(luò),并對空洞空間卷積池化金字塔模塊(Atrous Spatial Pyramid Pooling,ASPP)進行了級聯(lián)操作。本文通過在CRACK500 數(shù)據(jù)集上與原始Deeplab V3+網(wǎng)絡(luò)進行檢測結(jié)果對比,證明了本文改進方法的優(yōu)越性及有效性。
Deeplab V3+深度卷積神經(jīng)網(wǎng)使用Xception 作為主干網(wǎng)絡(luò),并對它進行了調(diào)整以更適合語義分割任務(wù):加深Xception 的深度,原來重復(fù)了8 遍卷積的Middle Flow 模塊,在Deeplab V3+網(wǎng)絡(luò)中重復(fù)了16 遍卷積以更適合于語義分割I(lǐng)mageNet-1K 數(shù)據(jù)集;所有的最大池化步驟采用步長為2 的深度可分離卷積代替,這不僅便于隨時替換為空洞卷積,還能在維持分割結(jié)果表現(xiàn)下降低模型的計算復(fù)雜度;并且,在深度可分離卷積后面加入BN 層和ReLu 激活函數(shù),這能防止梯度消失并加快網(wǎng)絡(luò)收斂速度。
輸入圖片經(jīng)過主干深度卷積神經(jīng)網(wǎng)絡(luò)之后的結(jié)果分為兩部分,一部分經(jīng)過1×1 卷積降低通道后傳入解碼器結(jié)構(gòu),另一部分經(jīng)過并行的空洞卷積,分別用不同rate 的空洞卷積進行特征提取并合并,再進行1×1 卷積壓縮特征。在之前的Deeplab V3網(wǎng)絡(luò)中,編碼器之后就直接使用16 倍的雙線性插值恢復(fù)原圖像大小,這會使得物體邊緣部分的分類出現(xiàn)問題,所以Deeplab V3+借用了類似U-net[9]的思想,將之前主干網(wǎng)絡(luò)輸出經(jīng)過并行空洞卷積并壓縮后的特征圖上采樣4 倍與主干網(wǎng)絡(luò)中的低層特征進行拼接用于恢復(fù)邊緣信息,然后利用3×3 卷積對合并后的總特征進行融合,用4 倍的雙線性插值上采樣,最后得到分割結(jié)果。Deeplab V3+網(wǎng)絡(luò)最大的特點就是引入了空洞卷積,即跨像素地提取特征點,這能在不損失信息的情況下,加大感受野,讓每個卷積輸出都包含較大范圍的信息,使得任意大小的特征圖利用多尺度特征提取都能夠轉(zhuǎn)換成固定大小的特征向量。
Deeplab V3+算法的損失函數(shù)是逐像素的交叉熵?fù)p失函數(shù),以下是Softmax 的輸出公式:
式中:f(zc)為式(1)的f(zk),是Softmax 的輸出值,表示像素屬于類別yc的概率,yc是類別c的損失權(quán)重。
原始Deeplab V3+網(wǎng)絡(luò)對于過于細(xì)小的路面裂縫檢測率還是較低,本文對原始Deeplab V3+網(wǎng)絡(luò)進行改進。首先,對于主干網(wǎng)絡(luò),將Xception 網(wǎng)絡(luò)替換成resnet-50 網(wǎng)絡(luò),這能在一定程度上提升路面裂縫分割的準(zhǔn)確性。其次,將原本Encoder 模塊的ASPP 結(jié)構(gòu)改進為級聯(lián)的ASPP 結(jié)構(gòu),以提高空洞卷積的感受野和特征圖的信息利用率。
原始Deeplab V3+網(wǎng)絡(luò)的主干網(wǎng)絡(luò)雖然能較好地對通用數(shù)據(jù)集進行語義分割,但對于本文用到的CRACK500 數(shù)據(jù)集來說效果還有待提升。本文利用resnet-50 網(wǎng)絡(luò)替換了原始的Xception 主干網(wǎng)絡(luò),發(fā)現(xiàn)對于CRACK500 數(shù)據(jù)集的路面裂縫檢測結(jié)果有較大的提升,證明了改進的有效性??斩淳矸e(dilated convolution)[10]廣泛應(yīng)用于語義分割和目標(biāo)檢測等任務(wù)。通過設(shè)置不同的空洞率(dilation rate)獲得不同的感受野,既獲得了多尺度的信息,又不影響特征圖的尺寸。但是隨著空洞率的增加,網(wǎng)格狀的卷積核會造成信息越發(fā)不連續(xù),相互之間依賴性缺失,這對小目標(biāo)的檢測影響較大,這被稱為網(wǎng)格效應(yīng)。同時,由于空洞卷積的采樣輸入信號稀疏,遠距離獲取的信息沒有相關(guān)性,會影響分類的結(jié)果。本文通過對ASPP 模塊進行級聯(lián)操作,有效地解決了上述問題,從而進一步提升了路面裂縫的檢測結(jié)果。
本文采用CRACK500 數(shù)據(jù)集作為實驗數(shù)據(jù)集[11-12],其中包括3 792 副圖像作為訓(xùn)練集,696副圖像作為驗證集,2 248 副圖像作為測試集。實驗環(huán)境如下:CPU 為Inter(R) Core i9-10900KF CPU @ 3.70 GHz,顯卡為NVIDIA Geforce GTX 1080 Ti,內(nèi)存32 GB,操作系統(tǒng)為Ubuntu20.04.3LTS,編譯器為Pycharm,編程語言為Python,軟件環(huán)境為CUDA10.0,Cudnn10.0,采 用Pytorch1.2.0 深 度 學(xué)習(xí)框架。訓(xùn)練時采用Adam[13]作為優(yōu)化器,初始學(xué)習(xí)率設(shè)為0.000 1,批大?。╞atch size)設(shè)為2,訓(xùn)練100 個epoch。
本文采用平均像素精度(Mean Pixel Accuracy,MPA)和平均交并比(Mean Intersection over Union,MIoU)作為精度評價標(biāo)準(zhǔn)[14-15]。MPA 是指分別計算每個類別分類正確的像素數(shù)占所有預(yù)測為該類別像素數(shù)比例的平均值;將標(biāo)簽圖像和預(yù)測圖象看成兩個集合,計算兩個集合的交集和并集的比值,MIoU 即計算所有類的比值后取平均,MPA 和MIoU 的計算公式如下:
式中:n+1 為像素類別數(shù)量,在本文路面裂縫分割的任務(wù)中,n=1,共有路面裂縫和背景2 個類別;pij表示屬于第i類卻被分到第j類的像素數(shù)量;pii代表正確分類的像素數(shù)量。
本文在CRACK500 數(shù)據(jù)集上與原始Deeplab V3+網(wǎng)絡(luò)進行對比實驗,評價指標(biāo)MIoU 和MPA 的對比結(jié)果如表1 所示。從表1 可以看出,本文改進后的Deeplab V3+網(wǎng)絡(luò)對于CRACK500 數(shù)據(jù)集的實驗結(jié)果的MIoU 和MPA 分別比原始Deeplab V3+網(wǎng)絡(luò)高2.71%和3.96%,由此可證明本文對Deeplab V3+網(wǎng)絡(luò)改進的可行性。
表1 裂縫檢測結(jié)果對比
裂縫檢測實驗結(jié)果中,三幅示例圖的檢測結(jié)果分別如圖1、圖2、圖3 所示。對比可知,本文改進的Deeplab V3+網(wǎng)絡(luò)得到的路面裂縫檢測結(jié)果進一步避免了噪聲的干擾,同時提升了路面裂縫的檢測準(zhǔn)確度,體現(xiàn)了本文改進算法的優(yōu)越性及可行性。
圖1 示例一的檢測結(jié)果
圖2 示例二的檢測結(jié)果
圖3 示例三的檢測結(jié)果
本文提出了一種基于改進Deeplab V3+網(wǎng)絡(luò)的路面裂縫檢測方法。本文在原始Deeplab V3+網(wǎng)絡(luò)的基礎(chǔ)上將主干網(wǎng)絡(luò)替換成resnet-50 網(wǎng)絡(luò),并對ASPP 模塊進行了級聯(lián)操作。對比實驗結(jié)果可證明,本文的方法比原始Deeplab V3+網(wǎng)絡(luò)在CRACK500數(shù)據(jù)集上有更好的裂縫檢測效果,能進一步避免路面噪聲的影響,并進一步提升路面裂縫的檢測效果。本文的方法還有進一步提升的空間,在未來的研究中將在路面裂縫檢測精度和檢測速度上進行更深入的研究。