侯華 楊沛釗 曹俊俊 王曹 宋衛(wèi)虎



摘要:針對混凝土復雜背景下細小裂縫漏檢和誤檢的問題,提出基于U-Net網(wǎng)絡改進的混凝土裂縫檢測方法。首先,將空洞卷積與普通卷積構成并聯(lián)卷積模塊,融合雙重尺度特征使解碼器更好地恢復原圖信息。其次,在并聯(lián)卷積模塊中引入擠壓與激勵網(wǎng)絡(Squeeze-and-Excitation Networks,SENet)結構,強化重要特征通道,弱化無用特征通道。最后使用二元交叉熵作為損失函數(shù),以精確率、召回率和F1值作為評價指標。實驗結果表明,該方法精確率提高了2.43%、召回率提高了4.24%、F1提高了3.36%,能夠滿足各種混凝土裂縫分割的需求。
關鍵詞:U-Net;空洞卷積;SENet;裂縫檢測
中圖分類號:TP391? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)16-0008-04
1 概述
混凝土是當今用量最大的一種建筑材料,廣泛應用于橋梁、房屋等建筑中。由于混凝土抗拉強度低、受溫度變化、雨雪等內(nèi)外因素的影響,在施工過程中或長期使用中不可避免地會出現(xiàn)裂縫。如果不及時發(fā)現(xiàn)并修補,會加劇混凝土的損害。當裂縫的深度和寬度超過混凝土所承受的臨界時,不僅會影響外在美觀,更會影響混凝土結構的正常使用。因此混凝土裂縫檢測和預防對維持混凝土結構的穩(wěn)定性和延長使用壽命具有重大的意義[1]。
采用傳統(tǒng)的人工視覺方法進行裂縫檢測,存在耗時長、成本高、危險性大、效率低和易受主觀因素影響等問題。隨著計算機視覺技術的發(fā)展,眾多學者把各種圖像處理方法應用到裂縫檢測中,常用方法如直方圖估計法[2]、梯度直方圖[3]等。這些方法對輸入圖像的質(zhì)量要求高,需要人工干預較多。當受到光線不均和噪聲干擾等影響時,裂縫檢測的性能會受到極大影響,而且難以一次性達到分割要求。
近年來,深度學習技術廣泛應用于各領域,其在目標檢測、目標分類和語義分割等研究方向均取得了巨大成功。其中語義分割是基于像素級別的圖像分割,比目標檢測和目標分類更為復雜,不僅能確定目標的類別,還能提取目標輪廓以實現(xiàn)精確定位,相較于傳統(tǒng)圖像處理方法,在性能和效果上有巨大的提升。Long等人在卷積神經(jīng)網(wǎng)絡的基礎上,提出了一種全卷積神經(jīng)網(wǎng)絡(Fully Convolutional Networks,F(xiàn)CN),用卷積層替換全連接層實現(xiàn)了像素級的分類,拉開了全卷積神經(jīng)網(wǎng)絡用于語義分割的序幕[4]。Ronneberger 等人隨后提出了具有U型對稱結構的U-Net網(wǎng)絡,對圖像特征進行編碼與解碼,并實現(xiàn)高低層網(wǎng)絡信息融合[5]。與FCN 相比,U-Net 能夠在少樣本量的情況下實現(xiàn)較好的圖像分割效果。
目前,眾多學者已經(jīng)把基于深度學習的語義分割應用于裂縫檢測。李麗基于Alexnet構建了FCN模型,可以檢測出復雜路面背景下的裂縫[6]。王森等人用VGG16替換FCN的編碼結構,取消全連接層中的Dropout技術,修改濾波器尺寸以及擴大網(wǎng)絡深度,提高了裂紋檢測能力[7]。但是FCN仍存在明顯缺陷,分割結果不夠精細。Liu等人采用U-Net方法進行裂縫檢測,分割效果較FCN有很大提升,但仍存在細節(jié)丟失、漏檢和誤檢[8]。朱蘇雅等人采用U-Net網(wǎng)絡進行裂縫檢測,利用閾值法和改進的迪杰斯特拉連接算法進行精確提取,該方法提升了檢測精度,但受限于U-Net檢測效果[9]。
目前裂縫分割大多是基于U-Net網(wǎng)絡進行改進的,雖然U-Net適用于小數(shù)據(jù)集,能夠較好地完成裂縫分割,但不能很好地恢復池化層中丟失的信息,易造成細小裂縫漏檢和誤檢現(xiàn)象。由于混凝土裂縫與背景對比度不明顯、像素數(shù)量不均衡,而且細小裂縫偏多,使得裂縫分割較困難。針對上述問題,提出一種基于U-Net網(wǎng)絡改進的混凝土裂縫檢測方法。實驗結果表明,本文模型總體的分割效果優(yōu)于U-Net和Segnet[10]模型,證明了該模型對裂縫分割的有效性。
2 改進U-Net的混凝土裂縫分割網(wǎng)絡
2.1 U-Net網(wǎng)絡架構
本文搭建的U-Net主要由編碼器(Encoder)和解碼器(Decoder)兩部分組成。編碼器逐層提取圖像特征,其結構分為4個階段,每個階段包含兩個3×3卷積(Padding=Same)和一個以2×2最大池化實現(xiàn)的下采樣層,每經(jīng)過一個階段,輸出特征圖尺度縮小一半,通道維度加倍。解碼器逐層恢復圖像信息,其結構與編碼器對稱也分為4個階段,每個階段包含兩個3×3卷積(Padding=Same)和一個以2×2反卷積實現(xiàn)的上采樣層,每經(jīng)過一個階段,輸出特征圖尺度擴大一倍,通道維度減半。編碼器每個階段中第二個卷積的輸出特征圖通過跳躍連接(Skip Connection)傳輸至解碼器,并與解碼器對應階段上采樣層的輸出特征圖進行通道堆疊,實現(xiàn)淺層信息與深層信息的融合,為解碼過程提供更多語義信息。最后利用1×1卷積把64維通道特征圖轉化為2維通道特征圖,通過Softmax分類器對每個像素點進行分類,獲得以白色為目標,黑色為背景的分割圖。
本文搭建的U-Net 網(wǎng)絡結構如圖 1 所示。
2.2 U-Net網(wǎng)絡改進策略
改進后的U-Net結構如圖2所示。
2.2.1引入空洞卷積的并聯(lián)卷積模塊
編碼器使用了4次最大池化進行下采樣,雖然通過跳躍連接可以降低池化所造成的信息丟失的影響,但部分丟失的特征信息仍很難在解碼器中恢復,可以通過擴大感受野利用全局信息來輔助解碼器恢復原圖像信息。
傳統(tǒng)的卷積核在擴大感受野的同時會增大參數(shù)量,占用更多的硬件資源,針對該問題可以通過空洞卷積解決。空洞卷積又稱為膨脹卷積,其卷積核的膨脹率Rate參數(shù)表示卷積核各個點的距離,Rate值越大則感受野越大。卷積核有效的參數(shù)只存在9個位置上,其余位置參數(shù)均為0,這樣就能保證在參數(shù)不變的情況下,增大卷積的感受野。空洞卷積原理如圖3所示:
空洞卷積在不損失分辨率和不增加計算量的情況下,通過擴大感受野獲取全局信息,使得卷積輸出包含較大范圍的特征信息和空間層級信息,用于捕獲裂縫的位置特征來輔助恢復原圖像信息。但空洞卷積存在網(wǎng)格效應,容易造成空洞處局部信息丟失,影響信息的連續(xù)性,導致裂縫局部區(qū)域斷裂,而普通卷積雖然感受野小,但可獲取裂縫的細節(jié)特征信息。為了降低網(wǎng)格效應的影響,能夠兼顧局部細節(jié)和全局信息,用并聯(lián)卷積模塊代替解碼器中的兩次卷積,對輸入特征圖同時進行普通卷積和空洞卷積,既能擴大感受野加深下層對上層的語義理解,又能捕捉雙重尺度特征信息以彌補下采樣造成的信息丟失問題。并聯(lián)卷積模塊如圖4所示:
設輸入并聯(lián)卷積模塊的特征圖大小為M×N×K,第一條支路經(jīng)過3×3普通卷積(Padding=Same)后得到M×N×K/4的特征圖,其重點關注臨近中心點的局部信息;第二條支路經(jīng)過Rate為3的3×3空洞卷積(Padding=Same)后得到M×N×K/4的特征圖,其重點關注全局信息;然后把兩路輸出進行通道堆疊,得到M×N×K/2的特征圖,完成局部信息與全局信息的融合,有助于提高裂縫分割的準確性。
并聯(lián)卷積模塊的卷積后加修正線性單元ReLU激活函數(shù)以提升網(wǎng)絡的表達能力,此外在U-Net網(wǎng)絡中的卷積和ReLU激活函數(shù)中間加入批量歸一化層BN,加快網(wǎng)絡訓練速度,使網(wǎng)絡可以更快收斂,防止網(wǎng)絡過擬合。
2.2.2 注意力機制
注意力機制與視覺注意力類似,讓網(wǎng)絡能夠重點關注圖像中的目標,忽略冗余信息。SENet[11]是一種復雜度低、計算量小且簡單有效的通道注意力機制,通過改變特征圖通道的權重來提升網(wǎng)絡的分割效果。SENet包括Squeeze、Excitation和通道加權三部分。Squeeze通過全局平均池化對特征圖的寬和高進行壓縮,將M×N×C特征圖轉化成1×1×C的一維特征向量,該向量具有原特征圖的全部感受野。Excitation通過一個全連接層對一維特征向量進行非線性變換降維至1×1×C/r,經(jīng)過ReLU激活函數(shù)后再通過一個全連接層恢復原來一維特征向量的維度,然后通過Sigmoid函數(shù)確定各個通道的權重值。通道加權是將Excitation輸出的通道權重與原特征圖通道對應相乘。SENet結構如圖5所示:
由于混凝土裂縫特征較少且與背景對比不明顯,會對裂縫的分割造成干擾。為了降低背景和噪聲的影響,提升解碼器的特征恢復能力,在并聯(lián)卷積模塊中融入SENet注意力機制,調(diào)整雙重尺度信息特征圖的通道關系,提升包含裂縫特征信息通道的權重,降低其他通道的權重,加強對裂縫邊緣和形狀等特征的權重分配,從而捕獲更多重要的語義信息,能更好地實現(xiàn)復雜背景下混凝土裂縫的分割。融入SENet的并聯(lián)卷積模塊如圖6所示:
3 實驗結果與分析
3.1實驗環(huán)境和參數(shù)設置
實驗操作系統(tǒng)為Ubuntu20.04.2LTS,開發(fā)框架為PyTorch,編程語言為Python。實驗采用的CPU為Intel i7-9700F,GPU為NVIDIA GeForce RTX 2080Ti。在訓練過程中優(yōu)化器選用Adam,[β1]設置為0.5,[β2]設置為0.999,batchsize設置為1,初始學習率設定為0.0003,epoch為50。
3.2數(shù)據(jù)集
本文使用的是公開數(shù)據(jù)集CFD[12],包含118張分辨率為480×320的已標注裂縫圖片。標注實例如圖7所示。
為避免模型過擬合,提高網(wǎng)絡的泛化能力,在原裂縫圖像的基礎上通過模糊、亮度增強、亮度減弱、旋轉180度和水平鏡像的方法生成了590張裂縫圖像及其對應的標注圖像。擴充后的最終數(shù)據(jù)集樣本為708張,隨機挑選420張作為訓練集,144張作為驗證集,144張作為測試集。擴充實例如圖8所示。
3.3 評價指標
本文實驗采用精確率(Precision,P)、召回率(Recall,R)和F1值(F1-score,F(xiàn)1)對裂縫分割結果進行定量分析,其定義如下:
[P=TPTP+FP]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
[R=TPTP+FN]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)
[F1=2×P×RP+R]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)
其中,[TP]是預測正確的裂縫像素點個數(shù),[FP]是誤檢為裂縫像素點個數(shù),[FN]是誤檢為背景的裂縫像素點個數(shù),[TP+FN]是Ground Truth中的裂縫像素點個數(shù),[TP+FP]是檢測出的所有裂縫像素點個數(shù)。精確率和召回率是相互制約的,僅從這兩個指標難以判斷裂縫分割性能的好壞,而綜合性指標[F1]同時考慮了精確率和召回率,能夠全面地評估算法的性能。
3.4 損失函數(shù)
混凝土裂縫圖像的語義分割問題屬于二分類問題,采用經(jīng)典的二分類交叉熵(Binary cross entropy,Bce)損失函數(shù),其公式如下:
[LBce=-1Ni=1Nyilogpi+1-yilog1-pi]? ? ? ? ? ?(4)
其中,[N]為圖像像素個數(shù),[yi]是第[i]個像素點真實標簽值,[pi]是第[i]個像素點的預測概率值。
3.5 實驗對比
為了說明本文方法的有效性,通過消融實驗驗證引入空洞卷積和SE模塊的改進性,并通過與Segnet模型對比驗證本文算法的優(yōu)越性,各模型分割效果如圖9所示。
圖9前兩行圖像中的裂縫較粗且與背景對比明顯,各模型都能較好地檢測出裂縫。圖9第三行圖像中的裂縫較為細小且與背景對比不明顯時,各模型的檢測結果相差較大,Segnet和U-Net漏檢比較嚴重,U-Net-DC和U-Net-DC-SE有所改善。圖9第四行和第五行圖像中裂縫粗細交替,Segnet和U-Net漏檢部分小裂縫,U-Net-DC和U-Net-DC-SE更注重裂縫的細節(jié)。從圖9的第六行圖像可看出,Segnet和U-Net檢測的裂縫斷裂,U-Net-DC保持了裂縫的連續(xù)性但仍有漏檢,U-Net-DC-SE的分割效果更好。從圖9的第七行圖像可看出,Segnet邊界漏檢,U-Net有輕微誤檢,U-Net-DC有輕微漏檢,U-Net-DC-SE更接近原圖。圖9說明使用空洞卷積和SE模塊改進的網(wǎng)絡模型改善了細小裂縫漏檢和誤檢的情況。
Segnet易發(fā)生斷裂和漏檢;U-Net的分割效果比Segnet較好,但仍處理不好細小裂縫;U-Net-DC引入了并聯(lián)卷積模塊,能夠獲取雙重尺度特征信息,加強了裂縫分割的細節(jié),保持了裂縫的連續(xù)性,漏檢和誤檢的情況相對較少;U-Net-DC-SE融入了SE模塊,加強了對裂縫邊緣、形狀等特征的權重分配,降低了裂縫與背景對比度低的影響,使得分割結果更加接近原圖。
各種模型的精確率、召回率和F1值如表1所示。
從表1可以看出,由于U-Net-DC在U-net的基礎上引入了空洞卷積,模型的精確率、召回率和F1值分別提升了1.78%、3.65%和2.74%。由于U-Net-DC-SE在U-Net-DC的基礎上融入了SE模塊,模型的精確率、召回率和F1值分別提升了0.65%、0.59%和0.62%。本文方法能夠較準確地檢測出裂縫信息且誤檢和漏檢較少, 裂縫檢測效果提升明顯,模型具有良好的魯棒性。
4 結論
針對混凝土復雜背景下細小裂縫的漏檢和誤檢問題,本文提出了一種基于U-Net網(wǎng)絡改進的混凝土裂縫檢測方法。該方法以U-Net為基礎,首先引入空洞卷積構成并聯(lián)卷積模塊,融合雙重尺度特征,以彌補特征信息損失。然后添加注意力機制SENet,加強對裂縫特征通道的權重分配,降低裂縫與背景對比度低的影響,從而提高網(wǎng)絡的分割性能。實驗表明,改進的U-Net網(wǎng)絡在公開數(shù)據(jù)集上取得了很好的分割效果,精確率達到了74.41%,召回率達到了73.26%,F(xiàn)1值達到了73.83%,能滿足各種混凝土裂縫檢測的需求,下一步將嘗試在改進U-Net的基礎上降低網(wǎng)絡權重,縮短檢測時間,更好地完成混凝土裂縫的實時智能化檢測。
參考文獻:
[1] 溫作林.基于深度學習的混凝土裂縫識別[D].杭州:浙江大學,2019.
[2] 徐志剛,趙祥模,宋煥生,等.基于直方圖估計和形狀分析的瀝青路面裂縫識別算法[J].儀器儀表學報,2010,31(10):2260-2266.
[3] 靳華中,萬方,葉志偉.結合路面深度影像梯度方向直方圖和分水嶺算法的裂縫檢測[J].華中師范大學學報(自然科學版),2017,51(5):715-722.
[4] Long J,Shelhamer E,Darrell T.Fully convolutional networks for semantic segmentation[C]// Boston,MA,USA:2015 IEEE Conference on Computer Vision and Pattern Recognition.June 7-12,2015.IEEE,2015:3431-3440.
[5] Ronneberger O,F(xiàn)ischer P,Brox T.U-net:convolutional networks for biomedical image segmentation[C]//Medical Image Computing and Computer-Assisted Intervention-MICCAI 2015,2015:234-241.
[6] 李麗.復雜背景下的路面裂縫檢測算法研究[D].西安:陜西師范大學,2018.
[7] 王森,伍星,張印輝,等.基于深度學習的全卷積網(wǎng)絡圖像裂紋檢測[J].計算機輔助設計與圖形學學報,2018,30(5):859-867.
[8] Liu Z Q,Cao Y W,Wang Y Z,et al.Computer vision-based concrete crack detection using U-net fully convolutional networks[J].Automation in Construction,2019,104:129-139.
[9] 朱蘇雅,杜建超,李云松,等.采用U-Net卷積網(wǎng)絡的橋梁裂縫檢測方法[J].西安電子科技大學學報,2019,46(4):35-42.
[10] Badrinarayanan V,Kendall A,Cipolla R.SegNet:a deep convolutional encoder-decoder architecture for image segmentation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(12):2481-2495.
[11] Hu J,Shen L,Sun G.Squeeze-and-excitation networks[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.June 18-23,2018,Salt Lake City,UT,USA.IEEE,2018:7132-7141.
[12] Limeng Cui, CFD. CrackForest Dataset[EB/OL].[2021-05-25]. https://github.com/cuilimeng/CrackForest-dataset.
【通聯(lián)編輯:唐一東】