黃曉東,漆泰岳,覃少杰
(1.西南交通大學土木工程學院,成都 610031; 2.廣州地鐵集團有限公司,廣州 510310; 3.西南交通大學交通隧道工程教育部重點實驗室,成都 610031)
目前隧道表面病害主要有滲漏水、裂縫、掉塊等,主要通過人工巡檢的方法來完成,這一檢測需要專業的工作人員,并帶有主觀的判斷差別。由于高速鐵路的“開天窗”特性,工作人員只能在特定的時間段進入隧道進行檢測。隨著越來越多深埋大長隧道修建,夜間能見度低下、檢測人員工作強度大以及檢測安全問題將會日益凸顯,人工檢測在效率和可靠性上無法滿足高速鐵路隧道發展的要求。為了解決這些問題,機器視覺因其非接觸、非損傷和快速檢測的特性發展迅速。傳統的圖像處理方法,如Otsu算法、分水嶺法,需要人工設計病害特征,往往依賴特征設計者高超的經驗。近年來,深度學習在計算機視覺的各個領域獲得突破。與傳統的圖像處理方法不同,卷積神經網絡不需要人工設計特征過濾器,自動學習樣本特征。數據集中涵蓋不同的拍攝環境下的樣本,提高算法的魯棒性和精度。
在現有硬件條件下,高速鐵路隧道襯砌表面圖像的采集速度可達50 km/h,裂縫的檢測精度為0.2 mm,單位千米隧道襯砌圖像數據量587 GB,每秒產生的數據量為8.1GB以上,需要實時處理海量的圖像[1]。若將所有的數據全部存儲到硬盤上再帶回數據中心進行處理,需要龐大的存儲系統;若進行實時的檢測,識別出病害的類型并定量的評價病害的破壞程度,需要巨大的計算資源和全面精細的檢測模型?,F有的條件下,部署在檢測車上進行實時檢測難以實現。同時對于無病害的信息按照同等復雜度的計算無疑降低了網絡的效率。目前在高速采集隧道表面其中的病害信息占比不到10%,需要將無病害且無構筑物的冗余信息數據剔除,將有用信息數據存儲起來,為下一步的病害定量檢測提供原始數據。
本文提出了基于卷積神經網絡的隧道表面病害篩選算法,輕量模型ResNet-DS采用輕主干結構、深度可分離卷積和模型量化等方法減小模型大小,提升預測速度,實現高速識別海量無病害圖像的輕量網絡,每千米隧道襯砌圖像存儲數據量下降至164 GB。實驗表明,該算法在精度達到98.67%的同時,每張圖片預測僅需10.86 ms,可進行實時檢測。輕量模型對硬件有廣泛適應性,部署在更優的計算平臺上檢測速度可進一步提升, 有極高的應用價值。
目前基于計算機視覺的隧道病害檢測已經取得了很多成果。王耀東等[2]提出一種基于全局與局部相結合的預處理算法,并采用多級濾波檢測隧道表面裂縫;王睿等[3-4]提出應用CDD相機的襯砌裂縫快速檢測系統,結合Prewitt算子和Otsu的梯度類間閾值法,初步完成裂縫圖像的分割和特征提取。但算法依靠人工設計參數提取裂縫特征,在復雜的環境下魯棒性低。黃宏偉等[5]提出一種基于全卷積網絡的盾構隧道滲漏水病害圖像識別算法,該算法具有優越的魯棒性,在錯檢率和運行時間上具有較大優勢;薛亞東等[6-7]在GoogLeNet基礎上改進Inception模塊,隧道病害分類準確率超過95%,基于Fester R-CNN[8]構建盾構隧道病害檢測模型。但檢測圖像均來自于MTI[9],檢測系統依靠人力推動采集圖像,不適用于高速鐵路病害檢測。Protopapadakis E等[10]基于卷積神經網絡,提出了一種啟發式后處理算法,該算法可提高檢測精度、減少計算時間、解決訓練樣本稀疏和噪聲問題,但模型推理速度需要進一步提高?,F有的算法關注于圖像采集后的病害檢測,無法滿足實時處理海量圖像的要求,需要新的輕量神經網絡高速識別無病害圖像,完成高速鐵路表面病害圖像采集工作。
卷積神經網絡具有參數少、保留圖像空間結構、參數共享和稀疏連接等特性,廣泛應用于計算機視覺任務中,如:圖像分類、圖像識別、圖像分割。LECUN Y.L.等[11]在1998年提出LeNet-5,第一次定義了卷積神經網絡(CNN)。LeNet-5提出一個或多個卷積層后面添加一個池化層進行下采樣的基本結構。在隨后的時間里,受限于硬件的計算能力和獲取數據的難度,卷積神經網絡相對于人類的優勢并沒有體現出來。2012年,ALEX等[12]提出AlexNet,采用ReLu激活函數替代Tanh加速網絡的收斂,并在數據集ImageNet上獲得了圖像分類的冠軍,至此深度卷積神經網絡有了更廣泛應用。2014年,KAREN等[13]提出了 VGG模型,簡化網絡結構,加深了神經網絡,并提出一個大感受野卷積核可以由多個小感受野卷積核組成。同年,Google提出了基于Inception模塊的GoogLeNet網絡,Inception結構將多個不同尺度卷積核并聯,并利用1×1的卷積核對特征圖通道數降維,以減少計算參數[14]。2015年,HE K等[15]提出了ResNet殘差神經網絡,解決梯度消失和梯度爆炸的問題,使得深層神經網絡也具有良好的性能。后面的主流模型都借鑒ResNet的結構設計,基于ResNet在分類圖像上良好的性能和廣泛的應用,本文模型選擇ResNet作為主干結構(backbone architecture)。2017年,Google提出MobileNets[16]輕量模型,采用一系列的深度可分離卷積[17-18]替代標準卷積,大大減少了參數數量,使得模型可以部署到計算資源有限的移動設備上。
在地鐵區間隧道和高速公路隧道維護檢修期間通過相機采集原始隧道圖像。由于硬件計算能力限制,采用滑動窗口算法[19]將采集的圖像裁剪成224pixel×224pixel的圖像子塊,建立隧道表面病害篩選數據集。數據集按是否為無病害樣本且沒有隧道構筑物分為兩類:第一類是需要剔除的圖像,包含不同光照條件及環境下無病害襯砌,稱為冗余信息樣本;第二類是需要保存的圖像,包含隧道襯砌表面滲漏水、裂縫、掉塊以及構筑物管線等,稱為有用信息樣本。由于神經網絡需要更大的數據集,而隧道中的裂縫、滲漏水樣本較少,為擴充樣本,用相機采集了部分混凝土裂縫和滲漏水樣本。考慮到隧道中冗余信息占比大,且檢測的目的是剔除無病害襯砌圖像。數據集包含5 200張圖像,其中冗余信息樣本3 120張,有用信息樣本2 080張,按3∶2的比例分成訓練集和驗證集,圖像分類標簽為1(冗余信息樣本)和0(有用信息樣本)。
為防止模型過擬合,豐富樣本多樣性,在訓練階段對樣本進行隨機的圖像增強、水平翻轉、旋轉等處理,提高模型魯棒性,圖像如圖1所示。

