鐘洪德
(福州市勘測院,福建 福州 350108)
城市地下管線是保障城市運行的重要基礎設施,如同人體的血管一般分布錯綜復雜。然而地下管道結構復雜維護困難,時間一長易發生各種形式的損壞情況,如:管道堵塞、管線爆裂、材料老化等,這些破損時常引發城市內澇、地表坍陷等事件,影響城市運行、甚至造成不可估量的經濟損失。因此管道健康檢查已成為市政管理中的重要工作。
地下管道健康檢測方法有[1]:①管道閉路電視檢測系統(CCTV),目前最普遍檢測系統,操作人員利用控制臺在地面上進行遠程操縱CCTV爬行器拍攝管道內壁,錄入管道內部信息進行評價和分析;②管道聲吶檢測技術,以水為介質利用聲吶系統掃描管道內壁,得到結果是以管道縱向斷面的過水面積表示,無須處理管道內部和截斷水流,操作方便,但適用于管道的變形缺陷檢測,結構性缺陷檢測效果較差;③多重傳感器法,由光學測量裝置、微波傳感器和聲學系統構成,具有多功能檢測管道效果,但費用成本較高。在上述三種檢查技術中,管道閉路電視檢測系統可深入管道內部攝取視頻影像,能有效獲取到可供管道缺陷檢測的一手資料,檢測安全性高、信息清晰直觀、成本較低,目前在業界已得到普遍采用。但缺陷識別依靠事后人工目視識別,耗時耗力,生產周期長。
解決管道機器人系統檢測效率重點在管道缺陷的判別上,深度學習為此提供了有效途徑。呂兵、劉玉賢等人,借助卷積神經網絡對管道CCTV視頻進行了智能檢測研究,試驗證明在缺陷識別的準確率和召回率及識別速度上均滿足了排水管道缺陷智能檢測的需要,該方法已經在深圳市的排水管道檢測中應用[2]。戶瑩等人基于卷積神經網絡利用深圳市人工數據,建立了管道缺陷識別模型并可表示缺陷范圍,二分類準確率接近90%,分割準確度接近80%,極大促進了管道缺陷檢測的自動化和智能化水平[3]。但所有樣本數據量較少(戶瑩,每類樣本800個)模型準確度不足以取代人工判別,而且樣本數據受地域局限不易推廣。針對排水管道內部特殊環境,李波鋒采用了一種改進的低通濾波求差法提取管道功能性缺陷,該算法能有效消除光照不均勻給檢測造成的影響[4]。
1962年神經學家Hubel和Wiesel研究貓的視覺皮層[1],發現視覺皮層對于信息的處理是通過神經元上的多個軸突末梢進行分層處理、層層傳遞的,這啟發了人們對于神經網絡的研究思想。1998年,LeCun提出了LeNet-5,性能較單純的分類器來說更加優越。在論文中,LeCun首次使用卷積一詞,命名了卷積神經網絡(CNN)。2006年,提出了反向傳播算法的Hinton在論文中介紹了深度學習的概念,掀起了深度學習的熱潮。
CNN是利用卷積核參數共享原理的一種前饋神經網絡,最常用的CNN的學習算法是后向傳播算法(BP),它具有多維函數映射和模式分類能力。它包括輸入信息的正向傳遞和誤差信息的反向傳遞兩個部分,將神經網絡的輸出值與樣本值進行對比,再以兩者的均方誤差作為目標函數,依照各層權重進行誤差分配,調整各層參數,經過多次訓練后使得目標函數符合要求,進而滿足實際需要[5]。
CNN隨著網絡深度不斷增加,梯度彌散和梯度爆炸等問題也接連出現,特別是50層網絡的測試誤差率相較于20層網絡高出一倍。2015年的ILSVRC(ImageNet Large Scale Visual Recognition Challenge)大賽中,He等人提出了殘差神經網絡(ResNet),層數達到了152層,top-5錯誤率降到了3.57%,且其參數量比只有十幾層的VGGNet網絡更少。該網絡提升訓練準確性[6],且在很大程度上避免了因網絡層數過多而產生的梯度爆炸問題。
CNN模型期望可以學習一個非線性最優映射函數H(x),后續樣本數據中出現同類數據時會相互靠攏,ResNet模型在傳統CNN神經網絡模型中增加了一個恒等映射(identity mapping),將該最優映射函數改為H(x)=F(x)+X,這樣前一層的未降采樣數據和經過降采樣的數據可以共同作為下一層網絡的輸入數據,此時F(x)=H(x)-X,即整個網絡只要學習輸入、輸出數據中的差別部分,即殘差。這實際上增大了變化數值對于權重的影響,使得網絡對于變化的反應更為敏感[6],更容易對權重進行調整。這解決了CNN模型在學習復雜函數時的困難,將學習過程拆成兩個過程,首先學習殘差函數F(X),然后通過簡單映射學習函數H(x)=F(X)+X。
(1)梯度下降法
梯度下降法(gradient descent)是在深度學習中應用最為廣泛的學習率優化算法。主要有兩種典型形式[7],隨機坡度下降法(SGD,Stochastic Gradient Descent)、小批量坡度下降法(MGD,Mini-batch Gradient Descent)。綜合兩種算法出現了幾種(學習率)自適應優化算法:AdaGrad、RMSProp、Adam。
(2)Adam(Adaptive Moment Estimation)算法
Adam計算梯度的指數移動均值,即利用梯度的一階矩估計和二階矩估計獨立地、動態地調整每個參數的自適應性學習率。比其他自適應算法更好。
該算法的權值更新規則如下:
(1)
它在實際應用中效果優于其他的自適應優化方法,并且可以提供解決噪聲問題與優化稀疏梯度的方法。
目前我國排水管道有功能性缺陷與結構性缺陷兩大類,依據日常養護中所遇到的各類管道病害和缺陷的狀況,管道結構性缺陷包括破裂、變形、腐蝕、錯口、起伏、脫節、接口材料脫落、支管暗接、異物穿入、滲漏共10種,管道功能性缺陷包含沉積、結垢、障礙物、殘墻、樹根、浮渣共6種[8]。修復等級分為三個等級:部分修復或不修復;缺陷管段整體修復;整段搶修或翻建。功能性缺陷一般養護可以得到改善,而結構性缺陷需要修復。具體的缺陷分類定義及等級標準參照表1和表2所示,其中為方便計算機處理將16類管道缺陷添加了數字標識。

