陳涵深,姚明海,瞿心昱
基于U型全卷積神經(jīng)網(wǎng)絡(luò)的路面裂縫檢測(cè)
陳涵深1,2,姚明海1*,瞿心昱2
1浙江工業(yè)大學(xué)信息工程學(xué)院,浙江 杭州 310023;2浙江交通職業(yè)技術(shù)學(xué)院,浙江 杭州 311112
路面裂縫檢測(cè)是道路運(yùn)營(yíng)和維護(hù)的一項(xiàng)重要工作,由于裂縫沒(méi)有固定形狀而且紋理特征受光照影響大,基于圖像的精確裂縫檢測(cè)是一項(xiàng)巨大的挑戰(zhàn)。本文針對(duì)裂縫圖像的特點(diǎn),提出了一種U型結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)UCrackNet。首先在跳躍連接中加入Dropout層來(lái)提高網(wǎng)絡(luò)的泛化能力;其次,針對(duì)上采樣中容易產(chǎn)生邊緣輪廓失真的問(wèn)題,采用池化索引對(duì)圖像邊界特征進(jìn)行高保真恢復(fù);最后,為了更好地提取局部細(xì)節(jié)和全局上下文信息,采用不同擴(kuò)張系數(shù)的空洞卷積密集連接來(lái)實(shí)現(xiàn)感受野的均衡,同時(shí)嵌入多層輸出融合來(lái)進(jìn)一步提升模型的檢測(cè)精度。在公開(kāi)的道路裂縫數(shù)據(jù)集CrackTree206和AIMCrack上測(cè)試表明,該算法能有效地檢測(cè)出路面裂縫,并且具有一定的魯棒性。
裂縫檢測(cè);卷積神經(jīng)網(wǎng)絡(luò);UCrackNet;感受野
近年來(lái),隨著國(guó)民經(jīng)濟(jì)發(fā)展的日新月異,公路交通事業(yè)得到了快速的發(fā)展,截止2019年中旬,我國(guó)交通公路總里程數(shù)為484.65萬(wàn)公里[1],已躍居世界第一。公路日常養(yǎng)護(hù)問(wèn)題變得日益突出,及時(shí)發(fā)現(xiàn)和維護(hù)受損路面可以極大地節(jié)約公路養(yǎng)護(hù)成本,同時(shí),隨著我國(guó)全國(guó)機(jī)動(dòng)車(chē)保有量增加,因交通道路維護(hù)不及時(shí),交通路面的凹坑、坑井以及塌陷等異常情況會(huì)直接影響到交通效率和行車(chē)安全[2]。因此,為了更好地保障道路性能和安全,對(duì)路面缺陷進(jìn)行快速、準(zhǔn)確的分析和評(píng)估已經(jīng)成為當(dāng)務(wù)之急。
裂縫是一種最常見(jiàn)的路面缺陷類(lèi)型[3],基于視覺(jué)的自動(dòng)檢測(cè)裂縫已成為研究的熱點(diǎn)。目前基于視覺(jué)的裂縫檢測(cè)方法大致可分為傳統(tǒng)圖像處理方法和深度學(xué)習(xí)方法,其中傳統(tǒng)圖像處理方法主要通過(guò)分析裂縫的圖像特征[4-5],如紋理、邊緣和對(duì)比度等,通過(guò)人為地設(shè)計(jì)分割和提取的依據(jù),能夠在特定的數(shù)據(jù)集上取得良好的檢測(cè)效果。深度學(xué)習(xí)方法已經(jīng)在多個(gè)視覺(jué)應(yīng)用場(chǎng)合表現(xiàn)出卓越的性能,研究者對(duì)基于深度學(xué)習(xí)的圖像裂縫檢測(cè)也展開(kāi)了廣泛的研究,提出的方法根據(jù)任務(wù)類(lèi)型不同大致可分為三類(lèi):1) 圖像分類(lèi)方法[6-7],判斷采集的圖像中是否存在裂縫;2) 目標(biāo)檢測(cè)方法[8-9],定位裂縫在圖像的位置;3)像素級(jí)(pixel-level)預(yù)測(cè)方法[10-11],能夠?qū)D中的每一個(gè)像素都得到一個(gè)對(duì)應(yīng)的分類(lèi)結(jié)果。前兩種算法能夠在路面圖像中定位裂縫,但無(wú)法逐像素檢測(cè)裂縫,而像素級(jí)預(yù)測(cè)方法可以獲得裂縫的幾何特征,例如形狀、方向、長(zhǎng)度和寬度,這對(duì)于準(zhǔn)確評(píng)估路面狀況并做出路面維護(hù)決策至關(guān)重要。
在實(shí)際場(chǎng)景中,像素級(jí)的裂縫檢測(cè)和自然圖像的語(yǔ)義分割區(qū)別較大,主要體現(xiàn)在以下三點(diǎn):1) 對(duì)比常見(jiàn)的語(yǔ)義分割圖像,裂縫沒(méi)有固定的形狀并且常常存在極端的長(zhǎng)寬比;2) 前景圖像和背景圖像的像素比極度不均衡;3) 目前公開(kāi)的數(shù)據(jù)集規(guī)模均較小,可訓(xùn)練的標(biāo)注圖像較為有限。因此,盡管一些語(yǔ)義分割模型在自然圖像的應(yīng)用場(chǎng)景下具有出色的整體性能,但應(yīng)用在裂縫檢測(cè)時(shí)效果并不一定好。比如目前比較流行的語(yǔ)義分割模型DeepLab v3+[12],在編碼器(encoder)下采樣4倍后,會(huì)有一個(gè)分支連接到解碼器(decoder)部分,而解碼器的輸出前會(huì)有一個(gè)直接4倍雙線性插值操作,即輸入到輸出有一個(gè)4倍下采樣和4倍上采樣操作。如果一個(gè)目標(biāo)物的長(zhǎng)度或者寬度小于4個(gè)像素,即便在特征提取的下采樣過(guò)程中保留了完整的細(xì)節(jié),直接4倍雙線性插值也是不能恢復(fù)小于4個(gè)像素的空間信息,而裂紋在圖像中的寬度有時(shí)會(huì)小于4個(gè)像素。因此,將DeepLab v3+直接應(yīng)用到裂縫檢測(cè),識(shí)別效果并不出色,但該網(wǎng)絡(luò)的一些設(shè)計(jì)思想,如多尺度信息的捕獲和融合,對(duì)裂縫檢測(cè)的網(wǎng)絡(luò)模型設(shè)計(jì)具有一定的參考價(jià)值。
本文主要關(guān)注基于U型卷積神經(jīng)網(wǎng)絡(luò)的模型設(shè)計(jì),對(duì)提高像素級(jí)裂縫檢測(cè)的性能展開(kāi)研究。由于路面狀況復(fù)雜,很難找到對(duì)所有不同路面均有效的特征提取方法,室外環(huán)境下的像素級(jí)裂縫檢測(cè)仍然是一個(gè)挑戰(zhàn)。為了使神經(jīng)網(wǎng)絡(luò)具備強(qiáng)大的特征表示能力,目前已經(jīng)提出了幾種多尺度和多層級(jí)特征提取的裂縫檢測(cè)方法[13-14],這些方法均使用特征金字塔模塊作為多尺度特征提取器,在多種分辨率條件下捕獲豐富的上下文信息。此外,Mei等人[15]使用密集連接(densely connected)的卷積神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)裂縫檢測(cè),并引入了像素之間連通性的損失函數(shù),以克服反卷積層輸出中存在的裂縫分散問(wèn)題。Fei等人[16]提出了一種用于3D瀝青路面裂縫檢測(cè)的CrackNet-V高效深度神經(jīng)網(wǎng)絡(luò),CrackNet-V建立在先前的CrackNet[17]工作基礎(chǔ)上,使用多個(gè)小卷積核(3×3)的卷積層來(lái)增加網(wǎng)絡(luò)結(jié)構(gòu)的深度,以此在不增加額外參數(shù)的基礎(chǔ)上提高準(zhǔn)確性和計(jì)算效率。因上述研究使用不同的裂縫數(shù)據(jù)集或者同數(shù)據(jù)集不同評(píng)估方法進(jìn)行實(shí)驗(yàn),故無(wú)法直接對(duì)比其實(shí)際效果。
本文借鑒了最新語(yǔ)義分割模型的設(shè)計(jì)思路,針對(duì)裂縫圖像的特點(diǎn),提出一種有效的基于U型全卷積神經(jīng)網(wǎng)絡(luò)的裂縫檢測(cè)模型,這里稱(chēng)為UCrackNet,用于挖掘更多有利于裂縫分割的特征信息,從而提高分割精度和泛化能力,所提出的方法具有以下優(yōu)點(diǎn):
1) 在模型中同時(shí)引入跳躍連接和池化索引,減少下采樣和上采樣過(guò)程中的特征丟失,從而改善邊緣輪廓的檢測(cè)效果;
2) 考慮裂縫沒(méi)有固定的形狀并且常常展現(xiàn)出極端的長(zhǎng)寬比,使用不同擴(kuò)張系數(shù)的空洞卷積密集連接來(lái)改善網(wǎng)絡(luò)的感受野,使其在檢測(cè)中既關(guān)注細(xì)節(jié)又能充分利用上下文信息;
3) 為了進(jìn)一步提升對(duì)不同尺度物體的分割魯棒性,在解碼器部分采用多層輸出融合技術(shù),該方法能更好的學(xué)習(xí)來(lái)自于不同層次的卷積特征信息。
基于深度學(xué)習(xí)的像素級(jí)裂縫檢測(cè)通常分為三步:1) 通過(guò)圖像傳感器獲取道路圖像,提取感興趣區(qū)域(region of interest,ROI),減少不相關(guān)物體的干擾;2) 圖像預(yù)處理,為了減輕檢測(cè)模型對(duì)計(jì)算資源的要求,使用滑動(dòng)窗口在ROI圖像截取圖像塊,然后在輸入分割模型之前,對(duì)其進(jìn)行簡(jiǎn)單的歸一化預(yù)處理,即把輸入圖像減去每個(gè)通道的均值,再除以128??紤]卷積神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的擬合能力,本文未使用對(duì)比度均衡、伽馬校正等圖像預(yù)增強(qiáng)技術(shù);3) 圖像分割,使用分割模型對(duì)圖像中的每一個(gè)像素都進(jìn)行一個(gè)對(duì)應(yīng)的分類(lèi)輸出,最終通過(guò)合并圖像塊的預(yù)測(cè)結(jié)果得到整個(gè)路面裂縫區(qū)域。由于前兩步驟比較簡(jiǎn)單,本文著重介紹第三步驟。
圖1 UCrackNet模型結(jié)構(gòu)圖
U-Net[18]是一種經(jīng)典的U型結(jié)構(gòu)全卷積神經(jīng)網(wǎng)絡(luò),在小樣本的眼底視網(wǎng)膜分割、細(xì)胞分割等應(yīng)用場(chǎng)景中獲得了非常優(yōu)秀的結(jié)果。本文借鑒了U-Net網(wǎng)絡(luò)的對(duì)稱(chēng)式設(shè)計(jì)思路,提出一種U型結(jié)構(gòu)的全卷積神經(jīng)網(wǎng)絡(luò)UCrackNet,全卷積神經(jīng)網(wǎng)絡(luò)由于沒(méi)有全連接層,能夠保留一定的上下文特征和空間信息。UCrackNet的模型結(jié)構(gòu)如圖1所示,它由編碼器、橋接單元(bridge block)和解碼器三部分組成。
考慮到VGG-16[19]在很多項(xiàng)任務(wù)上均比VGG-13展現(xiàn)出更好的性能,同時(shí)VGG-16相對(duì)于VGG-13具有更深的網(wǎng)絡(luò)深度和更強(qiáng)非線性擬合的能力,本文將VGG-16作為UCrackNet編碼器的基礎(chǔ)結(jié)構(gòu)(backbone)。U-Net橋接部分是由兩個(gè)1024通道3×3卷積組成,而本文使用的是多個(gè)密集連接的空洞卷積,具體介紹詳見(jiàn)2.4小節(jié)。模型的解碼器部分采用編碼器類(lèi)似結(jié)構(gòu)的對(duì)稱(chēng)設(shè)計(jì),其中VGG-16中的池化層更換成上采樣層,最終輸出像素級(jí)的預(yù)測(cè)結(jié)果。
UCrackNet也采用了U-Net結(jié)構(gòu)中跳躍連接方式(skip connection),在最大池化和反卷積之間引入直連方式,能夠把某些特征從編碼器中直接傳播到對(duì)應(yīng)的解碼器中,該方式不僅可保留來(lái)自編碼部分的上下文信息,而且引入多個(gè)路徑進(jìn)行反向傳播梯度,可減輕梯度消失的問(wèn)題。不同之處是在每層跳躍連接中加入一個(gè)參數(shù)為0.3的Dropout層來(lái)緩解網(wǎng)絡(luò)過(guò)擬合,達(dá)到提升網(wǎng)絡(luò)泛化能力的效果。
池化層可以實(shí)現(xiàn)平移的不變性但也導(dǎo)致細(xì)小的空
間位置偏移。UCrackNet模型中使用4個(gè)最大池化層,這會(huì)加劇特征圖中的空間位置信息丟失,導(dǎo)致在圖像分割時(shí)產(chǎn)生邊緣細(xì)節(jié)的損失。道路裂縫往往具有寬度窄、長(zhǎng)度長(zhǎng)等幾何特點(diǎn),邊緣位置信息的正確定位顯得更加重要。本文借鑒SegNet中提出的池化索引(pooling indices)思想[20],在裂縫檢測(cè)的下采樣過(guò)程中記錄每個(gè)池中最大特征值的位置,在上采樣時(shí)使用該位置索引對(duì)圖像特征進(jìn)行恢復(fù),得到一個(gè)稀疏特征圖,最后通過(guò)卷積層生成稠密特征圖。該方法具有以下優(yōu)點(diǎn):1) 能夠改善邊緣輪廓的檢測(cè)效果;2) 只需要增加少量參數(shù)(存儲(chǔ)池化索引)且該過(guò)程不需要訓(xùn)練。
其中:
考慮到裂縫長(zhǎng)寬不一,為了能更好地提取局部細(xì)節(jié)和全局上下文信息,要求模型同時(shí)具備大小不同的感受野[21]。使用池化(pooling)可以成倍增加特征點(diǎn)的感受野,但在下采樣過(guò)程中會(huì)降低中心特征圖的分辨率而可能丟失空間信息。針對(duì)該問(wèn)題,可以使用空洞卷積(atrous convolution)[22],它能夠在不損失分辨率和不增加計(jì)算量的情況下增大感受野,然而直接使用空洞卷積存在網(wǎng)格效應(yīng)(gridding effect)[23],也會(huì)產(chǎn)生臨近信息的丟失,影響信息的連續(xù)性。例如,使用大擴(kuò)張系數(shù)(dilation rate)的空洞卷積在卷積過(guò)程中會(huì)插入多個(gè)空洞來(lái)獲取大的感受野,這對(duì)于小的物體而言,可能會(huì)采集不到。因此如何均衡不同大小物體之間的關(guān)系,是設(shè)計(jì)空洞卷積網(wǎng)絡(luò)的關(guān)鍵。
圖3 混合空洞卷積的橋接單元
ASPP[22]在網(wǎng)絡(luò)解碼器中對(duì)于不同尺度使用不同大小的擴(kuò)張系數(shù)來(lái)獲取多尺度信息,每個(gè)尺度的特征提取是一個(gè)獨(dú)立的分支,在網(wǎng)絡(luò)最后把它們?nèi)诤掀饋?lái)再接一個(gè)卷積層輸出,這樣的設(shè)計(jì)可以有效避免在編碼器上冗余的信息獲取,而直接關(guān)注物體內(nèi)部之間的相關(guān)性。然而,ASPP使用了多個(gè)大擴(kuò)張系數(shù)(插入更多的零)的空洞卷積并聯(lián)組成,對(duì)裂縫檢測(cè)而言,ASSP獲得的多尺度視野仍然不夠密集。受DenseASPP[24]使用密集連接來(lái)覆蓋大范圍感受野的啟發(fā),在橋接單元加入不同擴(kuò)張系數(shù)的空洞卷積,并設(shè)計(jì)成密集連接來(lái)減少此類(lèi)問(wèn)題的影響。從網(wǎng)絡(luò)局部分解來(lái)看,整個(gè)網(wǎng)絡(luò)由擴(kuò)張系數(shù)分別為1、2、3、4的3×3卷積層串聯(lián)而成。其中擴(kuò)張系數(shù)為1的空洞卷積就是普通卷積,擴(kuò)張系數(shù)為2、3、4的空洞卷積會(huì)在相鄰兩個(gè)卷積核權(quán)值之間分別有1、2、3個(gè)空洞。最后在空洞卷積的末尾連接一個(gè)1×3卷積和3×1卷積的組合,來(lái)提高網(wǎng)絡(luò)的非線性擬合能力和減少輸出的通道數(shù),最終得到網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
根據(jù)式(4)和式(5),得到密集連接部分的感受野如表1所示,其中RF current和RF stacking分別代表當(dāng)前層感受野和堆疊后的感受野。
圖2 池化索引操作示意圖。左側(cè)是2×2的最大池化操作,右側(cè)是帶位置索引的2×2上采樣操作
從表1可以看出,密集連接部分的理論感受野尺寸已經(jīng)達(dá)到了21×21。擴(kuò)張系數(shù)之所以選擇(1,2,3,4)而不是(1,3,5,7)或者DenseASPP的(3,6,12,18,24)之類(lèi),是因?yàn)锳IMCrack[10]的圖像塊分辨率為192×192,通過(guò)UCrackNet編碼器處理后的特征圖大小為12×12。文獻(xiàn)[25]指出感受野的影響分布是近似于高斯分布,高斯分布從中間衰減得十分快,實(shí)際有效的感受野大小只是理論感受野的小部分,因此網(wǎng)絡(luò)的理論感受野應(yīng)大于特征圖的尺寸。(1,2,3,4)的組合能夠使空洞卷積之后的特征圖像像素點(diǎn)很好地覆蓋到整個(gè)橋接部分的輸入特征圖,而(1,3,5,7)或者(3,6,12,18,24)的組合會(huì)產(chǎn)生過(guò)大的感受野而引起特征細(xì)節(jié)的丟失。
目前大多數(shù)U型結(jié)構(gòu)的全卷積語(yǔ)義分割網(wǎng)絡(luò)(例如SegNet、DeepLab v3+),僅利用卷積網(wǎng)絡(luò)的最后一層作為輸出,在深層次的特征信息中確定淺層的細(xì)節(jié)信息,故容易造成高層特征信息的丟失。此外,裂縫圖像存在嚴(yán)重前景和背景像素量的不平衡,易出現(xiàn)梯度爆炸或消失的情況,從而使得網(wǎng)絡(luò)訓(xùn)練時(shí)收斂較慢甚至無(wú)法收斂。本文借鑒HED網(wǎng)絡(luò)架構(gòu)[26]思想,在解碼器的每一個(gè)單元(block)中都計(jì)算其損失函數(shù),該方式的優(yōu)勢(shì)是可以更好地學(xué)習(xí)來(lái)自不同層次的卷積特征信息。UCrackNet還將解碼部分所有層的特征信息進(jìn)行融合得到最終的特征,其深層次的特征比較粗糙,對(duì)于較大的目標(biāo)以及目標(biāo)的部分邊緣處可以得到較強(qiáng)的響應(yīng),而淺層的特征可以為深層特征補(bǔ)充充分的細(xì)節(jié)信息,同時(shí)每一個(gè)單元的感受野皆不相同,都被很好地集成到最終的特征表中。
多層輸出融合使用圖像金字塔策略如圖4所示。在解碼器每個(gè)Block的輸出連接了一個(gè)卷積核大小為1×1卷積來(lái)降低特征信息的通道數(shù),然后將所得到的概率映射使用反卷積恢復(fù)到原始尺寸。最后將這些概率映射進(jìn)行堆疊,通過(guò)1×1卷積得到最終的預(yù)測(cè)結(jié)果。鑒于精度與速度間平衡性的考慮,該部分的所有卷積和反卷積的通道數(shù)都設(shè)置成為1。
UCrackNet模型使用Python語(yǔ)言在基于Tensorflow的Keras深度學(xué)習(xí)框架上搭建,編寫(xiě)的程序在Ubuntu16.04操作系統(tǒng)運(yùn)行。硬件環(huán)境為Intel i5 8500 處理器,16 G DDR4內(nèi)存和一塊Nvidia GTX1080Ti 11 G顯卡。
本文選取兩個(gè)規(guī)模相對(duì)較大的道路裂縫數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試。
1) CrackTree206[27]:包含206張800 pixels×600 pixels的道路裂縫圖片,數(shù)據(jù)集中的裂縫較細(xì)并且存在遮擋和陰影干擾。本文隨機(jī)選取126張圖片為訓(xùn)練樣本,余下80張圖片為驗(yàn)證樣本。
2) AIMCrack[10]:由安裝在車(chē)輛內(nèi)部的行車(chē)記錄儀以透視圖方式(perspective view)拍攝的道路裂縫圖像。數(shù)據(jù)集由韓國(guó)市內(nèi)不同地點(diǎn)、不同時(shí)間段拍攝的527張1920 pixels×1080 pixels的彩色圖片組成,樣本干擾物多,多樣性強(qiáng),光照影響大,檢測(cè)難度相對(duì)較高。由于拍攝相機(jī)視角的原因,圖像中包含路面和路面上方的信息,而裂縫識(shí)別只需要關(guān)注路面信息,所以本文選用固定參數(shù)的感興趣區(qū)域(region of interest,ROI)方法對(duì)圖像進(jìn)行裁剪,以減少非道路信息的干擾。裁剪后的圖像分辨率為1920×384,并隨機(jī)劃分成327張訓(xùn)練樣本和200張驗(yàn)證樣本。
由于硬件資源的限制,將裂縫圖像按比例切割成多個(gè)圖像塊作為模型的訓(xùn)練集,同時(shí)為了增加訓(xùn)練樣本,采用間隔為1/2圖像塊寬度的交疊切割方法對(duì)訓(xùn)練集進(jìn)行擴(kuò)充,最終得到的訓(xùn)練樣本統(tǒng)計(jì)數(shù)據(jù)詳見(jiàn)表2。在訓(xùn)練時(shí),使用隨機(jī)對(duì)比度(±5%)、隨機(jī)亮度(±5%)和水平翻轉(zhuǎn)的圖像增強(qiáng)技術(shù)來(lái)避免網(wǎng)絡(luò)的過(guò)擬合,采用Adam優(yōu)化器[28],設(shè)定小批尺寸(mini-batch size)為12。在數(shù)據(jù)集AIMCrack中,初始學(xué)習(xí)率(learning rate)設(shè)置為0.001,每40個(gè)周期(epoch)減少1/3;對(duì)數(shù)據(jù)集CrackTree206,設(shè)置初始學(xué)習(xí)率為0.0005,每20周期減少1/3。
將基于像素點(diǎn)的精度(precision,)、召回率(recall,)和F1分?jǐn)?shù)(1),三個(gè)檢測(cè)領(lǐng)域常用度量方法作為裂縫預(yù)測(cè)結(jié)果的評(píng)價(jià)指標(biāo)。另外,裂縫檢測(cè)也可以被看作是一種二進(jìn)制的語(yǔ)義分割,從而可以使用語(yǔ)義分割的重疊度(intersection-over-union,IoU)來(lái)評(píng)價(jià)裂縫的檢測(cè)結(jié)果,不同的是因?yàn)榈缆穲D像中90%以上的像素都是背景(非裂縫),所以這里只計(jì)算前景(裂縫)的IoU。各項(xiàng)評(píng)價(jià)指標(biāo)定義如下:
表2 兩個(gè)裂縫數(shù)據(jù)集的訓(xùn)練樣本對(duì)比
為了分析各種改進(jìn)措施對(duì)算法檢測(cè)效果的影響,UCrackNet在AIMCrack數(shù)據(jù)集上進(jìn)行了消融實(shí)驗(yàn),這里的基線是指基于VGG-16、橋接單元通道數(shù)為512的U-Net模型。從表3可以看出,在跳躍連接中加入Dropout層對(duì)模型性能提升有幫助,同時(shí)增加池化索引可以將算法在驗(yàn)證集的IoU再提高1.7%。另外,使用感受野均衡比原算法在IoU上提升3.6%,驗(yàn)證了合理設(shè)計(jì)網(wǎng)絡(luò)感受野對(duì)模型設(shè)計(jì)的重要性,同時(shí)加入多層輸出融合模塊表現(xiàn)更好,對(duì)IoU和F1分別有3.8%、1.8%的提升。
為了驗(yàn)證本文方法的優(yōu)越性,在CrackTree206和AIMCrack數(shù)據(jù)集上與幾個(gè)主流的網(wǎng)絡(luò)模型展開(kāi)了對(duì)比實(shí)驗(yàn)。CrackForest[4]是采用傳統(tǒng)圖像處理方法來(lái)獲取裂紋特征,再使用結(jié)構(gòu)化隨機(jī)森林來(lái)實(shí)現(xiàn)分類(lèi)輸出的一種裂縫檢測(cè)算法。CrackForest的實(shí)驗(yàn)結(jié)果是由i5 8500處理器,16 G內(nèi)存的硬件環(huán)境和Matlab2016軟件環(huán)境中運(yùn)行得到。LinkNet[29]、DeepCrack[14]、U-Net和ResUNet[30]都是U型結(jié)構(gòu)的全卷積神經(jīng)網(wǎng)絡(luò),其中LinkNet編碼器部分是ResNet-18[31]網(wǎng)絡(luò),解碼器部分由輕量級(jí)的全卷積網(wǎng)絡(luò)組成;ResUNet是一種全殘差網(wǎng)絡(luò)設(shè)計(jì)的U-Net模型,為了速度和性能的均衡,該模型只使用了6個(gè)殘差學(xué)習(xí)單元和2個(gè)卷積層;DeepCrack是最近提出的基于SegNet基礎(chǔ)結(jié)構(gòu)的裂縫檢測(cè)模型,該模型融合編碼器和解碼器中各層的多尺度特征,取得了不錯(cuò)的檢測(cè)效果。
表3 UCrackNet消融實(shí)驗(yàn)的結(jié)果
表4 不同算法在數(shù)據(jù)集CrackTree206和AIMCrack上的結(jié)果對(duì)比
各種方法的定量對(duì)比結(jié)果見(jiàn)表4,本文算法在CrackTree206數(shù)據(jù)集的測(cè)試F1分?jǐn)?shù)達(dá)到81.2%,相比于DeepCrack和U-Net分別有3.7%和1.0%的提升,而在AIMCrack數(shù)據(jù)集上比DeepCrack和U-Net也分別有2.2%和3.1%的提升。從模型的運(yùn)行時(shí)間來(lái)看,本文提出的算法在單塊GTX1080Ti顯卡上能超過(guò)2 fps,盡管相比LinkNet、U-Net和ResUNet顯得劣勢(shì),但仍快于DeepCrack。因此,綜合考慮各類(lèi)方法的檢測(cè)效果與計(jì)算速度,UCrackNet更能滿(mǎn)足實(shí)際裂縫檢測(cè)的需求。
根據(jù)各種算法在兩種數(shù)據(jù)集上的檢測(cè)結(jié)果,給出了對(duì)應(yīng)的精度-召回率曲線(precision-recall curves)。通過(guò)選定不同閾值,以精度和召回率作為變量而繪制出的曲線如圖5。從圖5可以看出,本文的方法在不同的閾值設(shè)定下,精度和召回率上均優(yōu)于其他對(duì)比方法。
此外,分別給出了各種方法在兩個(gè)數(shù)據(jù)集上的輸出結(jié)果,詳見(jiàn)圖6和圖7,紅色框表示模型預(yù)測(cè)中產(chǎn)生的噪聲,綠色框表示一些細(xì)節(jié)的預(yù)測(cè)結(jié)果??梢钥闯觯珻rackForest只能提取圖像中的部分裂縫,不適用于復(fù)雜場(chǎng)景下的裂縫圖像分割,LinkNet和ResUNet在有干擾物影響的部位準(zhǔn)確率較低。DeepCrack在噪聲抑制上好于U-Net,但U-Net在裂縫細(xì)節(jié)方面要優(yōu)于DeepCrack,而本文提出的算法(圖6和圖7綠色框部位)相比LinkNet、ResUNet、U-Net和DeepCrack,在裂縫邊緣處,完整度上與真實(shí)更加接近,而且輸出噪聲更低。
圖5 不同算法在兩個(gè)數(shù)據(jù)集中的精度-召回率(P-R)曲線圖。(a) CrackTree206;(b) AIMCrack
圖6 CrackTree206數(shù)據(jù)集上的檢測(cè)結(jié)果對(duì)比
圖7 AIMCrack數(shù)據(jù)集上的檢測(cè)結(jié)果對(duì)比
圖8 復(fù)雜場(chǎng)景下的檢測(cè)結(jié)果對(duì)比
最后,本文還給出了復(fù)雜場(chǎng)景的預(yù)測(cè)結(jié)果對(duì)比,如圖8所示,紅色框表示誤檢區(qū)域,黃色框表示一些明顯的漏檢區(qū)域。樣本圖像選自AIMCrack測(cè)試集,存在路面灰度不均勻、裂縫深淺各異和雙黃線標(biāo)識(shí)干擾等情況。從圖中可以看出,LinkNet和ResUNet存在許多漏檢現(xiàn)象,未能正確識(shí)別出一些明顯裂縫;UNet會(huì)發(fā)生一定的誤檢,如圖中的紅色框所示,將一些非裂縫的像素預(yù)測(cè)成了裂縫;而DeepCrack在雙黃線部位不能識(shí)別出裂縫;相對(duì)而言,本文方法在檢測(cè)上效果更好,在淺層的裂縫處和道路標(biāo)識(shí)干擾下具有一定的魯棒性。當(dāng)然,本文方法也存在一定的局限性,從圖8的UCrackNet輸出結(jié)果中可以看到,在某些裂縫特征微弱的地方,也出現(xiàn)一些的漏檢。在后續(xù)的工作中,可以通過(guò)擴(kuò)大訓(xùn)練樣本數(shù)量來(lái)進(jìn)一步提升該方法的實(shí)際檢測(cè)效果。
根據(jù)裂縫圖像的特點(diǎn),結(jié)合最新的分割模型設(shè)計(jì)思想,提出了一種基于U型全卷積神經(jīng)網(wǎng)絡(luò)的裂縫檢測(cè)模型。通過(guò)在公開(kāi)數(shù)據(jù)集CrackTree206和AIMCrack上的測(cè)試,獲得了比目前主流模型更優(yōu)的結(jié)果。該方法也可通過(guò)適當(dāng)?shù)男薷膽?yīng)用于其他語(yǔ)義分割的場(chǎng)景,比如橋梁裂縫檢測(cè)、物體表面缺陷檢測(cè)。
現(xiàn)有的基于深度學(xué)習(xí)的裂縫檢測(cè)算法本質(zhì)都是通過(guò)神經(jīng)網(wǎng)絡(luò)的強(qiáng)大擬合能力來(lái)實(shí)現(xiàn)裂縫檢測(cè),但是這些方法并沒(méi)有考慮到裂縫的幾何約束,因此如何結(jié)合裂縫的幾何特征和卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力來(lái)實(shí)現(xiàn)更加精準(zhǔn)的裂縫檢測(cè),將作為今后的一個(gè)研究方向。
[1] http://www.zgjtb.com/2019-10/08/content_230254.htm.
[2] Schnebele E, Tanyu B F, Cervone G,. Review of remote sensing methodologies for pavement management and assessment[J]., 2015, 7(2): 7.
[3] Zhang D J, Li Q Q. A review of pavement high speed detection technology[J]., 2015, 40(1): 1–8.
張德津, 李清泉. 公路路面快速檢測(cè)技術(shù)發(fā)展綜述[J]. 測(cè)繪地理信息, 2015, 40(1): 1–8.
[4] Shi Y, Cui L M, Qi Z Q,. Automatic road crack detection using random structured forests[J]., 2016, 17(12): 3434–3445.
[5] Xu W, Tang Z M, Lv J Y. Pavement crack detection based on image saliency[J]., 2013, 18(1): 69–77.
徐威, 唐振民, 呂建勇. 基于圖像顯著性的路面裂縫檢測(cè)[J]. 中國(guó)圖象圖形學(xué)報(bào), 2013, 18(1): 69–77.
[6] Zhang L, Yang F, Zhang Y D,. Road crack detection using deep convolutional neural network[C]//, Phoenix, AZ, USA, 2016: 3708–3712.
[7] Cha Y J, Choi W, Büyük?ztürk O. Deep learning-based crack damage detection using convolutional neural networks[J]., 2017, 32(5): 361–378.
[8] Maeda H, Sekimoto Y, Seto T,. Road damage detection and classification using deep neural networks with smartphone images[J]., 2018, 33(12): 1127–1141.
[9] Carr T A, Jenkins M D, Iglesias M I,. Road crack detection using a single stage detector based deep neural network[C]//, Salerno, Italy, 2018.
[10] Bang S, Park S, Kim H,. Encoder–decoder network for pixel-level road crack detection in black-box images[J]., 2019, 34(8): 713–727.
[11] Yang X C, Li H, Yu Y T,. Automatic pixel-level crack detection and measurement using fully convolutional network[J]., 2018, 33(12): 1090–1109.
[12] Chen L C, Zhu Y K, Papandreou G,. Encoder-decoder with atrous separable convolution for semantic image segmentation[C]//, Glasgow, United Kingdom, 2018: 833–851.
[13] Yang F, Zhang L, Yu S J,. Feature pyramid and hierarchical boosting network for pavement crack detection[J]., 2020, 21(4): 1525–1535.
[14] Zou Q, Zhang Z, Li Q Q,. DeepCrack: learning hierarchical convolutional features for crack detection[J]., 2019, 28(3): 1498–1512.
[15] Mei Q P, Gül M, Azim M R,. Densely connected deep neural network considering connectivity of pixels for automatic crack detection[J]., 2020, 110: 103018.
[16] Fei Y, Wang K C P, Zhang A,. Pixel-level cracking detection on 3D asphalt pavement images through deep-learning-based CrackNet-V[J]., 2020, 21(1): 273–284.
[17] Zhang A, Wang K C P, Li B X,. Automated pixel-level pavement crack detection on 3D asphalt surfaces using a deep-learning network[J]., 2017, 32(10): 805–819.
[18] Ronneberger O, Fischer P, Brox T,. U-Net: Convolutional networks for biomedical image segmentation[C]//, Lima, Peru, 2015: 234–241.
[19] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[C]//, 2015.
[20] Badrinarayanan V, Kendall A, Cipolla R. SegNet: A deep convolutional encoder-decoder architecture for image segmentation[J]., 2017, 39(12): 2481–2495.
[21] Yu F, Koltun V. Multi-scale context aggregation by dilated convolutions[C]//, 2016.
[22] Chen L C, Papandreou G, Kokkinos I,. DeepLab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs[J]., 2018, 40(4): 834–848.
[23] Wang P Q, Chen P F, Yuan Y,. Understanding convolution for semantic segmentation[C]//2018, Lake Tahoe, NV, USA, 2018: 1451–1460.
[24] Yang M K, Yu K, Zhang C,. DenseASPP for semantic segmentation in street scenes[C]//, Salt Lake City, UT, USA, 2018: 3684–3692.
[25] Luo W J, Li Y J, Urtasun R,. Understanding the effective receptive field in deep convolutional neural networks[C]//, 2016: 4905–4913.
[26] Xie S, Tu Z. Holistically-Nested Edge Detection[J]., 2015, 125(1-3): 3–18.
[27] Zou Q, Cao Y, Li Q Q,. CrackTree: Automatic crack detection from pavement images[J]., 2012, 33(3): 227–238.
[28] Kingma D P, Ba L J. Adam: A method for stochastic optimization[C]//, Ithaca, NY, 2015.
[29] Chaurasia A, Culurciello E. LinkNet: Exploiting encoder representations for efficient semantic segmentation[C]//2007, St. Petersburg, FL, USA, 2017: 1–4.
[30] Zhang Z X, Liu Q J, Wang Y H. Road extraction by deep residual U-Net[J]., 2018, 15(5): 749–753.
[31] He K M, Zhang X Y, Ren S Q,. Deep residual learning for image recognition[C]//2016, Las Vegas, NV, USA, 2016: 770–778.
Pavement crack detection based on the U-shaped fully convolutional neural network
Chen Hanshen1,2, Yao Minghai1*, Qu Xinyu2
1College of Information Engineering, Zhejiang University of Technology, Hangzhou, Zhejiang 310023, China;2Zhejiang Institute of Communications, Hangzhou, Zhejiang 311112, China
Processing flow of the proposed method
Overview:Cracks are one of the most common categories of pavement distress. Early locating and repairing the cracks can not only reduce the cost of pavement maintenance but also decrease the probability of road accidents happening. Precise measurement of the crack is an essential step toward identifying theroad condition and determining rehabilitation strategies. Nevertheless, cracks do not have a certain shape and the appearance of cracks usually changes drastically in different lighting conditions, making it hard to be detected by the algorithm with imagery analytics. Therefore, fully automated and comprehensive crack detection is still challenging. In this paper, we focus on pixel-level crack detection in 2D vision and propose an effective U-shaped fully convolutional neural network called UCrackNet, which is the enhanced version of U-Net. It consists of three main components: an encoder, a bridge block, and a decoder. The backbone of the encoder is the pre-trained VGG-16 that extracts spatial features from the pavement image. The last convolutional layer at each scale in the encoder has a skip connection to connect the corresponding layer in the decoder to preserve and reuse feature maps at different pooling stages. To minimize the possibility of overfitting and achieve better generalization ability, we add a dropout layer into each skip connection. The bridge block is a bridge path between the encoder and the decoder. Motivated by DenseASPP, four densely connected atrous convolutional layers with different dilation rates are employed in the bridge block, so that it generates features with a larger receptive field to effectively capture multi-scale information.The decoder has four convolutional blocks, and in each block, up-sampling with indices is used to reduce the shift and distortion during the up-sampling operation. Furthermore, multi-level fusion is introduced in the output stage to utilize multiscale and multilevel information of objects. The idea of multi-level fusion is inspired by the success of the HED network architecture, which showed that it is capable of fully exploiting the rich feature hierarchies from convolutional neural network (CNNs). Specifically, the feature maps of each stage are first up-sampled to the size of the output image, then a 1×1 convolutional is used to fuse these maps to get the final prediction map. Qualitative evaluations on the two public CrackTree206 and AIMCrack datasets demonstrate that the proposed method achieves superior performance compared with CrackForest, LinkNet, ResUNet, U-Net, and DeepCrack. The qualitative results show that our method produces high-quality crack maps, which are closer to the ground-truth and have lower noise compared with the other methods.
* E-mail: ymh@zjut.edu.cn
Pavement crack detection based on the U-shaped fully convolutional neural network
Chen Hanshen1,2, Yao Minghai1*, Qu Xinyu2
1College of Information Engineering, Zhejiang University of Technology, Hangzhou, Zhejiang 310023, China;2Zhejiang Institute of Communications, Hangzhou, Zhejiang 311112, China
Crack detection is one of the most important works in the system of pavement management. Cracks do not have a certain shape and the appearance of cracks usually changes drastically in different lighting conditions, making it hard to be detected by the algorithm with imagery analytics. To address these issues, we propose an effective U-shaped fully convolutional neural network called UCrackNet. First, a dropout layer is added into the skip connection to achieve better generalization. Second, pooling indices is used to reduce the shift and distortion during the up-sampling process. Third, four atrous convolutions with different dilation rates are densely connected in the bridge block, so that the receptive field of the network could cover each pixel of the whole image. In addition, multi-level fusion is introduced in the output stage to achieve better performance. Evaluations on the two public CrackTree206 and AIMCrack datasets demonstrate that the proposed method achieves high accuracy results and good generalization ability.Keywords: crack detection; convolutionalneural network; UCrackNet; receptive fieldCitation: Chen H S, Yao M H, Qu X YPavement crack detection based on the U-shaped fully convolutional neural network[J]., 2020, 47(12): 200036
National Natural Science Foundation of China (61871350) and Zhejiang Provincial National Science Foundation of China (GG19E050005)
10.12086/oee.2020.200036
TP391.4
A
陳涵深,姚明海,瞿心昱. 基于U型全卷積神經(jīng)網(wǎng)絡(luò)的路面裂縫檢測(cè)[J]. 光電工程,2020,47(12): 200036
: Chen H S, Yao M H, Qu X Y. Pavement crack detection based on the U-shaped fully convolutional neural network[J]., 2020,47(12): 200036
2020-01-20;
2020-04-10
國(guó)家自然科學(xué)基金資助項(xiàng)目(61871350);浙江省自然科學(xué)基金資助(GG19E050005)
陳涵深(1983-),男,博士研究生,講師,主要從事計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)的研究。E-mail:chs9811@163.com
姚明海(1963-),男,博士,教授,主要從事機(jī)器學(xué)習(xí)和模式識(shí)別的研究。E-mail:ymh@zjut.edu.cn