孔 燕 袁 輝 柯敏勇 范宇鑫 趙啟林 潘大榮
(1.江蘇泰州大橋有限公司,江蘇 泰州 225300;2.南京工業大學,江蘇 南京 210000;3.南京水利科學研究院,江蘇 南京 210000;4.南京工程學院,江蘇 南京 210000)
我國大部分基礎設施由混凝土澆筑而成,由于混凝土材料自身的特性和服役環境中各種因素的影響,絕大多數的混凝土構件中都存在裂縫,影響結構安全。以橋梁為例,據統計90%以上的混凝土橋梁損壞由裂縫引起[1]。傳統的檢測方法主要基于人工視覺檢測,需要搭建腳手架、掛籃或者使用專門的橋梁檢測車,成本高,檢測效率較低,同時會妨礙結構運營使用,而且檢測效果往往依賴于檢測人員的經驗豐富程度[2,3]。為解決上述問題,現在越來越多的采用爬壁機器人、無人機、非接觸檢測儀等圖像采集設備來獲取結構表觀圖像,但完全依靠人工識別圖像中的病害工作量太大,研究混凝土裂縫自動識別算法意義顯著。
基于數字圖像處理的裂縫自動識別算法受到廣泛關注,常用的分類器有支持向量機和BP神經網絡[4,5],文獻[6]同時使用了這兩種分類器并做對比,認為支持向量機構建的裂縫識別算法具有更高識別準確率,推薦使用支持向量機。但是不同分類器有各自的適用條件,考慮到實際工程使用初期裂縫出現少、收集的樣本集規模有從少到多逐步積累的特點,本文對少樣本與多樣本的條件下利用支持向量機與BP神經網絡進行裂縫識別的效果進行了對比分析。
基于支持向量機與BP神經網絡的混凝土裂縫自動識別算法都包括圖像處理,圖像分割,特征提取,目標識別4個步驟(見圖1)。本文中的圖像預處理和圖像分割這兩步均參考了文獻[2]中的灰度化公式、中值濾波與閾值分割算法。

在特征提取這一步中,選擇了像素數比、寬高比和邊緣相似性三個可用于區分線狀對象和塊狀對象的特征值,以及線狀物骨架二階差分絕對值之和的平均值、骨架三階差分絕對值之和的平均值、骨架的擬合曲線與自身所圍成的平均面積、三個可區分裂縫和同樣具有狹長形態偽裂縫的特征值(見圖2),共六個特征值組成了裂縫識別的特征向量,具體的計算方法參考文獻[7][8]。

本文試驗采用自建樣本庫,樣本圖取自于泰州大橋、紅楓湖大橋、魚梁州大橋等混凝土橋梁,樣本尺寸為128像素×128像素,類型包含裂縫樣本和非裂縫樣本,非裂縫樣本包括偽裂縫樣本和只包含塊狀物的一般背景樣本,部分樣本圖片如圖3~圖5所示。每張裂縫樣本圖像和偽裂縫樣本圖像僅含一條線狀物,樣本分為訓練集和測試集。多樣本分類試驗訓練集包含900個樣本圖像,而測試集包含450個樣本圖像。少樣本分類試驗訓練集包含90個樣本圖像,而測試集包含45個樣本圖像。裂縫圖像、偽裂縫圖像和一般背景圖像的比例為1∶1∶1。
提取樣本圖像的像素數比、寬高比、邊緣相似性、骨架二階差分絕對值之和的平均值、骨架三階差分絕對值之和的平均值、骨架的擬合曲線與自身所圍成的平均面積作為輸入矩陣。輸入矩陣的行代表一個特征向量,輸入矩陣的列代表所有樣本的某一特征值集合。然后對數據進行標準化處理,經過標準化的處理能增加精度,它決定訓練過程中運行速度的快慢、能否順利收斂和泛化功能的強弱。數據標準化的公式如下:
(1)
其中,Xij為標準化的數據;xij為原始數據;μj為輸入矩陣第j列特征值的算數平均值;σj為輸入矩陣第j列特征值的標準差。
支持向量機采用徑向基核函數,需要確定的訓練超參數有懲罰系數c和核函數超參數g。本文采用K折交叉驗證法(K-CV)優化懲罰系數c和核函數超參數g,使模型的預測精度達到最高,并使用這組超參數來訓練模型。K折交叉驗證的基本原理是將原始數據平均分成K組,將每組數據分別做一次驗證集,同時其余K-1組數據作為訓練集,這樣會得到K個模型,使用這K個模型驗證集的分類準確率的平均值作為此K折交叉驗證下分類器的性能指標[9]。使用優化后的超參數訓練的模型分類的測試結果分別如表1,表2所示。




表1 基于多樣本訓練的支持向量機分類結果

表2 基于少樣本訓練的支持向量機分類結果
BP神經網絡的結構包含6個節點的輸入層,一個包含13個節點的隱含層和包含2個節點的輸出層。在訓練參數選取方面,初始權值將在[-1,1]區間內隨機產生,學習速率為0.01,期望誤差為0.001,最大訓練次數選擇20 000,傳遞函數選擇Sigmoid函數,訓練函數選擇Levenberg Marquardt算法。
多樣本訓練的網絡模型和少樣本訓練的網絡模型的Performance曲線如圖6,圖7所示。Performance曲線反映的是訓練誤差的變化,訓練誤差越小表明模型擬合精度越高,兩個模型的訓練誤差均下降到0.001以下,網絡模型訓練效果良好。使用測試樣本檢測訓練好的網絡模型,結果如表3,表4所示。


表3 基于多樣本訓練的BP神經網絡分類結果

表4 基于少樣本訓練的BP神經網絡分類結果
支持向量機在兩種訓練條件下都能取得90%以上的識別率,高于相同訓練條件下的BP神經網絡的識別率;BP神經網絡在多樣本訓練條件下能取得較高的識別率,但在少樣本訓練條件下取得的識別率低于70%。因為BP神經網絡是基于傳統統計學的基礎上的。傳統統計學研究的內容是當樣本數據趨于無窮多時的統計性質,所以理論上訓練BP神經網絡需要大量的樣本。在工程使用初期、裂縫樣本較少的情況下,采用支持向量機具有更高的分類能力;而到了工程使用中后期、裂縫樣本較多的情況下,BP神經網絡與支持向量機對裂縫識別能力基本相當,均可以作為工程使用的識別算法,但是在考慮到訓練成本與多分類需求的情況下,可能使用BP神經網絡更為合適。
本文利用三個能區分線狀物與塊狀物的特征量以及三個能在線狀物中將裂縫與水跡、劃痕等偽裂縫區分的特征量同時作為支持向量機或BP神經網絡輸入來構造了兩個算法,并在少樣本與多樣本情況下進行了訓練和測試。以支持向量機作為分類器的算法在多樣本和少樣本的訓練條件下的總體識別率分別為94.2%和91.1%;以BP神經網絡作為分類器的算法在多樣本和少樣本的訓練條件下的總體識別率分別為92.4%和64.4%,以六個特征向量作為網絡輸入可一次性實現裂縫與非裂縫的區分。在少樣本情況下基于支持向量機的算法識別效果明顯優越于基于BP神經網絡的算法;在多樣本情況下兩種算法的識別效果基本一致。考慮到在工程使用初期、裂縫樣本較少的情況下,采用支持向量機具有更高的分類能力;而到了工程使用中后期、裂縫樣本較多的情況下,BP神經網絡與支持向量機對裂縫識別能力基本相當,在考慮到訓練成本與多分類需求的情況下,可能使用BP神經網絡更為合適。