管道結構性缺陷定義 表1

管道功能性缺陷定義 表2
沉積:主要是泥沙、工業生活垃圾流入排水管,堆積在管道底部,一般以塊狀沉積,形態固定,存在不同的像素深度。浮渣:通常位于管道中部大多為泡沫面狀,和水的像素邊界明顯。樹根:沿著管道縫隙、接口等缺陷進入,沒有及時處理樹根生長堵塞管道,可以明顯看到樹根呈豎向線狀生成,局部成網狀,特征明顯。支管暗接:支管未考慮主管最大排水量直接向主管排水,導致排水承載大產生積水。如圖1~圖4所示:

圖1 沉積

圖2 浮渣

圖3 樹根

圖4 支管暗接
福州市勘測院現有人工識別缺陷圖片約16萬多張,每張包括含缺陷類型、缺陷等級、方位、所在管道名稱和處于管道相對位置等信息。大部分樣本數據中特征明顯易被識別,但也有少數模糊不清的樣本數據。數據整理主要包括:
(1)先將16萬多張圖片,分別存放到按數字標識創建分類圖像的存儲目錄Image_0至Image_16中,如圖5所示;
(2)用xls文件記錄每張圖片的缺陷等級;
(3)然后對原始文檔一些缺陷描述模糊不清、嚴重偏色、或描述混合類的圖片進行了人工甄別。

