劉 鑫,趙慧杰,武蘇雯
(1.中原工學(xué)院 計算機(jī)學(xué)院,河南 鄭州 450007;2.武漢天宸偉業(yè)物探科技有限公司,湖北 武漢 430071)
裂縫是一種常見的地質(zhì)構(gòu)造現(xiàn)象,是由于巖石層受力后變形,力達(dá)到或超過巖石層的強(qiáng)度極限,破壞了巖石層的連續(xù)完整性,并在巖石層的某個位置和方向斷裂,對工程建設(shè)影響較大,特別是對隧道及地下工程的穩(wěn)定性影響更大[1]。傳統(tǒng)的裂縫檢測方法主要采用人工識別并手動標(biāo)記裂縫參數(shù),這種處理方法不僅費(fèi)時,效率低下,而且容易出錯,特別是在大量樣本的情況下,裂縫檢測的精確度將會大大降低。而巖層裂縫圖像本身就存在樣本數(shù)據(jù)有限、背景復(fù)雜等特點(diǎn),容易受到地理位置、巖層結(jié)構(gòu)等因素的影響,這些都會不定量地增加傳統(tǒng)方法的檢測難度。因此,及時準(zhǔn)確地提取巖層裂縫的有效特征,對巖層裂縫進(jìn)行快速檢測,成為推動科研發(fā)展有序前進(jìn)的動力。
隨著人工智能技術(shù)的飛速發(fā)展,隧道及地下工程的檢測技術(shù)在不斷更新,使用深度學(xué)習(xí)技術(shù)和圖像處理技術(shù)檢測裂縫圖像,可提高工程建設(shè)的安全性。國內(nèi)外科研人員致力于這一領(lǐng)域的研究,取得了一定的科研成果。例如,文獻(xiàn)[2]從路面裂縫檢測過程中背景裂紋的復(fù)雜性和強(qiáng)度不均勻性出發(fā),提出了一種基于深度學(xué)習(xí)的裂縫檢測方法;文獻(xiàn)[3]針對在復(fù)雜背景下用圖像處理技術(shù)檢測民用基礎(chǔ)設(shè)施缺陷時的局限性問題,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)的視覺裂紋損傷檢測方法;文獻(xiàn)[4]針對基于人工視覺的路面裂縫檢測系統(tǒng)檢測誤差大、實(shí)施風(fēng)險高等問題;提出了一種基于圖像處理技術(shù)的道路裂縫自動檢測方法;文獻(xiàn)[5]針對隧道圖像存在噪聲多、對比度低和光照不均勻等問題,提出了一種基于深度學(xué)習(xí)網(wǎng)絡(luò)Faster R-CNN的隧道圖像裂縫檢測方法。
針對復(fù)雜背景下的巖層裂縫,實(shí)現(xiàn)裂縫的快速檢測,該文基于傳統(tǒng)的U-Net網(wǎng)絡(luò),擬加入批量歸一化層和修正線性單元激活層,用深度可分離卷積替代普通卷積,并改用均方誤差損失函數(shù)加以優(yōu)化,通過對比不同結(jié)構(gòu)模型的巖層圖像裂縫檢測效果,驗(yàn)證該算法的可行性和有效性。
以武漢天宸偉業(yè)物探科技有限公司提供的巖層圖像為數(shù)據(jù)源,算法分為4個步驟,主要包括圖像采集、數(shù)據(jù)增強(qiáng)、圖像預(yù)處理以及基于U-Net網(wǎng)絡(luò)的巖層圖像裂縫檢測,基本流程如圖1所示。
圖1 基于U-Net的巖層圖像裂縫檢測算法基本流程
考慮到巖層圖像采集的特殊性與復(fù)雜性,原始圖像均由武漢天宸偉業(yè)物探科技有限公司提供。該公司生產(chǎn)的TS-C1201(B)高清多功能鉆孔全景成像分析儀,是一款對鉆孔進(jìn)行全面檢測的高科技設(shè)備,其中包括成像分析儀主機(jī)、探頭、深度測深滑輪等主要部件。該產(chǎn)品集成了鉆孔拍照、錄像、成像和軌跡測量等功能,它可以同時獲得鉆孔動態(tài)錄像視頻、局部高清照片、全孔壁平面展開圖和鉆孔空間軌跡圖。在圖像采集過程中,隨著探頭不斷往孔內(nèi)行進(jìn),整個孔壁會自動匹配并拼接成完整的平面展開圖像,并在展開圖中截取實(shí)驗(yàn)所需的圖像,大小均為512 px×512 px。
在訓(xùn)練時,經(jīng)常會因原始數(shù)據(jù)集不足出現(xiàn)過擬合等問題,因此需對數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)處理,這樣有助于增加數(shù)據(jù)集的量,防止學(xué)習(xí)到不想要的模型,有效減少過擬合,從而得到泛化能力更強(qiáng)的網(wǎng)絡(luò)模型。考慮到數(shù)據(jù)增強(qiáng)方法中的對比度增強(qiáng)、亮度增強(qiáng)和顏色增強(qiáng)等方法對巖層圖像影響不大或偏離實(shí)際,故只采用隨機(jī)旋轉(zhuǎn)與平移的方法處理原始圖像,選擇包括原圖在內(nèi)的11張有效圖像,生成11倍數(shù)據(jù)集,再加入一定量的無裂縫圖像,構(gòu)成名為RFID(rock formation image dataset)的數(shù)據(jù)集,數(shù)據(jù)增強(qiáng)效果如圖2所示。
圖2 巖層裂縫圖像數(shù)據(jù)增強(qiáng)效果
圖像預(yù)處理是為了減少噪聲,提高圖像質(zhì)量,在原始圖像中盡可能保留裂縫的特征信息,有效提高裂縫的可檢測性,最大程度地簡化數(shù)據(jù),并提高特征提取和圖像分割的可靠性[6]。
先使用加權(quán)平均法[7]進(jìn)行灰度處理,過程中對原始圖像中的RGB三分量進(jìn)行加權(quán)平均來獲得更合理的灰度圖像,計算公式如下:
Gray(i,j)=0.299R(i,j)+0.587G(i,j)+
0.114B(i,j)
(1)
式中,(i,j)表示像素坐標(biāo)點(diǎn)。
再使用自適應(yīng)中值濾波[8]進(jìn)行去噪處理,有效濾除圖像中存在的噪聲,處理過程如圖3所示??梢园l(fā)現(xiàn),預(yù)處理后的巖層圖像能更好地保留裂縫的特征細(xì)節(jié),提高檢測效果。
圖3 巖層圖像的預(yù)處理過程
U-Net網(wǎng)絡(luò)是一種改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò)模型,網(wǎng)絡(luò)中沒有全連接層,可以檢測任何大小的圖像[9]??紤]到U-Net網(wǎng)絡(luò)主要用于生物醫(yī)學(xué)圖像的檢測[10],為了更好地提高檢測效果,該文對U-Net網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),完成對巖層圖像的裂縫檢測。
1.4.1 批量歸一化(batch normalization)
在卷積網(wǎng)絡(luò)中,下一層的輸入就是上一層的輸出,在使用隨機(jī)梯度下降法訓(xùn)練網(wǎng)絡(luò)模型時,每次參數(shù)的更新都會使網(wǎng)絡(luò)中每層的輸入分布發(fā)生變化。為了解決這一現(xiàn)象,加入了批量歸一化層,對每一層卷積網(wǎng)絡(luò)進(jìn)行歸一化處理,使得每一層輸入的分布在訓(xùn)練過程中保持一致,防止過擬合,其前向傳導(dǎo)過程公式如下:
(2)
(3)
(4)
1.4.2 修正線性單元(rectified linear unit)
修正線性單元是機(jī)器學(xué)習(xí)中常用的激活函數(shù),它負(fù)責(zé)從輸入端到輸出端映射網(wǎng)絡(luò)中的神經(jīng)元,并將非線性因素引入網(wǎng)絡(luò)。相比于Sigmoid和tanh函數(shù),ReLU函數(shù)具有稀疏性,能使網(wǎng)絡(luò)訓(xùn)練更快,減少過擬合,加速收斂,最終達(dá)到更好的分割效果[11],其計算公式如下:
(5)
式中,x表示輸入神經(jīng)元。
1.4.3 深度可分離卷積(depthwise separable convolution)
深度可分離卷積分為兩個過程,第一個過程是將深度信息分離,第二個過程是使用1×1的卷積進(jìn)行通道融合,還原到目標(biāo)尺寸,將普通卷積與深度可分離卷積的結(jié)構(gòu)進(jìn)行對比,如圖4所示。
圖4 普通卷積與深度可分離卷積的結(jié)構(gòu)對比
可以看出,深度可分離卷積在使用大量的1×1卷積后,可以直接利用高度優(yōu)化的矩陣乘法來完成計算,從而大大減少了參數(shù)數(shù)量,并提高了計算效率[12]。
1.4.4 損失函數(shù)
計算損失函數(shù)的大小是訓(xùn)練過程的主要依據(jù),也是判斷訓(xùn)練后算法質(zhì)量的重要標(biāo)準(zhǔn)[13]。原始U-Net卷積網(wǎng)絡(luò)采用的是二值交叉熵(binary cross-entropy)[14],一般用于二分類,是一個針對概率之間的損失函數(shù),經(jīng)過多次模擬實(shí)驗(yàn)發(fā)現(xiàn)該損失函數(shù)并不能使損失值達(dá)到最佳,故替換成均方誤差(mean squared error)[15]來降低訓(xùn)練過程中的損失值,其計算公式如下:
(6)
1.4.5 U-Net網(wǎng)絡(luò)的改進(jìn)
巖層圖像的裂縫檢測模型結(jié)構(gòu)如圖5所示,整個網(wǎng)絡(luò)共有19個卷積層,區(qū)別于傳統(tǒng)的U-Net網(wǎng)絡(luò),改進(jìn)的U-Net網(wǎng)絡(luò)在每個卷積層中加入了批量歸一化層和修正線性單元激活層,并用深度可分離卷積代替原來的普通卷積,增強(qiáng)了網(wǎng)絡(luò)性能,加快模型學(xué)習(xí)速度,得到一個更快、更小的檢測網(wǎng)絡(luò);模型采用Adam算法進(jìn)行優(yōu)化,損失函數(shù)改用MSE,進(jìn)一步降低訓(xùn)練過程中的損失值,實(shí)現(xiàn)梯度參數(shù)的更新[16]。
圖5 改進(jìn)的U-Net網(wǎng)絡(luò)結(jié)構(gòu)
2.1.1 環(huán)境設(shè)置
實(shí)驗(yàn)環(huán)境是基于深度學(xué)習(xí)模型TensorFlow的高階API:tf.keras,并結(jié)合Python編程語言搭建的。實(shí)驗(yàn)數(shù)據(jù)在Kaggle平臺上運(yùn)行,環(huán)境配置如下:操作系統(tǒng)為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 參數(shù)設(shè)置
實(shí)驗(yàn)采用Adam算法對模型進(jìn)行優(yōu)化,設(shè)定學(xué)習(xí)率為0.000 1;加入的批量歸一化層動量設(shè)定為0.99;為了防止模型在訓(xùn)練的過程中存在過擬合問題,Dropout的大小設(shè)定為0.5;考慮到每個GPU處理的圖像數(shù)量和GPU數(shù)量,模型的批量大小設(shè)定為5。而對于訓(xùn)練次數(shù)的話,考慮到如果訓(xùn)練次數(shù)太少,模型無法很好地擬合訓(xùn)練數(shù)據(jù)的分布而容易出現(xiàn)欠擬合狀態(tài);如果訓(xùn)練次數(shù)太多,模型則過度依賴訓(xùn)練數(shù)據(jù)的分布而容易出現(xiàn)過擬合狀態(tài),因此通過分析損失值和精確度與訓(xùn)練次數(shù)的關(guān)系,來確定訓(xùn)練次數(shù)。圖6為模型訓(xùn)練中損失值和精確度與訓(xùn)練次數(shù)的關(guān)系,從圖中可以看出,模型的損失值隨著訓(xùn)練次數(shù)的增加而降低,精確度隨著訓(xùn)練次數(shù)的增加而升高,當(dāng)訓(xùn)練次數(shù)超過40時,兩者趨于穩(wěn)定,因此實(shí)驗(yàn)中的訓(xùn)練次數(shù)設(shè)置為40。
圖6 損失值和精確度與訓(xùn)練次數(shù)的關(guān)系
2.1.3 數(shù)據(jù)集設(shè)置
從RFID數(shù)據(jù)集中篩選5 000張經(jīng)過預(yù)處理的有裂縫圖像,按照4∶1的比例分為訓(xùn)練集與測試集,并在測試集中放入少量無裂縫圖像,其中,訓(xùn)練集用于訓(xùn)練模型,測試集用于驗(yàn)證模型的性能。最后,使用Adobe Photoshop軟件對裂縫圖像進(jìn)行裂縫標(biāo)注,生成與圖像尺寸一致的裂縫輪廓標(biāo)簽。
為了驗(yàn)證模型的檢測性能,將其與U-Net、U-Net+MSE、U-Net+BN、U-Net+DSC四種結(jié)構(gòu)模型進(jìn)行對比,并對實(shí)驗(yàn)結(jié)果進(jìn)行分析。
2.2.1 評估參數(shù)對比
實(shí)驗(yàn)過程中將損失值與精確度作為評估參數(shù),對五種結(jié)構(gòu)模型進(jìn)行評估,繪制評估參數(shù)變化趨勢對比圖(如圖7所示)與評估參數(shù)訓(xùn)練數(shù)據(jù)對比表(如表1所示)。從圖表中可以看出,該算法模型的損失值和精確度均優(yōu)于其他四種結(jié)構(gòu)模型,并使得模型損失值降到0.009 1,精確度達(dá)到0.994 3,對比可知該模型的收斂速度更快,檢測精確度更高。
圖7 評估參數(shù)變化趨勢對比
表1 評估參數(shù)訓(xùn)練數(shù)據(jù)對比
注:*表示訓(xùn)練次數(shù),loss表示損失值,acc表示精確度。
2.2.2 檢測效果對比
在實(shí)驗(yàn)中分別訓(xùn)練五種結(jié)構(gòu)模型,對檢測結(jié)果進(jìn)行對比,得到各模型的裂縫檢測效果圖(如圖8所示),其中第一列為輸入的巖層裂縫圖像,第二列為標(biāo)簽,第三至六列為對比模型檢測結(jié)果,最后一列為文中算法檢測結(jié)果。相比之下,提出的基于U-Net的巖層圖像裂縫檢測算法能更有效地提取裂縫特征,在針對巖層圖像的裂縫檢測過程中魯棒性更高,具有更好的檢測性能。
圖8 裂縫檢測效果對比
針對巖層圖像裂縫檢測問題,提出了一種基于U-Net的巖層圖像裂縫檢測算法。在原始U-Net網(wǎng)絡(luò)的基礎(chǔ)上,加入了批量歸一化層和修正線性單元激活函數(shù)層,并使用深度可分離卷積取代原來的普通卷積,進(jìn)一步增強(qiáng)網(wǎng)絡(luò)性能,減少過擬合,加快模型學(xué)習(xí)速度;同時結(jié)合Adam優(yōu)化算法,改用MSE作為模型訓(xùn)練中的損失函數(shù),以降低損失值,提高模型檢測精確度。實(shí)驗(yàn)結(jié)果表明,提出的算法與其他結(jié)構(gòu)模型相比,收斂速度更快,精確度更高,有更好的分割效果,實(shí)現(xiàn)了對巖層圖像的裂縫檢測,體現(xiàn)了深度學(xué)習(xí)中U-Net網(wǎng)絡(luò)對巖層圖像裂縫檢測的可能性。但實(shí)驗(yàn)本身還存在一些檢測不完全的問題,針對這一問題,擬在后期工作中加入滑動窗口技術(shù),對圖像進(jìn)行整體掃描,獲取更多的有效特征,實(shí)現(xiàn)更全面的巖層圖像裂縫檢測算法。