王澤矯,張起睿,方冬冬,王新鵬
(1.甘肅省水利水電勘測設計研究院有限責任公司,甘肅 蘭州 730000;2.澳門城市大學,澳門 999078; 3.廣東省廣州市城市規劃勘測設計研究院,廣東 廣州 510000;4.貴州大學礦業學院,貴州 貴陽 550025)
裂縫是大壩普遍存在的風險源。裂縫危害輕則庫水下泄,大壩停運檢修,重則引發壩體潰壩,威脅下游群眾生命財產安全。通過科學的手段,實時檢測大壩裂縫,提前采取預防拯救措施,可以有效避免因裂縫引起的大壩事故。現有的大壩裂縫檢測方法往往存在耗時耗力、實時性不高、檢測精度低的缺點。周克明[1]采用裂縫計對壩體表面裂縫開合度進行測量,裂縫計需人工安放于已知裂縫位置,不能感知新裂縫,測程有限;姜福田[2]等研究了用超聲波檢測大壩混凝土裂縫的方法,通過在三門峽大壩中的具體實踐,證明了該方法在裂縫檢測上的有效性;胡江[3]等深入研究了光纖傳感器裂縫檢測法,其檢測原理是利用調制解調信號來反映參數的變化情況,一旦壩體產生裂縫,即可對其定位并對裂縫寬度進行測量;葉貴如[4]等對原始數字圖像采取一系列預處理步驟,實現對裂縫的提取,進而計算裂縫寬度等信息。現有基于深度學習裂縫檢測大多面向路面、橋梁等對象,缺乏在大壩裂縫檢測中的應用;Zhang L[5]首次采用卷積神經網絡的方法對道路裂縫檢測;李良福[6]等人提出了一種基于深度學習的橋梁裂縫檢測方法,采用基于卷積神經網絡的分類模型,實現橋梁背景與裂縫的識別;劉新根[7]等研究了一種基于深度學習的隧道襯砌裂縫自動識別算法,引入分類網絡篩選出含有裂縫的圖像,識別網絡對裂縫進行識別,進而實現對裂縫幾何信息的計算。基于深度學習的大壩裂縫檢測方法可以將無人機靈活高精度獲取壩體影像的優勢與深度學習強大的數據特征學習功能相結合,實現大壩裂縫自動化、高精度及高時效性的檢測。而目前采用該方法進行大壩裂縫檢測,存在兩方面的挑戰:一是缺乏高精度的大壩裂縫數據集;二是沒有現成的直接用于大壩裂縫檢測的卷積神經網絡模型,存在算法優化的問題。本文構建了標準的大壩裂縫數據集,引入了基于SegNet[8]的大壩裂縫卷積神經網絡模型,通過定性和定量的方法驗證了模型的有效性。通過基于深度學習模型的大壩裂縫檢測結果,提取了裂縫的幾何信息,并對特征信息進行了分析。
利用深度學習理論進行目標檢測的本質在于用復雜的神經網絡對海量的數據進行訓練,得到目標對象準確的訓練特征,然后將這些特征作為濾波器,與待識別的圖像做卷積運算,實現目標的檢測。由此需要構建高精度的大壩裂縫數據集。選用獵鷹8型無人機,搭載索尼a7r傳感器,對某大壩壩內含裂縫的墻體近距離密集拍攝,獲得尺寸大小為7360×4912的彩色裂縫圖像786張,包含了22個壩段,空間分辯率為0.7mm。考慮到航飛影像航向和旁向的高重疊度,為了減少做裂縫標簽的工作量,選取18個壩段的圖像進行拼接處理,得到18張拼接后的圖像,如圖1所示,然后對拼接后的原始數據采用labelme進行裂縫特征標記,如圖2所示。基于現有數據為了獲得更多的裂縫數據集,按400像素值為步長對拼接后的原始圖像和對應的標簽圖像進行裁剪,得到大小為512×512的圖像,然后對裁剪后的圖像進行翻轉和旋轉等操作,最后得到兩組各含有13218張大壩裂縫的原始裂縫數據集和帶裂縫標簽的數據集,將其中90%的數據集作為訓練集數據,5%的數據作為驗證集數據,5%的數據作為測試集數據。