圖5 分類圖像存儲目錄
為改善樣本不均衡性問題(破裂缺陷達3萬張,浮渣缺陷只有幾百張),防止模型過擬合。對樣本數量較少的類別,使用torchvision.transforms(pytorch附帶的圖像預處理包)進行數據增強。隨機翻卷圖像,改變圖像色差,扭曲圖像特征,改變圖像尺寸大小,剔除模糊不清色彩混淆的圖像,增強圖像噪音,一般使用高斯噪音,鹽椒噪音[11]。
如圖6為圖像增強代碼所示,transforms.compose函數把多種變化組合在一起,例如分別crop對數據隨機大小寬高剪切后resize指定224大小統一形狀大小;flip隨機水平翻轉原始圖像。本文對數據進行了50%概率水平翻轉,50%概率的垂直翻轉,隨機對圖片進行15%的旋轉以及把原本64×64尺寸進行數據變化成統一224×224尺寸圖片。

圖6 圖像增強處理代碼
由于PyTorch框架和其他開源框架相比,在靈活性、速度、易用性這三個方面具有非常明顯優勢,本文利用Pytorch框架搭建管道缺陷識別ResNet模型。
如圖7所示:18層管道缺陷識別ResNet模型:輸入層:主要實現圖像信息標準化處理;殘差單元(4個):殘差塊的實現是把數據分別進行兩次卷積(stage)和輸入下采樣短路連接;輸出層(池化層+全聯通層):使用maxpool最大池化向下采樣去除冗余信息,最后用FC函數全聯通輸出。

圖7 ResNet網絡結構
(1)殘差單元
殘差單元(residual block)實現分三步:經兩次卷積操作,其結果與輸入下采樣進行Shortcut操作(即殘差計算),最后經ReLU激活操作后輸出。用_init_函數定義計算序列,之后使用向前傳播函數forward()執行計算。
二維卷積通過調用conv2d()類封裝實現。本文管道圖像像素為224×224,設置窗口每個維度滑動步長stride為1,padding使得輸入輸出圖片維度一致。
(2)激活函數
殘差神經網絡中采用的激活函數是ReLU函數,相比于sigmoid、tanh函數,ReLU函數不用計算指數和倒數,大大減少了計算量。
其定義如下:
f(x)=max(0,x)
(2)
(3)損失函數與優化器
本文用到交叉熵損失函數,Pytorch封裝為cross entropyloss(),使用的優化器為Adam代替隨機梯度下降。
(1)定義實驗數據集
在模型訓練之前通常把所得數據分為三大類,訓練集(training set)用來訓練模型;驗證集(dev set)統計單一評估指標,調節參數選擇算法和測試集(test set)模型訓練結束后輸入模型來進行整體評估模型性能。需要注意的是要注重數據集的均衡,本文數據集占比為60%訓練集,20%驗證集,20%測試集。
(2)數據加載
本文使用了類Dataset和工具函數DataLoader加載,需要繼承Dataset的子類,重載len()與getitem()函數。
(3)迭代計算
迭代優化過程:先將trainloader中數據與標簽轉換為variable,數據輸入網絡后向前傳播求得損失,由于每一次反向傳播的梯度會累加在上一次循環的梯度,故使用zero_grad()函數將確保每一個新的循環前歸零梯度,隨后進行反向傳播,計算損失函數更新優化器參數。
共訓練了19個模型:一個二分類模型(即:按是否存在缺陷將樣本圖片劃分為1或0兩種狀態),使用樣本13萬個(正樣本13萬個,負樣本約3萬個);一個缺陷分類模型,使用樣本16萬個;16個缺陷等級識別模型分別對應16類缺陷。全部在4倍4 096個NVIDIA CUDA?核心(2048/GPU)硬件支持下,使用Pytorch 1.1框架軟件CDUA模式上完成訓練,迭代epoch次數:120次,隨機分組:10個/組。
為比較不同神經網絡對管道樣本數據的準確度響應,每個模型均采用18層,50層,101層殘差神經網絡進行訓練,取準確度較高的作為最終模型。
(4)模型評價
缺陷分類模型Resnet18、ResNet50、ResNet101最終訓練結果準確度分別為92%、96%、79%,相較AlexNet與VGG模型殘差模型精度有所提高,但還存在分類錯誤情況。實驗結果看并不是網絡層越深越好。ResNet101層數最多但是實驗過程中只達到79%精度產生過擬合現象導致精度下降,ResNet508模型訓練效果最佳達到96%。
系統最終用在管道檢測視頻缺陷判讀上,為獲得最好的工作效果,設定以下背景:
(1)機器人在爬行過程中,發現疑似缺陷管段(可以是操作員監視發現),停止前進對疑似區域進行近距離掃描,此時,視頻幀顯示距離值保持不變或僅有微小變化(設小于 5 cm)。此作業規則在后續數據分析中,能獲得明顯的空間聚類,有利于提高識別操作的針對性。
(2)剔除非應用場景視頻段(機器人進入管道之前拍攝的地面背景視頻等)和無用視頻段(機器人到達管道盡頭之后的圖像幀),由人工標定攝像機有效距離起點和有效距離終點進行區分。
(3)外業完成后,系統智能化水平達到代替人工正式生產可接受的識別準確度。
應用要求:由于召回率和精確率不可兼得,考慮到出現檢測遺漏難以補救,應盡量避免,因此疑似缺陷識別(YES、NO)召回率要盡量高,要求:特征明顯時不低于99%,不明顯時要求不低于95%。而疑似缺陷識別精確率可適度放寬,應用時會將不易區分的模糊樣本劃分為缺陷樣本,但可以通過人工甄別剔除,根據缺陷常見度,精確率要求不低于表3。

