張 靜 燕正亮 張 增 王利偉 閆皓煒
(天津航天中為數(shù)據(jù)系統(tǒng)科技有限公司 天津 300450)
我國的輸電線路分布范圍廣,走廊地理環(huán)境復(fù)雜,給線路的日常人工巡檢帶來了極大的困難。無人機巡檢以其可遠程操控、無接觸式設(shè)備成像、無需停電作業(yè)等優(yōu)點成了目前的主流巡檢作業(yè)方式之一。在巡檢作業(yè)時,無人機需要沿兩基桿塔走廊中的導(dǎo)線進行飛行,導(dǎo)線是有弧垂的,作業(yè)人員需要頻繁調(diào)整吊艙及無人機使得導(dǎo)線保持在視野中央,容易產(chǎn)生視覺疲勞,影響作業(yè)的準(zhǔn)確性及作業(yè)效率。導(dǎo)線跟蹤技術(shù)能夠基于無人機巡檢實時視頻影像對導(dǎo)線進行快速提取和跟蹤,反饋導(dǎo)線的中心點位置,指導(dǎo)吊艙進行姿態(tài)的自動調(diào)整,使得導(dǎo)線保持在視野中央,減少人工工作量,提高作業(yè)的準(zhǔn)確率及效率。導(dǎo)線一般呈現(xiàn)為貫穿圖像的直線及曲線簇,通常以矩形框作為描述的目標(biāo)跟蹤技術(shù)難以應(yīng)用于導(dǎo)線的自動跟蹤。同時,為克服鏈路傳輸時延的影響,導(dǎo)線跟蹤需要運行在機載嵌入式平臺上,保證算法的準(zhǔn)確性及高效性。在導(dǎo)線提取方面,Ratio、Canny等邊緣檢測算子,Radon變換、Hough變換等線段提取方式為最常用的方法。文獻[1]首先采用Ratio算子從遙感影像上提取電力線像素點,然后采用分段Radon變換提取并連接各分段電力線,再利用類似卡爾曼濾波技術(shù)跟蹤連接電力線的斷裂部分。文獻[2]使用抗噪聲的梯度圖像與最大類間方差算法對輸電線路像素點進行提??;然后在Hough空間用K-means算法對所檢測到的直線段進行篩選;最后根據(jù)上一幀視頻圖像所檢測到的直線段信息使用 Kalman濾波器進行跟蹤檢測。該類方法的普遍問題是,在背景單一的場景中效果較好,而在線狀邊緣非常豐富的場景中效果較差。近年來,深度卷積神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測、語義分割等各機器視覺領(lǐng)域均有突出的表現(xiàn)。文獻[3]也將該技術(shù)應(yīng)用于了導(dǎo)線的檢測中,其中基于語義分割的輸電導(dǎo)線檢測的模型,像素準(zhǔn)確率達到0.72,基于RRPN的輸電導(dǎo)線檢測模型,檢測框的面積交并比達到0.76。但該文獻采用的HED網(wǎng)絡(luò)、RRPN網(wǎng)絡(luò)均以VGG16網(wǎng)絡(luò)作為基礎(chǔ),計算量大,無法用于無人機機載端。
本文基于MobileNetv2[4]網(wǎng)絡(luò)進行輸電線路的導(dǎo)線邊緣檢測,同時參考DeepLab[5]引入ASPP模塊融合不同尺度的上下文信息,通過多語義水平特征聯(lián)合的解碼網(wǎng)絡(luò)對每個像素點屬于導(dǎo)線邊緣的概率進行預(yù)測,得到導(dǎo)線邊緣檢測的結(jié)果。然后根據(jù)導(dǎo)線的語義知識通過線段擬合、連接篩選等步驟完成導(dǎo)線的判定,解算出導(dǎo)線中心點。實驗表明本文的算法具有較高的跟蹤準(zhǔn)確率,且在機載嵌入式平臺上運行速度較快,可有效應(yīng)用于無人機巡檢的導(dǎo)線自動跟蹤,輔助吊艙姿態(tài)調(diào)整。
本文以MobileNetv2作為基礎(chǔ)網(wǎng)絡(luò),同時采用ASPP模塊融合不同尺度的上下文信息,通過多語義水平特征聯(lián)合的解碼網(wǎng)絡(luò)對每個像素點屬于導(dǎo)線邊緣的概率進行預(yù)測,在loss函數(shù)引入均衡設(shè)計,解決大量非導(dǎo)線像素與較少導(dǎo)線像素點帶來的樣本極不均衡問題。
MobileNet為谷歌開發(fā)的輕量級深度卷積神經(jīng)網(wǎng)絡(luò),專注于嵌入式移動設(shè)備。其中深度可分離卷積極大地減少了計算量,保證了本文算法的高效性。MobileNetv2在MobileNet的基礎(chǔ)上增加了Inverted Residuals和Linear Bottlenecks。本文在原始MobileNetv2的基礎(chǔ)上進一步減少通道數(shù)為1/4,以便在嵌入式機載平臺上具有更高的運行效率。本文的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)全景圖如圖1(a)所示,其中t為擴張倍數(shù),c為輸出通道數(shù),s為stride。bottleneck為網(wǎng)絡(luò)的最基本單元,如圖1(b)所示,bottleneck首先采用1×1卷積擴張通道數(shù),擴張為輸入通道的t倍,然后進行通道可分離卷積,最后采用逐點卷積將通道數(shù)還原。且當(dāng)stride為1時,使用shortcut連接方式,即將輸入疊加到輸出。
圖1 基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)圖
其中,最后四個bottleneck的可分離卷積采用空洞卷積,dilation rate為2,以便增大感受野,提升導(dǎo)線邊緣檢測的準(zhǔn)確率。本文分別從第6個、第13和最后一個bottleneck輸出特征圖feature1、feature2、feature3。
本文的ASPP操作如圖2所示,以feature3作為輸入(input),分別采用rate為6、12、24的空洞卷積對input進行卷積操作,同時對input進行全局平均池化(Ave Pool)并上采樣到相同尺寸,將此四路輸出進行聯(lián)合后經(jīng)過1×1卷積操作降低通道數(shù),作為ASPP模塊的輸出ASPP_output。
圖2 ASPP 結(jié)構(gòu)
本文的輸出采用簡單的卷積解碼網(wǎng)絡(luò)。對feature1和feature2分別進行一次卷積操作,并重采樣到相同大小,同時將ASPP_output進行上采樣到相同輸出尺寸。最后將三路聯(lián)合后經(jīng)過三次卷積操作,得到單通輸出,并進行如式(1)所示的sigmoid激活,將輸出進行歸一化,得到每個像素屬于導(dǎo)線的概率。
(1)
在巡檢圖像中,導(dǎo)線像素總和遠遠小于非導(dǎo)線像素,為解決不平衡問題,引入類平衡權(quán)重,損失函數(shù)Loss如下:
(2)
式中:Y-和Y+分別表示非導(dǎo)線邊緣和導(dǎo)線邊緣,α和β是導(dǎo)線邊緣與非導(dǎo)線邊緣的平衡系數(shù)。
α=λ·|Y+|/(|Y+|+|Y-|)
(3)
β=λ·|Y-|/(|Y+|+|Y-|)
(4)
(5)
(6)
對滿足近似性、連續(xù)性、共線性的兩條線段進行連接。兩線段之間的近似性描述如圖3所示,線段1的長度為L1,線段2的長度為L2,線段1與線段2之間的距離為L,如滿足式(7),則認(rèn)為兩線段符合近似性。
圖3 近似性描述
L≤2×min(L1,L2)
(7)
若兩條線段的角度如滿足式(7),則認(rèn)為兩線段符合連續(xù)性。
|θ1-θ2|≤θthreshold
(8)
共線性是指兩線段是否共同屬于一個線段。采用一條線段端點到另一線段的垂直距離來描述,即圖4中的dist,若滿足式(9)則認(rèn)為兩線段共線,其中l(wèi)ine1_width、line2_width為兩線段的寬度,k為常數(shù)。
圖4 共線性描述
dist≤k·max(line1_width,line2_width)
(9)
選取角度在(-π/4,π/4)的線段構(gòu)成線段集M1;對M1按照角度進行聚類,得到NA個線段類{M1,1,M1,2,…,M1,NA};對M1,i中的線段按照距離進行聚類,得到ND個線段類{M1,i,1,M1,i,2,…,M1,i,ND};在M1,i,j中求取最長的線段,若最長的線段大于閾值LT,則認(rèn)為類M1,i,j中的線段屬于導(dǎo)線。
為了提升機載端導(dǎo)線跟蹤的處理速度,而導(dǎo)線的中心點提取關(guān)注圖像中心,因此本文在處理時,采用如圖5所示的區(qū)域截取方式,保持高度方向與原圖像一致,寬度方向在中心點附近截取原始圖像區(qū)域的3/5,其中原始圖像區(qū)域為R0,截取的圖像區(qū)域為R1,對R1中的圖像進行導(dǎo)線邊緣檢測、導(dǎo)線判定、中心點提取等處理。
圖5 導(dǎo)線跟蹤區(qū)域截取
本文對樹林、紅土地、大棚、道路等多種背景的導(dǎo)線視頻段進行跟蹤實驗。當(dāng)邊緣檢測網(wǎng)絡(luò)輸出的概率大于0.8時,認(rèn)為當(dāng)前像素為導(dǎo)線邊緣點。導(dǎo)線邊緣檢測、導(dǎo)線判定、導(dǎo)線中心點提取的結(jié)果如圖6所示。同時,本文進行了Canny邊緣檢測算子與本文邊緣檢測算法的對比實驗,如圖6(d)所示,本文算法提取的邊緣清晰,能夠較準(zhǔn)確地區(qū)分大棚等其他線狀邊緣與導(dǎo)線邊緣,受導(dǎo)線尺度影響較小。Canny算子導(dǎo)線提取邊緣時,導(dǎo)線容易淹沒在線狀背景中,且在導(dǎo)線直徑方向像素數(shù)較少時,無法提取。
圖6 實驗結(jié)果及對比圖
本文對46段無人機及有人機沿線飛行視頻進行了準(zhǔn)確率測試,每一秒對視頻幀的導(dǎo)線中心點的真值進行標(biāo)記作為控制點。算法輸出導(dǎo)線中心點為(centerX,centerY),真值為(groundTruthX,groundTruthY),若abs(centerY-groundTruthY)<20,則認(rèn)為該控制點連續(xù)25幀(視頻幀率為25幀/s),導(dǎo)線跟蹤輸出結(jié)果正確,正確跟蹤的幀數(shù)與視頻總幀數(shù)的比例為導(dǎo)線跟蹤的準(zhǔn)確率。本文對基于Canny算子的導(dǎo)線邊緣檢測方法進行了準(zhǔn)確率對比試驗,結(jié)果如表1所示,其中基于語義知識的導(dǎo)線判定采用相同的處理方法。本文方法的準(zhǔn)確率為78.5%,比基于Canny算子的算法準(zhǔn)確率高13.3百分點。
表1 準(zhǔn)確率對比表(%)
同時在PC端和機載嵌入式端進行了算法處理速度對比實驗,結(jié)果如表2所示。
表2 處理速度對比表
在PC端,單幀導(dǎo)線跟蹤處理時間平均為35 ms,機載嵌入式平臺的處理速度為110 ms,基本滿足無人機巡檢的要求。
本文提出基于MobileNetv2網(wǎng)絡(luò)的導(dǎo)線邊緣預(yù)測方法,結(jié)合基于語義知識的導(dǎo)線判定,實現(xiàn)機載嵌入式平臺上輸電線路的導(dǎo)線自動跟蹤。該方法比傳統(tǒng)基于Canny等邊緣檢測的導(dǎo)線跟蹤方法在準(zhǔn)確率上有較大提升,且在機載端處理速度可以達到9幀/s,滿足無人機巡檢對導(dǎo)線跟蹤的實時性要求。