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