圖1 數據集中樣本示例
針對輕量卷積神經網絡搭建、訓練以及優化的流程如圖2所示。

圖2 ResNet-DS搭建流程
高速鐵路表面病害的篩選任務需要在時速50 km的高速檢測車[20]上進行,在一定的時間內處理采集的圖像,對預測模型的推理速度有著嚴格的要求。同時受限于邊緣硬件設備的計算能力,模型需在精度與速度之間平衡,以便于部署在小型邊緣計算設備上。
本文對主流的圖像分類網絡在經典的ImageNet數據集上訓練后的精度(Acc)、浮點運算數量(FLOPs)以及參數數量(Params)進行對比,如圖3所示。

圖3 主流圖像分類模型性能分布
可以看到,InceptionV3、V4網絡加入殘差結構在訓練一個更大的網絡時具有更好的性能。為平衡精度和運算數量,本文選擇較小的ResNet-18殘差神經網絡作為主干結構,在原網絡的基礎上將卷積核維度相同的殘差單元去掉,以適應更高的檢測速度。模型結構如圖4所示。

圖4 模型結構
深度可分離卷積由一個深度卷積(Depthwise Conv, Conv dw)和一個逐點卷積(Separable Conv)組成。其中深度卷積是將輸入的特征圖(feature map)按通道數拆分成單通道的形式,卷積核一并拆分成單通道形式,對應的卷積核在特征圖的同一通道上進行卷積操作。經過深度卷積后,特征圖的通道數不變。接下來是卷積核大小為1×1的逐點卷積。逐點卷積與標準卷積(Conv)操作一致,可以對特征圖通道數升維和降維,減少計算量。標準卷積與深度可分離卷積結構如圖5所示。

