国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

排水管道缺陷內窺檢測智能識別系統(tǒng)研究

2021-11-10 06:32鐘洪德
城市勘測 2021年5期
關鍵詞:殘差梯度卷積

鐘洪德

(福州市勘測院,福建 福州 350108)

1 引 言

城市地下管線是保障城市運行的重要基礎設施,如同人體的血管一般分布錯綜復雜。然而地下管道結構復雜維護困難,時間一長發(fā)生各種形式的損壞情況,如:管道堵塞、管線爆裂、材料老化等經(jīng)常引發(fā)城市內澇、地表坍陷等事件,影響城市運行和造成經(jīng)濟損失。因此管道健康檢查已成為市政管理中的重要工作。

地下管道健康檢測方法有[1]:①管道閉路電視檢測系統(tǒng)(CCTV),目前最普遍檢測系統(tǒng),操作人員利用控制臺在地面上進行遠程操縱CCTV爬行器拍攝管道內壁,錄入管道內部信息進行評價和分析;②管道聲吶檢測技術,以水為介質利用聲吶系統(tǒng)掃描管道內壁,得到結果是以管道縱向斷面的過水面積表示,無須處理管道內部和截斷水流,操作方便,但適用于管道的變形缺陷檢測,結構性缺陷檢測效果較差;③多重傳感器法,由光學測量裝置、微波傳感器和聲學系統(tǒng)構成,具有多功能檢測管道效果,但費用成本較高。在上述三種檢查技術中,管道閉路電視檢測系統(tǒng)可深入管道內部攝取視頻影像,能有效獲取到可供管道缺陷檢測的一手資料,檢測安全性高、信息清晰直觀、成本較低,目前在業(yè)界已得到普遍采用。但缺陷識別依靠事后人工目視識別,耗時耗力,生產周期長。

解決管道機器人系統(tǒng)檢測效率重點在管道缺陷的判別上,深度學習為此提供了有效途徑。呂兵、劉玉賢等人,借助卷積神經(jīng)網(wǎng)絡對管道CCTV視頻進行了智能檢測研究,試驗證明在缺陷識別的準確率和召回率及識別速度上均滿足了排水管道缺陷智能檢測的需要,該方法也已經(jīng)在深圳市的排水管道檢測中應用[2]。戶瑩等人基于卷積神經(jīng)網(wǎng)絡利用深圳市人工數(shù)據(jù),建立了管道缺陷識別模型并可表示缺陷范圍,二分類準確率接近90%,分割準確度接近80%,極大促進了管道缺陷檢測的自動化和智能化水平[3]。但所有樣本數(shù)據(jù)量較少(戶瑩,每類樣本800個)模型準確度不足以取代人工判別,而且樣本數(shù)據(jù)受地域局限不易推廣。針對排水管道內部特殊環(huán)境,李波鋒采用了一種改進的低通濾波求差法提取管道功能性缺陷,該算法能有效消除光照不均勻對檢測造成的影響[4]。

2 深度學習原理

2.1 卷積神經(jīng)網(wǎng)絡(CNN)

1962年神經(jīng)學家Hubel和Wiesel研究貓的視覺皮層,發(fā)現(xiàn)視覺皮層對于信息的處理是通過神經(jīng)元上的多個軸突末梢進行分層處理、層層傳遞的,這啟發(fā)了人們對于神經(jīng)網(wǎng)絡的研究思想。1998年,LeCun提出了LeNet-5,性能較單純的分類器來說更加優(yōu)越。在論文中,LeCun首次使用卷積一詞,命名了卷積神經(jīng)網(wǎng)絡(CNN)。2006年,提出了反向傳播算法的Hinton在論文中介紹了深度學習的概念,掀起了深度學習的熱潮。

CNN是利用卷積核參數(shù)共享原理的一種前饋神經(jīng)網(wǎng)絡,最常用的CNN的學習算法是后向傳播算法(BP),它具有多維函數(shù)映射和模式分類能力。它包括輸入信息的正向傳遞和誤差信息的反向傳遞兩個部分,將神經(jīng)網(wǎng)絡的輸出值與樣本值進行對比,再以兩者的均方誤差作為目標函數(shù),依照各層權重進行誤差分配,調整各層參數(shù),經(jīng)過多次訓練后使得目標函數(shù)符合要求,進而滿足實際需要[5]。

