龐 杰,張 華,3,馮春成,3,李林靜
(1.特殊環境機器人技術四川省重點實驗室,四川綿陽 621000;2.西南科技大學信息工程學院,四川綿陽 621000;3.清華四川能源互聯網研究院,成都 610213)
水利樞紐是修建于河道中多類水工建筑物的綜合體,其具有防洪、供水、發電和航運等功能,在保障與促進社會經濟發展中起到重要作用[1-2]。受工程建設水平和所在地的地質、水文以及氣象等因素影響,水利樞紐中混凝土壩面易形成裂縫、脫落等缺陷[3]。通常采用缺陷檢測技術分析壩面缺陷,在此基礎上對水利樞紐進行維護,以確保其處于良好的工作狀態。因此,壩面缺陷檢測對潰壩防范和防震減災具有重要意義[4]。
目前水利樞紐的壩面缺陷檢測以人工巡檢為主,存在耗時長、危險性大和成本高等問題。隨著人工智能技術的不斷發展,自動化水平較高的巡檢設備及安全評估系統[5]成為未來水利樞紐維護系統發展的必然趨勢。近年來,隨著以卷積神經網絡(Convolutional Neural Network,CNN)為代表的深度學習技術的迅速發展,基于計算機視覺的分類、檢測和分割方法應用日益廣泛[6]。針對建筑物表面缺陷檢測,文獻[7]提出一種基于深度卷積網絡的道路裂縫分類方法,對分辨率為99 像素×99 像素的彩色圖像進行準確分類。文獻[8]使用基于Faster-RCNN 的缺陷檢測方法,實現對混凝土裂縫、鋼筋腐蝕面以及螺栓腐蝕面的分層檢測與分類。文獻[9]利用全卷積網絡(Fully Convolutional Network,FCN)在彩色圖像上分割出裂縫缺陷,獲得精確的裂縫路徑和形態信息。與傳統分割算法相比,卷積神經網絡能自動提取與任務相關的魯棒特征,實現端到端的自動缺陷檢測。
水利樞紐的混凝土壩面由于長期被水沖刷滲蝕,其圖像數據存在嚴重的亮度不均衡、相似干擾噪聲大、背景復雜以及裂縫前景與背景在像素數量上不均衡等問題,造成壩面裂縫分割較困難。由于U-Net[10]網絡具有的對稱式編解碼結構可融合卷積網絡低維和高維特征,保證輸入和輸出分辨率一致,具有較高分割精度,因此本文將U-Net 網絡應用于水利樞紐的混凝土壩面裂縫圖像分割,并根據壩面圖像特點對其進行改進,提出一種基于可分離殘差卷積和語義補償的裂縫分割方法。在U-Net 網絡的編碼端構建大尺寸卷積核的可分離殘差模塊增大特征層感受野,在解碼端設計語義補償模塊彌補不同層級特征的語義差異,使用焦點損失作為類間損失,增大裂縫前景的損失權重并提高對困難樣本的注意力,同時增加中心損失縮小類內特征間距,以提高網絡對像素的分類準確度。
本文提出的壩面裂縫分割方法在U-Net 網絡基礎上進行改進,改進后的U-Net網絡結構如圖1 所示。該網絡由全卷積網絡構建的編碼和解碼兩部分組成。編碼部分利用1 個傳統的初始卷積模塊和4 個可分離殘差卷積模塊逐級對前一層輸出進行卷積處理,每個卷積模塊由多個卷積(Conv)層組成,每個卷積層包含卷積核、批歸一化(Batch Normalization,BN)層及ReLU 激活函數,通過最大值池化生成5 層不同尺度的語義特征。解碼部分先利用語義補償模塊對每層特征進行補償,再逐級與反卷積擴大尺寸后的輸出特征進行拼接,并通過傳統卷積模塊得到后續輸出,最終利用Sigmoid 函數得到與輸入圖像分辨率一致的像素級裂縫類別概率圖。