圖1 拼接后的數據集

圖2 標記后的數據集
卷積神經網絡[9]依據對裂縫圖像的特征學習和特征表達,形成成熟的訓練模型,當將待檢測的裂縫圖像利用該模型進行測試時,可以快速準確地檢測出壩面上裂縫的情況。將深度卷積神經網絡的方法用于大壩裂縫檢測上,可以達到與傳統檢測方法不一樣的優勢。
本文采用基于SegNet的神經網絡模型[10]如圖3所示。該網絡主要由編碼器網絡與解碼器網絡組成,編碼器與解碼器網絡充分提取圖像中目標對象深層次的特征[10],然后采用卷積及反卷積等操作將編碼器和解碼器中每一個尺度的卷積特征進行融合得到一幅單尺度的融合特征圖像。最后將融合特征圖像在所有尺度上進行組合得到多尺度的融合特征圖像,從而得到目標對象更加全面細致的特征[11]。這種基于多層特征融合的網絡結構可以有效地將復雜背景中的裂縫識別出來[12]。

圖3 裂縫檢測深度卷積神經網絡模型
裂縫檢測深度卷積神經網絡模型通過PyTorch深度學習框架實現,使用武大GPU集群完成網絡模型訓練。在網絡訓練中根據以往程序調試經驗設置初始學習率為0.01,優化器函數選用Adam,沖量為0.8,batchSize為9,同時使用權值衰減正則化方法及動量優化算法,權值衰減系數設為0,動量系數設為0.8。對網絡模型參數反復進行迭代計算,當訓練集與驗證集誤差值趨于收斂并誤差值達到最小時即得到最優的網絡模型訓練參數[13],最終選用第57次的迭代結果作為最優的網絡模型。
采用測試集數據對網絡模型進行測試,從測試結果中選取幾幅典型的檢測結果與原始圖像和對應的裂縫標簽圖像進行比較,通過定性比較的方法,分析基于深度學習的方法檢測大壩裂縫的有效性;求定檢測結果圖像的混淆矩陣、精確率、正確率及召回率,通過定量計算的方法,評定基于深度學習的方法檢測大壩裂縫的準確性。

圖4 典型檢測結果一

圖5 典型檢測結果二

圖6 典型檢測結果三

圖7 典型檢測結果四
圖4為理想狀態下的檢測結果,圖像中沒有包含任何其他干擾對象,裂縫識別清晰準確。圖5原始圖像中除了兩條裂縫外,還存在數條豎直走向的水流痕跡,然而在檢測結果中只有裂縫,沒有水流痕跡的信息,檢測結果中沒有發生漏檢和誤檢現象。圖6原始圖像A中除了兩條裂縫外,還存在一條明顯的紅色纜線,從檢測結果中可以看到,只有裂縫的特征信息,纜線沒有被誤檢出來,檢測結果與裂縫標簽圖中裂縫特征信息一一對應。圖7原始圖像A中除了彼此相交的三條裂縫外,還存在兩塊水泥修補的痕跡,其輪廓線條清晰,然而檢測結果中只有裂縫的特征信息,裂縫形狀清晰,檢測結果沒有受到其他對象的干擾。從以上的檢測結果中可以看到基于深度卷積神經網絡的方法可以準確檢測出圖像中的裂縫,能夠較好的避開圖像中的干擾因素,基本不存在漏檢和誤檢現象,裂縫骨架特征清晰準確。
表1中給出了定量評價指標,混淆矩陣給出了預測值與真實值間的精度關系,精確率代表了預測目標對象的準確率,正確率代表了所有對象預測的準確性,召回率代表了預測真實目標的準確性。從表1中可以看到所有對象被正確分類的概率達到90%以上,網絡對所有對象的預測具有較高的正確性;預測結果圖像中計算的精確率高于75%,召回率高于80%,可以看到對裂縫的預測具有較高的準確度。可以看到部分目標對象沒有被準確分類,可能的原因有:①樣本容量不夠大,網絡訓練參數不夠精確;②該大壩裂縫開裂度特別細小,檢測精度要求很高,發生了部分的漏檢情況。綜合分析可以看出采用基于深度卷積神經網絡的方法對大壩裂縫進行檢測具有一定的可靠性。
通過基于深度卷積神經網絡的方法對大壩裂縫檢測,得到了準確的裂縫檢測結果,檢測結果主要給出了兩方面的信息。一是檢測結果圖像中只有裂縫的信息,其他對象的信息沒有出現;二是在結果圖像中可以清楚的看到裂縫的形狀特征及裂縫間存在的幾何位置關系。而在實際的大壩裂縫檢測應用中除了準確識別裂縫外,往往還需關注裂縫的幾何特征值,比如求定裂縫的面積、長度及寬度信息,這樣能夠更加詳細地評估裂縫的病變情況。在解求過程中將標簽圖像中裂縫的幾何值作為準確值,同時求定檢測結果圖像中對應的幾何值,二者進行比較來驗證檢測結果中裂縫幾何值的準確性。先選擇合適的閾值,對檢測結果圖像進行二值化,得到檢測結果的二值化圖。設計程序分別統計檢測結果二值化圖和標簽圖中255像素值的個數,依據圖像的分辨率計算面積特征值;對檢測結果二值化圖和標簽圖像做Canny邊緣檢測處理,統計邊緣檢測結果中255像素值的個數,依據分辨率計算裂縫的長度特征值。最后采用面積和長度的關系,得到裂縫寬度的信息。在本文中選取一條典型的裂縫作為測試對象,說明本文提出的方法在計算裂縫幾何特征時的可行性。

