游安清,潘旭東,趙 平,潘文武
(1.中國工程物理研究院 高能激光科學(xué)與技術(shù)重點實驗室,四川 綿陽 621900;2.中國工程物理研究院 應(yīng)用電子學(xué)研究所,四川 綿陽 621900)
凈空排查是輸變電系統(tǒng)電力巡線[1-5]的一項重要任務(wù),其目的是分析和發(fā)現(xiàn)輸電線路與周圍景物(尤其是不斷生長的地面植被、樹木等)是否有過于接近的情況,這對確保輸電安全有重要意義。要實施凈空排查,一個基本前提是須從激光點云中分離出電線、電塔和地物點云,只有在這個基礎(chǔ)上,才可能對電線與地物進(jìn)行距離計算。目前,業(yè)內(nèi)常用的方法是借助Terrasolid等商業(yè)軟件、采用人工交互式半自動的方法分類這3種點云,不僅精度有限,而且自動化程度不高、作業(yè)效率低,更重要的是,對于非測繪專業(yè)的普通用戶而言,很難接手和應(yīng)用。所以,很有必要設(shè)計一種智能化、全自動的點云分類方法。目前,業(yè)內(nèi)學(xué)者研究比較多的是基于Hough變換或高程分析的電線提取方法[6-9],它們有兩個問題:一是基本專注于電線點云的分離,而回避難度更大的電塔點云的提?。欢羌幢阍陔娋€提取上,測試表明,Hough變換法難以區(qū)分挨得很近的并行電線(往往將多根電線當(dāng)成一根),高程分析法則對陡峭峽谷中的電線提取很容易失效(因為線側(cè)坡面上的植被很容易高過電線)。本文針對這些問題,緊密圍繞點云的全局走向統(tǒng)計特征進(jìn)行算法設(shè)計,避免大幅依賴點云局部特征,避免使算法產(chǎn)生明顯的局限性。實用測試表明,算法的普適性很好,不需要像其它方法那樣要針對不同數(shù)據(jù)集調(diào)整算法參數(shù),真正做到一套參數(shù)適用多片點云和一鍵完成三類點云的自動分類,大大提高了激光雷達(dá)內(nèi)業(yè)處理的效率。
激光雷達(dá)電力巡線是近年新興的一種電力巡線方式,旨在代替?zhèn)鹘y(tǒng)高強(qiáng)度的人工爬山越嶺巡線,圖1是一片激光雷達(dá)電力巡線點云圖。作為巡線的任務(wù)之一,凈空排查的目的是檢查輸電線周圍有沒有過份接近的地物,包括違章建筑物和不斷生長的地面植被等。凈空排查的前提是先從點云中正確分離出電線點、電塔點和地物點,然后對電線點和地物點作距離計算,距離小于設(shè)定的凈空閾值,則予報警,大于閾值,則認(rèn)為輸電線安全。
圖1 激光雷達(dá)巡線點云Fig.1 Point cloud in Lidar scanning
針對傳統(tǒng)半自動分類方法的不足,本文設(shè)計了一種全自動分類方法,其基本思想和步驟是:
1)以兩座電塔間的激光點云為輸入,如圖2所示。至于為何要將一條很長的電線走廊分成兩座兩座電塔一段,其目的不是為了迎合本文算法的要求,而是為了減少單片點云的數(shù)據(jù)量,因為一條完整電線走廊點云的點數(shù)非常龐大,可達(dá)幾十億甚至上百億點,不便存儲、傳遞、使用,所以,數(shù)據(jù)預(yù)處理時一般會將它們分段。
圖2 兩座輸電塔間的激光點云Fig.2 Point cloud between 2 pylons
2)以一定尺度(比如x、y、z向分別為10 m、10 m、1 m)對激光點云空間進(jìn)行三維網(wǎng)格化劃分,把所有點云點都?xì)w入其應(yīng)屬的三維網(wǎng)格中。
3)對每個網(wǎng)格單元,計算格內(nèi)點的走向θ和細(xì)長度S。定義走向θ為點云在xoy面內(nèi)投影的主軸線方向:
(1)
式中:μpq為點云的(p,q)階中心矩,由下式定義:
(2)
式中:n為點數(shù);(xi,yi,zi)為點坐標(biāo);(xc,yc)為點云在xoy面內(nèi)的質(zhì)心,由下式計算:
(3)
細(xì)長度S定義為點云在xoy面內(nèi)長、短軸長度之比:
(4)
顯然,S越大,說明網(wǎng)格內(nèi)點的分布越傾向于線型;S越小,網(wǎng)格內(nèi)點的分布越傾向于均勻,如圖3所示。所以,S是區(qū)分網(wǎng)格單元是電線網(wǎng)格還是非電線網(wǎng)格的有效特征。
圖3 不同分布點云的細(xì)長度SFig.3 Slimness of point cloud distribution
4)對細(xì)長度S求均值,并過濾出S值大于均值的網(wǎng)格,認(rèn)為它們以電線網(wǎng)格為主;再對這些網(wǎng)格內(nèi)點云的走向特征θ值作直方統(tǒng)計,找出直方累積量最大的θ,即為當(dāng)前兩座電塔間電線的主體走向。如圖4所示。
圖4 網(wǎng)格內(nèi)點云走向θ的直方統(tǒng)計Fig.4 Histogram of point cloud direction
5)根據(jù)電線的主體走向θ,在xoy平面內(nèi)把點云旋轉(zhuǎn)到左右擺正,即電線沿x軸正負(fù)向走向。對擺正后的點云重新進(jìn)行三維網(wǎng)格劃分(x、y、z向尺度分別為10 m、1 m、1 m),然后以水平方向中間段為中心,截取5段網(wǎng)格(左右各2段)。對每段內(nèi)的點云,向yoz面內(nèi)投影,并求連通簇,如圖5所示(注意:圖中有10個連通簇)。
6)找出最大連通簇,認(rèn)為由地面點云構(gòu)成。并將最大連通簇下面覆蓋的所有連通簇(尤其是零星離散的小連通簇)都?xì)w入地面點云簇。如此,圖5就分成了9個簇(8個懸空的,1個大片的)。將地面點簇之上懸空的點簇作為候選電線點簇。對5段點云都作這樣的連通簇分析和候選電線點簇提取。計算每個候選電線點簇的質(zhì)心。
圖5 點云在yoz截面內(nèi)的連通簇分析Fig.5 Connection analysis of point cloud
7)設(shè)定段間候選點簇的yoz質(zhì)心變化閾值(1 m),對相鄰段,計算段間候選電線點簇的對應(yīng)關(guān)系。對能找到對應(yīng)的點簇,給它投1票。4次相鄰段對應(yīng)關(guān)系分析下來,能得滿票的候選電線點簇作為最終確定的電線點簇,其數(shù)量即為場景中的電線數(shù)量,如圖6所示,圖中平滑曲線的中間段粗線即為電線種子點簇。
圖6 電線種子點簇Fig.6 Seed clusters of power lines
8)回到三維點云場景中,以確定了的電線點簇為種子,以一定步長(3 m)向左右生長電線。生長的方法是:對種子點簇的y-x坐標(biāo)作直線擬合,z-x坐標(biāo)作拋物線擬合,考察左右生長點(即待吸收的散點)離這兩條線的距離,如果y、z向距離都小于設(shè)定閾值(1 m),則將該點吸收進(jìn)這條電線,反之忽略。其中,直線擬合(y=Ax+B)的公式是:
(5)
拋物線擬合(z=Ax2+Bx+C)的公式是:
(6)
圖7中的平滑粗曲線是電線種子點簇生長得到的完整電線。
圖7 電線點云生長Fig.7 Growing line point cloud
9)獲得電線點云后,將所有豎直方向上低于電線、或水平方向上在兩外側(cè)電線之外的點歸于地物點;高于電線最低點、且夾在兩最外側(cè)電線之間的點置為電塔種子點。如圖8、圖9所示(藍(lán)色粗線為電線點,紅色單像素散點集為電塔種子點)。
圖8 粗分得到的電線點、電塔點和地物點Fig.8 Three sort of point cloud after rude classification
圖9 電塔種子點簇(紅色單像素散點)Fig.9 Seed clusters of pylon(red)
10)對每座電塔的種子點簇求質(zhì)心,得到電塔中心的(xc,yc)坐標(biāo)。再在x方向上截取中心位置xc左右一定范圍(10 m)內(nèi)的點云作為精確提取電塔的輸入,如圖10所示。
圖10 單座電塔附近點云Fig.10 Point cloud around single pylon
11)在y方向上,以yc為中心,向左、右生長電塔點云,直至塔翼的翼尖,得到電塔在y方向上的寬度(稱此處為塔帽寬度),并求得電塔對稱軸位置,以之修正yc。再以塔帽寬度沿z方向豎直向下覆蓋,把被蓋住的點云納入電塔點云,如圖11所示。其中兩個橢圓圈內(nèi)的點云顯然不應(yīng)屬于電塔,而是地物,下面繼續(xù)分離。
圖11 電塔種子點云向左、右、下覆蓋的結(jié)果Fig.11 Covering result of pylon seed point cloud
12)將電塔點云沿z向分層,并自下而上尋找點云最密層,將最密層及其下各層歸入地面,這樣,圖11中在橢圓圈內(nèi)被誤分為電塔的點就被重新歸入地物點,如圖12所示。
圖12 電塔點云中排除地面點Fig.12 Exclusion of ground point from pylon
13)再從圖10的電塔種子點簇的下沿開始,向下尋找寬度突變的層,作為塔腰(定義在“寬度<塔帽寬度*70%”的部位)。如圖13所示,圖中黑色豎向虛直線為電塔對稱軸,水平粗橫直線為電塔腰線。
圖13 電塔塔腰定位Fig.13 Positioning of pylon waist
14)對電塔點云作三維網(wǎng)格劃分(x、y、z向網(wǎng)格尺度分別為0.5 m、0.5 m、2 m),取塔腰所在層的點云,得到塔腰截面點云圖,如圖14所示。
圖14 塔腰處截面點云圖Fig.14 Section point cloud of pylon waist
15)以塔腰截面層點云為種子,向下逐層生長、吸收低層電塔點云。生長的原則是:每個生長層中,被上層點云在xoy面內(nèi)外包絡(luò)+外擴(kuò)b×tan(8°)的范圍所覆蓋的點,吸收進(jìn)電塔點云;不被覆蓋的點,歸入塔外植被。其中,b=2 m為分層厚度(即上一步三維網(wǎng)格化時的z向尺度),8°是實際電塔自塔腰處往下逐漸外擴(kuò)的最大張角(一般不超過8°)。圖15是電塔生長的最終結(jié)果,可以看出,圖11中小圓圈內(nèi)被誤分為電塔的點在這里被排除在外而重新歸入地物點。圖16是圖9中另一座電塔點云生長的結(jié)果。至此,電線、電塔點云都被成功分離出來了,剩下的就是地面及植被點云,圖17是整個點云分類的結(jié)果。
圖15 電塔點云生長的結(jié)果Fig.15 Result of pylon growth
圖16 另一座電塔點云生長的結(jié)果Fig.16 Result of another pylon growth
圖17 整個點云分類結(jié)果Fig.17 Result of the whole point cloud
圖18是對國家電網(wǎng)另一段(共測試了不同項目的14段)激光雷達(dá)巡線點云分類結(jié)果。
圖18 另一段激光巡線點云分類Fig.18 Result of another point cloud
通過自研軟件三維、多角度觀察分類后的點云發(fā)現(xiàn),電線、電塔和地物點幾乎都得到了完美區(qū)分。速度測試上,本算法對一個100萬點的激光點云,在一臺i5 3.6 GHz的電腦上,實現(xiàn)電線、電塔、地物點分離,用時不到1秒,比人工交互式分類的效率高出很多(人工方法對于同樣的數(shù)據(jù)量、得到基本相同的分類精度,平均用時約1 h)。
本文從凈空排查所需的點云分類入手,設(shè)計一套基于點云全局走向統(tǒng)計特征的全自動分類方法,可以將兩座輸電塔之間的激光點云快速、精準(zhǔn)地分成電線、電塔和地物點三類,為凈空排查距離計算提供了基本前提。測試表明,本方法精度好、效率高,能做到一套參數(shù)適用于多片點云和一鍵完成自動分類。
本方法的不足之處在于:對點云密度有一定的依賴性,并不適用任意稀疏或明顯殘缺的電線點云的提取。目前的算法版本能夠適用于每平米不少于10個點的激光點云數(shù)據(jù),這個點云密度對于目前常用的無人機(jī)載激光雷達(dá)巡線系統(tǒng)是比較容易達(dá)到的。明顯稀疏或殘缺的點云主要出現(xiàn)在非常陡峭的深溝峽谷中的電線(出于安全因素考慮,飛行作業(yè)距離難以控制到合適位置),這種情形的適用性將是本算法下一步改進(jìn)的重點。