仇靜博,燕雪峰,汪 俊,郭延文,魏明強
(1.南京航空航天大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106;2.南京航空航天大學(xué)模式分析與機(jī)器智能工業(yè)和信息化部重點實驗室,江蘇 南京 211106;3.南京大學(xué)計算機(jī)軟件新技術(shù)國家重點實驗室,江蘇 南京 210023)
隧道主要以混凝土為材質(zhì)建造而成。由于材質(zhì)、溫差、腐蝕和外力等因素的影響,隧道管片會出現(xiàn)不可預(yù)測的收縮或膨脹,從而產(chǎn)生裂紋。裂紋不僅影響隧道整體美觀性,而且一旦裂紋向深層發(fā)展,便有可能發(fā)展成對隧道具有破壞性的掉塊或深層裂縫,影響隧道的安全和穩(wěn)定。因此,對隧道進(jìn)行定期裂紋檢測,實時觀察隧道中的裂紋變化尤為重要。
由于施工條件的局限性以及建筑材料的物理特性,獲取的原始隧道裂紋圖像往往包含許多非裂紋噪聲紋理,如何最大限度地避免背景噪聲的干擾是提取裂紋所面臨的一大難題。
傳統(tǒng)的隧道病害檢測方法主要依托人工檢測,但該手段耗時耗力,已不能滿足現(xiàn)階段對于隧道檢測高效率、高準(zhǔn)確性以及自動化的要求。當(dāng)前裂紋識別研究的重心逐漸向基于圖像處理的裂紋檢測算法和基于機(jī)器學(xué)習(xí)的裂紋檢測算法轉(zhuǎn)移。
基于圖像處理的裂紋檢測算法[1 -7],一般包含濾波去噪、檢測裂紋和分類3個步驟,對清晰的裂紋有較好的提取效果,但是在有較多非裂紋噪聲污染的情況下,會出現(xiàn)較為嚴(yán)重的誤檢測問題。
基于機(jī)器學(xué)習(xí)的裂紋檢測算法,如全卷積神經(jīng)網(wǎng)絡(luò)FCN (Fully Convolutional Network)[8]、SegNet[9]和Mask R-CNN[10]等,在背景噪聲干擾下具有良好的裂紋檢測效果,但是無法保留較多裂紋邊緣的細(xì)節(jié)信息。
綜上所述,如何在復(fù)雜噪聲背景下提取出隧道裂紋并保留裂紋的細(xì)節(jié)邊緣信息是一個亟待解決的問題。本文提出的基于全卷積神經(jīng)網(wǎng)絡(luò)的裂紋提取算法,不僅具有非接觸性、高效率性與自動性,而且提取出的裂紋結(jié)果更加準(zhǔn)確。該算法摒棄了傳統(tǒng)裂紋檢測與提取技術(shù)的局限,可以全自動檢測圖像中的裂紋,分割精度高,具有很高的實際應(yīng)用價值。
早期的裂紋檢測及提取方法大多為實地測量與標(biāo)記,專業(yè)勘察人員親臨現(xiàn)場測量和記錄,或以超聲波、傳感器等輔助工具幫助測量人員進(jìn)行測量。隨著圖像處理與機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,裂紋識別研究的重心由傳統(tǒng)的超聲波檢測法、沖擊彈性波檢測法、聲發(fā)射檢測法和光纖傳感檢測法逐漸向基于圖像處理的裂紋檢測算法轉(zhuǎn)移。
在傳統(tǒng)圖像處理裂紋檢測算法的研究中,馬常霞等[1]提出了一種基于非下采樣變換NSCT(NonsubSampled Contourlet Transform)和圖像形態(tài)學(xué)的裂紋檢測算法,由于NSCT具有平移不變性,圖像失真在一定程度上得到緩解,能夠更準(zhǔn)確把握裂紋的線性特征;李剛等[2]針對受不均勻光照影響的裂紋圖像,提出一種基于Sobel算子和最大熵法的圖像裂紋分割算法,并采用長線段對原圖進(jìn)行操作、判斷黑色像素占比來去除圖像孤立噪聲點,不僅能很好地提取裂紋邊緣,且具有很強的抗噪能力;趙慧潔等[3]將簡化脈沖耦合神經(jīng)網(wǎng)絡(luò)PCNN(Pulse Coupled Neural Network)模型用于裂紋圖像的分割,以最小誤差準(zhǔn)則作為判斷是否終止迭代的條件,由圓形度與扁度結(jié)合計算區(qū)域特征,消除分割后的干擾,實現(xiàn)對裂紋的有效檢測;徐威等[4]通過計算粗尺度下的裂紋顯著值,再經(jīng)過局部鄰域顯著性增強和空間顯著性增強后,采用自適應(yīng)閾值分割提取裂紋;徐歡等[5]以形態(tài)學(xué)濾波改進(jìn)濾波,使用最大類間方差 (Otsu)算法[6]實現(xiàn)雙閾值的自適應(yīng)獲取,分析并改進(jìn)了Canny算子,提高了裂紋檢測的精度;楊莉等[7]對預(yù)處理后的圖像進(jìn)行多尺度的曲波變換表示,利用 Max-Mean融合算法對裂紋連通區(qū)域進(jìn)行閾值判決,實現(xiàn)裂紋的精細(xì)融合。但是,基于圖像處理的算法無法避免背景噪聲的干擾,即使圖像經(jīng)過預(yù)處理,也很難從中成功提取有效裂紋,算法魯棒性較差。
隨著學(xué)者們對人工智能領(lǐng)域研究愈發(fā)深入,基于機(jī)器學(xué)習(xí)的裂紋檢測算法逐漸出現(xiàn)。2015年,Long等[8]提出了全卷積神經(jīng)網(wǎng)絡(luò)FCN,進(jìn)行端到端、像素到像素的訓(xùn)練,直接對任意大小的輸入圖像進(jìn)行像素級分割,提高了圖像分割的準(zhǔn)確性與效率。Badrinarayanan等[9]在2015年提出SegNet算法,通過卷積下采樣來保存像素之間的空間位置關(guān)系,彌補了池化操作丟失像素點的缺點,得到了更好的分割效果。Deep Lab系列的提出也使圖像分割精度得到大幅度提升,為了使被分割目標(biāo)的邊緣更準(zhǔn)確,Deep Labv1[11]在全卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上引入全連接條件隨機(jī)場CRF(Fully Conditional Random Fields)。2016年,Deep Labv2使用空洞卷積進(jìn)一步提高圖像分割精度。Deep Labv3 在之前的基礎(chǔ)上結(jié)合級聯(lián)殘差網(wǎng)絡(luò)和空洞卷積,再一次提升了圖像分割效果。Zhao等[12]在場景解析任務(wù)的研究中,構(gòu)造了金字塔池化模塊,并基于不同區(qū)域的上下文聚合提高了場景解析質(zhì)量。Silva等[13]采用遷移學(xué)習(xí)方法,使用開源模型作為開發(fā)基礎(chǔ),提出了一個檢測混凝土表面裂縫的算法。Kim等[14]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的現(xiàn)場環(huán)境中混凝土表面裂紋形態(tài)自動檢測技術(shù)。基于機(jī)器學(xué)習(xí)的算法可以框定出裂紋整體結(jié)構(gòu),抗干擾性強,且在負(fù)樣本上表現(xiàn)較好,但是輸出的裂紋圖像邊緣趨于平滑,裂紋細(xì)節(jié)難以較好保持。Zou等[15]在SegNet的基礎(chǔ)上根據(jù)編碼器-解碼器網(wǎng)絡(luò)結(jié)構(gòu)的特性將每個尺度的卷積特征進(jìn)行成對融合,最終將所有尺度的融合特征整合后作為網(wǎng)絡(luò)輸出結(jié)果,在細(xì)小裂紋提取和邊緣檢測任務(wù)中表現(xiàn)較好。Mei等[16]設(shè)計了一個稠密連接的深度神經(jīng)網(wǎng)絡(luò),提出了一個綜合裂縫像素周圍信息的連續(xù)性損失函數(shù),可以較好地保持提取裂縫的完整性。Ren等[17]提出結(jié)合空洞卷積、空間金字塔池化以及跳接模型來高效地獲取多尺度特征,有效提升了網(wǎng)絡(luò)的裂縫分割能力。
Figure 1 Structure of crack extraction network based on fully convolutional neural network圖1 基于全卷積神經(jīng)網(wǎng)絡(luò)的單幅圖像裂紋提取網(wǎng)絡(luò)結(jié)構(gòu)
隨著科技的發(fā)展,對裂紋檢測的準(zhǔn)確度與精確度也進(jìn)一步提升,現(xiàn)存的檢測方法已不能滿足人們的需求。為了解決上述算法的問題,本文提出了基于全卷積神經(jīng)網(wǎng)絡(luò)的單幅圖像圖像裂紋提取算法,可以在復(fù)雜噪聲存在的情況下提取裂紋,并保留較完整的邊緣細(xì)節(jié)。
針對裂紋完整提取和邊緣細(xì)節(jié)保留問題,本文提出了基于全卷積神經(jīng)網(wǎng)絡(luò)的單幅圖像裂紋提取算法,將深度殘差特征提取網(wǎng)絡(luò)與全卷積網(wǎng)絡(luò)中的反卷積操作結(jié)合,實現(xiàn)了有噪聲干擾下的裂紋提取與細(xì)節(jié)保留,具體結(jié)構(gòu)如圖1所示,其工作過程分為2步:(1)采用經(jīng)典的深度殘差網(wǎng)絡(luò),提取復(fù)雜背景下裂紋的特征信息。如圖1所示,原始圖像經(jīng)過特征提取層后,在不同階段輸出了3個不同尺寸與深度的特征圖s1、s2和s3,目的是更好地保留因下采樣丟失的底層特征信息。這3個特征圖將在上采樣層中階段性地結(jié)合在一起形成最終的結(jié)果。(2)采用全卷積神經(jīng)網(wǎng)絡(luò)中的上采樣層,提出并加入圖細(xì)節(jié)恢復(fù)模塊對上采樣層進(jìn)行改進(jìn),在保留邊緣細(xì)節(jié)的基礎(chǔ)上對特征圖進(jìn)行尺寸恢復(fù)。
VGGNet[18]、GoogLeNet[19]和殘差網(wǎng)絡(luò)ResNet(Residual Network)[20]等模型都是成熟且常用的卷積神經(jīng)網(wǎng)絡(luò)模型,其中ResNet使用深度殘差學(xué)習(xí)框架可以有效地消除卷積層數(shù)增加帶來的梯度彌散或梯度爆炸問題,因此本文算法采用了ResNet-34模型中的特征提取部分。
ResNet-34特征提取層中的主要組成結(jié)構(gòu)是building block結(jié)構(gòu),如圖2所示。這些卷積層之間的連接方式稱為“shortcut connection”,building block結(jié)構(gòu)很好地詮釋了這種連接方式。如圖2所示,相較于傳統(tǒng)的卷積結(jié)構(gòu),building block結(jié)構(gòu)中多了一個short-cut支路,可以直接傳遞低層信息,使得網(wǎng)絡(luò)能夠適應(yīng)深度訓(xùn)練。多個building block組成了深度殘差學(xué)習(xí)結(jié)構(gòu),即本文算法中的特征提取部分,具體組成如表1所示,其中,Conv2_x,Conv3_x,Conv4_x和Conv5_x為由building block組成的層。
Figure 2 Building block structure圖2 building block結(jié)構(gòu)
Table 1 Structure of convolutional layers表1 卷積層結(jié)構(gòu)
輸入圖像首先經(jīng)過7×7×64的卷積層提取信息,而后通過3×3的池化層縮小空間尺度,最后通過3+4+6+3=16個building block得到高維抽象特征,其中每個block為2層,因此16個building block中包含了32層網(wǎng)絡(luò)。
Figure 3 Upsampling layer圖3 上采樣層
在經(jīng)過前面多次卷積操作后,特征圖尺寸急劇縮小到原圖的1/32,因此需要對特征圖進(jìn)行上采樣處理。本文算法中,上采樣借鑒了FCN中反卷積來實現(xiàn)。為了更好地利用底層特征,本文采用層跨越結(jié)構(gòu),將底層特征圖與高層特征圖相加再進(jìn)行上采樣。圖3中的s1,s2,s3即為通過特征提取層得到的不同尺寸與深度的特征圖,在后續(xù)上采樣過程中與高維特征逐步結(jié)合,可以更好地恢復(fù)裂紋的細(xì)節(jié)特征與位置信息。同時為了加速訓(xùn)練過程,反卷積層核函數(shù)使用雙線性差值法初始化。然而,全卷積網(wǎng)絡(luò)缺乏精細(xì)化能力,隨著網(wǎng)絡(luò)深度的增加,圖像分辨率降低,提取的特征信息更加抽象,但是是以丟失重要的位置信息作為代價的。原始全卷積網(wǎng)絡(luò)的上采樣層使用了2個2×反卷積與1個8×反卷積,由于卷積層數(shù)少且最后一層卷積跨步大,最終的輸出結(jié)果趨于模糊,提取的裂縫圖像較為粗糙,不符合精細(xì)化分割的要求。為了解決這個問題,本文將3次反卷積操作增至4次,并在每次反卷積操作后都加入一個卷積核大小為3的卷積操作進(jìn)行特征增強。具體反卷積操作如圖3所示。
Figure 4 Structure of detail refine module圖4 細(xì)節(jié)修復(fù)模塊結(jié)構(gòu)
為了提高裂紋提取圖像的精細(xì)程度,保留裂紋的邊緣細(xì)節(jié),本文提出一個細(xì)節(jié)修復(fù)模塊,其結(jié)構(gòu)如圖4所示。輸入特征連接到4個支路進(jìn)行處理。第1支路為類似殘差結(jié)構(gòu)的跳接操作,即輸入特征直接與最后的處理結(jié)果逐元素相加,防止訓(xùn)練結(jié)果退化。第2、3支路均為2個卷積核大小分別為1×1和3×3的卷積層,各串聯(lián)一個批歸一化層BN(Batch Normalization)和修正線性單元ReLU(Rectified Linear Unit)。為了增強裂紋特征,同時增加像素間的關(guān)聯(lián)性,本文采用不同大小卷積核的卷積操作,整合多尺度感受野的信息。由于此模塊應(yīng)用于上采樣層,本身就作用于已包含豐富信息的高維抽象特征,因此采用1×1和3×3的卷積核就可以實現(xiàn)目標(biāo)效果。第4支路為整體的壓縮激活SE(Squeeze and Extraction)[21]操作,使用輸入特征圖計算特征權(quán)重,對第2、3支路的結(jié)果進(jìn)行加權(quán)。SE操作學(xué)習(xí)特征圖每個通道的重要程度,并據(jù)此對最后的輸出結(jié)果進(jìn)行加權(quán),來加強重要特征,抑制無效特征。SE操作主要分為2步:第1步是壓縮操作,將每個通道的二維特征圖壓縮為一個實數(shù),該數(shù)在一定程度上可以代表整個通道的全局特征,具有全局感受野,本文采用全局平均池化方式;第2步是激發(fā)操作,得到全局特征后,通過多個全連接層,使用學(xué)習(xí)的方法為每一個特征通道學(xué)習(xí)一個權(quán)重。此權(quán)重可以理解為每個通道的重要程度,最后使用乘法操作與原始特征圖進(jìn)行逐通道加權(quán),得到最后的輸出結(jié)果。
如圖1所示,將細(xì)節(jié)修復(fù)模塊放置在第3、4個上采樣操作之后,實驗表明,加入此模塊可以提升算法對精細(xì)裂紋的處理效果,在保持裂紋提取掩碼的連續(xù)性與精確性方面有較好的表現(xiàn)。
常見的二分類任務(wù)所使用的損失函數(shù)是交叉熵?fù)p失函數(shù)[22]。交叉熵可以衡量一個隨機(jī)變量的2個不同概率分布的差異程度,即預(yù)測值與真實值之間的差異,交叉熵值越小,預(yù)測結(jié)果就越準(zhǔn)確。交叉熵的計算方法如式(1)所示:
(1)
其中,p(·)為真實概率分布,q(·)為預(yù)測概率分布,n為圖像像素總數(shù),xi為第i個像素的預(yù)測結(jié)果。
交叉熵?fù)p失函數(shù)的應(yīng)用非常廣泛,但是同時也存在一些非常明顯的缺點。對于二分類任務(wù),當(dāng)前景像素數(shù)量與背景像素數(shù)量的比值非常小時,算法會嚴(yán)重偏向背景,導(dǎo)致訓(xùn)練效果大大下降。很顯然,裂紋提取任務(wù)符合這一特征,因此采用此損失函數(shù)會使算法傾向于訓(xùn)練背景而不是裂紋本身,降低了算法的高效性。
為了避免上述情況,本文算法采用帶權(quán)重的交叉熵?fù)p失函數(shù)Loss Function[21],具體計算方法如式(2)所示:
(2)
帶權(quán)重的交叉熵?fù)p失函數(shù)是在交叉熵?fù)p失函數(shù)每一個類別前添加了一個權(quán)重參數(shù)w(·),以此來調(diào)節(jié)樣本不均衡的問題。
由于目前并沒有公開的隧道裂紋數(shù)據(jù)集,需要在裂紋提取前采集足夠的樣本數(shù)據(jù)。本文的實驗圖像是使用自主研發(fā)的移動式隧道病害檢測設(shè)備拍攝,選取了2 000幅混凝土材質(zhì)上的裂紋圖像,其中用于訓(xùn)練集的一共有1 400幅(1 044幅作為正樣本,356幅作為負(fù)樣本),用于測試集的有600幅(481幅作為正樣本,119幅作為負(fù)樣本),圖像大小為512×375像素,命名為NUAACrack-2000,該數(shù)據(jù)集即將公開用于學(xué)術(shù)研究。
數(shù)據(jù)集的制作過程如下:一線技術(shù)人員和施工人員區(qū)分正負(fù)樣本,使用Github上開源的分割任務(wù)標(biāo)注軟件Labelme對正樣本進(jìn)行裂紋標(biāo)注。與目標(biāo)檢測任務(wù)只需要框定出目標(biāo)位置給出類別不同,分割任務(wù)的標(biāo)注需要根據(jù)目標(biāo)形態(tài)逐點標(biāo)注。由于裂紋形狀各異且大小不一,需要手動標(biāo)注幾十甚至上百個標(biāo)注點才可以覆蓋到完整的裂紋,因此數(shù)據(jù)集的標(biāo)注工作耗費了大量時間和精力。完成框定的裂紋文件被保存為.json文件格式,最后將.json文件轉(zhuǎn)化為掩碼位圖,圖5為裂紋標(biāo)注過程。
Figure 5 Crack labeling based on ‘Labelme’圖5 基于Labelme的裂紋標(biāo)注
評價基于全卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分割的性能指標(biāo)有:像素精度PA(Pixel Accuracy)、類別像素準(zhǔn)確率CPA(Category Pixel Accuracy)和交并比IoU(Intersection over Union)等,本次實驗用于測試網(wǎng)絡(luò)性能的指標(biāo)有:平均像素精度MPA(Mean Pixel Accuracy)和平均交并比MIoU(Mean Intersection over Union)。選擇這2個指標(biāo)的原因如下:(1)在裂紋提取任務(wù)中,裂紋所占整體比例較小,模型預(yù)測效果較差也可能取得很高的PA,導(dǎo)致不同模型指標(biāo)差距不明顯;(2)CPA與IoU是主要針對某一類別的量化指標(biāo),在本文研究中,背景與前景的正確分割都至關(guān)重要,采用MPA和MIoU可以同時衡量2個指標(biāo)。
算法對像素樣本分類有4種可能的結(jié)果:TP(true positives)表示正樣本被正確判定;TN(true negatives)表示負(fù)樣本被正確判定;FP(false positives)表示負(fù)樣本被誤判為正樣本;FN(false negatives)表示正樣本被誤判為負(fù)樣本。假設(shè)原始樣本中包含正樣本與負(fù)樣本,且共有k+1種分類,那么,Pij表示類別為i的像素被預(yù)測為類別為j的數(shù)目,Pii表示分類結(jié)果正確(即為TP或TN)的像素數(shù)目,Pij表示分類結(jié)果錯誤(即為FP)的像素數(shù)目,Pji表示分類結(jié)果錯誤(即為FN)的像素數(shù)目。
(1)平均像素精度:對每個類別分類正確的像素數(shù)與對應(yīng)類別像素總數(shù)的比率求和,然后除以類別數(shù)得到的均值,如式(3)所示:
(3)
(2)平均交并比:交并比是算法對某一類別預(yù)測結(jié)果和真實值的交集與并集的比值,而平均交并比則是在每個類別上分別計算交并比的值再求和取平均值,如式(4)所示:
(4)
本文實驗在自制數(shù)據(jù)集NUAACrack-2000上進(jìn)行,訓(xùn)練集共有1 400幅隧道裂紋圖像,測試集有600幅。在帶權(quán)重的交叉熵?fù)p失函數(shù)中,將前景裂紋權(quán)重設(shè)置為0.85,背景權(quán)重設(shè)置為0.15。實驗代碼使用PyTorch機(jī)器學(xué)習(xí)框架編寫,運行于NVIDIA 2080Ti GPU上。
4.4.1 消融實驗
為了驗證改進(jìn)的上采樣層與細(xì)節(jié)修復(fù)模塊在算法中的有效性,本節(jié)選用ResNet-34結(jié)合原始全卷積神經(jīng)網(wǎng)絡(luò)的上采樣結(jié)構(gòu)為基礎(chǔ)算法,在NUAACrack-2000數(shù)據(jù)集上進(jìn)行對比。實驗對比結(jié)果如表2所示,表中第1行為去除改進(jìn)上采樣層和所有細(xì)節(jié)修復(fù)層的基準(zhǔn)算法,√表示在基準(zhǔn)算法上加入對應(yīng)模塊,對應(yīng)的指標(biāo)為最終預(yù)測結(jié)果。
從表2中可以看出,改進(jìn)的上采樣層很大地提升了算法效果,對比原始的上采樣層MPA提升了10.7%,MIoU提升了13.2%。適當(dāng)添加卷積層、調(diào)整上采樣的尺度大小,可以恢復(fù)大量因卷積丟失的特征細(xì)節(jié),大幅改善預(yù)測結(jié)果。
Table 2 Results of ablation experiment表2 消融實驗結(jié)果對比
從表2還可以看到,采用多尺度的卷積層結(jié)合通道注意力機(jī)制加權(quán)特征圖各個通道的方法,可以有效提升算法效果,如果將細(xì)節(jié)修復(fù)模塊重復(fù)添加至第1層與第2層反卷積層后面,將會增加過多的參數(shù)且效果提升有限。具體可視化效果如圖6所示,針對難以分辨的細(xì)小裂縫,細(xì)節(jié)修復(fù)模塊使算法在復(fù)雜噪聲背景下有更好的魯棒性,可以保持裂縫的連續(xù)性與幾何形態(tài)的完整性。
Figure 6 Visualization of ablation experiment results圖6 消融實驗結(jié)果可視化
4.4.2 與常見算法實驗結(jié)果對比
本節(jié)將本文算法與常見的圖像分割算法在NUAACrack-2000數(shù)據(jù)集上進(jìn)行對比。在對比算法中,Otsu屬于傳統(tǒng)裂紋識別算法,F(xiàn)CN、DeepCrack[15]、U2-Net[23]和ITSD[24]屬于機(jī)器學(xué)習(xí)算法。U2-Net主要應(yīng)用于顯著目標(biāo)檢測任務(wù),其使用嵌套的U型結(jié)構(gòu)來增加網(wǎng)絡(luò)深度,提升對顯著物體的檢測效果,并且采用深監(jiān)督學(xué)習(xí)[25]加快模型收斂速度。ITSD算法在訓(xùn)練階段與損失回歸階段都利用了顯著圖的邊界信息,在許多顯著性物體檢測數(shù)據(jù)集上顯示出了卓越的性能。各算法均在NVIDIA 2080Ti GPU 上訓(xùn)練至損失函數(shù)收斂。
與機(jī)器學(xué)習(xí)算法的對比結(jié)果如表3所示,本文算法在MPA與MIoU的評價指標(biāo)上大體均優(yōu)于其他算法,僅在MPA指標(biāo)上略低于ITSD的。根據(jù)圖8~圖13的可視化結(jié)果可知,ITSD提取的裂縫分割結(jié)果Pij較大,導(dǎo)致MPA較大。圖7展示了ITSD算法與本文算法分割結(jié)果的局部對比圖,可以看到ITSD的結(jié)果邊界呈鋸齒狀,無法準(zhǔn)確描述裂縫的曲折外形,相比之下,本文算法得到的裂縫分割圖更加準(zhǔn)確。同時,表4列出了各個算法的參數(shù)規(guī)模Params和乘積累加計算復(fù)雜度MAdd(Multiply Add),通過對比可知,本文算法在分割效果最優(yōu)的情況下,參數(shù)量與計復(fù)雜度也維持在低水平。
Table 3 Comparison of quantitative results of machine learning algorithms and the improved algorithm on NUAACrack-2000 dataset表3 本文算法與機(jī)器學(xué)習(xí)算法在數(shù)據(jù)集NUAACrack-2000上的性能指標(biāo)對比
圖7~圖11展示了在不同情況下裂縫提取的效果對比圖。
Figure 7 Local comparison between ours and ITSD圖7 本文算法與ITSD結(jié)果局部對比
Figure 8 Comparison of fine crack extraction results圖8 不同算法細(xì)小裂紋提取結(jié)果對比
Figure 9 Comparison of low contrast crack extraction results圖9 不同算法低對比度裂紋提取結(jié)果對比
Figure 10 Comparison of crack extraction results with strong noise interference圖10 不同算法強噪聲干擾下的裂紋提取結(jié)果對比
在與傳統(tǒng)的Otsu閾值分割算法的效果圖對比中可以看到,該算法在進(jìn)行圖像分割的過程中會較大程度地受到噪聲點與照明情況的影響,產(chǎn)生很多非裂紋的提取圖像,這是傳統(tǒng)算法的一大弊端。
Table 4 Comparison of Params and MAdd of machine learning algorithms and the improved algorithm表4 本文算法與機(jī)器學(xué)習(xí)算法的Params和MAdd對比
Figure 12 Comparison of clear crack extraction results圖12 不同算法較清晰裂紋提取結(jié)果對比
Figure 13 Comparison of crack extraction results with complex background圖13 不同算法復(fù)雜背景下裂紋提取結(jié)果對比
由于機(jī)器學(xué)習(xí)算法是通過抽象出目標(biāo)的高維特征來進(jìn)行裂紋提取,受原圖非目標(biāo)像素影響較小,故本文提出算法可以較大程度地避免噪聲點的干擾。
機(jī)器學(xué)習(xí)算法均可以較好地擺脫非裂紋噪聲的影響。在圖8中,對于細(xì)小且形狀極其扭曲的裂紋,F(xiàn)CN、ITSD、DeepCrack與U2-Net均未能提取出完整的裂紋,出現(xiàn)了斷裂的現(xiàn)象。在圖10中,裂縫的背景包含強烈的噪聲,F(xiàn)CN與U2-Net均出現(xiàn)了誤提現(xiàn)象,對于噪聲影響的魯棒性較差;而ITSD提取出的裂縫附近包含了背景噪聲,且提取出的分割圖像的寬度比真實裂縫寬,精細(xì)度不高;DeepCrack則是無法完整地提取出全部的裂紋圖像。本文算法可以較為完整地識別出最上方受陰影影響的部分。
綜上,本文算法可對測試集圖像中的裂紋進(jìn)行較為精確的分割,不僅可以分割出裂紋的大體形狀與走向,保證裂縫的完整性,也能夠較為細(xì)致地處理裂紋邊界。圖10~圖13展示了更多可視化結(jié)果。
4.4.3 在其他裂縫數(shù)據(jù)集上的結(jié)果對比
為了驗證算法的魯棒性,本節(jié)還使用DeepCrack[15]數(shù)據(jù)集,增添了一組對比實驗。該數(shù)據(jù)集中裂縫形態(tài)與本文公開的數(shù)據(jù)集的隧道裂縫圖像差異較大,多拍攝自混凝土墻壁和地面等地點,裂縫的平均寬度較寬,大部分裂縫和背景之間的差異較為清晰。圖14展示了數(shù)據(jù)集中的部分圖像。各個算法均采用NUAACrack-2000訓(xùn)練集上訓(xùn)練得到的權(quán)重,直接對DeepCrack數(shù)據(jù)集的訓(xùn)練集進(jìn)行預(yù)測,得到最終的裂縫分割結(jié)果。實驗結(jié)果如表5所示,本文算法在該數(shù)據(jù)集上也取得了最優(yōu)的評價指標(biāo)。
Figure 14 Samples of the DeepCrack dataset圖14 DeepCrack數(shù)據(jù)集部分圖像
實驗表明,本文算法在裂紋提取方面較為魯棒,在有背景噪聲干擾的情況下可以有效地分割出裂紋的完整邊界,并且保留細(xì)節(jié)特征。但是,本文算法也存在一定的改進(jìn)空間。首先,裂紋數(shù)據(jù)主要采集于地鐵隧道,在NUAACrack-2000上訓(xùn)練的模型可能不適用于其他裂紋圖像提取,例如飛機(jī)表面的裂紋、鋼鐵表面的裂紋,還需要進(jìn)行遷移學(xué)習(xí)。其次,針對移動采集與處理設(shè)備內(nèi)存不足、算力有限等特點,設(shè)計較為輕量化的網(wǎng)絡(luò)結(jié)構(gòu)用以提取隧道圖像裂紋是當(dāng)務(wù)之急。因此,將來的改進(jìn)思路是如何進(jìn)一步精簡網(wǎng)絡(luò)結(jié)構(gòu)以提高提取裂紋的效率。
Table 5 Comparison of quantitative results of machine learning algorithm and the improved algorithm on DeepCrack dataset表5 本文算法與機(jī)器學(xué)習(xí)算法在數(shù)據(jù)集DeepCrack上的性能指標(biāo)對比
針對裂紋提取,本文提出了一種基于全卷積神經(jīng)網(wǎng)絡(luò)的單幅隧道圖像裂紋提取算法,提出并添加的細(xì)節(jié)修復(fù)模塊,可以保持裂縫提取形狀的完整性,并保留清晰的邊緣細(xì)節(jié)。實驗表明,本文算法能有效提取隧道裂紋形狀信息,并且很大程度上避免了類裂紋噪聲的干擾,魯棒性強,保留了裂紋邊緣的細(xì)節(jié)。另外,本文還公開了一個隧道裂紋數(shù)據(jù)集NUAACrack-2000,共包含2 000幅隧道裂紋的采集圖像與對應(yīng)的掩碼位圖,供廣大學(xué)者學(xué)術(shù)研究。