張振華,陸金桂
(南京工業大學機械與動力工程學院,江蘇 南京 211816)
混凝土橋梁在長期服役中,由于車輛超重,環境等因素影響,多數都存在裂縫[1],根據相關數據,裂縫是混凝土橋梁損壞的主要因素[2-3]。依靠人眼觀察的傳統檢測方式效率低精度差。隨著科學技術的發展,研究人員將圖像采集與分析設備安置于橋檢車上即為智能化橋檢車[4-6],此方法檢測效率高、成本低。
為了更好的對橋梁進行檢測,對裂縫檢測的算法開發刻不容緩。Xu[7]通過研究提取裂縫圖像的4個統計特征,以BP神經網絡進行裂縫的識別。丁愛玲[8]等根據圖像特征數據,以支持向量機檢測破損路面。上述方法通常需要復雜的預處理手段,而卷積神經網絡可以直接對圖像進行學習,不需要復雜的預處理過程,且具有較好的平移、縮放和旋轉不變性[9-10]。Lecun首先運用CNN完成了對數字的識別[11],Lawrence等將CNN用于人臉識別上并取得較好的識別效果[12],S.Ji等以CNN實現了人體動作的識別[13],劉欣等人將CNN用于軌道零部件檢測[14],姚明海等人將CNN用于鐵氧體磁片缺陷檢測中[15]。
由于卷積神經網絡的特性[16],對于不同的識別目標往往需要采用不同的網絡結構。通過對橋梁裂縫圖片的分析和對卷積神經網絡結構的研究,本文采用雙通道多種尺寸卷積核對橋梁裂縫圖片進行卷積和特征提取,并配以改進的激活函數作為傳遞函數,使用支持向量機(SVM)替代Softmax分類器,提高識別精度和效率。利用該方法對橋梁裂縫圖像進行識實驗,統計其識別率,并與傳統卷積神經網絡方法進行對比。
由于在橋梁表面存在干擾物,或由于圖像采集問題導致圖片質量問題等因素,采用熵閾值法對圖像進行簡單的預處理,突出裂縫與背景的對比,有效提高識別精度。
熵往往用來表示系統混亂的程度,熵閾值法通過尋找閾值對圖像進行分割,先設定閾值對圖像進行分割,分割后計算圖像目標和背景的熵總值,若某一閾值使分割后圖像的熵總值達到最大,則認為該閾值使圖像最佳分割閾值,熵閾值法表達式如下:
假設設原圖像的灰度級為K,當前設定的閾值為L,圖像目標為T,圖像背景為B,圖像中灰度級為i的像素為p(i),則目標像素的累計PT(L)如式(1)所示,背景像素的累計PB(L)如式(2)所示

(1)

(2)
則根據上式結果可得目標熵HT(L)和背景熵HB(L)分別為

(3)

(4)
而總熵即為兩熵之和
Hs(L)=HT(L)+HB(L)
(5)
以使總熵達到最大的閾值L對橋梁裂縫圖像進行簡單的預處理,效果如圖1所示。

圖1 混凝土橋梁裂縫處理效果圖
在橋梁表面往往會有拼接縫、劃痕、標線等一些類似于裂縫形態的物體,這些物體在一定程度上影響了對于裂縫識別的準確率,通常將其歸類是偽裂縫,如圖2所示。

圖2 混凝土橋梁常見的偽裂縫
偽裂縫的存在是目前影響橋梁裂縫檢測準確率的最大因素,但是相比于真實的裂縫這些偽裂縫在特征上還是有區別的,如何采用卷積神經網絡提取真實裂縫和偽裂縫的不同特征即為研究重點。同時橋梁裂縫一般有線狀裂縫和網狀裂縫,如何設計卷積神經網絡結構使其能充分提取圖像特征完成裂縫的識別是研究關鍵。
卷積神經網絡主要由卷積層、激活函數、池化層、全連接層組成,卷積層主要是通過不同的卷積核對圖像的特征進行提取。
激活函數即為神經元之間輸入和輸出之間映射關系的表達。池化層的即將相近的特征進行合并。全連接層的神經元與之前一層的每個神經元相連。卷積神經網絡基本結構如圖3所示。

