蘇 展, 徐紅偉, 凌張偉2,3, 李 靜, 鐘紹俊
(1.中國計量大學(xué) 機電工程學(xué)院,浙江 杭州 310018; 2.浙江省特種設(shè)備檢驗研究院,浙江 杭州 310012;3.浙江省特種設(shè)備檢驗研究院浙江省特種設(shè)備安全檢測技術(shù)研究重點實驗室,浙江 杭州 310012)
由于使用環(huán)境條件惡劣等原因,燃?xì)?、輸油等壓力管道由?nèi)部缺陷導(dǎo)致失效的風(fēng)險需進(jìn)行及時檢測和評估。1993年日本的Shigeo Hirose和Hidetaka Ohno等人首次將視覺應(yīng)用于管道內(nèi)部缺陷的檢測[1]。2000年左右,德國學(xué)者Benhard、Hemann和Frank、美國卡內(nèi)基梅隆大學(xué)的Hagen Schempf博士等都研制了具有各自功能的管道內(nèi)部缺陷檢測機器人[2-3]。國內(nèi)哈爾濱工業(yè)大學(xué)[4]、上海大學(xué)[5]、上海交通大學(xué)[6]都在管道機器人方面做了研究。目前,管道機器人存在對管道形狀要求較高、數(shù)據(jù)分析困難導(dǎo)致結(jié)果不可靠等問題[7-9]。研究能夠在各類復(fù)雜形狀的管道中運行,自動識別典型管道缺陷并進(jìn)行缺陷分類的管道機器人,具有重要實際應(yīng)用價值,也是近年來管道機器人研究的熱點問題之一。
本文設(shè)計研發(fā)了能夠通過各種形狀管道的球形管道機器人,通過高分辨率立體相機捕捉管道內(nèi)360°連續(xù)視頻圖像,通過離線專用軟件對視頻進(jìn)行分揀,實現(xiàn)對壓力管道內(nèi)表面缺陷的檢測和分類,有效提高了管道缺陷的識別效率,在較大程度上解決了管道內(nèi)缺陷導(dǎo)致的安全評估難題。
管道內(nèi)缺陷檢測機器人由3個功能模塊組成:檢測、定位和驅(qū)動。其中檢測部分實現(xiàn)管道內(nèi)部缺陷檢測或定位,定位部分實現(xiàn)檢測結(jié)果和機器人的定位,驅(qū)動部分實現(xiàn)管道內(nèi)缺陷檢測機器人的前進(jìn)驅(qū)動。
本文的管道內(nèi)缺陷檢測球形視頻機器人結(jié)構(gòu)如圖1所示,檢測部分包括2個背靠背對裝的360fly全景相機、照明燈帶、充電USB線。360fly全景相機內(nèi)部有能存儲64 GB視頻的SD卡,通過充電USB線可讀取SD卡的視頻流,同時可實現(xiàn)外部充電。定位部分由位于線路板上的內(nèi)定位電路和外定位波形發(fā)生電路、外定位發(fā)射線圈、外定位接收線圈矩陣(圖中未畫出)組成。外定位接收線圈矩陣有6個,按照菱形空間分布,通過線圈信號比對得到機器人位置信息。
圖1 球形視頻機器人結(jié)構(gòu)(USB線未畫出)
驅(qū)動部分由球形有機玻璃殼體及“O”形密封圈、密封螺母等密封部件和管道流量控制系統(tǒng)組成。其驅(qū)動原理如圖2所示。
管道內(nèi)缺陷檢測球形視頻機器人的外殼采用高強度亞克力材料,具有高通透性。機器人采用對稱設(shè)計,其重心位于球心。通過內(nèi)部質(zhì)量及配重控制,使得機器人密度近似等于內(nèi)部液體介質(zhì)密度。這里采用水作為液體介質(zhì),通過離線方式進(jìn)行檢測。當(dāng)液體介質(zhì)以一定速度流動時,可推動機器人以近似相同的速度通過管道。由于機器人采用球形外殼,并且外殼堅硬光滑,使得其具有良好的通過性能,能夠有效通過各種形狀的管道。
球形視頻機器人通過管道的同時,兩個背靠背安裝的360fly全景相機以視頻的方式記錄管道內(nèi)部情況。360fly全景相機具有橫向360°、縱向240°廣角鏡頭,背靠背安裝的兩個全景相機能夠全景記錄管道內(nèi)圖像。全景相機分辨率達(dá)到2880像素×2880像素,記錄率為50 Mbit/s,充一次電可工作1.5 h,內(nèi)含加速度計,陀螺儀和GPS定位,通過USB線可讀取兩個全景相機的視頻流。為了得到管道內(nèi)缺陷的圖像信息,視頻流需要先進(jìn)行預(yù)處理,包括直方圖均衡化圖像增強、圖像濾波去噪和對運動造成的模糊圖像進(jìn)行恢復(fù)。
(1) 直方圖均衡化。
直方圖均衡化[10]可讓原始圖像的像素分布均勻且占有灰度的級數(shù)盡可能得多,從而使輸入的圖像有很多的灰度色調(diào),且對比度增強。經(jīng)過處理后管道圖像局部對比度更加明顯,細(xì)節(jié)更加清楚,有利于后期的特征提取。
(2) 管道圖像濾波去噪。
選取了5×5的高級卷積核,標(biāo)準(zhǔn)差為1,對管道圖像進(jìn)行了高斯濾波處理[11]。高斯卷積核為
(1)
(3) 管道運動模糊圖像恢復(fù)。
當(dāng)球形視頻機器人在移動出現(xiàn)過快、碰撞等情況時,將導(dǎo)致圖像模糊。采用維納濾波器進(jìn)行模糊圖像恢復(fù)。維納濾波器[12]可用于濾除來自損壞信號的噪聲,提供感興趣的底層信號的估計。它是一種基于統(tǒng)計方法的濾波器,使恢復(fù)后的管道圖像與恢復(fù)前的圖像之間的均方差最小。之間的誤差e為
e2=E[(f-f′)2]=min
(2)
式中,f為未處理前的圖像;f′為使用維納濾波復(fù)原后的圖像;E{·}表示均方誤差。估計的傅里葉變公式為
(3)
在實際應(yīng)用中,噪聲功率譜和原始圖像功率譜很難獲得,所以一般選k值代替Sη(u,v)/Sf(u,v),式(3)可化簡為
(4)
經(jīng)過圖像預(yù)處理,基本已經(jīng)去除了干擾因素,可以對圖像進(jìn)行分類檢索處理。對管道圖像的分類檢索就是找出管道內(nèi)檢測裝置所拍攝的視頻流中的含有缺陷或者焊縫的幀圖片,采用基于深度卷積神經(jīng)網(wǎng)絡(luò)來實現(xiàn)?;谏疃葘W(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)的開發(fā)環(huán)境是Visual Studio 2013、CUDA 7.5、OpenCV2.7、Matlab 2016,基于Caffe框架實現(xiàn)。
卷積神經(jīng)網(wǎng)絡(luò)[13-14]是由不同的層組成的,主要包括卷積層、匯聚層和全連接層,一個層到另一個層的數(shù)據(jù)傳遞通過激活函數(shù)來完成。卷積神經(jīng)網(wǎng)絡(luò)每一層的神經(jīng)元都是寬度、高度和深度的3維排列,這種結(jié)構(gòu)使卷積神經(jīng)網(wǎng)絡(luò)中參數(shù)的數(shù)量大大降低,也使向前傳播變得容易。用于管道圖像分類的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)有23層,主要分為輸入層(input)、卷積層(conv)、ReLU層、歸一化層(norm)、匯聚層(pool)、全連接層(fully_connected)和輸出層(classification)。
① 輸入層。
輸入的圖像是經(jīng)過第2節(jié)方法預(yù)處理的管道圖像,大小為[227×227×3]。
② 卷積層。
卷積層中的神經(jīng)元與上一層輸入層或者匯聚層中的局部區(qū)域連接,將自己的權(quán)重與上一層的小區(qū)域做內(nèi)積運算。一個典型卷積計算實例如圖3所示。
圖3 卷積計算實例示意圖
卷積的計算式為
(5)
③ ReLU層。
ReLU層主要作為激活函數(shù),該層將每一個元素進(jìn)行激活操作。使用ReLU的目的是加速收斂。ReLU層的激活函數(shù)完整寫法為
f(x)=max(0,x)
(6)
④ 歸一化層。
歸一化層主要是對圖像的特征進(jìn)行歸一化操作,也就是對圖像的均值后的方差進(jìn)行歸一化。主要目的是使特征圖譜中的特征在相鄰特征和其他特征圖譜中的相同空間位置的特征進(jìn)行競爭。
⑤ 匯聚層。
匯聚層通過在寬度和高度(即空間維度)進(jìn)行降采樣來改變數(shù)據(jù)的尺寸。
⑥ 全連接層。
全連接層用來計算圖像的分類評分。在本文的應(yīng)用中,全連接層中數(shù)據(jù)尺寸變?yōu)閇1×1×3],其中3個數(shù)字對應(yīng)的就是管道圖像中3個類別的分類評分值。
本文設(shè)計的網(wǎng)絡(luò)框架一共23層。將所有的管道圖片統(tǒng)一到相同的尺寸227×227×3作為輸入,第1層是卷積層conv1,使用96個大小為11×11,步長為4的卷積核對管道圖像進(jìn)行卷積運算;第2層是ReLU層relu1,進(jìn)行激活;第3層是歸一化層norm1,采用窗體大小為5,α=1.0000×10-4,β=0.7500,k=1進(jìn)行歸一化;第4層是匯聚層pool1,匯聚層窗口大小為3,步長為2,對上一層的特征進(jìn)行匯聚;第5層卷積層conv2使用256個大小為5×5×48,步長為1的卷積核對上一層管道圖像做卷積運算;第6層是ReLU層relu2,進(jìn)行激活;第7層是歸一化層norm2,采用窗體大小為5,α=1.0000×10-4,β=0.7500,k=1進(jìn)行歸一化;第8層是匯聚層pool2,匯聚層窗口大小為3,步長為2,對上一層的特征進(jìn)行匯聚;第9層是卷積層conv3,使用的是384個大小為3×3×256,步長為1的卷積核對第8層的管道圖像做卷積運算;第10層是激活層relu3;第11層是conv4,使用384個大小為3×3×192,步長為1的卷積核對上一層圖像進(jìn)行卷積運算;第12層是激活層relu4;第13層是conv5,使用256個大小為3×3×192,步長為1的卷積核對上一層圖像進(jìn)行卷積運算;第14層是激活層relu5;第15層是匯聚層pool5,窗口大小為3,步長為2,對上一層的特征進(jìn)行匯聚;第16層是全連接層fc6,4096個全連接層;第17層是激活層relu6;第18層是fc7,共4096個全連接層;第19層是激活層relu7;第20層是fc8,共3個全連接層;第21層是prob,使用Softmax進(jìn)行回歸;第22層是輸出層,即輸出圖像的分類。整個網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4中只簡單的列舉了整個網(wǎng)絡(luò)中的卷積層和全連接層,中間的ReLU層、歸一化層、匯聚層都省略了。一個典型管道圖像經(jīng)過第一次卷積過后的特征圖如圖5所示。
圖4 深度卷積神經(jīng)網(wǎng)絡(luò)機構(gòu)圖
圖5 深度卷積神經(jīng)網(wǎng)絡(luò)部分管道第一次卷積特征圖
得到了具有缺陷的圖像后,就可以對缺陷進(jìn)行分類和標(biāo)記。Fast-RCNN是由Ross Girshick在2015年繼RCNN之后提出來的[18-19]。Fast-RCNN是在RCNN基礎(chǔ)上提出來的,F(xiàn)ast-RCNN改進(jìn)的方法,從輸入網(wǎng)絡(luò)的圖像上提取候選區(qū)域,并且不需要重復(fù)計算這些候選區(qū)域的前幾層的特征,并且用統(tǒng)一的網(wǎng)絡(luò)實現(xiàn)位置調(diào)整,不再使用額外的存儲。在本文中用Fast-RCNN對管道缺陷進(jìn)行標(biāo)記。
Fast-RCNN網(wǎng)絡(luò)作為輸入一個完整的圖像和一組對象提議。首先,對輸入的圖像生成一個卷積(conv)特征圖;然后在特征映射中取一個固定長度的特征向量輸入感興趣區(qū)域(RoI)池層;然后將特征向量送到全連接層(fc)。本文簡化了Fast-RCNN,只用到了其中的缺陷標(biāo)記,得到管道圖像的輸出是4個實數(shù),即檢測對象的邊界定位。Fast-RCNN體系結(jié)構(gòu)如圖6所示。
圖6 基于Fast-RCNN的管道缺陷檢測體系結(jié)構(gòu)
Fast-RCNN的算法流程如下:
① 輸入測試的管道圖像;
② 利用Selective Search 算法在圖像中從上到下提取2000個左右的建議窗口;
③ 在CNN中輸入圖片,并提取特征;
④ 把建議窗口映射到CNN的最后一層卷積特征圖上;
⑤ 通過RoI pooling層使每個建議窗口生成固定尺寸的特征圖;
⑥ 用回歸損失訓(xùn)練邊框回歸。
Fast-RCNN的檢測速率雖然非??欤撬蓞^(qū)域建議框的成本卻非常大。原因是Fast-RCNN是在CPU上完成建議框的生成,但利用了GPU。Faster-RCNN在Fast-RCNN基礎(chǔ)上使用了新的區(qū)域建議網(wǎng)絡(luò)(Region Proposal Networks,RPN)的方法。它生成區(qū)域建議框成本很小的原因是它與目標(biāo)檢測網(wǎng)絡(luò)共享卷積層?!皡^(qū)域生成網(wǎng)絡(luò)RPNs +Faster-RCNN”可以簡單認(rèn)為就是Faster-RCNN系統(tǒng)。
Faster-RCNN較Fast-RCNN有兩處改進(jìn)[20-21]:
① 產(chǎn)生建議窗口方法是使用RPN代替原來的選擇搜索;
② 共享目標(biāo)檢測和產(chǎn)生建議窗口的CNN。
在存在人工缺陷的實驗管道中對球形機器人進(jìn)行測試,缺陷類型包括環(huán)形人工焊縫缺陷、人工點裝缺陷,實驗管道如圖7所示。
圖7 實驗管道及人工缺陷設(shè)置分布
球形視頻機器人通過實驗管道得到視頻流,進(jìn)行圖像預(yù)處理,圖8為包括人工點狀缺陷圖像的預(yù)處理結(jié)果。
深度學(xué)習(xí)通常需要大量的訓(xùn)練數(shù)據(jù),針對管道缺陷檢索沒有數(shù)據(jù)庫的問題,建立了一個全新的數(shù)據(jù)庫,
圖8 管道圖像預(yù)處理結(jié)果
里面大部分的管道圖片都是在模擬管道內(nèi)部拍攝的,根據(jù)不同的角度、不同的光源、不同的亮暗程度得到管道焊縫和缺陷兩類圖片,另一小部分圖片是對拍攝的圖片進(jìn)行旋轉(zhuǎn)、加噪和模糊處理得到。管道圖片分為焊縫、缺陷和正常的管道圖像三大類,其中缺陷細(xì)分為腐蝕、裂縫、破損、變形等,管道圖片數(shù)據(jù)庫一共有20000個樣本。
表1 訓(xùn)練和測試樣本合計分布 單位:個
采用深度卷積神經(jīng)網(wǎng)絡(luò)CNN訓(xùn)練后,檢測準(zhǔn)確率可達(dá)87.7%。
為對缺陷進(jìn)行分類,選取了8000張管道缺陷圖片,其中7000張人工標(biāo)記后用來訓(xùn)練,對每一張管道缺陷圖片人工進(jìn)行標(biāo)注,1000張用來測試,實驗結(jié)果如表2所示。
表2 兩種檢測方法結(jié)果對比
可以看到,F(xiàn)ast-RCNN和Faster-RCNN都能夠?qū)崿F(xiàn)缺陷有效分類,F(xiàn)aster-RCNN速度更快。
本文設(shè)計了管道內(nèi)缺陷檢測球形視頻機器人,設(shè)計了視頻流的提取、圖像預(yù)處理、圖像分類模型以及管道缺陷標(biāo)記軟件,能夠?qū)崿F(xiàn)管道內(nèi)部缺陷的全自動檢測。在標(biāo)記有人工缺陷的模擬管道中測試表明,本系統(tǒng)具有良好的通過性,并能有效和分類檢測管道內(nèi)缺陷。