呂曉麗,姜 航,李文輝
(長春工程學院電氣與信息工程學院, 長春 130000)
近幾年,由于無人飛行器可降低每公里基礎設施檢查成本,被廣泛應用于電力基礎設施檢查和監控[1-2]。在某些情況下,機載傳感器不僅用于檢查或數據收集,同時也用于導航,特別是在執行更精確的檢查任務時更具優勢。現有無人機大多具有衛星定位系統,可以提供高度精確的實時位置信息。但在實際工作中,地理信息系統的數據往往是不完整的、不準確的,甚至某些地區的信息并不存在。所以,在某些無法收到衛星定位信號的環境中,基于視覺方法為無人機直接在電力線網絡上導航提供了一種很好的選擇。機載攝像機拍攝的圖像可用于估計飛機相對于目標的位置,并協助無人機導航。而基于視覺的導航面臨的主要問題是實時檢測和定位。
本研究利用電力線實現無人機主動導航,有利于執行更先進、更優化的空中檢查任務。從傳感器的角度來看,電力線具有一種線性特征,其特定寬度和長度隨傳感器高度的變化而線性變化。
線性特征檢測是計算機視覺的一個重要領域。文獻[3-4]中提出了一種基于核的Hough變換,但它產生無限長的直線,而不是線段,此外,它檢測到更多的假陽性線,并且線位置相對原始位置有偏移。文獻[5]中提出利用線段檢測器(LSD),一種在量化梯度方向上使用連通分量分析(CCA)以獲得共線像素的技術,將這些像素的特征向量計算為線段。盡管LSD能產生精確的直線段,但由于所涉及的區域在整個圖像上的增長,使得它的計算成本很高,不適合實時應用。文獻[6]中基于最小二線擬合方法從邊緣像素鏈中提取線條,即邊緣繪制算法(EDLines),這是最快的直線段方法。由于上述算法對各種邊緣都作出響應,一條線生成兩條邊緣線,這使得它們不適合電力線檢測。文獻[7]中提出分別用兩個高斯一階導數作為左右線邊,將兩個濾波器的響應以非線性方式組合為線的最終響應,也可以通過提取中心線或脊線來估計直線。文獻[8]中通過使用高斯導數的圖像卷積二次多項式來近似圖像來計算脊點,并可以檢測出亞像素精度的中心線。同樣,文獻[9]中提出一種新的思路,即從邊緣圖上執行歐幾里得距離變換生成的距離圖中提取脊點,但對于大圖像而言,距離變換速度較慢。
一般來說,現有的線檢測方法要么計算量大,要么無法獲得魯棒的特征檢測性能。本研究對幾種較先進的航空圖像電力線檢測算法進行了比較,提出了一種新的電力線實時檢測算法,該算法利用可控濾波器和電力線所在環境周圍物體的先驗知識進行檢測。
二維定向濾波器,如高斯濾波器和Gabor濾波器,已經被廣泛用于魯棒梯度邊緣和嶺谷信息檢測[10-12]。方法是將定向濾波器與每個方向的圖像卷積,并分析每個濾波器響應。向多個方向旋轉,濾波非常耗時,尤其是當一個濾波器與另一個濾波器的旋轉相差很小時。為了解決這一計算成本,文獻[9]中提出了可控濾波器。
可控濾波器是基于在預定方向上定義的基濾波器,在任意方向上旋轉的濾波器響應由這些基濾波器的線性組合合成。這些濾波器可以通過基濾波器的適當插值有效地旋轉。給定f(x,y)作為濾波器響應,并且作為fθ(x,y)濾波器旋轉一定角度的響應,可控濾波器可以寫入等式(1):
(1)
其中:θi是第i個基角,i∈1,2,…,M;ki(θ)是第i個插值函數;fθi(x,y)是第i個基函數;M是基濾波器的數量。
高斯導數由于其良好的可控性,在計算機視覺中得到了廣泛的應用。此外,其為帶通濾波器,可以增強沿其方向的響應,同時抑制與其方向正交的響應。一般采用奇數階濾波器進行邊緣檢測,偶數階濾波器用于脊線檢測,高斯二階導數用于電力線檢測的脊線檢測。該濾波器由可控的四層濾波器對(高斯二階導數及其希爾伯特變換)構成。這可以確定線條類型和方向。
設G2為可控濾波器,其正交對可控正交濾波器H2是G2的希爾伯特變換的近似。通過找到適合多項式的最小二乘解乘以(x,y)中的高斯來實現H2。通過使用三階奇偶校驗多項式可以實現令人滿意的近似。這意味著四個基本濾波器足以在任意方向上控制正交濾波器H2,并且G2需要三個基函數。圖1表示為G2和H2的基本濾波器。實現了在任何方向θ上的可控正交濾波器對:
(2)


