李夏利,焦良葆,曹雪虹,
(1.南京郵電大學通信與信息工程學院,江蘇南京 210003;2.南京工程學院信息與通信工程學院,江蘇南京 211167)
進入21 世紀以來,我國地下工程建設蓬勃發(fā)展,大量隧道工程陸續(xù)投入運營[1-3]。隨著時間的推移,混凝土結構常會發(fā)生惡化,導致各種結構病害,如充氣空洞、脫空和排水不良導致的含水層等。這些病害隨時可能對繁忙的交通產生威脅,給社會帶來無法挽回的損失,因此隧道襯砌結構檢測十分重要。探地雷達(Ground Penetrating Ra?dar,GPR)作為一種新興的無損檢測技術,具有定位準確、速度快、使用靈活、探測精度高等特點,已被廣泛應用于探測淺層地下未知物體[4]。Shao 等[5]提取探地雷達反射波的幅度譜特征,并使用支持向量機(SVM)分類器自動分類檢測鐵路路基道砟病害;周輝林等[6]提取探地雷達反射波的時域—小波域特征,使用SVM 分類器自動檢測高速公路淺層病害;趙勐[7]在分析鐵路路基和典型病害圖像特征的基礎上,提出基于二維小波分析的特征提取算法,并將算法應用于測試樣本的病害識別,驗證了算法的有效性;廖立堅等[8]根據(jù)小波變換的反濾波突出層面和病害位置,并結合層結構檢測方法,使用SVM 分類器自動解譯鐵路路基探地雷達圖像病害,結果表明,該算法對鐵路路基病害的提取識別率大于90%;Ristic 等[9]利用訓練的人工神經網(wǎng)絡(ANN)定位探地雷達圖像中的異常區(qū)域,通過搜索雙曲線圖像模式和峰值點確定反射發(fā)生位置,但是對于在探地雷達圖像中不表現(xiàn)為雙曲線特征的目標體,該算法有效性大大降低。目前大多數(shù)識別方法是通過提取病害特征,使用SVM 分類器或模型處理探地雷達數(shù)據(jù),最終識別分類病害,而利用殘差網(wǎng)絡實現(xiàn)病害分類的相關研究較少。
2016 年,He 等[10]提出ResNet 模型,ResNet 結構中的殘差學習思想總體解決了訓練更深網(wǎng)絡中存在的梯度消失或爆炸問題,較大程度地提升了分類準確率。近年來,殘差網(wǎng)絡廣泛應用于農業(yè)、工業(yè)等領域。文獻[11]采用改進型殘差網(wǎng)絡進行礦井圖像分類;文獻[12]采用改進深度殘差網(wǎng)絡進行番茄病害圖像識別分類。在現(xiàn)有研究的基礎上,本文從準確率、召回率、平均準確率等方面進行評價,分析不同層數(shù)殘差網(wǎng)絡在實測數(shù)據(jù)集上的表現(xiàn),測得ResNet-34 神經網(wǎng)絡在隧道病害數(shù)據(jù)集上的識別率為98.9%,為隧道襯砌病害識別提供了新方法。
ResNet 卷積神經網(wǎng)絡又稱為深度殘差網(wǎng)絡,其通過加入殘差單元解決傳統(tǒng)Alexnet[13]、Inception[14]、NIN[15]等經典神經網(wǎng)絡出現(xiàn)的問題。ResNet 大幅度提高了模型檢測速度與精度,并解決了隨著網(wǎng)絡層數(shù)增加而出現(xiàn)的梯度消失或爆炸[16-18]、網(wǎng)絡衰退問題,適合應用于實際場景中[10]。ResNet 借鑒高速網(wǎng)絡的跨層連接思想,并對其進行了改進。本文采用的是ResNet-34 網(wǎng)絡結構,其有34 層網(wǎng)絡,包括4 個殘差模塊,每個殘差模塊都有不同的卷積層數(shù)。為避免網(wǎng)絡對初始化權重不敏感,每個卷積層后面都設有1個批處理層。ResNet-34 具體是由1 層7×7×64 大小的卷積層,16 個由3 個卷積層構成的block 殘差模塊以及1 層全連接層構成[19]。
針對網(wǎng)絡中的堆積層結構,假定輸入為x,期望輸出為H(x),即H(x)是網(wǎng)絡學習到的數(shù)據(jù)特征。殘差網(wǎng)絡借助跨層連接的思想,利用多個有參網(wǎng)絡層對網(wǎng)絡輸入與輸出數(shù)據(jù)之間的殘差F(x)=H(x)-x 進行學習,其中H(x)-x 表示有參網(wǎng)絡層學習輸入與輸出之間的殘差,若神經網(wǎng)絡學習達到比較飽和的準確率,即輸入x 近似接近于輸出H(x),則x 為恒等映射(Identity Mapping)[10]。
殘差學習(Residual Learning)[10]的思想可表示為圖1。圖1 中右側的連接為沒有帶入任何參數(shù)的跳層連接,是將上一層或幾層的特征信息直接與本層處理后的特征信息相加,然后進行線性激活,其數(shù)學表達式為:
式中,xl為 第L 個殘 差單元 的輸 入特 征,xl+1為第L 個殘差單元的輸出特征,Wl為1 組與第L 個殘差單元相關的權重,F(xiàn)(xl?Wl)為1 個殘差函數(shù)。在ResNet 中,h(xl)=xl是恒等連接,f(*)為1 個ReLU(Recitified Linear Unit)激活函數(shù)。
ResNet 中的恒等映射結構是指將當前此層輸出直接傳入下一層網(wǎng)絡。當網(wǎng)絡輸入與輸出通道數(shù)相同時:
式中,x 為網(wǎng)絡輸入,y 為網(wǎng)絡的期望輸出。
當網(wǎng)絡輸入與輸出通道數(shù)不同時,有兩種恒等映射方式:一種是簡單地將x 相對y 缺失的通道直接補零使其對齊,另一種是通過使用1×1 的conv 表示W(wǎng)s映射,從而使最終輸入與輸出的通道數(shù)目相同,即:
式中,Ws為1×1 的卷積。
為減少深度網(wǎng)絡的參數(shù)量和卷積量,可加入瓶頸結構。其通過使用1×1 的卷積改變維度,從而使3×3 卷積的過濾器數(shù)目不受上一層輸入的影響,同時其輸出也不會對下一層模塊造成干擾,最后通過1×1 的卷積恢復特征維度,如此可節(jié)省計算時間。瓶頸結構如圖2 所示。
Fig.1 Residual learning圖1 殘差學習
Fig.2 Bottleneck structure圖2 瓶頸結構示意圖
設計一種基于深度學習ResNet 神經網(wǎng)絡的隧道襯砌病害識別算法,以實現(xiàn)5 種隧道襯砌病害的分類。面對多分類問題,向ResNet-34 網(wǎng)絡中加入Softmax 函數(shù),其將多個神經元的輸出映射到(0,1)區(qū)間內,在多分類任務中提升了訓練效率。同時選擇交叉熵分類損失函數(shù)與正則化損失函數(shù),以加快網(wǎng)絡收斂速度,限制過擬合現(xiàn)象產生。
對于輸入的1 張圖像,首先通過1 個大小為7×7,步長為2 的卷積核對其進行特征提取,圖片長寬變?yōu)樵瓉淼囊话耄黄浯屋斎氲? 個最大池化層進行特征區(qū)域劃分,即將區(qū)域中的最大值作為區(qū)域代表以降低計算量和參數(shù)數(shù)目;然后將池化后的圖像作為輸出通過16 個block 模塊,繼續(xù)進行圖像特征提取;最后將圖片輸入平均池化層和全連接層,輸出的數(shù)據(jù)特征由全連接層映射到一維向量中,并將該向量通過Softmax函數(shù)進行回歸,將分類結果以概率的方式呈現(xiàn)。
訓練圖片經過卷積、正則化、激活、池化處理,輸出數(shù)據(jù)特征由全連接層映射到一維向量中。該向量通過Soft?max 函數(shù)運算后將隧道襯砌病害分類結果以概率的方式呈現(xiàn),即將全連接層輸出的特征向量轉化為指數(shù)函數(shù),并將1個N 維的任意實數(shù)向量映射為另1 個N 維的實數(shù)向量,使向量中每個元素的值介于0~1 之間,最后對所有結果相加進行歸一化,從而以概率的形式呈現(xiàn)出來。
Softmax 計算公式如下:
式中,labels 為隧道襯砌病害圖像的標簽;y 為1 項1×numclasses 的向量,其實際隧道襯砌病害類別標簽對應的位置為1,其余位置均為0,numclasses 為隧道襯砌病害圖像標簽的分類數(shù)目;Pi為該隧道襯砌病害屬于第i 種圖像分類的概率;lossi為對應隧道襯砌病害類別的損失函數(shù);logitsi為輸出向量logits的第i 值。
損失函數(shù)可用于評價模型預測值與真實值的差異程度,損失函數(shù)越好,模型的性能越佳。本文采用交叉熵[20]作為損失函數(shù),隨著預測概率偏離實際標簽,交叉熵損失會逐漸增加。采用權重正則化[21]計算正則損失,損失函數(shù)總體損失值為分類損失與正則損失的總和。
分類損失是指計算batch 中每個病害類型樣本的真實標簽(labels)與病害類別預測結果(logits)之間的系數(shù)Soft?max 交叉熵,并取該矩陣的平均值。利用稀疏Softmax 交叉熵計算分類損失旨在最大程度地減少病害類別預測結果與樣本真實標簽之間的距離,并擴大預測結果與其余錯誤類別標簽之間的距離,從而減少重疊并提高匹配性能。交叉熵損失函數(shù)的公式如下:
式中,y 指該樣本的真實標簽,K 為病害總類數(shù),N 為1個batch 中的樣本數(shù)量,pi,k為第i 個樣本預測為第k 種類別的概率。
在訓練過程中對網(wǎng)絡權重增加正則化,以保留所有特征,減少參數(shù)大小,防止過擬合現(xiàn)象并提高模型泛化性能。權重正則化損失函數(shù)的形式為:
式中,α為正則項系數(shù),W 為網(wǎng)絡權重,θ為隧道襯砌病害類別預測值,x 為隧道襯砌病害樣本數(shù)據(jù)特征,T 為權重項數(shù)。
為驗證基于ResNet 的隧道襯砌病害識別與分類效果,采用模擬數(shù)據(jù)與浙江翁垟隧道檢測數(shù)據(jù)為數(shù)據(jù)集進行實驗測試及相應結果的分析與討論。
將數(shù)據(jù)集分為兩組,第1 組采用數(shù)值模擬方法建立數(shù)據(jù)集,采用Gprmax 探地雷達仿真軟件創(chuàng)建混凝土結構空洞、脫空、含水層以及不密實的仿真地質結構模型,得到仿真探地雷達數(shù)據(jù)圖像。建立基于實測圖像的噪聲模型,根據(jù)不同深度噪聲強度不同的實際情況,對模型加入噪聲,使其更接近于實測數(shù)據(jù)。第2 組數(shù)據(jù)集為部分仿真圖像加入實際測量數(shù)據(jù),實測數(shù)據(jù)為采用探地雷達探測出的浙經翁垟1 號、2 號隧道圖片。
在隧道運營期,由于服役環(huán)境變化、結構性能劣化、施工質量差異等因素的綜合作用,隧道襯砌結構內部經常會產生各種病害,主要包括脫空、空洞、含水層、不密實等。將模擬數(shù)據(jù)圖片按照7∶2∶1 的比例分為訓練集、測試集與驗證集,其中訓練集3 693 張,測試集1 051 張,驗證集531 張,圖片尺寸均為224×224。5種隧道襯砌病害圖例如圖3所示。
Fig.3 Simulated diseases圖3 模擬仿真病害
將實際測量數(shù)據(jù)圖片按照3∶1∶1 的比例分為訓練集、測試集與驗證集。5 種隧道病害類型圖例如圖4 所示。
Fig.4 Measured diseases圖4 實測病害
由于設備環(huán)境等因素影響,實測數(shù)據(jù)圖片質量較差,故首先對實測數(shù)據(jù)進行去噪處理,再提取病害區(qū)域。為使圖片數(shù)據(jù)更好地適應模型,解決實測數(shù)據(jù)與模擬數(shù)據(jù)圖片大小不一致的問題,需要在實驗前采用數(shù)據(jù)歸一化處理將數(shù)據(jù)集圖片統(tǒng)一為224 ×224 大小。
采用準確率(Accuracy)、精確率(Precison Rate)、召回率(Recall Rate)、F1 等作為分類模型的評價指標。
3.3.1 準確率、精確率、召回率、F1
準確率指預測正確的樣本數(shù)占全部預測正確樣本數(shù)的比例。
精確率指在被分類為正類別的樣本中確定為正類別的比例。
召回率指在所有正類別樣本中被正確分類為正類別的比例。
F1指精確率與召回率的加權調和平均。當α為1 時,則Fα=F1,當F1較高時,說明結果較為理想。公式[22]如下:
3.3.2 宏精確率、宏召回率、宏F1
宏精確率(macro-P)指在多分類問題中先分別計算出每一類別的準確率,再求得的平均值,公式[22]如下:
宏召回率(macro-R)指在多分類問題中先分別計算出每一類別的召回率,再求得的平均值,公式[22]如下:
宏F1(macro-F1)指在多分類問題中先分別計算出每一類別的F1值,再求得的平均值,公式[22]如下:
本文采用不同層數(shù)ResNet 網(wǎng)絡作為ResNet-34 的對照組,訓練完成后采用帶有GPU 的臺式機調用該模型對測試集圖片進行測試,實現(xiàn)了基于ResNet 的隧道襯砌病害識別。ResNet 各層測試結果總體如表1 所示,具體數(shù)據(jù)如表2—表9、圖5—圖8 所示。
Table 1 Comparison of experimental results表1 實驗結果對比 (%)
3.4.1 ResNet-18
ResNet-18 網(wǎng)絡的測試結果如圖5、表2、表3 所示。
Fig.5 Accuracy and loss change curve of ResNet-18 training set and validation set圖5 ResNet-18 訓練集與驗證集準確度與損失變化曲線
Table 2 Training results of first set of ResNet-18表2 ResNet-18 第1 組訓練結果 (%)
Table 3 Training results of second set of ResNet-18表3 ResNet-18 第2 組訓練結果 (%)
3.4.2 ResNet-34
ResNet-34 網(wǎng)絡的測試結果如圖6、表4、表5 所示。
Fig.6 Accuracy and loss change curve of ResNet-34 training set and validation set圖6 ResNet-34 訓練集與驗證集準確度與損失變化曲線
Table 4 Training results of first set of ResNet-34表4 ResNet-34 第1 組訓練結果 (%)
Table 5 Training results of second set of ResNet-34表5 ResNet-34 第2 組訓練結果 (%)
3.4.3 ResNet-50
ResNet-50 網(wǎng)絡的測試結果如圖7、表6、表7 所示。
Fig.7 Accuracy and loss change curve of ResNet-50 training set and validation set圖7 ResNet-50 訓練集與驗證集準確度與損失變化曲線
Table 6 Training results of first set of ResNet-50表6 ResNet-50 第1 組訓練結果 (%)
Table 7 Training results of second set of ResNet-50表7 ResNet-50 第2 組訓練結果 (%)
3.4.4 ResNet-101
ResNet-101 網(wǎng)絡的測試結果如圖8、表8、表9 所示。
Fig.8 Accuracy and loss change curve of ResNet-101 training set and validation set圖8 ResNet-101 訓練集與驗證集準確度與損失變化曲線
Table 8 Training results of first set of ResNet-101表8 ResNet-101 第1 組訓練結果 (%)
Table 9 Training results of second set of ResNet-101表9 ResNet-101 第2 組訓練結果 (%)
從上述表格和圖像中可以看出,相較于其他模型,ResNet-34 網(wǎng)絡模型具有更高的準確率和更快的識別速度,滿足了對隧道襯砌病害類別進行實時檢測分類的需求。
實驗結果表明,在一定范圍內,迭代步數(shù)與模型識別準確率呈正相關。在ResNet-34 模型的實驗訓練中共迭代10 次,每迭代1 次便對測試集圖片進行1 次測試,并記錄其準確率。由圖7 可以看出,隨著迭代次數(shù)的上升,模型準確率不斷升高,Loss 值不斷下降,當?shù)螖?shù)達到7 次時,網(wǎng)絡趨近收斂,Loss 值與準確率均趨于穩(wěn)定。
本文選用一種抗干擾能力強、檢測速度快、準確率高的基于ResNet 的隧道襯砌病害識別方法,通過對ResNet-34 網(wǎng)絡進行有監(jiān)督的訓練,使其能夠準確且實時地對隧道襯砌病害進行識別。驗證實驗結果表明,該方法病害識別準確率高、檢測誤差小,可以滿足實際工程需求。
深度學習方法對樣本數(shù)據(jù)要求較高,目前成熟的數(shù)據(jù)庫樣本往往數(shù)以十萬甚至百萬計,大量樣本不僅可以提高模型訓練的識別率,還可以避免機器學習中常出現(xiàn)的過擬合問題。本文嘗試建立隧道結構病害特征圖像樣本庫,但目前數(shù)量還遠遠不夠,且樣本來源比較單一(目前主要為浙江翁垟隧道樣本),開展樣本收集整理是下一步研究任務之一。