2.2 殘差神經(jīng)網(wǎng)絡(ResNet)

CNN隨著網(wǎng)絡深度不斷增加,梯度彌散和梯度爆炸等問題也接連出現(xiàn),特別是50層網(wǎng)絡的測試誤差率相較于20層網(wǎng)絡高出一倍。2015年的ILSVRC(ImageNet Large Scale Visual Recognition Challenge)大賽中,He等人提出了殘差神經(jīng)網(wǎng)絡(ResNet),層數(shù)達到了152層,top-5錯誤率降到了3.57%,且其參數(shù)量比只有十幾層的VGGNet網(wǎng)絡更少。該網(wǎng)絡提升訓練準確性[6],且在很大程度上避免了因網(wǎng)絡層數(shù)過多而產生的梯度爆炸問題。

CNN模型期望可以學習一個非線性最優(yōu)映射函數(shù)H(x),后續(xù)樣本數(shù)據(jù)中出現(xiàn)同類數(shù)據(jù)時會相互靠攏,ResNet模型在傳統(tǒng)CNN神經(jīng)網(wǎng)絡模型中增加了一個恒等映射(identity mapping),將這個最優(yōu)映射函數(shù)改為H(x)=F(x)+X,這樣前一層的未降采樣數(shù)據(jù)和經(jīng)過降采樣的數(shù)據(jù)可以共同作為下一層網(wǎng)絡的輸入數(shù)據(jù),此時F(x)=H(x)-X,即整個網(wǎng)絡只要學習輸入、輸出數(shù)據(jù)中的差別部分,即殘差。這實際上增大了變化數(shù)值對于權重的影響,使得網(wǎng)絡對于變化的反映更為敏感[6],更容易對權重進行調整。這解決了CNN模型在學習復雜函數(shù)時的困難,將學習過程拆成兩個過程,首先學習殘差函數(shù)F(X),然后通過簡單映射學習函數(shù)H(x)=F(X)+X。

2.3 學習率優(yōu)化算法

(1)梯度下降法

梯度下降法(gradient descent)是在深度學習中應用最為廣泛的學習率優(yōu)化算法。主要有二種典型形式[7],隨機坡度下降法(SGD,Stochastic Gradient Descent)、小批量坡度下降法(MGD,Mini-batch Gradient Descent)。綜合兩種算法出現(xiàn)了幾種(學習率)自適應優(yōu)化算法:AdaGrad、RMSProp、Adam。

(2)Adam(Adaptive Moment Estimation)算法

Adam計算梯度的指數(shù)移動均值,即利用梯度的一階矩估計和二階矩估計獨立地、動態(tài)地調整每個參數(shù)的自適應性學習率。比其他自適應算法更好。

該算法的權值更新規(guī)則如下:

(1)

它在實際應用中效果優(yōu)于其他的自適應優(yōu)化方法,并且可以提供解決噪聲問題與優(yōu)化稀疏梯度的方法。

3 管道缺陷分析與數(shù)據(jù)處理

3.1 管道缺陷定義與標識

目前我國排水管道有功能性缺陷與結構性缺陷兩大類,依據(jù)日常養(yǎng)護中所遇到的各類管道病害和缺陷的狀況,管道結構性缺陷包括破裂、變形、腐蝕、錯口、起伏、脫節(jié)、接口材料脫落、支管暗接、異物穿入、滲漏共10種,管道功能性缺陷包含沉積、結垢、障礙物、殘墻、樹根、浮渣共6種[8]。修復等級分為三個等級:部分修復或不修復;缺陷管段整體修復;整段搶修或翻建。功能性缺陷一般養(yǎng)護可以得到改善,而結構性缺陷需要修復。具體的缺陷分類定義及等級標準參照表1和表2所示,其中為方便計算機處理將16類管道缺陷添加了數(shù)字標識。

