劉 鑫,趙慧杰,武蘇雯
(1.中原工學院 計算機學院,河南 鄭州 450007;2.武漢天宸偉業物探科技有限公司,湖北 武漢 430071)
裂縫是一種常見的地質構造現象,是由于巖石層受力后變形,力達到或超過巖石層的強度極限,破壞了巖石層的連續完整性,并在巖石層的某個位置和方向斷裂,對工程建設影響較大,特別是對隧道及地下工程的穩定性影響更大[1]。傳統的裂縫檢測方法主要采用人工識別并手動標記裂縫參數,這種處理方法不僅費時,效率低下,而且容易出錯,特別是在大量樣本的情況下,裂縫檢測的精確度將會大大降低。而巖層裂縫圖像本身就存在樣本數據有限、背景復雜等特點,容易受到地理位置、巖層結構等因素的影響,這些都會不定量地增加傳統方法的檢測難度。因此,及時準確地提取巖層裂縫的有效特征,對巖層裂縫進行快速檢測,成為推動科研發展有序前進的動力。
隨著人工智能技術的飛速發展,隧道及地下工程的檢測技術在不斷更新,使用深度學習技術和圖像處理技術檢測裂縫圖像,可提高工程建設的安全性。國內外科研人員致力于這一領域的研究,取得了一定的科研成果。例如,文獻[2]從路面裂縫檢測過程中背景裂紋的復雜性和強度不均勻性出發,提出了一種基于深度學習的裂縫檢測方法;文獻[3]針對在復雜背景下用圖像處理技術檢測民用基礎設施缺陷時的局限性問題,提出了一種基于卷積神經網絡深度學習的視覺裂紋損傷檢測方法;文獻[4]針對基于人工視覺的路面裂縫檢測系統檢測誤差大、實施風險高等問題;提出了一種基于圖像處理技術的道路裂縫自動檢測方法;文獻[5]針對隧道圖像存在噪聲多、對比度低和光照不均勻等問題,提出了一種基于深度學習網絡Faster R-CNN的隧道圖像裂縫檢測方法。
針對復雜背景下的巖層裂縫,實現裂縫的快速檢測,該文基于傳統的U-Net網絡,擬加入批量歸一化層和修正線性單元激活層,用深度可分離卷積替代普通卷積,并改用均方誤差損失函數加以優化,通過對比不同結構模型的巖層圖像裂縫檢測效果,驗證該算法的可行性和有效性。
以武漢天宸偉業物探科技有限公司提供的巖層圖像為數據源,算法分為4個步驟,主要包括圖像采集、數據增強、圖像預處理以及基于U-Net網絡的巖層圖像裂縫檢測,基本流程如圖1所示。

圖1 基于U-Net的巖層圖像裂縫檢測算法基本流程
考慮到巖層圖像采集的特殊性與復雜性,原始圖像均由武漢天宸偉業物探科技有限公司提供。該公司生產的TS-C1201(B)高清多功能鉆孔全景成像分析儀,是一款對鉆孔進行全面檢測的高科技設備,其中包括成像分析儀主機、探頭、深度測深滑輪等主要部件。該產品集成了鉆孔拍照、錄像、成像和軌跡測量等功能,它可以同時獲得鉆孔動態錄像視頻、局部高清照片、全孔壁平面展開圖和鉆孔空間軌跡圖。在圖像采集過程中,隨著探頭不斷往孔內行進,整個孔壁會自動匹配并拼接成完整的平面展開圖像,并在展開圖中截取實驗所需的圖像,大小均為512 px×512 px。
在訓練時,經常會因原始數據集不足出現過擬合等問題,因此需對數據集進行數據增強處理,這樣有助于增加數據集的量,防止學習到不想要的模型,有效減少過擬合,從而得到泛化能力更強的網絡模型??紤]到數據增強方法中的對比度增強、亮度增強和顏色增強等方法對巖層圖像影響不大或偏離實際,故只采用隨機旋轉與平移的方法處理原始圖像,選擇包括原圖在內的11張有效圖像,生成11倍數據集,再加入一定量的無裂縫圖像,構成名為RFID(rock formation image dataset)的數據集,數據增強效果如圖2所示。