圖3 卷積神經網絡結構圖
由于橋梁的裂縫和偽裂縫具有不同層次的特征,傳統的卷積神經網絡的結構會限制提取的特征的來源和層次,為了改善這種缺陷,往往采用添加卷積層的方法來提高獲取特征的層次,但若一味的添加卷積層會導致網絡層數過高,最后全連接層得到的信息較少,導致識別性能下降。由于橋梁裂縫識別中干擾物的存在和偽裂縫的影響,且微裂縫與真實裂縫相似度非常高,根據采用不同結構的卷積神經網絡對橋梁裂縫的識別測試,設計了雙通道多尺寸卷積核對橋梁裂縫圖像進行卷積處理,并最終將得到的信息在全連接層進行匯總,從而對橋梁裂縫進行識別。改進后的卷積神經網絡結構如圖4所示。

圖4 改進的卷積神經網絡結構
從圖4中可以看出,本文模型由兩個相對獨立的子卷積神經網絡構成,這樣不會有過多的卷積層導致全連接層得到信息過少的問題,且可以充分提取輸入圖像的特征。最終將兩個子網絡的信息在全連接層匯總處理。本文采用輸入圖片統一大小為128*128的分辨率,包含4個卷積層(C1,C2,C3,C4,),4個池化層(P1,P2,P3,P4),池化層以均值池化的方法得到池化結果,1個全連接層,最后以SVM代替softmax分類器來進行識別分類。
C1層由16個7*7的卷積核與輸入圖像進行卷積,得到16個不同的特征圖,特征圖的大小為122*122,后由池化層P1對卷積層C1以2*2的單元進行池化操作,P1層由16個61*61的特征圖構成。再以32個10*10的卷積核對P1進行卷積,得到卷積層C2,其由32個52*52大小的特征圖組成,再以2*2的單元對C2進行池化操作,得到池化層P2,其由32個26*26大小的特征圖組成。
C3層由16個13*13的卷積核與輸入圖像進行卷積,得到16個不同的特征圖,特征圖的大小為116*116,后由池化層P3對卷積層C3以2*2的單元進行池化操作,P3層由16個58*58的特征圖構成。再以32個15*15的卷積核對P3進行卷積,得到卷積層C4其由32個44*44大小的特征圖組成,再以2*2的單元對C2進行池化操作,得到池化層P2,其由32個22*22大小的特征圖組成。
全連接層F的輸入來自兩個子卷積神經網絡的最終池化層P3,P6,公式如下,F采用全連接的方法。

(6)

常用的激活函數有sigmoid函數、Tanh函數、Relu函數等。但這些函數或多或少都有些缺陷,sigmoid函數和Tanh函數易出現梯度彌散的問題,而Relu函數是分段的線性非飽和函數,相比sigmoid函數和Tanh函數有了很大的進步,但是其在運行時會將一部分神經元的輸出設為0,會造成神經網絡稀疏特征。本文對橋梁裂縫圖像進行識別,由于橋梁干擾物和偽裂縫的存在,且和真實裂縫非常相似,需要對圖像特征的映射更加精確。
Softplus函數也是非飽和線性函數,其數學表達式如式(7)所示,與Relu函數相比稀疏性較差,收斂速度比Relu函數慢,但Relu函數過分的強制稀疏往往會導致模型錯誤率的增高,其數學表達式如式(8)所示。本文采取兩個函數各自的優點,構造一個非飽和線性的激活函數用于神經網絡的輸入輸出映射,以期提高識別率。
f(x)=loge(1+ex)
(7)

(8)
在進行輸入輸出的映射時,由于Relu函數將小于0的部分都強制輸出為0,使小于0的神經元處于都處于非激活狀態,導致網絡學習受阻。本文引入Softplus函數,對小于0的部分使用Softplus函數來進行處理。當x=0時,Softplus函數的取值為loge2,為了保證組合函數的連貫性將Softplus函數減去loge2,使函數連貫。對于大于0的部分依舊采用Relu函數進行處理,以此方法改進Relu函數會造成神經網絡過度稀疏、模型欠擬合問題,綜合得到的改進激活函數如下式

(9)
以此操作保留了Relu函數收斂較快,不易丟失有用特征的優點,同時通過使用Softplus函數保留了小于0部分神經元的特征信息,提高了信息的獲取量,避免模型欠擬合。

