高旭東 張軍朝 張建 張毅
摘? 要: 針對無人機電力線路巡檢時安全飛行距離把控困難的難題,提出一種基于雙目測距的無人機電力線路巡檢安全距離測量方法,基于線路連續(xù)特征進行雙目圖像行匹配。與傳統(tǒng)雙目匹配算法不同的是,所提方法避免了構(gòu)造卷積窗口對左右圖像進行像素點遍歷,直接根據(jù)極限約束快速找到匹配點來計算視差,大大提高了圖像匹配速度,降低了程序的冗雜度,減少了由于運算數(shù)據(jù)量過大導(dǎo)致的誤差。最后通過雙目測距原理實現(xiàn)無人機巡檢安全距離的測量。測量結(jié)果表明,所提系統(tǒng)能夠在測定距離為15 m時,測距反應(yīng)速度達到50 ms左右,相對誤差小于5%。
關(guān)鍵詞: 無人機應(yīng)用; 電力線巡檢; 距離測量; 機器視覺; 雙目測距; 視差計算; 圖像匹配
中圖分類號: TN98?34; TP391.9? ? ? ? ? ? ? ? ? ? 文獻標識碼: A? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)05?0146?04
Measurement of UAV′s safe flight distance for power line inspection
GAO Xudong1, ZHANG Junchao1, 2, ZHANG Jian2, 3, ZHANG Yi2, 3
(1. College of Electrical and Dynamic Engineering, Taiyuan University of Technology, Taiyuan 030024, China;
2. Research Center of Electrical Transmission and Internet of Things Engineering, Taiyuan 030024, China;
3. Shanxi Taiyuan Tiandi Fangyuan Electronic Technology Co., Ltd., Taiyuan 030024, China)
Abstract: Since it is difficult to measure the safety flight distance during power line inspection with UAV, an UAV′s safe flight distance measuring method based on binocular ranging is proposed for power line inspection, in which the binocular image matching based on continuity feature of the power line is adopted. Unlike the traditional binocular matching algorithms, this method avoid constructing convolution window to traverse the left and right image pixels, but directly and quickly find the matching point according to the limit constraint to calculate parallax, by which the speed of image matching is greatly improved, the complexity of the program is reduced, and the error caused by the large amount of data operation is decreased. Finally, the safe distance measurement of UAV inspection is realized by means of the principle of binocular distance. The measured results show this method′s reaction speed of range finding can reach to about 50 ms and its relative error is less than 5% as the measuring distance 15 m.
Keywords: UAV application; power line inspection; distance measurement; machine vision; binocular ranging; parallax calculation; image matching
0? 引? 言
隨著經(jīng)濟的不斷發(fā)展,社會電力需求量日益增大,電網(wǎng)規(guī)模與復(fù)雜程度急劇上升,巡檢工作量和難度急劇增加,增加了電網(wǎng)事故的發(fā)生率。采用無人機作為電力線路巡檢設(shè)備,大大減少了工作人員的工作量,降低人員受傷的風(fēng)險。
由于無人機在進行巡檢過程中會出現(xiàn)不同程度的機體遠程可控性降低的現(xiàn)象,影響作業(yè)安全。主要原因是:線路輸電過程中的運行電壓對無人機會產(chǎn)生電磁干擾;電場會對無人機產(chǎn)生吸附作用,影響機體的飛行穩(wěn)定性;磁場會擾亂無人機的導(dǎo)航系統(tǒng),使得飛控的精確性下降。故無人機在巡檢過程中相對于輸電線路需要有一定的安全距離,確保機體操控的穩(wěn)定性和精確性[1]。
針對上述原因,本文提出一種基于雙目視覺的無人機巡檢安全距離測量方法[2],以不同畫面線路直線的連續(xù)為基礎(chǔ),根據(jù)極限約束快速找到兩幅畫面的匹配點,計算視差,實現(xiàn)遠距離雙目畫面的快速行匹配,使得圖像匹配更高效,測量結(jié)果更精確。
1? 雙目測距儀的設(shè)計
1.1? 雙目測距原理
如圖1所示,[P]為所要測距的目標,長為[L]的兩線段代表左右相機的像面,[OL]和[OR]是左右兩相機的光心,[PL]和[PR]是目標[P]在左右像面上的成像點,[XL]和[XR]是[PL]和[PR]距各自像面左邊緣的距離,基線[b]是兩相機光心的距離,[f]是兩相機的焦距[3]。
在三角形[OLPOR]中,三角形[PLPPR]相似于三角形[OLPOR],則有以下比例關(guān)系:
[PLPROLOR=Z-fZ] (1)
由幾何關(guān)系可得:
[b-XL-L2+L2-XRb=Z-fZ]? ? (2)
則:
[Z=b*fd] (3)
式中:[d=XR-XL];[f]和[b]可由攝像機標定和立體匹配獲得。
1.2? 雙目測距儀的設(shè)計
由式(3)可知,雙目測距儀所能測量的距離上限受到基線、相機焦距和視差的影響,與基線和焦距成正比,與視差成反比。如果想要設(shè)計一臺測距上限高的雙目測距儀,需要選擇焦距長、分辨率較高的相機,設(shè)置較長的基線,由此提高測距范圍。
基于上述條件,選擇分辨率為4 000×3 000的攝像頭,焦距取25 mm,圖像傳感器像元大小取常見的6 μm×6 μm,由于雙目測距儀搭載于無人機上,故基線的設(shè)定需要考慮到機身承載負荷的問題,考慮定為0.8 m。該系統(tǒng)最大視差為1 000 pixel,最低為10 pixel,由式(3)可以算得,此雙目測距儀的理論測距范圍在3.33~333 m,能夠滿足該方法所需的距離測量。
2? 輸電線路直線提取
2.1? Canny算子邊緣檢測原理
由于高空輸電線路的架設(shè)位置地勢多變,環(huán)境復(fù)雜,所以,巡檢線路目標成像會受到多變背景的噪聲干擾、光照等的影響,對線路目標的提取和定位產(chǎn)生阻礙。Canny算子對圖像的濾波能夠有效削弱噪聲對圖像的影響,最終引入雙閾值濾除大量非關(guān)鍵邊緣并封邊,能夠為后續(xù)的直線檢測提供質(zhì)量較高的邊緣圖像[4]。
Canny算子邊緣檢測的具體步驟如下[5]:
1) 用高斯濾波器平滑圖像
使用如下模板對原圖像[f(x)]進行卷積運算:
[hx,y,σ=12πσ2exp-x2+y22σ2]? (4)
[g(x,y)=hx,y,σ?fx,y]? (5)
通過高斯濾波器對圖像進行卷積遍歷,濾除噪聲,減小由于噪聲點附近梯度值過大對圖像邊緣檢測產(chǎn)生的影響。
2) 用一階偏導(dǎo)的有限差分計算梯度的幅值和方向
圖像中的邊緣部分的像素變化在沿邊緣方向和垂直邊緣方向上分別是平緩和劇烈,由于圖片像素的矩陣化表示,使得上述的變化可以通過微分算子檢測出來[6],進而達到確定邊緣輪廓的目的。
對步驟1)中得到的平滑濾波去噪后的圖像的梯度進行[2×2]一階有限差分近似計算,得到[x]的偏導(dǎo)數(shù)[f′xx,y]和[y]的偏導(dǎo)數(shù)[f′yx,y]:
[f′x(x,y)≈Gx=f(x+1,y)-f(x,y)+f(x+1,y+1)-f(x+1,y)2f′y(x,y)≈Gy=f(x,y+1)-f(x,y)+f(x+1,y+1)-f(x,y+1)2] (6)
進一步地,梯度幅值和方向表示為:
[M(x,y)=Gx(x,y)2+Gy(x,y)2θ(x,y)=arctanGy(x,y)Gx(x,y)]? ? ? ? (7)
式中:[M(x,y)]能體現(xiàn)邊緣的強度;[θ(x,y)]能體現(xiàn)邊緣的方向[7]。
3) 對梯度幅值進行非極大值抑制
在[3×3]抑制運算窗口中,只能得到[C]點鄰域8個頂點上的像素值,需要根據(jù)步驟2)得到的梯度幅值矩陣,確定已知各點梯度方向,通過[g1]和[g2]對[M1]進行插值計算,[g3]和[g4]對[M2]進行插值計算。得到像素極大值點后,將此窗口中非極大值點像素均置0,得到一個由真實目標邊緣和由于大量噪聲造成的假邊緣構(gòu)成的二值化圖像,如圖2所示。
4) 用雙閾值算法檢測和連接邊緣
為了去掉步驟3)所得到二值化圖像中的假邊緣,設(shè)置高閾值進行濾波,得到大致的邊緣輪廓;高閾值邊緣可能會不閉合,設(shè)置另一個較低閾值,在高閾值邊緣的斷點8鄰域內(nèi)進行滿足低閾值的像素點搜尋,低于此閾值的像素點進行置0,高于此閾值的點進行保留,直到高閾值邊緣閉合。
2.2? 基于Hough變換提取圖像線路特征
在采集到的圖像中,輸電線路呈現(xiàn)為多股平行的邊緣直線,通過此算法實現(xiàn)圖像對中的直線檢測。
將直線使用極坐標表示為:
[r=xcos θ+ysin θ] (8)
對于同一個點[(x0,y0)],可以有無數(shù)種[r]和[θ]滿足式(8),也就是說,每一對[(rθ,θ)]都能表示一條過[(x0,y0)]的直線,即過同一點的直線族可由:
[rθ=x0cos θ+y0sin θ] (9)
表示[8]。
由此,將所有滿足過[(x0,y0)]的直線的參數(shù)對[(rθ,θ)]均繪制在[r?θ]平面中,可以得到一條正弦曲線,越多[rθ?θ]正弦曲線交于一點,代表此交點表示的直線由越多點組成。基于這個思路,可以通過設(shè)置直線上點數(shù)量的閾值來判斷是否檢測到一條直線[9]。
在程序語句中進行如下設(shè)定:
lines=houghlines(BW,T,R,P,′FillGap′,18,
′MinLength′,80);
其中, FillGap表示當兩條直線之間距離小于該閾值時,兩條直線被合并為一條直線;MinLength表示保留直線的最短長度(即小于該閾值的直線將被刪除)。
3? 改進的圖像匹配方法
傳統(tǒng)的圖像匹配方法需要構(gòu)造卷積窗口對左右畫面進行像素遍歷,并根據(jù)所設(shè)定的閾值進行圖像匹配,程序運行反應(yīng)慢,并且會出現(xiàn)由于數(shù)據(jù)運算量過大,數(shù)據(jù)溢出導(dǎo)致的測距出錯。本文根據(jù)雙目圖像中線路特征連續(xù)性實現(xiàn)雙目圖像行匹配,并根據(jù)極限約束快速找到匹配點計算視差,避免了圖像遍歷的步驟,程序簡單且運算量大大降低,反應(yīng)時間降低到50 ms以內(nèi),誤差達到5%以內(nèi)。
3.1? 基于線路連續(xù)特征的圖像旋轉(zhuǎn)矯正
基于之前各步驟,在左右兩圖像中準確地定位線路,得出其在坐標軸中的斜率[k]。以坐標系中的某點[(x0,y0)]為旋轉(zhuǎn)中心,將圖像各點[(x,y)]繞此中心旋轉(zhuǎn)[arctan k],旋轉(zhuǎn)后圖像各點坐標設(shè)為[x,y],并滿足以下等式:
[x-x02+y-y02=x-x02+y-y02arctany-y0x-x0+arctan k=arctany-y0x-x0] (10)
通過上述方式將左右相機的圖像進行水平矯正,會出現(xiàn)線路未對齊的情況。測出左右圖像線路距原點的距離[ρ1],[ρ2],以其中一幅圖為匹配基準,另一幅圖向上平移[ρ=ρ1-ρ2],實現(xiàn)左右圖像的精確行匹配。
3.2? 根據(jù)級線約束快速尋找匹配點
根據(jù)級線約束原理,快速在兩幅圖像中找到匹配點并計算視差。如圖3所示,[P]為目標,[C1],[C2]為左右相機的光心,[C1][C2]為基線,則平面[PC1][C2]與兩成像平面的交線[l1]和[l2]稱為級線,簡單的來說,就是給定一個像點[P1],則其匹配點一定位于其對應(yīng)的級線上,這樣就把遍歷的范圍壓縮到一條直線上。程序中可以先在OpenCV中使用函數(shù)cvFindFundamentalMat( ),返回圖像的基礎(chǔ)矩陣,可以獲得圖像像點與三維空間中的對應(yīng)關(guān)系;然后將求得的基礎(chǔ)矩陣代入cvComputeCorrespondEpilines( )函數(shù)中,求出一幅圖像中的點在另一幅圖像中的對應(yīng)級線,比傳統(tǒng)的圖像匹配速度提高了近50%。
4? 實驗結(jié)果及分析
采用無人機搭載1.2節(jié)中所設(shè)計的雙目測距裝置,實地拍攝輸電線路圖,如圖4a)所示。由于在無人機飛行過程中不可避免地出現(xiàn)機身擺動,導(dǎo)致左右畫面不連續(xù),本實驗采取Visual Studio 2017作為開發(fā)環(huán)境,結(jié)合視覺庫Opencv 3.3.0[10]對實拍圖像進行Hough直線檢測,如圖4b)所示,是對實拍圖象進行二值化直線檢測后得到的結(jié)果,圖中檢測出三條線路直線貫穿左右圖像,根據(jù)此三條直線對左右雙目圖像進行直線匹配。圖4c)為直線匹配的左右圖像對準結(jié)果,可以發(fā)現(xiàn),經(jīng)過圖像的位置變換,左右圖像已經(jīng)實現(xiàn)了直線行匹配。
根據(jù)視差圖所得到的視差信息可對圖像中任意位置實現(xiàn)距離計算。這里對圖4c)中選取7對特征點進行距離計算,計算結(jié)果如圖5所示。
選取前7組數(shù)據(jù)進行分析,見表1。實地拍攝時,采用手持激光測距儀在距電塔15 m的距離進行測距,無人機垂直起飛至26 m的高度進行雙目測距。無人機通過云臺搭載雙目測距儀,得到表1的測量數(shù)據(jù),分析可看出,所測出的距離與實際距離15 m大致相符,誤差大致在5%之內(nèi);測距程序運行時間基本在50 ms內(nèi),基本能實現(xiàn)對輸電線路巡檢安全距離的測定。
針對在實地拍攝過程中的各個環(huán)節(jié),對于測量結(jié)果的誤差提出以下推測:
1) 雙目測距儀通過云臺由無人機搭載,云臺雖然由地面遙控控制,但是關(guān)節(jié)十分靈活,無人機在空中飛行時,受到氣流的影響,導(dǎo)致云臺角度改變,在基線長度近1 m的條件下,雙目相機的光軸不能與目標表面垂直,導(dǎo)致圖像匹配時圖片的畸變影響較大;
2) 所采用的攝像頭分辨率為1 280×720,分辨率較低,視差精度較低。
3) 拍攝時當?shù)毓庹諒姸容^高,在圖片灰度處理時出現(xiàn)相關(guān)線路失真的現(xiàn)象,對于圖片匹配有一定的影響。
5? 結(jié)? 語
基于雙目視覺的線路巡檢安全距離測量新方法,通過線路特征的連續(xù)性進行圖像的快速匹配,相較于傳統(tǒng)的匹配算法,反應(yīng)速度更快,精度有一定程度的提升,程序的冗雜度大大降低。測量結(jié)果說明,該系統(tǒng)能夠有效地進行輸電線路巡檢安全距離的測量,在一些地勢崎嶇的地方會有更好的效果;系統(tǒng)實現(xiàn)了圖像的行匹配,可以快速地進行距離測定,并保證精度,能夠有效確保無人機在安全范圍內(nèi)進行線路巡檢。
注:本文通訊作者為張軍朝。
參考文獻
[1] 李棟,林靖宇,高鵬宇,等.無人機輸電線路巡檢中安全距離測量方法[J].廣西大學(xué)學(xué)報(自然科學(xué)版),2016,41(2):498?505.
[2] 王濤,王海川,闞立杰.基于雙目視覺的艦載光電雨天對岸測距方法[J].指揮控制與仿真,2017,39(6):109?112.
[3] 姜雨彤,楊進華,劉釗,等.雙目CCD測距系統(tǒng)的高精度標定[J].計算機工程,2013,39(7):228?232.
[4] 陳強,朱立新,夏德深.結(jié)合Canny算子的圖像二值化[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2005,17(6):1302?1306.
[5] 王小俊,劉旭敏,關(guān)永.基于改進Canny算子的圖像邊緣檢測算法[J].計算機工程,2012,38(14):196?198.
[6] 欒詠紅,湯曉燕,張軍朝.結(jié)合組SIFT特征和多元詞袋模型的圖像檢索方法[J].計算機工程與設(shè)計,2018,39(4):1142?1147.
[7] 徐歡,李振璧,姜媛媛,等.基于OpenCV和改進Canny算子的路面裂縫檢測[J].計算機工程與設(shè)計,2014,35(12):4254?4258.
[8] 郭文俊,常桂然,喬世東.基于Hough直線特征的障礙物檢測方法[J].軟件,2016,37(9):77?80.
[9] 申瑞杰,張軍朝,郝敬濱.基于邊緣盒與低秩背景的圖像顯著區(qū)域檢測算法[J].計算機科學(xué),2017,44(12):298?303.
[10] KAEHLER A, BRADSKI G. Learning OpenCV: computer vision in C++ with the OpenCV library [M]. [S.l.]: O′Reilly Media, Inc., 2013.
[11] 吳軍,劉壯,吳向東,等.直流輸電線路中無人機巡檢安全距離電場仿真分析[J].湖北電力,2017,41(4):14?19.