圖2 巖層裂縫圖像數據增強效果
圖像預處理是為了減少噪聲,提高圖像質量,在原始圖像中盡可能保留裂縫的特征信息,有效提高裂縫的可檢測性,最大程度地簡化數據,并提高特征提取和圖像分割的可靠性[6]。
先使用加權平均法[7]進行灰度處理,過程中對原始圖像中的RGB三分量進行加權平均來獲得更合理的灰度圖像,計算公式如下:
Gray(i,j)=0.299R(i,j)+0.587G(i,j)+
0.114B(i,j)
(1)
式中,(i,j)表示像素坐標點。
再使用自適應中值濾波[8]進行去噪處理,有效濾除圖像中存在的噪聲,處理過程如圖3所示??梢园l現,預處理后的巖層圖像能更好地保留裂縫的特征細節,提高檢測效果。

圖3 巖層圖像的預處理過程
U-Net網絡是一種改進的全卷積神經網絡模型,網絡中沒有全連接層,可以檢測任何大小的圖像[9]。考慮到U-Net網絡主要用于生物醫學圖像的檢測[10],為了更好地提高檢測效果,該文對U-Net網絡結構進行改進,完成對巖層圖像的裂縫檢測。
1.4.1 批量歸一化(batch normalization)
在卷積網絡中,下一層的輸入就是上一層的輸出,在使用隨機梯度下降法訓練網絡模型時,每次參數的更新都會使網絡中每層的輸入分布發生變化。為了解決這一現象,加入了批量歸一化層,對每一層卷積網絡進行歸一化處理,使得每一層輸入的分布在訓練過程中保持一致,防止過擬合,其前向傳導過程公式如下:
(2)
(3)
(4)

1.4.2 修正線性單元(rectified linear unit)
修正線性單元是機器學習中常用的激活函數,它負責從輸入端到輸出端映射網絡中的神經元,并將非線性因素引入網絡。相比于Sigmoid和tanh函數,ReLU函數具有稀疏性,能使網絡訓練更快,減少過擬合,加速收斂,最終達到更好的分割效果[11],其計算公式如下:

(5)
式中,x表示輸入神經元。
1.4.3 深度可分離卷積(depthwise separable convolution)
深度可分離卷積分為兩個過程,第一個過程是將深度信息分離,第二個過程是使用1×1的卷積進行通道融合,還原到目標尺寸,將普通卷積與深度可分離卷積的結構進行對比,如圖4所示。

圖4 普通卷積與深度可分離卷積的結構對比
可以看出,深度可分離卷積在使用大量的1×1卷積后,可以直接利用高度優化的矩陣乘法來完成計算,從而大大減少了參數數量,并提高了計算效率[12]。
1.4.4 損失函數
計算損失函數的大小是訓練過程的主要依據,也是判斷訓練后算法質量的重要標準[13]。原始U-Net卷積網絡采用的是二值交叉熵(binary cross-entropy)[14],一般用于二分類,是一個針對概率之間的損失函數,經過多次模擬實驗發現該損失函數并不能使損失值達到最佳,故替換成均方誤差(mean squared error)[15]來降低訓練過程中的損失值,其計算公式如下:
(6)

1.4.5 U-Net網絡的改進
巖層圖像的裂縫檢測模型結構如圖5所示,整個網絡共有19個卷積層,區別于傳統的U-Net網絡,改進的U-Net網絡在每個卷積層中加入了批量歸一化層和修正線性單元激活層,并用深度可分離卷積代替原來的普通卷積,增強了網絡性能,加快模型學習速度,得到一個更快、更小的檢測網絡;模型采用Adam算法進行優化,損失函數改用MSE,進一步降低訓練過程中的損失值,實現梯度參數的更新[16]。