圖5 改進的激活函數圖像
卷積神經網絡具有較好的特征提取能力,但其分類效果一般,卷積神經網絡通常采用Softmax分類器。支持向量機最初來自于線性分類器,它建立在VC維度理論和結構風險最小化原則之上。支持向量機具有較好的泛化性能,它可以在學習能力與模型復雜度之間取得最佳平衡。支持向量機能較好解決機器學習算法經常遇到的小樣本、過學習、局部極值、高維數問題。
Softmax分類器在對目標樣本分類時,若目標樣本的分類概率大于0.9時即認為分類正確,但此時損失函數仍然繼續計算,僅在分類概率接近1時才會終止計算,這種情況下運行時間會更長;而SVM的側重點在于被錯誤分類的目標樣本,對分類正確的目標樣本不再計算,因此使用SVM分類器的卷積神經網絡可以提高計算效率,縮短訓練時間,識別效果也更好。
實驗采用單核CPU:3.30GHz,內存4GB,GPU為NVIDIA GTX960,操作系統為64位win7系統,使用matlab2016a編寫算法。采用1013張橋梁采集的裂縫和偽裂縫圖片作為數據庫。實驗數據詳情如表1所示。

表1 實驗數據集
再對驗證集分別進行旋轉操作,旋轉角度分別為旋轉45°,90°,135°和180°,進行一共5組識別對比實驗。先對其以熵閾值法進行簡單地預處理,效果圖如前文第2節圖1所示。
參與實驗的各卷積神經網絡的結構如表2所示。

表2 實驗的卷積神經網絡結構和激活函數
通過上節所提方法對橋梁表面裂縫圖像進行識別,3種卷積神經網絡通過5組實驗所得實驗結果如圖7所示,第一組實驗本文方法均方誤差與迭代次數關系圖如圖6所示,總迭代次數為1200次。

圖6 均方誤差變化圖

圖7 不同模型分類準確率

表3 不同模型平均分類準確率對比

表4 不同模型訓練時間對比
從實驗結果中可看出改進的卷積神經網絡對橋梁真實裂縫的識別率有了明顯的提高,無論是將圖像做了多少度的旋轉,本文方法始終保持較高的識別率,且識別率波動不大,說明本文算法對旋轉、平移有較好的魯棒性。綜合來看5組試驗平均96.26%的識別率證明該方法在識別橋梁裂縫方面的可行性。
對比本文方法和CNN1可以發現,本文通過設計雙通道模型,使用Softplus函數改進Relu函數,并且使用SVM代替Softmax分類器構建新的CNN模型,其分類準確率、訓練時間較傳統的CNN模型均有顯著改善,平均分類準確率提高了10.34%,訓練時間縮短了15s,充分驗證了改進的CNN模型對橋梁裂縫檢測的適用性。對比本文方法和CNN2,在使用相同雙通道結構,相同激活函數的前提條件下,使用SVM分類器替代Softmax分類器的CNN模型,訓練時間縮短了10s。驗證了本文改進分類器策略的有效性。
1)本文以基于卷積神經網絡設計了用于混凝土橋梁裂縫檢測的方法,通過對橋梁裂縫圖像進行簡單地預處理,將處理后的圖像輸入改進的卷積神經網絡進行訓練學習,并最終完成對橋梁裂縫的識別檢測。
2)橋梁裂縫圖像存在大量的干擾物,且偽裂縫和真實裂縫高度相似,直接識別會造成特征提取困難且容易混淆。以熵閾值法對橋梁裂縫圖像進行預處理。以該方法很好地完成了橋梁裂縫圖像處理過程。
3)設計雙通道多種卷積核方式提取的圖像特征并在全連接層匯總;為充分提取圖像特征,進一步提高識別精度,以Relu函數和Softplus函數取優,構建了改進的卷積神經網絡激活函數,用于映射輸入和輸出之間的關系;為了提高計算效率,縮短模型的訓練時間,以SVM分類器替代Softmax分類器進行識別分類。最終以1013幅橋梁裂縫圖像對網絡進行訓練學習和識別測試,通過與其它2種卷積神經網絡進行對比,本文所提卷積神經網絡在橋梁裂縫的識別率上有了明顯的提高,高達96.26%。證明該方法在橋梁裂縫識別中的優越性和可行性。