圖1 G2和H2的基本濾波器
在可控的正交濾波器對的實現中,第一步是創建2D基濾波器。高斯函數G(x,y)是具有線性可分性的唯一旋轉對稱函數,即G(x,y)=g(x)*g(y)。為了便于計算,在一維中計算高斯函數的一階和二階導數及其希爾伯特變換以及希爾伯特變換的多項式擬合。
通過將圖像中的每一行與水平投影卷積,然后將每列與垂直投影卷積來實現與圖像的2D濾波卷積。
本節利用可控濾波器理論,針對線性特征檢測,提出了電力線檢測算法。其主要思想是根據可轉向濾波器的能量函數求取脊點而不是邊緣,然后對共線脊點進行分組,提取線性特征。此外,應區分電線和周圍的線性物體。其特點概括如下:① 對稱性:沿主軸的幾何相似性。左右兩側的大小相似。② 延伸率:平均長度>>平均寬度。③ 平行度:左右邊界應局部平行。④ 均勻性:區域應均勻,區域強度的輪廓類似于墨西哥帽。
電力線段可以通過檢測線性圖案的脊點來識別。大多數以前的電力線檢測方法使用基于邊緣檢測的方法,我們認為這是不合適的,因為:① 在邊緣檢測之后,圖像中由兩個以上像素表示的粗電力線段將被檢測為兩條平行的邊緣線;② 由于環境的復雜性(例如,柵欄和道路等附近的線性物體),也將檢測到許多假陽性邊緣線。本研究提出了一種面向高斯濾波的圖像脊線點檢測方法。
高斯導數能夠很好地檢測沿其軸寬度變化很小的細長結構,主要原因有如下兩點:① 它們是抑制寬度小于閾值的線的帶通濾波器;② 使用濾波器內核中的所有像素,可有效抑制噪聲[7,9,13]。為了確定脊點,分析和比較兩種能量函數,定向能和脊能。
使用二維高斯函數G(x,y):
(3)

令G2(θ)和H2(θ)為角度θ的可控正交對濾波器,?為卷積運算,對濾波器與圖像的卷積可以得到:

(4)
定向能量E2(θ),即G2(θ)和H2(θ)的響應的組合,定義為[9]:
E2o(θ)=[G2(θ)]2+[H2(θ)]2
(5)
對于任何像素j,存在角度θd的最大定向能量。該角度是像素的主要方向。
(6)
為了提取脊點并排除更多邊緣點,脊能量函數E2r(θ)定義為[13]:

(7)
可控正交濾波器H2(θ)的輪廓用于邊緣檢測,而可控濾波器G2(θ)的形狀用于脊線檢測。脊點會增加G2(θ)的響應并抑制H2(θ)的響應。脊能量可以被視為像素的脊強度。如果像素的脊能量小于0,則像素j被分類為邊緣像素,否則它是脊像素。像素j具有最大脊能量的方向是像素的主要方向。
(8)
可控的正交濾波器對沿著濾波器對的方向增強能量,同時抑制垂直于該方向的能量,因此脊點將具有比其周圍像素更大的能量。識別脊點的過程:
1) 通過操縱正交濾波器對計算每個方向上每個像素的定向和脊能量E2(θ,j);
2) 設定定向能量和脊能量的最大值E2(θ,j)用作像素j的值。如果E2(θ,j)大于預定閾值,則像素j被分類為脊點。本文將[0,π]分為8個方向
θ=(i/8)π,i=0,1,…,7
用于計算效率,并從這8個方向定位最大能量值。
圖2給出了脊點檢測的一個例子,其中圖2(a)列代表原始圖像,圖2(b)列和圖2(c)列分別是定向濾波器和脊能量的脊點檢測結果。由于正交濾波器對的卷積涉及內核中的所有像素,因此可以清楚地看到噪聲被濾除以及寬度小于感興趣線寬度的細線。應該注意的是,脊檢測器僅運行一次,并且脊不會像其他方法那樣被稀疏為一個像素寬度。原因在于:① 電力線可能太弱而不能變薄,否則電力線可能會被分解成許多細段,這使得檢測過程變得更加冗長,困難和不準確。② 執行脊形檢測器以檢測一個像素寬度脊,顯著增加了計算負擔,這不適合于實時應用。