管道結構性缺陷定義 表1

管道功能性缺陷定義 表2

3.2 管道缺陷成因分析

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

圖1 沉積

圖2 浮渣

圖3 樹根

圖4 支管暗接

3.3 管道缺陷樣本數(shù)據(jù)整理

福州市勘測院現(xiàn)有人工識別缺陷圖片約16萬多張,每張包括含缺陷類型、缺陷等級、方位、所在管道名稱和處于管道相對位置等信息。大部分樣本數(shù)據(jù)中特征明顯易被識別,但也有少數(shù)模糊不清的樣本數(shù)據(jù)。數(shù)據(jù)整理主要包括:

(1)先將16萬多張圖片,分別存放到按數(shù)字標識創(chuàng)建分類圖像的存儲目錄Image_0至Image_16中,如圖5所示;

(2)用xls文件記錄每張圖片的缺陷等級;

(3)然后對原始文檔一些缺陷描述模糊不清、嚴重偏色、或描述混合類的圖片進行了人工甄別。

圖5 分類圖像存儲目錄

3.4 數(shù)據(jù)增強

為改善樣本不均衡性問題(破裂達3萬張,浮渣只有幾百張),防止模型過擬合。對樣本數(shù)量較少的類別,使用PyTorch的torchvision.transforms圖像預處理包進行數(shù)據(jù)增強。隨機翻卷圖像,改變圖像色差,扭曲圖像特征,改變圖像尺寸大小,剔除模糊不清色彩混淆的圖像,增強圖像噪音,一般使用高斯噪音,鹽椒噪音[11]。

圖6 圖像增強處理代碼

如圖6所示為圖像增強處理代碼,transforms.compose函數(shù)把多種變化組合在一起,例如分別crop對數(shù)據(jù)隨機大小寬高剪切后resize指定224大小統(tǒng)一形狀大??;flip隨機水平翻轉原始圖像。本文對數(shù)據(jù)進行了50%概率水平翻轉,50%概率的垂直翻轉,隨機對圖片進行15%的旋轉以及把原本64×64尺寸進行數(shù)據(jù)變化成統(tǒng)一224×224尺寸圖片。

4 模型設計與訓練

4.1 模型設計

由于PyTorch框架和其他開源框架相比,在靈活性、速度、易用性這三個方面具有非常明顯的優(yōu)勢,本文利用PyTorch框架搭建管道缺陷識別ResNet模型。

如圖7所示:18層管道缺陷識別ResNet模型:輸入層:主要實現(xiàn)圖像信息標準化處理;殘差單元(4個):殘差塊的實現(xiàn)是把數(shù)據(jù)分別進行兩次卷積(stage)和輸入下采樣短路連接;輸出層(池化層+全聯(lián)通層):使用maxpool最大池化向下采樣去除冗余信息,最后用FC函數(shù)全聯(lián)通輸出。

圖7 ResNet網(wǎng)絡結構

(1)殘差單元

殘差單元(residual block)實現(xiàn)分三步:經(jīng)兩次卷積操作,其結果與輸入下采樣進行Shortcut操作(即殘差計算),最后經(jīng)ReLU激活操作后輸出。用_init_函數(shù)定義計算序列,之后使用向前傳播函數(shù)forward()執(zhí)行計算。

二維卷積通過調用conv2d()類封裝實現(xiàn)。本文管道圖像像素為224×224,設置窗口每個維度滑動步長stride為1,padding使得輸入輸出圖片維度一致。

(2)激活函數(shù)

殘差神經(jīng)網(wǎng)絡中采用的激活函數(shù)是ReLU函數(shù),相比于sigmoid、tanh函數(shù),ReLU函數(shù)不用計算指數(shù)和倒數(shù),大大減少了計算量。

其定義如下:

f(x)=max(0,x)

(2)

(3)損失函數(shù)與優(yōu)化器

本文用到交叉熵損失函數(shù),PyTorch封裝為cross entropyloss(),使用的優(yōu)化器為Adam代替隨機梯度下降。

4.2 模型訓練