圖5 標準卷積和深度可分離卷積結構
圖5中BN(Batch Normalization)為批規范化,ReLu為激活函數。單層標準卷積層的計算量
DK×DK×M×N×DF×DF
(1)
深度可分離卷積的計算量
DK×DK×M×DF×DF+M×N×DF×DF
(2)
將標準卷積用深度可分離卷積替換后,計算量減少

(3)
式中,DK為卷積核的長和寬;M為輸入特征圖通道數;N為輸出特征圖通道數;DF為輸出特征圖的長和寬。采用3×3卷積核,每層用深度可分離卷積替代標準卷積,計算量減少8~9倍。
隨著網絡深度的增加,傳統神經網絡的表現先是逐漸增加至飽和然后出現網絡退化。深層神經網絡對于恒等函數并不容易擬合。殘差神經網絡將淺層神經網絡學習到的信息通過一個連接層(Shortcut)傳遞到深層神經網絡,構建恒等映射,參與深層神經網絡的學習。
恒等映射為:
y=H(x)+x
(4)
其中,H(x)為經過深層神經網絡得到的特征圖,x為淺層特征圖。
殘差單元將幾個卷積層組成一個整體。一條路徑為標準的神經網絡前向傳播,另一條路徑是通過連接層將第一個卷積層的輸入信息傳遞到后面卷積層的激活函數之前。本文將2個深度可分離卷積作為一個殘差單元搭建網絡,如圖6所示。

圖6 殘差單元結構
以ResNet為主干結構,將標準卷積替換為深度可分離卷積,定義殘差深度可分離網絡ResNet-DS。網絡結構見表1,其中s為步長。

表1 ResNet-DS網絡結構
模型采用深度學習框架PaddlePaddle進行訓練與預測。訓練階段批數量(batch size)為32,訓練周期由網絡完成任務的難易程度和數據集大小決定。輕量模型除對精度的要求外,對預測速度和模型大小有著嚴格約束。用于訓練的硬件配置CPU為英特爾 Core i7-9700F 8核,GPU為 NVIDIA RTX 2060 SUPER 8G,數據傳輸和存儲硬盤為西數機械硬盤(7 200 rp/min)。訓練參數的設置對模型的訓練和推理至關重要,本文設置初始學習率為0.002,采用余弦衰減策略。訓練和推理階段,在輸入網絡之前對圖片進行減除圖像平均值和歸一化操作。
分類任務常用的模型性能評判指標:錯誤率和精度。本模型的目標是剔除冗余數據。查準率(precise)和查全率(recall)是另一種判斷分類模型的性能指標。二分類中,以冗余信息樣本為真,有用信息樣本為假。依據真實標簽以及預測標簽組合劃分為真正例(TP)、假正例(FP)、真反例(TN)、假反例(FN)。對于冗余信息樣本的查準率P和查全率R定義分別為

