鐘洪德
(福州市勘測院,福建 福州 350108)
城市地下管線是保障城市運(yùn)行的重要基礎(chǔ)設(shè)施,如同人體的血管一般分布錯綜復(fù)雜。然而地下管道結(jié)構(gòu)復(fù)雜維護(hù)困難,時(shí)間一長發(fā)生各種形式的損壞情況,如:管道堵塞、管線爆裂、材料老化等經(jīng)常引發(fā)城市內(nèi)澇、地表坍陷等事件,影響城市運(yùn)行和造成經(jīng)濟(jì)損失。因此管道健康檢查已成為市政管理中的重要工作。
地下管道健康檢測方法有[1]:①管道閉路電視檢測系統(tǒng)(CCTV),目前最普遍檢測系統(tǒng),操作人員利用控制臺在地面上進(jìn)行遠(yuǎn)程操縱CCTV爬行器拍攝管道內(nèi)壁,錄入管道內(nèi)部信息進(jìn)行評價(jià)和分析;②管道聲吶檢測技術(shù),以水為介質(zhì)利用聲吶系統(tǒng)掃描管道內(nèi)壁,得到結(jié)果是以管道縱向斷面的過水面積表示,無須處理管道內(nèi)部和截?cái)嗨?,操作方便,但適用于管道的變形缺陷檢測,結(jié)構(gòu)性缺陷檢測效果較差;③多重傳感器法,由光學(xué)測量裝置、微波傳感器和聲學(xué)系統(tǒng)構(gòu)成,具有多功能檢測管道效果,但費(fèi)用成本較高。在上述三種檢查技術(shù)中,管道閉路電視檢測系統(tǒng)可深入管道內(nèi)部攝取視頻影像,能有效獲取到可供管道缺陷檢測的一手資料,檢測安全性高、信息清晰直觀、成本較低,目前在業(yè)界已得到普遍采用。但缺陷識別依靠事后人工目視識別,耗時(shí)耗力,生產(chǎn)周期長。
解決管道機(jī)器人系統(tǒng)檢測效率重點(diǎn)在管道缺陷的判別上,深度學(xué)習(xí)為此提供了有效途徑。呂兵、劉玉賢等人,借助卷積神經(jīng)網(wǎng)絡(luò)對管道CCTV視頻進(jìn)行了智能檢測研究,試驗(yàn)證明在缺陷識別的準(zhǔn)確率和召回率及識別速度上均滿足了排水管道缺陷智能檢測的需要,該方法也已經(jīng)在深圳市的排水管道檢測中應(yīng)用[2]。戶瑩等人基于卷積神經(jīng)網(wǎng)絡(luò)利用深圳市人工數(shù)據(jù),建立了管道缺陷識別模型并可表示缺陷范圍,二分類準(zhǔn)確率接近90%,分割準(zhǔn)確度接近80%,極大促進(jìn)了管道缺陷檢測的自動化和智能化水平[3]。但所有樣本數(shù)據(jù)量較少(戶瑩,每類樣本800個)模型準(zhǔn)確度不足以取代人工判別,而且樣本數(shù)據(jù)受地域局限不易推廣。針對排水管道內(nèi)部特殊環(huán)境,李波鋒采用了一種改進(jìn)的低通濾波求差法提取管道功能性缺陷,該算法能有效消除光照不均勻?qū)z測造成的影響[4]。
1962年神經(jīng)學(xué)家Hubel和Wiesel研究貓的視覺皮層,發(fā)現(xiàn)視覺皮層對于信息的處理是通過神經(jīng)元上的多個軸突末梢進(jìn)行分層處理、層層傳遞的,這啟發(fā)了人們對于神經(jīng)網(wǎng)絡(luò)的研究思想。1998年,LeCun提出了LeNet-5,性能較單純的分類器來說更加優(yōu)越。在論文中,LeCun首次使用卷積一詞,命名了卷積神經(jīng)網(wǎng)絡(luò)(CNN)。2006年,提出了反向傳播算法的Hinton在論文中介紹了深度學(xué)習(xí)的概念,掀起了深度學(xué)習(xí)的熱潮。
CNN是利用卷積核參數(shù)共享原理的一種前饋神經(jīng)網(wǎng)絡(luò),最常用的CNN的學(xué)習(xí)算法是后向傳播算法(BP),它具有多維函數(shù)映射和模式分類能力。它包括輸入信息的正向傳遞和誤差信息的反向傳遞兩個部分,將神經(jīng)網(wǎng)絡(luò)的輸出值與樣本值進(jìn)行對比,再以兩者的均方誤差作為目標(biāo)函數(shù),依照各層權(quán)重進(jìn)行誤差分配,調(diào)整各層參數(shù),經(jīng)過多次訓(xùn)練后使得目標(biāo)函數(shù)符合要求,進(jìn)而滿足實(shí)際需要[5]。
CNN隨著網(wǎng)絡(luò)深度不斷增加,梯度彌散和梯度爆炸等問題也接連出現(xiàn),特別是50層網(wǎng)絡(luò)的測試誤差率相較于20層網(wǎng)絡(luò)高出一倍。2015年的ILSVRC(ImageNet Large Scale Visual Recognition Challenge)大賽中,He等人提出了殘差神經(jīng)網(wǎng)絡(luò)(ResNet),層數(shù)達(dá)到了152層,top-5錯誤率降到了3.57%,且其參數(shù)量比只有十幾層的VGGNet網(wǎng)絡(luò)更少。該網(wǎng)絡(luò)提升訓(xùn)練準(zhǔn)確性[6],且在很大程度上避免了因網(wǎng)絡(luò)層數(shù)過多而產(chǎn)生的梯度爆炸問題。
CNN模型期望可以學(xué)習(xí)一個非線性最優(yōu)映射函數(shù)H(x),后續(xù)樣本數(shù)據(jù)中出現(xiàn)同類數(shù)據(jù)時(shí)會相互靠攏,ResNet模型在傳統(tǒng)CNN神經(jīng)網(wǎng)絡(luò)模型中增加了一個恒等映射(identity mapping),將這個最優(yōu)映射函數(shù)改為H(x)=F(x)+X,這樣前一層的未降采樣數(shù)據(jù)和經(jīng)過降采樣的數(shù)據(jù)可以共同作為下一層網(wǎng)絡(luò)的輸入數(shù)據(jù),此時(shí)F(x)=H(x)-X,即整個網(wǎng)絡(luò)只要學(xué)習(xí)輸入、輸出數(shù)據(jù)中的差別部分,即殘差。這實(shí)際上增大了變化數(shù)值對于權(quán)重的影響,使得網(wǎng)絡(luò)對于變化的反映更為敏感[6],更容易對權(quán)重進(jìn)行調(diào)整。這解決了CNN模型在學(xué)習(xí)復(fù)雜函數(shù)時(shí)的困難,將學(xué)習(xí)過程拆成兩個過程,首先學(xué)習(xí)殘差函數(shù)F(X),然后通過簡單映射學(xué)習(xí)函數(shù)H(x)=F(X)+X。
(1)梯度下降法
梯度下降法(gradient descent)是在深度學(xué)習(xí)中應(yīng)用最為廣泛的學(xué)習(xí)率優(yōu)化算法。主要有二種典型形式[7],隨機(jī)坡度下降法(SGD,Stochastic Gradient Descent)、小批量坡度下降法(MGD,Mini-batch Gradient Descent)。綜合兩種算法出現(xiàn)了幾種(學(xué)習(xí)率)自適應(yīng)優(yōu)化算法:AdaGrad、RMSProp、Adam。
(2)Adam(Adaptive Moment Estimation)算法
Adam計(jì)算梯度的指數(shù)移動均值,即利用梯度的一階矩估計(jì)和二階矩估計(jì)獨(dú)立地、動態(tài)地調(diào)整每個參數(shù)的自適應(yīng)性學(xué)習(xí)率。比其他自適應(yīng)算法更好。
該算法的權(quán)值更新規(guī)則如下:
(1)
它在實(shí)際應(yīng)用中效果優(yōu)于其他的自適應(yīng)優(yōu)化方法,并且可以提供解決噪聲問題與優(yōu)化稀疏梯度的方法。
目前我國排水管道有功能性缺陷與結(jié)構(gòu)性缺陷兩大類,依據(jù)日常養(yǎng)護(hù)中所遇到的各類管道病害和缺陷的狀況,管道結(jié)構(gòu)性缺陷包括破裂、變形、腐蝕、錯口、起伏、脫節(jié)、接口材料脫落、支管暗接、異物穿入、滲漏共10種,管道功能性缺陷包含沉積、結(jié)垢、障礙物、殘墻、樹根、浮渣共6種[8]。修復(fù)等級分為三個等級:部分修復(fù)或不修復(fù);缺陷管段整體修復(fù);整段搶修或翻建。功能性缺陷一般養(yǎng)護(hù)可以得到改善,而結(jié)構(gòu)性缺陷需要修復(fù)。具體的缺陷分類定義及等級標(biāo)準(zhǔn)參照表1和表2所示,其中為方便計(jì)算機(jī)處理將16類管道缺陷添加了數(shù)字標(biāo)識。
管道結(jié)構(gòu)性缺陷定義 表1
管道功能性缺陷定義 表2
沉積:主要是泥沙、工業(yè)生活垃圾流入排水管,堆積在管道底部,一般以塊狀沉積,形態(tài)固定,存在不同的像素深度,如圖1所示。浮渣:通常位于管道中部大多為泡沫面狀,和水的像素邊界明顯,如圖2所示。樹根:沿著管道縫隙、接口等缺陷進(jìn)入,沒有及時(shí)處理樹根生長堵塞管道,可以明顯看到樹根呈豎向線狀生成,局部成網(wǎng)狀,特征明顯。支管暗接:支管未考慮主管最大排水量直接向主管排水,導(dǎo)致排水承載大產(chǎn)生積水。如圖3~圖4所示:
圖1 沉積
圖2 浮渣
圖3 樹根
圖4 支管暗接
福州市勘測院現(xiàn)有人工識別缺陷圖片約16萬多張,每張包括含缺陷類型、缺陷等級、方位、所在管道名稱和處于管道相對位置等信息。大部分樣本數(shù)據(jù)中特征明顯易被識別,但也有少數(shù)模糊不清的樣本數(shù)據(jù)。數(shù)據(jù)整理主要包括:
(1)先將16萬多張圖片,分別存放到按數(shù)字標(biāo)識創(chuàng)建分類圖像的存儲目錄Image_0至Image_16中,如圖5所示;
(2)用xls文件記錄每張圖片的缺陷等級;
(3)然后對原始文檔一些缺陷描述模糊不清、嚴(yán)重偏色、或描述混合類的圖片進(jìn)行了人工甄別。
圖5 分類圖像存儲目錄
為改善樣本不均衡性問題(破裂達(dá)3萬張,浮渣只有幾百張),防止模型過擬合。對樣本數(shù)量較少的類別,使用PyTorch的torchvision.transforms圖像預(yù)處理包進(jìn)行數(shù)據(jù)增強(qiáng)。隨機(jī)翻卷圖像,改變圖像色差,扭曲圖像特征,改變圖像尺寸大小,剔除模糊不清色彩混淆的圖像,增強(qiáng)圖像噪音,一般使用高斯噪音,鹽椒噪音[11]。
圖6 圖像增強(qiáng)處理代碼
如圖6所示為圖像增強(qiáng)處理代碼,transforms.compose函數(shù)把多種變化組合在一起,例如分別crop對數(shù)據(jù)隨機(jī)大小寬高剪切后resize指定224大小統(tǒng)一形狀大?。籪lip隨機(jī)水平翻轉(zhuǎn)原始圖像。本文對數(shù)據(jù)進(jìn)行了50%概率水平翻轉(zhuǎn),50%概率的垂直翻轉(zhuǎn),隨機(jī)對圖片進(jìn)行15%的旋轉(zhuǎn)以及把原本64×64尺寸進(jìn)行數(shù)據(jù)變化成統(tǒng)一224×224尺寸圖片。
由于PyTorch框架和其他開源框架相比,在靈活性、速度、易用性這三個方面具有非常明顯的優(yōu)勢,本文利用PyTorch框架搭建管道缺陷識別ResNet模型。
如圖7所示:18層管道缺陷識別ResNet模型:輸入層:主要實(shí)現(xiàn)圖像信息標(biāo)準(zhǔn)化處理;殘差單元(4個):殘差塊的實(shí)現(xiàn)是把數(shù)據(jù)分別進(jìn)行兩次卷積(stage)和輸入下采樣短路連接;輸出層(池化層+全聯(lián)通層):使用maxpool最大池化向下采樣去除冗余信息,最后用FC函數(shù)全聯(lián)通輸出。
圖7 ResNet網(wǎng)絡(luò)結(jié)構(gòu)
(1)殘差單元
殘差單元(residual block)實(shí)現(xiàn)分三步:經(jīng)兩次卷積操作,其結(jié)果與輸入下采樣進(jìn)行Shortcut操作(即殘差計(jì)算),最后經(jīng)ReLU激活操作后輸出。用_init_函數(shù)定義計(jì)算序列,之后使用向前傳播函數(shù)forward()執(zhí)行計(jì)算。
二維卷積通過調(diào)用conv2d()類封裝實(shí)現(xiàn)。本文管道圖像像素為224×224,設(shè)置窗口每個維度滑動步長stride為1,padding使得輸入輸出圖片維度一致。
(2)激活函數(shù)
殘差神經(jīng)網(wǎng)絡(luò)中采用的激活函數(shù)是ReLU函數(shù),相比于sigmoid、tanh函數(shù),ReLU函數(shù)不用計(jì)算指數(shù)和倒數(shù),大大減少了計(jì)算量。
其定義如下:
f(x)=max(0,x)
(2)
(3)損失函數(shù)與優(yōu)化器
本文用到交叉熵?fù)p失函數(shù),PyTorch封裝為cross entropyloss(),使用的優(yōu)化器為Adam代替隨機(jī)梯度下降。
(1)定義實(shí)驗(yàn)數(shù)據(jù)集
在模型訓(xùn)練之前通常把所得數(shù)據(jù)分為三大類,訓(xùn)練集(training set)用來訓(xùn)練模型;驗(yàn)證集(dev set)統(tǒng)計(jì)單一評估指標(biāo),調(diào)節(jié)參數(shù)選擇算法和測試集(test set)模型訓(xùn)練結(jié)束后輸入模型來進(jìn)行整體評估模型性能。需要注意的是要注重?cái)?shù)據(jù)集的均衡,本文數(shù)據(jù)集占比為60%訓(xùn)練集,20%驗(yàn)證集,20%測試集。
(2)數(shù)據(jù)加載
本文使用了類Dataset和工具函數(shù)DataLoader加載,需要繼承Dataset的子類,重載len()與getitem()函數(shù)。
(3)迭代計(jì)算
迭代優(yōu)化過程:先將trainloader中數(shù)據(jù)與標(biāo)簽轉(zhuǎn)換為variable,數(shù)據(jù)輸入網(wǎng)絡(luò)后向前傳播求得損失,由于每一次反向傳播的梯度會累加在上一次循環(huán)的梯度,故使用zero_grad()函數(shù)將確保每一個新的循環(huán)前歸零梯度,隨后進(jìn)行反向傳播,計(jì)算損失函數(shù)更新優(yōu)化器參數(shù)。
共訓(xùn)練了19個模型:一個二分類模型,使用樣本13萬個(正樣本13萬個,負(fù)樣本約3萬個);一個缺陷分類模型,使用樣本16萬個;16個缺陷等級識別模型分別對應(yīng)16類缺陷。全部在4倍4 096個NVIDIA CUDA?核心(2048/GPU)硬件支持下,使用PyTorch 1.1框架軟件CDUA模式上完成訓(xùn)練,迭代epoch次數(shù):120次,隨機(jī)分組:10個/組。
為比較不同神經(jīng)網(wǎng)絡(luò)對管道樣本數(shù)據(jù)的準(zhǔn)確度響應(yīng),每個模型均采用18層,50層,101層殘差神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,取準(zhǔn)確度較高的作為最終模型。
(4)模型評價(jià)
缺陷分類模型Resnet18、ResNet50、ResNet101最終訓(xùn)練結(jié)果準(zhǔn)確度分別為92%、96%、79%,相較AlexNet與VGG模型殘差模型精度有所提高,但還存在分類錯誤情況。從實(shí)驗(yàn)結(jié)果看并不是網(wǎng)絡(luò)層越深越好。ResNet101層數(shù)最多但是實(shí)驗(yàn)過程中只達(dá)到79%精度,產(chǎn)生過擬合現(xiàn)象導(dǎo)致精度下降,ResNet508模型訓(xùn)練效果最佳達(dá)到96%。
系統(tǒng)最終用在管道檢測視頻缺陷判讀上,為獲得最好的工作效果,設(shè)定以下背景:
(1)機(jī)器人在爬行過程中,發(fā)現(xiàn)疑似缺陷管段(可以是操作員監(jiān)視發(fā)現(xiàn)),停止前進(jìn)對疑似區(qū)域進(jìn)行近距離掃描,此時(shí),視頻幀顯示距離值保持不變或僅有微小變化(設(shè)小于 5 cm)。此作業(yè)規(guī)則在后續(xù)數(shù)據(jù)分析中,能獲得明顯的空間聚類,有利于提高識別操作的針對性。
(2)剔除非應(yīng)用場景視頻段(機(jī)器人進(jìn)入管道之前拍攝的地面背景視頻等)和無用視頻段(機(jī)器人到達(dá)管道盡頭之后的圖像幀),由人工標(biāo)定攝像機(jī)有效距離起點(diǎn)和有效距離終點(diǎn)進(jìn)行區(qū)分。
(3)外業(yè)完成后,系統(tǒng)智能化水平達(dá)到代替人工正式生產(chǎn)可接受的識別準(zhǔn)確度。
應(yīng)用要求:由于召回率和精確率不可兼得,考慮到出現(xiàn)檢測遺漏難以補(bǔ)救,應(yīng)盡量避免,因此疑似缺陷識別(YES、NO)召回率要盡量高,要求:特征明顯時(shí)不低于99%,不明顯時(shí)要求不低于95%。而疑似缺陷識別精確率可適度放寬,應(yīng)用時(shí)會將不易區(qū)分的模糊樣本劃分為缺陷樣本,但可以通過人工甄別剔除,根據(jù)缺陷常見度,精確率要求不低于表3。
排水管道缺陷智能識別召回率精確率一覽表 表3
為達(dá)到5.1節(jié)要求,本文采用“二分類模型”+“疑似缺陷識別模型”+“缺陷等級識別模型”三級組合模型,分兩個階段,如圖8所示:
第一階段:輸入視頻,按照一定規(guī)則掃描視頻(例如:每5幀提取一幀),首先對提取的圖片幀進(jìn)行模糊度檢測,過濾掉鏡頭變焦過程中出現(xiàn)的模糊影像,然后進(jìn)行“二分類識別”,若無缺陷則忽略,否則進(jìn)行“距離識別”并將結(jié)果計(jì)入二分類數(shù)據(jù)集(包括圖片幀計(jì)數(shù),距離等信息)。
第二階段:讀入二分類數(shù)據(jù)集,先按距離進(jìn)行空間聚類,然后對每個聚類進(jìn)行如下操作:
(1)缺陷類型識別:針對聚類中所有圖片;
(2)合并同類型:缺陷類型相同且距離在0.3 m以內(nèi)的圖片,選取概率值較大者,舍棄其他;
(3)如果缺陷類型清晰,則進(jìn)行缺陷等級識別,缺陷類型模糊則加入人工干預(yù)再進(jìn)行等級識別。
其中,距離值是從圖片底邊固定位置上顯示的距離影像,采用數(shù)字識別技術(shù)得到,是缺陷處于管道起始位置的相對度量。
圖8 三級模型示意圖
由于不同材質(zhì)的管道管壁紋理差異,對缺陷判別精確度有一定影響,因此實(shí)踐中對“砼”“鑄鐵”“PVC”三種管材,分別訓(xùn)練三種管材的識別模型,使準(zhǔn)確度進(jìn)一步提升。
使用本成果共進(jìn)行5條管道實(shí)驗(yàn)性生產(chǎn),經(jīng)與人工識別結(jié)果比對,各項(xiàng)指標(biāo)如表4所示:
表4
從表4中結(jié)果可以看出,實(shí)驗(yàn)效果良好,各項(xiàng)指標(biāo)符合預(yù)期,通過適度人工甄別,可以大幅度提高工作效率。
排水管線檢測成本高、耗時(shí)長、精度差,本文利用福州市勘測院16萬個地下管線檢測數(shù)據(jù),立足系統(tǒng)整體實(shí)用性,通過對卷積神經(jīng)網(wǎng)絡(luò)模型的優(yōu)化,建立了管道缺陷內(nèi)窺檢測智能識別系統(tǒng),該系統(tǒng)已在福州市勘測院排水管道視頻檢測生產(chǎn)系統(tǒng)中應(yīng)用。
主要結(jié)論如下:
(1)模型結(jié)構(gòu)層數(shù)越高會產(chǎn)生過擬合現(xiàn)象,識別精度不一定越高反而可能下降,因此模型優(yōu)化需要考慮現(xiàn)實(shí)數(shù)據(jù)特點(diǎn)和應(yīng)用背景;
(2)本文推出獨(dú)具特色三級組合模型,各級別模型性能指標(biāo)各有側(cè)重,與生產(chǎn)規(guī)程相互配合,在試生產(chǎn)中證明其具有良好的實(shí)用性。但缺陷分割尚未實(shí)現(xiàn),有待于進(jìn)一步研究;
(3)模型訓(xùn)練采用訓(xùn)練樣本數(shù)據(jù)量大,可靠性高;
本文用人工智能建立了管道缺陷內(nèi)窺檢測智能識別系統(tǒng),可有效提高管道健康狀況檢查質(zhì)量和效率,研究成果可供管道檢測維護(hù)相關(guān)人員參考。