王慶 姚俊 譚文祿 潘惠惠



摘要:為了克服傳統深度學習在排水管道缺陷檢測方面識別正確率較低的缺點,在FasterR-CNN算法基礎上,利用聚類分析方法改進候選區域設置,提出一種優化的排水管道缺陷檢測模型,井采用VGG、AlexNet、GoogleNet、ResNet代替FasterR-CNN網絡中的特征提取層進行模擬計算。計算結果表明,K-means方法的最優類別數為5,雖然ResNet網絡訓練時間成倍增加,但其識別正確率達到0.89,比VGG網絡提高了0.14。優化后的FasterR-CNN網絡有效提高了排水管道缺陷檢測的識別正確率。
關鍵詞:管道缺陷;目標檢測;深度學習;Faster R-CNN;聚類分析
DOI:10.11907/rjdk.191817開放科學(資源服務)標識碼(OSID):
中圖分類號:TP306文獻標識碼:A 文章編號:1672-7800(2019)010-0040-05
0引言
目前許多城市的排水管網系統都存在不同程度的結構性與功能性缺陷。這些管道缺陷不僅會造成污水滲漏、排水不暢等管道系統運行問題,還可能引起地面塌陷、環境污染等安全事故。因此,正確識別排水管道缺陷類型并進行相應工程修復具有重大意義。
傳統排水管道缺陷識別通常是在進行CCTV管道內窺檢測后,依靠人工進行缺陷分類與定位。受光線、視頻清晰度及工作疲勞等因素影響,人工缺陷識別的正確率和效率將大大降低,而采用計算機視覺技術能有效地克服這些缺點。目前用于缺陷識別的計算機視覺技術可分為圖像處理和深度學習兩類。圖像處理一般步驟分為前處理、特征提取與物體分類。圖像前處理需要假設圖像像素滿足一定先驗條件,然后利用方向梯度直方圖(Histogram of Ori-ented Gradient,HOG)等方法提取物體的幾何形態特征,最后采用K近鄰、支持向量機(Support Vector Machine,SVM)等方法對物體進行分類。圖像處理技術早期應用于排水管道缺陷識別中,但由于該方法存在效率低、受噪聲數據影響大、一次只能識別一種缺陷等缺點,逐漸被深度學習所取代。
深度學習過程與圖形處理類似,主要區別是深度學習采用神經網絡自動進行特征提取以及物體識別與定位,具有很強的泛化能力,不需要過多人工干預。目前缺陷識別常用的深度學習方法主要有區域卷積神經網絡(R-CNN,Fast R-CNN,Faster R-CNN)系列、YOLO和SSD等,其中YOLO識別速度最快,可以實現實時檢測,Faster R-CNN的識別準確率最高。由于管道CCTV檢測樣本數據有限,而在小樣本條件下識別準確率比識別速度更重要,因此本文選擇Faster R-CNN進行管道缺陷檢測。目前FasterR-CNN在排水管道缺陷檢測中的應用較少,近年來部分學者針對該問題進行了研究,如魯少輝將常規FasterR-CNN算法用于管道缺陷檢測設備中;Ming將改進的ZF網絡作為Faster R-CNN中的特征提取網絡,識別準確率有一定程度提高;Zi采用K聚類方法對Faster R-CNN參數進行改進,網絡訓練速度與識別正確率都有一定程度提升。在上述K聚類基礎上,本文采用多種目前流行的神經網絡對FasterR-CNN進行改進,以進一步提高識別準確率。
1Faster R-CNN缺陷檢測模型
1.1卷積神經網絡CNN
深度學習網絡結構中通常包括一個卷積神經網絡(Convolutional Neural Networks,CNN),R-CNN、FastR-CNN、Faster R-CNN系列算法都是在CNN基礎上逐步發展而來的。如圖1所示,CNN基本網絡結構包括卷積層、激活函數、池化層、全連接層與目標函數。
卷積層(Convolutional Layer)是CNN的核心,其作用是利用卷積核與原始數據作點積,得到特征圖。卷積核大?。╢ilter size)及步長(stride)是卷積層的兩個重要參數,其含義如圖2所示。卷積核相當于一種濾波器,可以提取出原始圖片中的顏色、形狀、紋理等物體特征。通過將不同作用的卷集核組合到一個神經網絡中,可以提取更加復雜的特征。
激活函數層(activate function)模擬神經元工作原理,當神經元接收信號超過閾值時,神經元將被激活。目前應用最廣泛的激活函數為修正線性單元(Rectified LinearUnit,ReLU),函數形式為rectifier(x)=max(O,x)。
池化層(pooling layer)的作用是對特征圖進行降維,從而減少參數數量和計算量。常用池化操作有最大值池化、平均值池化和隨機池化,其中最大值池化操作如圖3所示。
全連接層(fully connected layer)是一種特殊的卷積層,作用是將特征圖映射到樣本空間作出物體類別預測,起到分類器的作用。目標函數(loss layer)的作用是衡量全連接層預測的物體類別與真實物體類別之間的誤差。目前用于分類任務的目標函數主要有交叉熵(Softmax)損失函數,形式如下:
CNN通常采用隨機梯度下降算法(Stochastic Gradient Descent,SGD)算法訓練網絡中的參數,從而使目標函數最小。CNN只能用來分類與識別物體,不能自動檢測圖片中的物體位置,需要人工將目標物體從圖片中截取出來后用CNN進行識別。
1.2R-CNN模型
區域卷積神經網絡(Region-based ConvolutionalNeural Network,R-CNN)是在CNN基礎上發展而來的一種用于目標檢測的模型,其網絡結構如圖4所示。R-CNN利用edgeBox或selective search算法生成2000~3000個候選區域(proposal regions),每個候選區域縮放成固定大小后輸入CNN網絡進行特征提取與分類,最后利用SVM算法進行候選區域邊界框(bounding box)的回歸,獲取候選區域位置參數。由于每個候選區域都要運行一遍CNN網絡,因此需要大量存儲空間,計算速度較慢。
1.3Fast R-CNN
Fast R-CNN與R-CNN的網絡結構及算法相似,不同的是Fast R-CNN將整張圖片輸入CNN網絡提取特征后,再在整張特征圖上映射候選區域特征,最后對特征區域的特征圖進行分類與bounding box回歸。Fast R-CNN網絡結構如圖5所示。FastR-CNN與R-CNN還有兩個重要區別:一是增加了池化層(Region of Interest,ROI),目的是將不同大小候選區域的特征圖降維成統一大小,以便進行下一步分類與bounding box回歸,其原理如圖6所示;二是bound-ing box回歸和分類同時進行,使目標函數變為多目標損失函數。由于Faste R-CNN相比R-CNN只需進行一次CNN特征提取網絡運行,從而大大提升了計算速度。
1.4Faster R-CNN
Faster R-CNN與Fast R-CNN之間的差別主要是將候選區域算法變化成一種神經網絡(Region Proposal Network,RPN)融入主網絡結構。RPN網絡結構與主網絡結構之間共享一段CNN特征提取網絡,從而減少了網絡參數和訓練時間。
與selective search算法不同,RPN網絡工作原理是原始圖片經過CNN特征提取網絡后,RPN網絡在特征圖上產生不同大小和長寬比的錨框(anchor box)。如圖8所示,用2×2的掃框(sliding window)遍掃特征圖,在掃框的中心點處設置k個不同大小和長寬比的錨框,錨框經過分類層和回歸層后會產生2k個分類變量和4k個定位變量,其中2k是指候選區域包含物體與否,4k是指候選區域左上角坐標x、y和長寬W、h。錨框大小和長寬比設置一般根據經驗進行調試,帶有一定主觀性,因此需要采用更加合理的方法設置錨框。
2錨框設置
原始圖片中可能包含各種不同缺陷類型,而候選框應能包含所有缺陷,因此可能需要設置大量錨框,導致網絡參數和訓練時間大大增加。K-means方法能將具有相似特征的不同類型事物聚集成一類,參照此原理,將具有相似大小和長寬比的錨框看作一類,只需設置少量錨框即能將所有缺陷包含在內。K-means方法計算流程如圖9所示。
本文的CCTV檢測數據有2316個候選框,其高度變化范圍為25-376pt(像素),寬度變化范圍為30-474pt。選取k=1,2…,10,分別計算對應目標函數E和識別正確率mAP,如圖10所示。從圖中可以看出,隨著k值變大,誤差逐漸減小,識別正確率逐漸提升。但k值越大,計算速度越慢,所需的存儲空間也越大,因此需要在優勢和劣勢之間進行權衡。k>5時,誤差和mAP的變化逐漸變緩,趨于穩定,但k若繼續增大,將導致計算速度變慢。因此,選擇k=5作為最優類別數,最優k時的聚類圖如圖11所示。
3管道缺陷檢測算例
3.1缺陷數據
本文的管道缺陷數據來源于深圳市寶安區排水管道CCTV視頻。CCTV視頻中管道缺陷圖片共有3150張,涉及9種缺陷類型,分別為破裂、變形、腐蝕、錯口、脫節、接口材料脫落、滲漏、沉積、障礙物。各種類型的缺陷數量如圖12所示,部分圖片中同時存在多種缺陷類型,因此各種缺陷數量之和大于3150。由于深度學習需要一定數量樣本才能保證識別準確率,而且樣本數量過少可能會導致過擬合(over fitting)問題,因此本次計算只選擇樣本數量相對較多的幾種缺陷類型,包括破裂(366個)、變形(241個)、錯口(693個)、脫節(809個)、沉積(305個),樣本圖片如圖13所示。
為了降低過擬合的影響、提高識別準確率,采用數據擴展(data augmentation)技術對樣本進行擴充。本文采用的數據擴展技術有水平翻轉、豎直翻轉、縮放及顏色調整。數據擴展后樣本圖片數量達到11105張,其中訓練樣
3.2網絡訓練
特征提取網絡的結構設計對目標識別準確率有很大影響,因此選取合適的特征提取網絡對保證管道缺陷檢測模型的有效性至關重要。Ming&Zi采用的ZF和VGG特征提取網絡是在ImageNet數據集上訓練而來的,但識別準確率不太理想。本文采用AlexNet、GoogleNet、ResNet101等目前流行的深度學習網絡與VGG網絡計算結果進行對比,選取其中識別準確率最高的作為排水管道缺陷檢測模型的特征提取網絡。
Faster R-CNN網絡訓練分為4個過程:①訓練RPN網絡得到候選區域;②利用候選區域訓練主網絡;③固定RPN和主網絡共享的特征提取網絡,只訓練RPN獨有的部分網絡;④固定RPN和主網絡共享的特征提取網絡,只訓練主網絡獨有的部分網絡。采用隨機梯度下降算法(SGD)訓練網絡,循環次數(maxEpochs)取5,學習率(learningrate)取0.001,批處理(MiniBatchSize)大小取1。網絡訓練采用NVIDIA GeForce GTX 1060型號的GPU進行加速。
3.3結果分析
本文采用VGGl6、AlexNet、GoogleNet、ResNet101分別進行訓練,得到的識別準確率、訓練時間如表1所示。不同模型的mPA和訓練時間對比如圖14所示,從圖中可以看出,識別正確率隨著訓練時間增加而逐漸提升,雖然ResNet訓練時間是GoogleNet模型的3倍,但識別正確率提高了8%,其中對破裂與脫節缺陷的識別正確率分別提高了10%和14%,因此這種時間代價是值得的。
ResNet模型的5種缺陷測試結果如圖15所示,圖中方框代表預測的缺陷位置,文字代表預測的缺陷類別,數字代表檢測精度。從圖中可以看出,對破裂、變形、錯口、脫節缺陷的檢測精度達到了100%,對沉積缺陷的檢測精度達到了99.99%,說明采用ResNet模型進行特征提取是行之有效的。
4結語
本文采用K-means算法確定錨框大小,利用VGG、AlexNet、GoogleNet、ResNet 4種深度學習網絡代替傳統Faster R-CNN網絡中的特征提取層,提出一種排水管道缺陷檢測模型,并得出以下結論:
(1)K-means算法一定程度上減少了深度網絡參數,提高了識別正確率。
(2)雖然ResNet的訓練時間大幅增加,但其識別正確率達到0.89,因此采用ResNet作為模型的特征提取層是可行的。
(3)改進FasterR-CNN模型的計算精度普遍在99%以上,部分達到100%。
(4)本文提出的排水管道缺陷識別模型對類似市政工程建設具有一定借鑒意義,但需要針對如何減少網絡訓練時間、提高識別速度作進一步研究,以實現在CCTV檢測設備中的實時檢測。