崔坤坤,樊紹勝
(1.長沙理工大學 電氣與信息工程學院,長沙 410114; 2.電力機器人湖南省重點實驗室,長沙 410114)
變電站是電力系統(tǒng)中電能傳輸與電壓變換的核心樞紐,其設(shè)備的巡檢質(zhì)量對電力系統(tǒng)安全運行至關(guān)重要[1]。傳統(tǒng)人工巡檢存在勞動強度大、巡檢質(zhì)量低以及異常故障處理慢等問題,經(jīng)常會出現(xiàn)錯檢和漏檢等情況,難以滿足電力系統(tǒng)安全高效的運行需求。隨著智能機器人技術(shù)的快速發(fā)展,采用巡檢機器人代替人工巡檢完成其難以實現(xiàn)的任務(wù),對提高變電站的巡檢質(zhì)量和效率具有重大意義[2]。
智能導航技術(shù)是變電站巡檢機器人實現(xiàn)自主行走的關(guān)鍵,其準確性直接影響機器人的巡檢質(zhì)量。目前,移動機器人應(yīng)用的導航技術(shù)主要包括激光導航、慣性導航、GPS導航、地磁導航和視覺導航等[3]。其中:激光導航極易受環(huán)境影響,對于變電站等室外環(huán)境,其探測范圍有限且成本較高[4-5];慣性導航由于自身存在累計誤差,因此會造成導航定位出現(xiàn)偏差[6];GPS導航應(yīng)用于變電站時,其接收信號的準確程度會受到大量電磁干擾的影響[7-8];地磁導航的定位精度較低,且后期改造和維護較困難[9];視覺導航與其他導航方式相比,具有成本低、獲取信息豐富以及路徑布局柔性大等優(yōu)點[10]。
在特征識別方面,傳統(tǒng)的目標檢測算法多數(shù)采用圖像處理和機器學習算法相結(jié)合,主要對圖像的梯度、紋理、形狀和小波[11]等人工設(shè)計特征進行提取,然后將其送入支持向量機(Support Vector Machine,SVM)[12]和貝葉斯分類器[13]中分類學習,從而實現(xiàn)對目標特征的檢測。然而人工設(shè)計特征需要大量先驗知識,特征表達能力弱且提取過程復雜,不適用于背景復雜多變的路徑圖像特征識別。
近年來,隨著深度學習技術(shù)的快速發(fā)展,特征提取和特征量匹配逐步簡化。當前基于深度學習的目標檢測算法主要包括以R-CNN系列[14-16]為代表的有區(qū)域建議算法和以YOLO[17]、SSD[18]為代表的無區(qū)域建議算法。Faster R-CNN是R-CNN系列中性能最好的算法,其采用區(qū)域建議網(wǎng)絡(luò)(Region Proposal Networks,RPN)代替?zhèn)鹘y(tǒng)選擇性搜索(Selective Search,SS)以完成目標候選區(qū)域的提取,實現(xiàn)了端到端的訓練與檢測,在保證檢測精度的同時檢測速度也得到很大提升。YOLO、SSD等無區(qū)域建議算法省去了候選區(qū)域提取過程,雖然其計算速度較快,但是檢測精度低于Faster R-CNN等有區(qū)域建議算法。
為提升變電站巡檢機器人的導航精度和巡檢工位點特征識別魯棒性,本文將巡檢機器人導航相機采集的圖像分為導航窗口圖像和特征識別窗口圖像,采用基于色調(diào)、飽和度和亮度(Hue,Saturation and Value,HSV)顏色空間的灰度圖重構(gòu)方法以及分區(qū)自適應(yīng)閾值分割方法提取導航窗口圖像的導航路徑,同時對Faster R-CNN算法中RPN網(wǎng)絡(luò)區(qū)域候選框進行改進,搜索特征識別窗口圖像的分支路徑和巡檢點以提高路徑特征識別精度,并通過實驗驗證本文所提方法的工程實用性。
巡檢機器人導航相機通常采取傾斜安裝的方式,以便在較大視野下預判巡檢機器人的走向。但是在實際視覺引導過程中,由于受到地面障礙物的影響,導航圖像選用相機全視野范圍會帶來較大誤差,因此其采取導航窗口與特征識別窗口分離式設(shè)計,導航窗口采用動態(tài)設(shè)置,而特征識別窗口以導航相機全視野作為其視野范圍,從而提高巡檢機器人的導航精度和特征識別魯棒性。
導航相機視野范圍如圖1所示,其中:AB為相機的視野平面,記為L;BF為導航窗口的最大高度,記為l;DE為垂直于相機光軸OC的無傾斜畸變平面;θ為相機安裝傾斜角;α為相機視角的1/2,h為相機安裝高度。
圖1 導航相機視野范圍
導航窗口橫向約束即最大高度l的表達式為:
(1)
由于巡檢機器人在行走過程中可能受到外界干擾,導致其采集的某幀圖像完全錯誤,因此本文采取歸一化互相關(guān)匹配算法來避免該干擾,并形成導航窗口的縱向約束。導航圖像底部區(qū)域受到外界光線干擾最小,在正常光照條件下截取包含導航路徑的部分圖像作為模板圖像T,同時在導航相機采集到的圖像底部截取與模板圖像等高區(qū)域圖像S作為待匹配圖像。計算模板圖像與待匹配區(qū)域圖像的相關(guān)系數(shù)μ(i,j)為:
(2)
其中,模板圖像T的大小為m×n,Si,j為待匹配圖像S與模板圖像T對應(yīng)的子圖像,(i,j)為子圖像左上角像素在待匹配區(qū)域圖像S中的坐標。
利用歸一化互相關(guān)匹配算法在待匹配圖像中找到μ的最大值,判斷其是否大于設(shè)定的閾值μ0:如果μ>μ0,則表示匹配成功,在匹配位置左、右兩側(cè)寬度為d的區(qū)域形成縱向約束;如果μ<μ0,則表示匹配失敗,需丟棄當前幀圖像,再次采集圖像進行判斷。在導航相機視野范圍內(nèi),通過對導航窗口的橫向約束和縱向約束,最終動態(tài)確定導航窗口范圍。導航窗口和特征識別窗口布局如圖2所示。
圖2 導航窗口與特征識別窗口布局
在機器人巡檢過程中,由于不同地點的光照條件會不斷變化,且存在地面反光、強光照、暗陰影等各種復雜光照干擾,因此為提高視覺導引的穩(wěn)定性,需要對各種復雜光照條件進行處理。圖3為直線型和曲線型導航路徑。巡檢機器人通過導航相機的前置鏡頭實時獲取地面導航路徑信息,將導航窗口范圍內(nèi)的紅綠藍(Red,Green and Blue,RGB)圖像轉(zhuǎn)換為HSV圖像,并調(diào)節(jié)R、G、B3個分量的配比系數(shù)進行灰度圖重構(gòu),以減小強光照、陰影和積水等復雜環(huán)境的影響。對重構(gòu)后的灰度圖采用雙邊濾波算法[19]濾除路面干擾特征,同時使用分區(qū)自適應(yīng)閾值分割算法提取導航路徑,并將其簡化為直線模型,對導航路徑中心點進行直線擬合,進而計算出巡檢機器人相對導航路徑的距離偏差。
圖3 直線型和曲線型導航路徑
導航相機采集的圖像通常采用RGB顏色空間表示,但是由于RGB顏色空間中兩點的歐式距離與顏色距離不為線性關(guān)系,顏色受亮度影響很大,且RGB圖像中三基色相互影響,不具備顏色空間的獨立性,因此RGB顏色空間不適用于變電站等光照隨時變化的室外環(huán)境圖像處理。為避免上述問題,并減少光照、陰影等自然因素對導航路徑分割的影響,本文采用HSV顏色空間[20]。
圖4為HSV顏色空間分量圖像以及經(jīng)過灰度重構(gòu)和濾波處理的圖像。其中,圖4(a)為導航相機采集的強光照下有陰影的導航路徑原始圖像。從RGB顏色空間轉(zhuǎn)為HSV顏色空間的色調(diào)分量(H)、飽和度分量(S)、亮度分量(V)3分量圖像分別如圖4(b)~圖4(d)所示??梢钥闯?黃色導航路徑在色調(diào)分量和亮度分量中分別呈現(xiàn)出黑色與白色,同時飽和度分量對光照強度不敏感(彩色效果參見《計算機工程》官網(wǎng)電子版)。
圖4 HSV顏色空間分量圖像以及經(jīng)過灰度重構(gòu)和濾波處理的圖像
(3)
(4)
得出系數(shù)矩陣后,對與亮度分量和飽和度分量融合后的灰度圖點乘做進一步灰度重構(gòu),以最大程度地凸顯導航路徑部分,重構(gòu)過程如式(5)所示:
f(x,y)=(2×S(x,y)+V(x,y))×H′(x,y)
(5)
為避免路面干擾特征的影響,本文采用雙邊濾波算法處理重構(gòu)后的導航圖像,從而在實現(xiàn)對圖像去噪的同時,能較好保留路徑邊緣等細節(jié)信息?;叶戎貥?gòu)和濾波處理后的圖像分別如圖4(e)和圖4(f)所示。
為了從背景圖像中分割出導引路徑,需要對灰度圖像進行二值化處理。本文采用分區(qū)自適應(yīng)閾值分割算法分割圖像,并基于引導線寬度先驗知識對分割結(jié)果進行濾波處理,具體步驟如下:
1)將導航窗口灰度圖f(x,y)沿縱向均分為3個子區(qū)域Z[i],并計算各子區(qū)域的平均灰度值Tavg[i]。
2)運用Ostu算法計算每個子區(qū)域最佳分割閾值Tostu[i],并將Tostu[i]與平均灰度值Tavg[i]進行融合得出各子區(qū)域的分割閾值Ti,計算公式為:
(6)
其中,n為權(quán)重系數(shù),i為分區(qū)編號。當n≥2時,導引路徑分割效果基本一致。
3)對各子區(qū)域Z[i]進行二值化處理,得到導航窗口的二值圖像表達式為:
(7)
4)逐行掃描二值圖像得到連續(xù)白色像素點長度L。由先驗知識可知,導引路徑在圖像上具有一定的寬度范圍[lmin,lmax],若L在該范圍內(nèi),則保留該段連續(xù)像素點,否則將其灰度值設(shè)置為0。
圖5(a)為導航相機采集到的在強光照下有陰影的導航路徑原始圖像,圖5(b)為路徑圖像做灰度重構(gòu)并通過分區(qū)自適應(yīng)閾值分割與濾波處理的圖像,可見使用分區(qū)自適應(yīng)閾值算法能完整地提取出導航路徑。
圖5 采用分區(qū)自適應(yīng)閾值分割算法處理前后的對比
對二值圖像G(x,y)進行逐行掃描,記錄連續(xù)白色像素起始點和終止點的橫坐標:如果當前點值為1,前點值為0,則設(shè)置當前點為起始點,并將該點橫坐標值記為Sx,n;如果當前點值為0,前點值為1,則設(shè)置當前點為終止點,并將該點橫坐標值記為Ex,n,n為當前最大掃描行數(shù)。連續(xù)像素中點坐標(xi,yi)的計算公式為:
xi=(Ex,n+Sx,n)/2
(8)
yi=n
(9)
在實際導航路徑中存在直線型和曲線型2種導航路徑。由于導航窗口設(shè)置的視野范圍較小,因此曲線型路徑可近似視為直線型。本文將導航路徑簡化為直線模型,采用最小二乘法對提取到的路徑中點進行擬合,計算巡檢機器人相對導航路徑的距離偏差為:
(10)
在實際應(yīng)用中,導航路徑需要根據(jù)變電站內(nèi)的設(shè)備分布進行合理規(guī)劃。本文針對左-前、右-前、左-右、左-中-右4種多分支圓弧轉(zhuǎn)彎路徑以及巡檢工位點十字標識進行研究,采用Faster R-CNN算法對特征識別窗口中的路徑特征進行檢測與定位。機器人在檢測到多分支路徑時,將根據(jù)巡檢任務(wù)選擇1條分支路徑進行精確導航;機器人在檢測到巡檢工位點十字標識時,會停止移動并開展巡檢任務(wù)。
Faster R-CNN算法包含特征提取卷積神經(jīng)網(wǎng)絡(luò)、區(qū)域建議RPN網(wǎng)絡(luò)以及基于區(qū)域卷積的R-CNN網(wǎng)絡(luò)3個深度神經(jīng)網(wǎng)絡(luò)。用于特征提取的卷積神經(jīng)網(wǎng)絡(luò)可根據(jù)需要選用不同網(wǎng)絡(luò)結(jié)構(gòu);區(qū)域建議RPN網(wǎng)絡(luò)用來輸出目標可能的位置;基于區(qū)域卷積的R-CNN網(wǎng)絡(luò)用來輸出調(diào)整后的目標精確位置,并對目標進行分類。
基于區(qū)域建議的目標檢測Faster R-CNN模型結(jié)構(gòu)如圖6所示。對于任意大小為P×Q的圖像,首先按比例縮放至M×N,然后采用1個包含卷積(Conv)層、ReLU激活函數(shù)層以及ROI池化(Pooling)層的CNN卷積神經(jīng)網(wǎng)絡(luò)提取特征圖。若基礎(chǔ)卷積神經(jīng)網(wǎng)絡(luò)模型層數(shù)越多,則特征提取精度越高,但運行速度也越慢。當網(wǎng)絡(luò)模型層數(shù)達到一定數(shù)量時,會出現(xiàn)梯度彌散或者消失的情況,造成網(wǎng)絡(luò)難以訓練,并導致提取特征的語義屬性減弱,對類別判斷能力變差。因此,綜合考慮運行速度和特征提取精度,本文選用VGG-16模型,其含有13個Conv層、13個ReLU激活函數(shù)層以及4個Pooling層。Conv層卷積核大小為3×3,邊緣擴充1個像素,卷積步長為1,從而保證圖像在經(jīng)過卷積后大小保持不變。Pooling 層對每個不重疊的2×2區(qū)域進行降采樣,每經(jīng)過1次池化操作,特征圖的長度和寬度都減少原來的1/2,降低了卷積層輸出的特征向量維度。ReLU激活函數(shù)層可避免梯度消失、增加網(wǎng)絡(luò)稀疏性并減少過擬合,從而提高特征檢測速度。大小為M×N的圖片經(jīng)過VGG-16模型處理后大小變?yōu)?M/16)×(N/16),生成的特征圖中的每個像素點對應(yīng)原圖中1個大小為16×16的區(qū)域。
圖6 Faster R-CNN模型結(jié)構(gòu)
Faster R-CNN算法采用RPN網(wǎng)絡(luò)進行候選區(qū)域提取。由CNN模型提取的路徑特征圖輸入RPN后,將該特征圖中每個像素點定義為1個錨點,然后對每個錨點在原圖對應(yīng)位置的候選框進行檢測,進而判斷其中是否包含1種物體。Faster R-CNN算法預設(shè)9種類型的候選框,分別對應(yīng)128、256、512這3種尺寸和1∶1、1∶2、2∶1這3種長寬比。由于導航相機在巡檢機器人上的安裝位置和路徑線寬固定,因此路徑特征在導航圖像中呈現(xiàn)出扁平狀。本文從候選框的長寬比出發(fā),總結(jié)導航圖像中路徑特征長寬比的特點,并替換了1組長寬比,此時候選框?qū)?yīng)的尺度為128、256、512,長寬比為1∶1、1∶2、2∶3。
RPN的計算過程如圖7所示,其中每個錨點對應(yīng)的候選框個數(shù)k=9。對輸入的特征圖譜進行3×3卷積操作,將每個錨點轉(zhuǎn)換為1個具有統(tǒng)一維度的特征向量,分別傳入到分類層和回歸層。在分類層,檢測該區(qū)域是否包含路徑特征,2個輸出節(jié)點分別表示屬于前景和背景的概率。在回歸層,修正候選框的位置,并分別輸出候選區(qū)域中心點的坐標(x,y)和候選區(qū)域的寬w、高h。
圖7 RPN的計算過程
ROI池化層用來接收RPN所輸出包含物體的候選區(qū)域數(shù)據(jù),并采用空間金字塔池化(Spatial Pyramid Pooling,SPP)算法[21]在保證特征信息的基礎(chǔ)上歸一化輸入向量的維數(shù)。本文使用1×1、2×2和4×4這3種空間變換因子對特征圖進行池化,將任意尺寸的目標候選域轉(zhuǎn)換為21維特征向量,并傳入到全連接網(wǎng)絡(luò)進行分類和框回歸。
巡檢機器人在移動采集導航圖像時極易受到外界環(huán)境中光照、地面雜物以及引導線破損等因素干擾,這極大提高了路徑特征識別難度。本文在采集5類路徑特征圖片建立數(shù)據(jù)集時,對污損路徑進行人工處理,且針對每種路徑特征在不同光照和陰影條件下采集7 200幅圖像,并將圖像旋轉(zhuǎn)180°進行數(shù)據(jù)增強。
圖像樣本經(jīng)標注處理形成PASCAL VOC數(shù)據(jù)集格式,數(shù)據(jù)集中圖像樣本共14 400幅,其中訓練集圖像和測試集圖像分別為10 080幅和4 320幅。在訓練過程中再將隨機選出的訓練集分為n等份,其中n-1份為訓練集,另外1份為驗證集,每隔n輪訓練就計算1次驗證集平均誤差作為模型誤差,最后采用測試集評估模型的泛化能力。
本文Faster R-CNN模型訓練是在完成VGG-16模型訓練的基礎(chǔ)上繼續(xù)進行的訓練。采用近似聯(lián)合訓練的方法,直接將Faster R-CNN算法輸入和輸出部分之間的3個神經(jīng)網(wǎng)絡(luò)看作1個神經(jīng)網(wǎng)絡(luò)進行訓練,從而實現(xiàn)網(wǎng)絡(luò)之間的特征共享以及端到端訓練。該方法雖然忽略了網(wǎng)絡(luò)響應(yīng)的導數(shù),但是并不會造成特征提取精度損失。
訓練采用Ubuntu16.04系統(tǒng)、Tensor-flow1.10與Python3.6環(huán)境、TITAN X顯卡和12 GB顯存。所有訓練集均迭代訓練8萬次,在每個訓練批次中采用Dropout方式隨機忽略一定比例的隱含層節(jié)點,以減少神經(jīng)元之間的相互依賴,進而抑制網(wǎng)絡(luò)過擬合,縮短網(wǎng)絡(luò)訓練時間。采用衰減學習率的方法將前4萬次和后4萬次的學習率分別設(shè)置為0.001和0.000 1。將平均準確率(Average Precision,AP)作為評價指標,AP值為P-R曲線圍成的面積,其中P為準確率,R為召回率,其計算公式為:
(11)
(12)
其中,TP為被正確分類為正例的樣本數(shù),FP為被錯誤劃分為正例的樣本數(shù),FN為被錯誤劃分為負例的樣本數(shù)。
為驗證本文所提方法的可行性,研制并使用一款基于視覺導引的變電站巡檢機器人,如圖8所示。巡檢機器人通過前置傾斜安裝的導航相機采集路徑導航信息,上位機采用TMS320 DM642 DSP處理器完成導航路徑偏差計算與路徑特征識別,下位機采用STM32F407處理器根據(jù)路徑偏差對巡檢機器人進行運動控制。此外,將實驗場地設(shè)置在室外,采用黃色樹脂涂料鋪設(shè)視覺導引線,分別設(shè)置左-中、右-中、左-中-右、左-右4種圓弧分支路徑以及巡檢工位點十字標識,圓弧路徑半徑為550 mm。為模擬變電站實際環(huán)境,使用灰塵等覆蓋物對部分導航路徑和特征標識進行遮蓋處理,并使部分路徑處于積水或者陰影覆蓋狀態(tài)。
圖8 變電站巡檢機器人
分別在強光照和弱光照2種自然光照條件下在上述實驗場地對巡檢機器人進行現(xiàn)場測試,并采用方向梯度直方圖(Histogram of Oriented Gradients,HOG)特征描述子結(jié)合支持向量機的傳統(tǒng)目標檢測方法與本文檢測方法進行實驗對比。巡檢機器人以0.7 m/s的速度循環(huán)通過并在線識別5種路徑特征,且分別對每類路徑特征識別100次,記錄巡檢機器人在視覺導航過程中相對導引線的位置偏移量與特征識別結(jié)果。
圖9和圖10分別為巡檢機器人在強光照和弱光照條件下,在同一直線和彎道路徑上進行導航跟蹤的距離偏差曲線。導航相機共采集600幀圖像,采樣頻率為10 frame/s??梢钥闯?在2種自然光照條件下,巡檢機器人在直線路徑上的偏差保持在5 mm以內(nèi),在彎道路徑上的偏差保持在25 mm以內(nèi),滿足導航精度要求。巡檢機器人在彎道路徑上偏差較大,這是因為當巡檢機器人由直線路徑切換到彎道路徑時,動態(tài)導航窗口已經(jīng)切換到轉(zhuǎn)彎路徑并計算其偏差量,但巡檢機器人仍在直線路徑上,相當于輸入了1個路徑偏差階躍信號。巡檢機器人下位機跟蹤控制器將根據(jù)路徑偏差值實時調(diào)整機器人左、右輪的速度,直到從轉(zhuǎn)彎路徑回到直線路徑上,整個過程中巡檢機器人始終保持對導航路徑的精確跟蹤。
圖9 巡檢機器人在強光照下的跟蹤偏差曲線
圖10 巡檢機器人在弱光照下的跟蹤偏差曲線
表1和表2分別為強光照和弱光照下采用傳統(tǒng)HOG+SVM目標檢測方法(以下稱為傳統(tǒng)方法)和本文優(yōu)化后的Faster R-CNN方法(以下稱為本文方法)對5類路徑特征進行在線識別的結(jié)果。可以看出:在強光照下,本文方法的平均識別準確率為98.8%,比傳統(tǒng)方法更高;在弱光照下,本文方法的平均識別準確率為98.4%,與強光照下相比基本未發(fā)生變化,但是傳統(tǒng)方法的平均識別準確率卻由強光下的91.8%降低到85.4%,下降幅度較大。本文方法在2種不同光照下的平均識別準確率為98.6%,對光照條件在一定程度上具有不變性,可滿足復雜多變場景下進行目標檢測的需求。
表1 強光照下5類路徑特征在線識別結(jié)果
表2 弱光照下5類路徑特征在線識別結(jié)果
巡檢機器人在不同光照條件下采用本文方法對5類路徑特征都具有較好的識別效果,但在識別左-前和右-前路徑特征時,出現(xiàn)較大誤判,將其識別為相反方向的路徑特征。這是因為左-前和右-前路徑特征均由1條直線路徑及其旁邊1條曲線路徑構(gòu)成,由于導航相機采集的圖像視野范圍較小,因此直線與曲線連接處的圓弧路徑外觀上接近直線路徑,當巡檢機器人和導航路徑存在較大位姿偏差時,直線路徑特征在導航相機視野中發(fā)生旋轉(zhuǎn),使得機器人將圓弧路徑誤判為當前所在的直線路徑,從而造成路徑特征分類錯誤。然而這種分類錯誤不會導致巡檢機器人跟蹤錯誤,例如當巡檢機器人收到右跟蹤指令時,無論其將多分支路徑誤判為左-前路徑還是右-前路徑,巡檢機器人始終跟蹤路徑特征中的右側(cè)分支。采用本文方法對不同場景下巡檢工位點路徑特征的識別結(jié)果如圖11所示??梢钥闯?在常規(guī)場景下,本文方法對巡檢工位點路徑特征的識別精度達到93%,在覆蓋、陰影、積水場景下,本文方法的識別精度達到98%以上,可對路徑特征進行精準識別,具有較好的魯棒性。
圖11 本文方法在不同場景下對巡檢工位點路徑特征的識別結(jié)果
本文提出一種基于動態(tài)雙窗口導航的改進Faster R-CNN特征識別方法。將采集到的導航圖像動態(tài)劃分為導航窗口圖像和特征識別窗口圖像,分別采用分區(qū)自適應(yīng)閾值分割算法和改進Faster R-CNN算法對上述圖像進行處理,以提高路徑特征識別精度。實驗結(jié)果表明,與傳統(tǒng)HOG+SVM目標檢測方法相比,該方法有效提高了巡檢機器人導航精度和路徑特征識別魯棒性。后續(xù)將提高巡檢機器人的視覺避障性能,以滿足導航路徑存在障礙物時的實際應(yīng)用需求。