(1)定義實驗數(shù)據(jù)集

在模型訓練之前通常把所得數(shù)據(jù)分為三大類,訓練集(training set)用來訓練模型;驗證集(dev set)統(tǒng)計單一評估指標,調節(jié)參數(shù)選擇算法和測試集(test set)模型訓練結束后輸入模型來進行整體評估模型性能。需要注意的是要注重數(shù)據(jù)集的均衡,本文數(shù)據(jù)集占比為60%訓練集,20%驗證集,20%測試集。

(2)數(shù)據(jù)加載

本文使用了類Dataset和工具函數(shù)DataLoader加載,需要繼承Dataset的子類,重載len()與getitem()函數(shù)。

(3)迭代計算

迭代優(yōu)化過程:先將trainloader中數(shù)據(jù)與標簽轉換為variable,數(shù)據(jù)輸入網(wǎng)絡后向前傳播求得損失,由于每一次反向傳播的梯度會累加在上一次循環(huán)的梯度,故使用zero_grad()函數(shù)將確保每一個新的循環(huán)前歸零梯度,隨后進行反向傳播,計算損失函數(shù)更新優(yōu)化器參數(shù)。

共訓練了19個模型:一個二分類模型,使用樣本13萬個(正樣本13萬個,負樣本約3萬個);一個缺陷分類模型,使用樣本16萬個;16個缺陷等級識別模型分別對應16類缺陷。全部在4倍4 096個NVIDIA CUDA?核心(2048/GPU)硬件支持下,使用PyTorch 1.1框架軟件CDUA模式上完成訓練,迭代epoch次數(shù):120次,隨機分組:10個/組。

為比較不同神經(jīng)網(wǎng)絡對管道樣本數(shù)據(jù)的準確度響應,每個模型均采用18層,50層,101層殘差神經(jīng)網(wǎng)絡進行訓練,取準確度較高的作為最終模型。

(4)模型評價

缺陷分類模型Resnet18、ResNet50、ResNet101最終訓練結果準確度分別為92%、96%、79%,相較AlexNet與VGG模型殘差模型精度有所提高,但還存在分類錯誤情況。從實驗結果看并不是網(wǎng)絡層越深越好。ResNet101層數(shù)最多但是實驗過程中只達到79%精度,產生過擬合現(xiàn)象導致精度下降,ResNet508模型訓練效果最佳達到96%。

5 系統(tǒng)集成

5.1 應用背景與要求

系統(tǒng)最終用在管道檢測視頻缺陷判讀上,為獲得最好的工作效果,設定以下背景:

(1)機器人在爬行過程中,發(fā)現(xiàn)疑似缺陷管段(可以是操作員監(jiān)視發(fā)現(xiàn)),停止前進對疑似區(qū)域進行近距離掃描,此時,視頻幀顯示距離值保持不變或僅有微小變化(設小于 5 cm)。此作業(yè)規(guī)則在后續(xù)數(shù)據(jù)分析中,能獲得明顯的空間聚類,有利于提高識別操作的針對性。

(2)剔除非應用場景視頻段(機器人進入管道之前拍攝的地面背景視頻等)和無用視頻段(機器人到達管道盡頭之后的圖像幀),由人工標定攝像機有效距離起點和有效距離終點進行區(qū)分。

(3)外業(yè)完成后,系統(tǒng)智能化水平達到代替人工正式生產可接受的識別準確度。

應用要求:由于召回率和精確率不可兼得,考慮到出現(xiàn)檢測遺漏難以補救,應盡量避免,因此疑似缺陷識別(YES、NO)召回率要盡量高,要求:特征明顯時不低于99%,不明顯時要求不低于95%。而疑似缺陷識別精確率可適度放寬,應用時會將不易區(qū)分的模糊樣本劃分為缺陷樣本,但可以通過人工甄別剔除,根據(jù)缺陷常見度,精確率要求不低于表3。

排水管道缺陷智能識別召回率精確率一覽表 表3

5.2 三級組合模型

為達到5.1節(jié)要求,本文采用“二分類模型”+“疑似缺陷識別模型”+“缺陷等級識別模型”三級組合模型,分兩個階段,如圖8所示:

第一階段:輸入視頻,按照一定規(guī)則掃描視頻(例如:每5幀提取一幀),首先對提取的圖片幀進行模糊度檢測,過濾掉鏡頭變焦過程中出現(xiàn)的模糊影像,然后進行“二分類識別”,若無缺陷則忽略,否則進行“距離識別”并將結果計入二分類數(shù)據(jù)集(包括圖片幀計數(shù),距離等信息)。

第二階段:讀入二分類數(shù)據(jù)集,先按距離進行空間聚類,然后對每個聚類進行如下操作:

(1)缺陷類型識別:針對聚類中所有圖片;

(2)合并同類型:缺陷類型相同且距離在0.3 m以內的圖片,選取概率值較大者,舍棄其他;

(3)如果缺陷類型清晰,則進行缺陷等級識別,缺陷類型模糊則加入人工干預再進行等級識別。

其中,距離值是從圖片底邊固定位置上顯示的距離影像,采用數(shù)字識別技術得到,是缺陷處于管道起始位置的相對度量。

圖8 三級模型示意圖

5.3 按管材分類建模

由于不同材質的管道管壁紋理差異,對缺陷判別精確度有一定影響,因此實踐中對“砼”“鑄鐵”“PVC”三種管材,分別訓練三種管材的識別模型,使準確度進一步提升。

6 應用效果評價

使用本成果共進行5條管道實驗性生產,經(jīng)與人工識別結果比對,各項指標如表4所示:

表4

從表4中結果可以看出,實驗效果良好,各項指標符合預期,通過適度人工甄別,可以大幅度提高工作效率。

7 結論與展望

排水管線檢測成本高、耗時長、精度差,本文利用福州市勘測院16萬個地下管線檢測數(shù)據(jù),立足系統(tǒng)整體實用性,通過對卷積神經(jīng)網(wǎng)絡模型的優(yōu)化,建立了管道缺陷內窺檢測智能識別系統(tǒng),該系統(tǒng)已在福州市勘測院排水管道視頻檢測生產系統(tǒng)中應用。

主要結論如下:

(1)模型結構層數(shù)越高會產生過擬合現(xiàn)象,識別精度不一定越高反而可能下降,因此模型優(yōu)化需要考慮現(xiàn)實數(shù)據(jù)特點和應用背景;

(2)本文推出獨具特色三級組合模型,各級別模型性能指標各有側重,與生產規(guī)程相互配合,在試生產中證明其具有良好的實用性。但缺陷分割尚未實現(xiàn),有待于進一步研究;

(3)模型訓練采用訓練樣本數(shù)據(jù)量大,可靠性高;

本文用人工智能建立了管道缺陷內窺檢測智能識別系統(tǒng),可有效提高管道健康狀況檢查質量和效率,研究成果可供管道檢測維護相關人員參考。

猜你喜歡
殘差梯度卷積
基于雙向GRU與殘差擬合的車輛跟馳建模
一個帶重啟步的改進PRP型譜共軛梯度法
一個改進的WYL型三項共軛梯度法
基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
基于殘差學習的自適應無人機目標跟蹤算法
一種自適應Dai-Liao共軛梯度法
基于遞歸殘差網(wǎng)絡的圖像超分辨率重建
從濾波器理解卷積
一個具梯度項的p-Laplace 方程弱解的存在性
基于傅里葉域卷積表示的目標跟蹤算法
长武县| 柳江县| 屯留县| 大兴区| 久治县| 竹溪县| 华池县| 崇明县| 南川市| 南和县| 嘉定区| 浏阳市| 息烽县| 榆中县| 蓝田县| 葵青区| 伊通| 二手房| 阜新市| 铁岭县| 新平| 合作市| 镇远县| 武穴市| 清徐县| 紫金县| 寻乌县| 西贡区| 那坡县| 嫩江县| 榆林市| 新昌县| 文山县| 平遥县| 叙永县| 五家渠市| 长葛市| 莱芜市| 滨海县| 射阳县| 浦江县|