表1 檢測結果定量評價值整理

圖8 檢測結果與標簽圖像
設計程序統計圖8中檢測結果二值化圖中白點的個數為5398,標簽圖像中白點個數為5238,兩幅圖像對應的空間分辯率為0.7mm,由此分別得到檢測結果二值化圖中裂縫面積為18.75cm2,標簽二值化圖中裂縫面積為18.12cm2。
采用Canny算子[14]對檢測結果圖像與標簽圖像進行邊緣檢測,邊緣檢測結果如圖9所示。統計邊緣檢測結果中像素值為255的個數,檢測結果圖像為4030個,標簽圖像為4045個。圖上可以看到檢測結果為對稱的雙邊緣,在計算長度時用一半的像素總數計算,兩幅圖像的空間分辯率都為0.7mm,計算得到檢測結果圖像中裂縫的長度為141.05cm,標簽圖像中裂縫的長度為141.58cm。由此可以得到檢測結果圖像的平均寬度值為1.87mm,標簽圖像的平均寬度為1.81mm。從而驗證了基于深度學習的裂縫檢測結果可以得到裂縫基本的幾何信息值。

圖9 Canny算子邊緣檢測結果
大壩裂縫隱蔽性強,存在范圍廣,檢測精度要求高,檢測工作量大。基于深度學習的大壩裂縫檢測能克服傳統方法低檢測精度、低檢測效率及高成本的不足,可以充分利用高精度的航飛影像,通過建立神經網絡模型對海量的數據進行處理,依據嚴密的算法及網絡強大的特征學習能力,得到裂縫最本質的特征屬性,然后利用高性能的網絡訓練結果可以隨時對獲取的裂縫圖像進行檢測。該方法可以充分利用每次航飛的原始影像,組建十分豐富的網絡訓練數據集,可以對需要的網絡模型不斷地進行調優,再用調優的網絡模型進行裂縫檢測,可以得到更精確的結果。通過無人機可以獲取大壩高陡處的影像數據,能夠實現更大范圍的裂縫檢測,對裂縫的檢測更加全面。本文基于深度學習的方法準確檢測出了大壩中的裂縫,并通過定性和定量的方法驗證了該方法的準確性,依據檢測結果計算了裂縫的幾何信息,但對網絡模型訓練不夠,缺乏更具代表性、海量的數據對模型進行訓練,對細小弱裂縫的檢測性能不夠好,對裂縫幾何信息值的計算過于簡單,后期需進一步深入研究、完善。