(5)

(6)
對于篩選模型性能評估,在去除無病害信息的情況下確保有病害信息以及構筑物信息保存下來,本項目更關心冗余信息樣本的查準率。查準率與查全率是一對互斥的評估指標。將預測結果為正例的概率值排序,排在最前面的為正例的概率最大,從前往后對樣本進行正例判定,每次計算出當前的查全率和查準率,以查全率和查準率分別作為橫縱坐標軸,得出P-R曲線。實驗分析了精度,并對正例的P-R曲線進行評價。
對于邊緣側的部署,內存和計算資源存在限制。網絡中的權值采用32位浮點(Float32)精度保存,而實際上每一層的權值分布較為集中,卷積神經網絡對離散噪聲和擾動有良好的魯棒性。采用定點數保存權值,即用精度小的數據類型近似表示網絡的權值,提升預測速度[21]。模型量化將定點數與浮點數建立了數據映射關系,本文采用混合量化,int8定點數量化網絡卷積層的權值。對已訓練的模型進行靜態離線量化,用少量校準樣本計算量化因子。
量化流程:在校準數據集上,對于每一卷積層,記錄激活值直方圖,基于不同的閾值產生不同的量化分布。通過對比產生的量化分布和原分布,選擇相對熵最少的量化分布。模型量化后可以減少模型的尺寸,更易于邊緣側計算機的部署,同時計算內存耗用更低,提升預測速度。量化模型在幾乎不損失精度的情況下提升模型性能。
損失函數評價模型在訓練過程中的精度,并用于更新梯度,是描述預測值與真實值差距的標準。分類模型采用交叉熵函數,將兩類樣本視為同等重要。對于本項目,將有用信息樣本判斷錯誤并篩除會導致病害數據的遺漏,是不被允許的。在本模型中,采用帶權重的交叉熵函數[22],冗余信息樣本需要剔除,對精度有更高的要求,在損失函數中賦予更高的權重;對于有信息樣本,保存到硬盤上進行二次圖像識別和檢測,可以允許一定的誤判,在損失函數中賦予較小的權重。
帶權重交叉熵損失函數定義

(7)

在訓練過程中,每進行一次前向傳播和反向傳播(梯度下降)記錄一次平均損失值和預測精度,以此繪制Loss曲線和精度曲線。模型輸出分類的概率,取大值作為判斷類別依據。本文訓練ResNet-DS并以同樣參數與數據集分別訓練殘差神經網絡ResNet-18和ResNet-50,繪制Loss曲線和精度曲線。實驗結果如圖7、圖8所示。

圖7 損失值Loss曲線

圖8 精度曲線
從Loss曲線可以看出,3個模型的平均損失值只有ResNet-50在前50 epoch的迭代區間上產生了先上升后下降的趨勢,其余階段均隨著神經網絡的學習而減小,說明模型可以很好地學習到隧道襯砌表面的特征。同時ResNet-DS在學習一開始損失值小于其他兩個模型,并且在相同的迭代過程中曲線一直處于其他實驗模型下方,深度可分離卷積嵌入殘差神經網絡小模型,在隧道表面病害篩除任務上并沒有因為參數的減小而產生性能上的損失。ResNet-18和ResNet-50大模型在簡單分類任務上出現了過擬合的現象,性能上略弱于小模型。
在精度曲線上,隨著迭代的進行,精度逐漸提高。ResNet-50在精度上與ResNet-18和ResNet-DS有較大的差距,出現了精度先降低后上升的現象;ResNet-18在訓練過程中出現了強烈震蕩。經過分析,ResNet-DS可以較好地適應隧道表面的篩除任務,在學習效率和精度上均略高于ResNet-18和ResNet-50。圖9為模型對樣本的篩選結果,其中圖9(a)是需要剔除的冗余信息。