圖1 改進U-Net 網絡結構Fig.1 Structure of improved U-Net network
增加特征提取骨干網絡層數、設置適當大小感受野的卷積核以及減少網絡參數量與復雜度,在不降低網絡效率的同時可更有效地提取特征[11]。本文基于空間可分離卷積[12]思想,在編碼端設計一種感受野大小為7×7 的可分離殘差卷積模塊替換傳統2 層3×3 卷積核的卷積模塊,在擴大感受野的同時減少計算量,如圖2 所示。利用殘差結構[13]將卷積前底層邊緣特征與卷積后高層語義特征相結合,可降低卷積層中零填充操作引入的邊緣噪聲干擾。

圖2 傳統卷積模塊和可分離殘差卷積模塊結構Fig.2 Structures of traditional convolutional module and separable residual convolutional module
在圖2 中,輸出卷積核通道數為N,輸入特征通道數為N/2,可分離殘差卷積模塊與傳統卷積模塊的感受野相同。每個卷積層參數量的計算公式為:

其中,kw和kh為卷積核尺寸。傳統卷積模塊和可分離殘差卷積模塊結構的參數量分別為3N+13.5N2、4N+8N2,U-Net 網絡原有的2 層卷積模塊參數量為2N+9N2。由此可見,可分離殘差卷積模塊參數量更少,其具有更多卷積和激活等非線性操作,能賦予編碼端特征提取網絡更好的非線性能力。
U-Net 網絡在解碼過程中可實現多尺度特征相互融合,并將深層語義特征與淺層細節特征相結合。然而不同尺度的特征在經過多次卷積池化操作后,會有一定語義與細節特征差異,且層級差異較大的特征層之間特征差異更大,若直接進行特征拼接則會限制最終的分割結果[14]。因此,本文設計一種語義補償卷積模塊分別對不同尺度特征進行補償,如圖3 所示。

圖3 語義補償卷積模塊結構Fig.3 Structure of semantic compensation convolutional module
語義補償卷積模塊是由一定數量的3×3 卷積層及一個1×1 卷積層組成的殘差結構,各層步長均為1。其中,3×3 卷積層為語義特征補償單元,1×1 卷積層為邊界特征保留單元,可分層級補償語義特征并防止邊界特征丟失。使用補償單元與保留單元提取高層特征,并在解碼過程中逐層增加補償單元,將上述特征在拼接特征層經過語義補償與保留邊界特征后進行線性疊加,再與前序特征拼接融合。
語義分割網絡通常使用交叉熵等類間函數計算輸出與標簽之間每個像素的差異,并以所有像素差異的平均值作為訓練模型的目標損失函數。
在水工建筑物壩面裂縫圖像分割的二分類任務中,裂縫前景與背景圖像的像素數量嚴重不均衡導致背景損失占比較大,模型在訓練過程中會更注重背景識別,從而降低對裂縫的識別性能。此外,壩面裂縫圖像背景中存在大量與裂縫相似的復雜干擾噪聲,在模型訓練過程中會產生較多困難樣本,例如將裂縫識別為背景或將背景識別為裂縫等。針對該問題,本文使用焦點損失函數[15]和中心損失函數[16]分別作為類間損失函數和類內損失函數,使模型學習到更緊湊和中心化的輸出概率特征值。將混合損失函數定義為:

其中,Lf(P,Y)為焦點損失函數,Lc(P,Y)為中心損失函數,P和Y分別為訓練圖像通過分割網絡輸出的概率特征圖和真實標簽,λ為中心損失的權重,在本文中λ設置為1。
1.3.1 焦點損失
在原有交叉熵損失的基礎上增加兩個調節參數α和β,將其作為壩面裂縫分割的焦點損失函數,相關定義如下:

其中,m為所有像素的個數,y為第i個像素的標簽信息。
假設1 為裂縫、0 為背景,則標簽為裂縫(y=1)而識別為背景(p<0.5)或者標簽為背景(y=0)而識別為裂縫(p≥0.5)的像素為困難樣本,標簽和識別結果全為裂縫或者全為背景的像素為簡單樣本。(1-p)β及pβ分別為裂縫和背景兩類像素的困難樣本權重,本文增大困難像素樣本權重并減小簡單像素樣本權重,設置β=2[15]。1-α與α分別為背景及裂縫的像素占比,通過賦予不同類型像素的損失權重來平衡兩類像素數量,并根據計算得到的裂縫及背景像素數量比例,設置α=0.01。
1.3.2 中心損失
由于訓練數據與測試數據的分布不一致,僅使用類間損失函數作為訓練目標函數,盡管可實現測試集輸出的特征類間可分,但同類樣本輸出的特征分布是離散的,仍存在誤判的困難像素樣本。因此,本文在以焦點損失為類間損失的基礎上增加中心損失作為類內損失,從而得到更緊湊的輸出特征,中心損失函數定義如下:

其中,mc是標簽為裂縫的像素數量,m-mc是標簽為背景的像素數量,cc是標簽為裂縫的像素所得預測概率的均值中心,cg是標簽為背景的像素所得預測概率的均值中心。每批次訓練迭代均需重新計算上述兩個均值中心。
為驗證上述壩面裂縫分割方法的有效性,本文進行一系列消融實驗分別評估可分離殘差卷積模塊、語義補償卷積模塊以及混合損失函數的性能,再與主流的圖像分割方法進行對比分析。
由于目前無公開的水工建筑物壩面裂縫圖像數據集,本文利用清華四川能源互聯網研究院提供的中國西南部某大型水電站壩面圖像數據自制水工建筑物壩面裂縫圖像數據集。該數據集含有1 000 張圖像,每張圖像分辨率為608 像素×608 像素,所有裂縫像素區域均由人工標注完成。從該數據集中隨機抽取200 張圖像作為測試集,其余800 張圖像作為訓練集。
本文實驗采用Intel i7-7700K CPU@4.20 GHz 處理器,NVDIA GTX TITAN XP 25GB GPU,16 GB內存,Ubuntu 16.04 操作系統,Python 3.6 編程語言,Pytorch 1.3 和CUDA 10.0 深度學習框架。在訓練過程中采用Adam 梯度下降法,優化器的學習率設置為0.000 1,批處理大小為4,取測試集平均損失值最小的模型作為最終模型。在訓練和測試過程中,將概率值不小于0.5 的像素識別為裂縫前景,其他像素為背景。
針對壩面圖像的亮度不均衡、對比度差異明顯以及背景干擾噪聲復雜等特點,本文在模型訓練過程中使用水平翻轉、亮度及對比度隨機調整、幾何形變3 種方法隨機組合對每批訓練圖像及標簽進行預處理,每種方法獨立進行,使用概率均為0.5。上述方法可在不增大數據集規模的同時增加訓練集的多樣性,從而提升分割模型的泛化能力。
2.3.1 亮度及對比度隨機調整
使用灰度平均值u及均方差σ描述圖像X的亮度及對比度,其表達式如下:

其中,xi為第i個像素的灰度值,m為像素數量。
為保證調整后圖像與原圖像具有較顯著的差異性,生成變換系數η,其表達式如下:

為增強調整后圖像的隨機性,將255η與2η作為正態分布曲線的平均值與標準差,生成服從該分布的亮度值及對比度值2ησ。調整后的圖像表示為:

其中,ε為一個極小值常數。服從正態分布的參數可使調整后圖像的數據分布具有一定隨機性,且與原圖像差異較大。
2.3.2 幾何形變
基于裂縫區域的不規則性,使用幾何三角函數對所訓練圖像中每個像素的位置進行變換,可達到形變效果。幾何形變方式定義為:

其中,h、、w和分別為形變前后的坐標位置。
3 種預處理方法的效果示例如圖4 所示。圖4(a)以網格圖的形式描述了幾何形變的預處理過程,圖4(b)為原始數據圖像經過水平翻轉、隨機亮度及對比度調整、幾何形變3 種預處理前后的圖像,圖4(c)為原始數據圖像對應的標簽圖像同樣經過3 種預處理前后的圖像。

圖4 預處理前后的效果圖Fig.4 Effect images before and after preprocessing
本文實驗分別采用準確率(PA)、召回率(Rc)、F1值和交并比(Intersection over Union,IoU)評價不同方法的裂縫分割性能[17],其中F1 值與IoU 為語義分割實驗中綜合度量指標。上述指標分別定義如下:

其中,TP 為正確預測為裂縫的像素個數,FP 為錯誤預測背景為裂縫的像素個數,FN 為錯誤預測裂縫為背景的像素個數。
圖5 為本文提出的壩面裂縫分割模型(以下稱為本文模型)在訓練過程中訓練損失值與驗證損失值的變化情況。可以看出,本文模型在訓練過程中的損失值迅速衰減,并在迭代80 輪后趨于收斂。由此可知,該模型未出現過擬合現象,具有良好的泛化性能。

圖5 本文模型在訓練過程中的損失衰減曲線Fig.5 Loss attenuation curve of the proposed model in the training process
在U-Net 網絡基礎上,逐個添加可分離殘差卷積模塊、語義補償卷積模塊、焦點損失函數及中心損失函數,將本文方法與上述方法的裂縫分割性能進行對比,結果如表1 所示。可以看出,本文方法針對壩面圖像提出的一系列措施均能提高裂縫分割性能,本文方法的F1 值及IoU 較U-Net 網絡分別提高1.32 個百分點和1.54 個百分點。

表1 不同方法的裂縫分割性能對比結果Table 1 Crack segmentation performance comparison results of different methods %
本文進一步對類內中心損失函數的有效性進行評估,圖6 為表1 中實驗4 和實驗5 訓練所得模型對相同測試圖像輸出概率值的分布密度曲線。可以看出,僅使用焦點損失函數的網絡輸出概率值分布較離散,且具有更多的像素輸出概率值分布在0.5 左右,仍有較多的困難像素樣本,而增加中心損失函數的網絡輸出概率值分布更集中,聚集于0.75 左右的極點兩側,處于0.5 左右的困難像素樣本數量明顯減少。由上述結果可知,中心損失函數不能有效增大類間的差異性,且降低了裂縫像素輸出概率值的中心平均值。結合表1 的分析結果可知,焦點損失函數+中心損失函數較焦點損失函數的F1 值及IoU 分別增加0.44 個百分點和0.52 個百分點,表明中心損失函數能有效縮小類內像素輸出概率特征值的差異,提升對困難像素樣本的識別性能。

圖6 不同模型的輸出概率值分布密度曲線Fig.6 Output probability value distribution density curves of different models
由上述實驗結果可知,改進前U-Net 的各項評價指標均低于改進的各個裂縫分割方法。其中,綜合指標F1 值及IoU 隨著改進措施的增加而提升,說明本文提出的各項改進措施能有效提升裂縫分割性能。
將本文方法與改進前U-Net 方法以及SegNet[18]、FCN-8S[19]及DeepLab V3[20]3 種經典裂縫分割方法進行對比。其中,SegNet 利用末級單層特征層進行圖像分割,FCN-8S 基于跳接結構將末端3 層特征融合后進行圖像分割,DeepLab V3 使用空洞卷積及空間金字塔池化模塊進行圖像分割。上述方法的部分裂縫分割效果與評價指標結果分別如圖7 和表2 所示。可以看出,SegNet 和FCN-8S 的裂縫分割效果較差,DeepLab V3及U-Net的裂縫分割效果稍好且U-Net優于DeepLab V3,本文方法的裂縫分割效果最佳。本文以U-Net 為基礎網絡,通過一系列改進措施有效提升了對包含細小裂縫區域的困難樣本的識別性能,本文方法對壩面裂縫的分割效果較其他方法更優。

圖7 不同方法的部分裂縫分割效果圖Fig.7 Partial effect images of crack segmentation with different methods

表2 不同方法的裂縫分割指標結果Table 2 Crack segmentation index results of different methods %
針對壩面圖像在復雜環境下存在的像素不均衡、干擾噪聲大等問題,本文基于改進U-Net 提出一種壩面裂縫分割方法。在U-Net 網絡編碼端使用可分離殘差卷積模塊增大感受野,在解碼端增加語義特征補償模塊改善特征融合效果,將焦點損失函數及中心損失函數作為目標函數提高對裂縫前景像素與困難樣本像素的注意力,采用幾何形變以及圖像亮度和對比度隨機變換的方法對訓練的圖像進行預處理。實驗結果表明,本文方法較改進前U-Net的F1 值和交并比分別提高1.32 個百分點及1.54 個百分點,分割效果較SegNet、FCN-8S 等傳統方法更優。后續將精簡分割模型減少參數量,進一步提高該方法的檢測實時性。