排水管道缺陷智能識別召回率精確率一覽表 表3
為達到5.1節要求,本文采用“二分類模型”+“疑似缺陷識別模型”+“缺陷等級識別模型”三級組合模型,分兩個階段,如圖8所示:
第一階段:輸入視頻,按照一定規則掃描視頻(例如:每5幀提取一幀),首先對提取的圖片幀進行模糊度檢測,過濾掉鏡頭變焦過程中出現的模糊影像,然后進行“二分類識別”,若無缺陷則忽略,否則進行“距離識別”并將結果計入二分類數據集(該數據集除包括二分類結果信息外,還包括圖片幀計數,距離等信息)。
第二階段:讀入二分類數據集,先按距離進行空間聚類,然后對每個聚類進行如下操作:
(1)缺陷類型識別:針對聚類中所有圖片;
(2)合并同類型:缺陷類型相同且距離在 0.3 m以內的圖片,選取概率值較大者,舍棄其他;
(3)如果缺陷類型清晰,則進行缺陷等級識別,缺陷類型模糊則加入人工干預再進行等級識別。
其中,距離值是從圖片底邊固定位置上顯示的距離影像,采用數字識別技術得到,是缺陷處于管道起始位置的相對度量。

圖8 三級模型示意圖
由于不同材質的管道管壁紋理差異,對缺陷判別精確度有一定影響,因此實踐中對“砼”“鑄鐵”“PVC”三種管材,分別訓練三種管材的識別模型,使準確度進一步提升。
使用本成果共進行6條管道實驗性生產,經與人工識別結果比對,各項指標如表4所示:

實驗管道識別效果指標一覽表 表4
從表4中結果可以看出,實驗效果良好,各項指標符合預期,通過適度人工甄別,可以大幅度提高工作效率。同時注意到“PVC”管缺陷類型精確率相對偏低,造成此問題的原因主要是“PVC”樣本數量相對偏少,將來可利用生產中得到新增“PVC”樣本,通過“增強學習”方法得到改善。
排水管線檢測成本高、耗時長、精度差,本文利用福州市勘測院16萬個地下管線檢測數據,立足系統整體實用性,通過對卷積神經網絡模型的優化,建立了管道缺陷內窺檢測智能識別系統,該系統已在福州市勘測院排水管道視頻檢測生產系統中應用。
主要結論如下:
(1)模型結構層數越高會產生過擬合現象,識別精度不一定越高反而可能下降,因此模型優化需要考慮現實數據特點和應用背景。
(2)本文推出獨具特色的三級組合模型,各級別模型性能指標各有側重,與生產規程相互配合,在試生產中證明其具有良好的實用性。但缺陷分割尚未實現,有待于進一步研究。
(3)模型訓練采用訓練樣本數據量大,可靠性高。本文用人工智能建立了管道缺陷內窺檢測智能識別系統,可有效提高管道健康狀況檢查質量和效率,研究成果可供管道檢測維護相關人員參考。