圖5 改進的U-Net網絡結構
2.1.1 環境設置
實驗環境是基于深度學習模型TensorFlow的高階API:tf.keras,并結合Python編程語言搭建的。實驗數據在Kaggle平臺上運行,環境配置如下:操作系統為Windows10;GPU為Nvidia Tesla P100-PCIE-16 GB 1.328 5 GHz;CPU Frequency為2.3 GHz;RAM為14 GB;Disk為5.2 GB。
2.1.2 參數設置
實驗采用Adam算法對模型進行優化,設定學習率為0.000 1;加入的批量歸一化層動量設定為0.99;為了防止模型在訓練的過程中存在過擬合問題,Dropout的大小設定為0.5;考慮到每個GPU處理的圖像數量和GPU數量,模型的批量大小設定為5。而對于訓練次數的話,考慮到如果訓練次數太少,模型無法很好地擬合訓練數據的分布而容易出現欠擬合狀態;如果訓練次數太多,模型則過度依賴訓練數據的分布而容易出現過擬合狀態,因此通過分析損失值和精確度與訓練次數的關系,來確定訓練次數。圖6為模型訓練中損失值和精確度與訓練次數的關系,從圖中可以看出,模型的損失值隨著訓練次數的增加而降低,精確度隨著訓練次數的增加而升高,當訓練次數超過40時,兩者趨于穩定,因此實驗中的訓練次數設置為40。

圖6 損失值和精確度與訓練次數的關系
2.1.3 數據集設置
從RFID數據集中篩選5 000張經過預處理的有裂縫圖像,按照4∶1的比例分為訓練集與測試集,并在測試集中放入少量無裂縫圖像,其中,訓練集用于訓練模型,測試集用于驗證模型的性能。最后,使用Adobe Photoshop軟件對裂縫圖像進行裂縫標注,生成與圖像尺寸一致的裂縫輪廓標簽。
為了驗證模型的檢測性能,將其與U-Net、U-Net+MSE、U-Net+BN、U-Net+DSC四種結構模型進行對比,并對實驗結果進行分析。
2.2.1 評估參數對比
實驗過程中將損失值與精確度作為評估參數,對五種結構模型進行評估,繪制評估參數變化趨勢對比圖(如圖7所示)與評估參數訓練數據對比表(如表1所示)。從圖表中可以看出,該算法模型的損失值和精確度均優于其他四種結構模型,并使得模型損失值降到0.009 1,精確度達到0.994 3,對比可知該模型的收斂速度更快,檢測精確度更高。

圖7 評估參數變化趨勢對比

表1 評估參數訓練數據對比
注:*表示訓練次數,loss表示損失值,acc表示精確度。
2.2.2 檢測效果對比
在實驗中分別訓練五種結構模型,對檢測結果進行對比,得到各模型的裂縫檢測效果圖(如圖8所示),其中第一列為輸入的巖層裂縫圖像,第二列為標簽,第三至六列為對比模型檢測結果,最后一列為文中算法檢測結果。相比之下,提出的基于U-Net的巖層圖像裂縫檢測算法能更有效地提取裂縫特征,在針對巖層圖像的裂縫檢測過程中魯棒性更高,具有更好的檢測性能。

圖8 裂縫檢測效果對比
針對巖層圖像裂縫檢測問題,提出了一種基于U-Net的巖層圖像裂縫檢測算法。在原始U-Net網絡的基礎上,加入了批量歸一化層和修正線性單元激活函數層,并使用深度可分離卷積取代原來的普通卷積,進一步增強網絡性能,減少過擬合,加快模型學習速度;同時結合Adam優化算法,改用MSE作為模型訓練中的損失函數,以降低損失值,提高模型檢測精確度。實驗結果表明,提出的算法與其他結構模型相比,收斂速度更快,精確度更高,有更好的分割效果,實現了對巖層圖像的裂縫檢測,體現了深度學習中U-Net網絡對巖層圖像裂縫檢測的可能性。但實驗本身還存在一些檢測不完全的問題,針對這一問題,擬在后期工作中加入滑動窗口技術,對圖像進行整體掃描,獲取更多的有效特征,實現更全面的巖層圖像裂縫檢測算法。