圖9 ResNet-DS篩選樣本
模型大小可以通過模型參數數量反映。模型部署的邊緣計算機終端,除了精度外,模型的推理速度是判定是否適應當前需求的另一個指標。試驗將本文設計的ResNet-DS與ResNet-18和ResNet-50作比較,從模型精度、參數數量、浮點運算數量3個方面衡量模型的性能,并分別部署在CPU和GPU上進行預測推理,得到預測時間。實驗結果如表2所示。

表2 模型推理性能
從表2可以看出,用深度可分離卷積替代標準卷積后,模型的參數和浮點運算量急劇減小。對比ResNet-18,參數數量減少88%,浮點數計算減少至1/10。對于部署在有內存和計算力限制的邊緣計算設備上有巨大的優勢。同時在調用的GPU并行計算加速的環境下,ResNet-DS分別比ResNet18和ResNet50快12%和146%;在只調用CPU計算的環境下,ResNet-DS比ResNet18快1.37倍,比Resnet50快3.63倍。說明在計算資源充裕的環境下,利用GPU進行并行計算,ResNet-DS推理速度僅有小幅度的提升;但在CPU上部署,算力受限的環境下,ResNet-DS因其本身計算成本小,推理速度成倍提升。
隧道表面病害篩選算法更加關注隧道冗余信息樣本的剔除。對于冗余信息樣本,實驗選擇β=1.0和β=1.5的權重模型進行實驗對比。P-R曲線直觀顯示出樣本的查準率與查全率,通過對比曲線的分布和與坐標軸所圍成的面積比較模型的性能。2次實驗的P-R曲線如圖10所示。

圖10 模型性能對比實驗P-R曲線分析
從圖10可以看出,β=1.5的P-R曲線完全包住β=1.0的曲線,對于冗余信息樣本篩選的性能更優。賦予樣本更高的權重,則在模型訓練過程中賦予樣本更大的懲罰因子,使模型側重于對冗余信息樣本特征的學習。本文模型最終選擇β=1.5,得分閾值為0.8的模型,在驗證集上可以實現對于冗余信息樣本分類的100%的查準率。經過模型的篩選后,無病害且無構筑物的圖像數據被剔除,占比72%。單位千米隧道存儲數據量下降至164 GB。
訓練好的模型,采用400張樣本校準數據計算量化因子,進行靜態離線量化。所得模型與原模型性能比較,實驗結果如表3所示。

表3 量化前后模型性能對比
如表3所示,在精度沒有損失的情況下,在CPU環境和GPU并行計算環境下單一圖像預測速度分別提高3.75 ms和1.05 ms。對比ResNet-18,量化后的模型ResNet-DS推理速度在GPU運行環境下提升22%,在CPU運行環境下提升178%。
為了快速剔除高鐵隧道表面無病害圖像,本文利用深度學習算法,構建輕量卷積神經網絡ResNet-DS。從識別精度、模型大小和推理速度3個方面與原殘差神經網絡ResNet-18和ResNet-50進行對比分析。同時訓練好的模型進行靜態離線量化,探究了輕量網絡在高速處理海量隧道圖像的應用。結論如下。
(1)以殘差神經網絡為主干網絡,將深度可分離卷積替代標準卷積,構建的模型ResNet-DS識別精度為98.67%。對比原殘差神經網絡,在保證精度的前提下,模型的參數和浮點運算量急劇減少,推理速度在GPU環境下提升12%,在CPU環境下提升137%,模型性能明顯提升。
(2)通過P-R曲線分析不同權重下模型對冗余信息樣本識別的準確率和召回率得出,采用權重損失函數賦予冗余信息樣本更高的權重,可以使模型在判斷并刪除樣本時更加穩健。
(3)在ResNet-DS訓練完成后,采用少量的樣本對模型進行靜態離線量化。量化后模型在GPU和CPU環境下單一圖像推理時間分別減少1.05ms和3.75ms,推理速度進一步提升。靜態離線量化方法優化模型能更好地滿足檢測需求。