圖2 脊點檢測示例
脊點被檢測為候選電力線,但是電力線的數量和哪些脊點屬于電力線仍然是未知的。并非所有線性特征都是電源線,因此應去除這些噪聲線性特征,因為它們將影響電源線的方向和位置的計算。無人機的姿勢是根據機載萬向相機捕獲的電力線進行調整的,因此電力線的方向和位置對于引導無人機直接在電力線上方飛行至關重要。在本節中,將重點介紹如何從候選脊點提取電力線。
霍夫變換(HT)是最廣泛使用的線檢測方法。HT的主要缺點是線的多次響應和邊緣圖上具有一個像素寬度的無限線檢測,這使得它不適合于電力線檢測[6]。受文獻[5]的啟發,本研究采用了區域增長和連通分量分析的思想。連接的脊點被分組為連接區域,并被視為電力線的子集。由于電力線區域是均勻的,如果像素值和平均像素值之間的差小于閾值,則該像素屬于相同的電力線區域。重復合并過程直到不能添加新像素。
每個連通區域是一條線,其方向和位置可以從其協方差矩陣和特征值計算[15]。
設Ri={pj(xj,yj)|j= 1,2,…,m是帶有m像素的第i個像素的連通區域,其協方差矩陣由下式計算:
(9)
其中,xm,ym是連通區域Ri的質心,
線角度θ定義為

(10)
其中,λ1是協方差矩陣的小特征值。
在檢測到連通分量之后,通過使用線擬合算法將共線線段鏈接以形成長線。圖3顯示了線檢測結果的示例。

圖3 線性特征檢測結果
假設無人機具有至少兩個自由度(例如平移和傾斜)的萬向節攝像機。無人機通過兩個控制回路被引導,萬向節和無人機。首先控制萬向節的位置,使電力線在攝像機的視場內(θ=0和T1=1)。為了完成這個控制任務,從行中提取兩個變量。它們到圖像中心(T1)的距離以及它們相對于垂直方向的方向(θ)。圖4顯示了圖像平面中的估計變量。

圖4 從圖像平面獲得的用于控制性的變量
圖4中,θ是關于垂直的角度,T1是到圖像中心的距離。當萬向節主動跟蹤電力線,使用其姿勢產生適當的控制命令,使得飛機在電力線上方移動并飛行。這是通過將實際萬向節姿勢與所需姿勢(90°傾斜和0°平移)進行比較來實現的。如果無人機飛行在高度直接電力線上方并且萬向節向下看,那么所需的萬向節姿勢被視為萬向節所具有的姿勢。圖5中示出了控制架構,其中虛線表示無人機方向,萬向節姿勢和圖像平面中的特征位置之間的交叉耦合。其中,子指數d表示期望值,δ是指令值。

圖5 主動導航的高級控制架構框圖
總的來說,控制任務將同時命令萬向節和飛機達到所需的飛行軌跡(直接在電力線上方)。
本測試中采用了無人機飛行試驗中拍攝的航空圖像,照片拍攝于離電力線20~60 m的高空。圖像中的電力線表示為至少2個像素。
采用LSD[5]和EDLines[3]作為評估本文所提出算法的標準。LSD和EDLines都是基于邊緣來檢測線的。為了說明在線檢測中使用脊的優勢,合成圖像的結果如圖6所示。從左到右,帶有粗線的輸入圖像、使用本文算法的線檢測和使用EDLines的線檢測分別顯示為圖6(a)、圖6(b)和圖6(c)。從結果來看,很明顯,對于表示為多于2個像素的線,基于邊緣的線檢測產生兩條邊緣線。而對于基于脊線的線檢測,一條線只有一個響應。

圖6 合成圖像上基于脊線和基于邊緣的線檢測結果
圖7顯示了本文算法和真實圖像中的兩種基線算法的更多結果。圖7中的(a)~(f)分別代表6個測試集,(1)~(4)分別是原始輸入圖像和EDLines、LSD以及本文算法的結果。總的來說,本文算法獲得了比EDLines和LSD更好的檢測結果,并且假陽性線更少。此外,如前所述,EDLines 和LSD不能用于估計電力線的數量,因為它們是基于邊緣的。由于不能僅從圖像中使用高程線索,區分這些非常相似的線路特征和電力線可能非常困難,本文算法也檢測到一些圍欄線[圖7(d)]和道路中心線[圖7(c)]。
為實現基于視覺的無人機實時導航,計算機視覺算法的處理速度至關重要。由于本文中線擬合使用可控濾波器在濾波圖像中進行的,故與EDLines和LSD相比,本文所提出的算法要快得多,表1是關于不同方式計算時間的比較。而直線擬合和像素搜索被應用于直線的所有邊緣,耗時的區域生長方法被應用于LSD的整個圖像的梯度圖上。

圖7 結果比較

表1 計算時間的比較
提出了一種基于無人機主動導航的快速電力線檢測與定位方法。所提出的檢測算法的兩個主要方面:其一是從可控濾波器的能量函數中識別脊點;其二是使用連通分量分析對檢測到的脊點進行線擬合。實驗結果表明所提出的算法可以有效減少假陽性線并且計算速度有所提高。