吳紹華 余容 趙健



摘? 要:提出了一種導線模型(XY面投影重合、XY面投影不重合,簡稱“模型一”和“模型二”)識別方法和基于該模型的導線分割算法,解決了點云缺失情況下導線分割困難、分割精度低的問題。經實驗驗證,模型一和模型二分割準確度為92.5%、90.9%。
關鍵詞:點云;輸電走廊;導線分割
0? ? 引言
導線分割是輸電走廊隱患檢測工作中十分關鍵的步驟。導線局部聚類具有較高準確性,檔內具有相對完整性,本文基于導線XY面投影直線模型的適用性,提出兩種導線模型點云缺失的分割算法[1]。分段后的導線采用的聚類算法為k-means[2-3],k-means具有算法效率高、實現相對簡單等優點。
1? ? 具體步驟
1.1? ? 模型判斷
模型一導線實際數量遠大于導線在XY平面投影后的投影數量,模型二導線實際數量等于導線在XY平面投影后的數量。兩種模型在XY平面和XYZ空間分布上有較明顯的區分特征。
算法主要研究模型一、模型二兩種導線模型,兩種模型在XY平面和XYZ空間有較明顯的區分特征,根據區分特征可以進行導線模型識別。
(1)將單檔導線沿該檔導線實際走向按經驗步長分割成n段。
(2)對n段數據分別用k-means進行XYZ三維空間聚類,并記錄每段聚類簇的數量,由于單檔導線數據具有相對完整性,只存在部分缺失,所以統計出現次數最多的聚類簇數量即為導線的總數量,記為lineNum。
(3)同時對n段數據分別用k-means進行XY平面聚類,同時記錄每段聚類簇的數量,統計出現次數最多的簇數量即為XY平面聚類數量,記為clusterNumXY。
(4)模型判斷,如果lineNum等于clusterNumXY,即判斷輸入導線為模型二,否則是模型一。
1.2? ? 模型一導線分割
模型一導線在XY面上投影重合。模型一在XYZ空間分段聚類結果統計確定實際導線數量,根據在XY面分段聚類結果統計確定導線重合情況進行直線模型分割,將導線分割為若干個在XY平面投影重合的部分,每個部分根據每一段聚類結果的z值高低關系確定每一根導線。圖1是模型一導線,有三處點云缺失,該點云在XY平面投影重合為兩個部分,每部分包括四根導線。
模型一導線分割流程如下:
(1)按經驗步長沿導線走向分割為n段。
(2)對分割后n段導線分別用k-means進行XY面聚類,統計每段簇數量,出現最多的簇數量為XY平面分割數clusterNumXY,代表XY平面上聚類數。
(3)聚類完成后導線兩端向中間遍歷,找到兩段簇數量等于clusterNumXY的段,分為clusterPart1和clusterPart2,如圖1所示。
(4)在clusterPart1和clusterPart2中各取出一點,分別按y坐標升序排列,記為sortPoint1和sortPoint2,此時兩組對應的點就在一條導線上,如圖1所示。
(5)sortPoint1[i]和sortPoint2[i](0≤i≤lineNum1)點確定導線在XY平面投影直線lineNum1條,根據公式求得lineNum1個導線投影表達式。如圖1所示,上一步取出的兩個點,確定了圖中的兩條直線模型。
(6)根據上一步所求表達式,應用XY平面點到直線距離公式遍歷點云,按距離閾值將點劃分入各部分。圖1通過XY平面劃分為兩個部分;如圖2所示,是經過XY平面分割后的一個部分,即圖中4條導線在XY面投影重合。
(7)對每個部分(3 m)沿導線走向分割為m段。
(8)對分割后的m段導線分別用k-means進行XYZ空間聚類,出現最多的簇數量即為XY投影重合部分導線數量partLineNum,如圖2中partLineNum為4。
(9)取出本部分聚類簇數量等于partLineNum的段,然后按高低進行導線分割。即每段中的每簇取一個點,按z值高低排列,把每段中z值最高的簇取出構成一條導線,z值第二高的簇取出構成一條導線,以此類推,分割成partLineNum個導線。如圖2中①②兩段中都有4簇,即為完整段,段內簇按取出點z排序,然后①②兩段依次按z的高度提取,拼接成單根導線。
(10)對聚類簇數不等于partLineNum的段,采用取點鄰近匹配原則,劃分到對應的導線。圖2中③僅三簇,取每一簇中的一個點,和臨近段內每簇點進行z坐標對比,根據鄰近匹配劃入各導線。
1.3? ? 模型二導線分割
針對模型二,采用基于局部聚類確定直線模型方程的方法進行導線分割。如圖3所示,該導線包含五根導線,導線在XY面投影不重合,有兩處導線嚴重缺失,另外有若干處一般性點云缺失。
分割流程如下:
(1)按經驗步長沿導線走向分割為n段。
(2)對分割后n段導線分別用k-means聚類,統計每段的聚類簇數量。
(3)從聚類后導線兩端向中間遍歷,找到兩段段內聚類數等于lineNum的段分別記為clusterPart1和clusterPart2。如圖3所示,導線兩端各取出一段,每段有5簇。
(4)在clusterPart1和clusterPart2每簇中取一個點,共取2×lineNum個點。如圖3所示,在每段各簇中各取出一個點,每段取5個點。
(5)導線中點的y坐標有順序性,對clusterPart1和cluster-
Part2取出的點分別按y坐標升序排列,記作sortPoint1和sortPoint2,此時兩組對應的點就在一條導線上。如圖3所示,在XY平面確定五個直線模型。
(6)根據sortPoint1[j]和sortPoint2[j](0≤j (7)根據上一步求得的導線投影模型,用XY平面點到直線距離公式分別遍歷點云,按距離閾值將點劃分入各導線。 2? ? 實驗與分析 研發平臺為Visual Studio 2015,硬件為HP ZBook,內存64GB,處理器Xeon E5。 模型一采用某線110 kV導線,線路長0.6 km;檔包含8根導線,在XY平面投影重合為兩個部分,即每四根重合為一個部分。模型二采用某線500 kV導線數據,線路總長0.5 km;檔包含5根導線,且5根導線在XY面投影不重合。 圖4為模型一單檔導線分割效果圖,每根導線均有不同程度缺失,分割結果用不同顏色區分,從圖中可以看出分割結果實際導線數量一致,分割效果準確。圖5為模型二單檔導線分割效果圖,該檔導線有兩處較為明顯的缺失,分割結果用不同顏色區分,從圖5可以看出分割結果與實際導線數量一致,分割效果準確。 對模型一和模型二實驗結果進行統計,再用Cloud Compare軟件手動提取導線并統計,最后統計準確率,如表1和表2所示。 實驗表明,導線分割結果與實際手動提取結果吻合度高,驗證了算法的有效性和適用性,模型一和模型二分割準確度分別為92.5%、90.9%。 3? ? 結語 針對導線缺失這一情況,提出了一種導線模型判斷和分割算法,實現了導線分割自動化。實驗表明,導線分割算法對導線空間排列方式、導線不規則斷裂等因素不敏感,且分割結果正確、精度較高。 [參考文獻] [1] 林祥國,寧曉剛,夏少波.特征空間聚類的電力線激光雷達點云分割方法[J].測繪科學,2016,41(5):60-63. [2] 沈小軍,杜勇,王仁德,等.基于地面激光雷達的輸電線路鐵塔傾斜度測量[J].電子測量與儀器學報,2017,31(4):516-521. [3] 吳紹華,李少波,侯稀垟,等.基于高維數據聚類的制造過程數據分析平臺[J].微型機與應用,2017,36(1):86-88. 收稿日期:2020-03-24 作者簡介:吳紹華(1989—),男,黑龍江人,工程師,研究方向:軟件研發。