蒯向陽 任明武
(南京理工大學計算機科學與工程學院 南京 210094)
特大型車輛編隊在通過未知路況時通常是危險的,尤其是礦山車等特大型工程用車輛而言,其駕駛艙的視野小,盲區(qū)大(如圖1)駕駛員很難通過肉眼對前方路況進行準確充分的判斷,對于行駛途中的編隊而言,駛?cè)氩豢赏ㄐ新范魏笳麄€車隊的調(diào)頭也是相當困難和耗時的,嚴重影響行進速度,貽誤戰(zhàn)機。智能先導車輛裝載激光雷達、可見光相機、紅外相機等感知設備,先于車隊前方駕駛,對前方道路、隧道和急造土路進行可通過性探測和判斷,保障車隊安全和速度。在高空障礙中(電力線、限高桿、指示牌、樹枝等),電力線是國家重要基礎設施,損壞后往往會區(qū)域內(nèi)電力系統(tǒng)造成影響,由于特種車駕駛艙視野窄,且電力線懸于空中沒有對照物,駕駛?cè)藛T很難肉眼辨別其高度是否可以通行。為了避免行軍過程中對其造成損壞,需要實時檢測電力線。基于此應用需求,本文著手實時電力線檢測算法研究。
圖1 特大型車輛
由于可見光相機在夜晚魯棒性較差,多用激光雷達對電線進行檢測。目前基于雷達的電力線檢測研究領(lǐng)域,應用場景多是輸電線走廊巡檢維護[1~6],且往往是基于機載LiDAR設備,該設備通過直升機搭載,從高空掃描,其點云數(shù)據(jù)有高精度、高密度、大視場等特點(如圖2),應用是多是先采集數(shù)據(jù)再后期處理,檢測方法不用考慮實時性要求。基于機載LiDAR點云數(shù)據(jù)檢測電力線方法可以大致包括以下幾類[7]:1)基于二維圖像的Hough變換和聚類的處理方法,該類方法先將三維點云數(shù)據(jù)轉(zhuǎn)換為二維,如文獻[8]采用自上而下的策略,先通過濾波將數(shù)據(jù)中的地面點、植被點剔除,再通過Hough變換分離各條電力線。2)基于局部模型提取電力線,文獻[9]通過在多個橢圓鄰域內(nèi)構(gòu)建電力線懸鏈線模型,利用橢圓鄰域內(nèi)的點云估計模型參數(shù),進而識別電力線;文獻[10]先確定電力線的初始方向,然后用懸鏈線方程在立方體內(nèi)分段擬合電力線參數(shù),然后通過在立方體中多次迭代計算最終確定模型參數(shù);文獻[11]首先采用人工交互的方式初步對點云數(shù)據(jù)進行分類,確定電力線點云數(shù)據(jù)以及非電力線數(shù)據(jù)然后再利用移動激光點擬合法對電力線數(shù)據(jù)進行擬合提取。3)基于高程、密度、強度、回波次數(shù)等信息差異的點云統(tǒng)計分析,文章[12]采用基于點云體素分級的方式,采用由粗到細的處理策略。4)基于激光點云幾何、分布特征的監(jiān)督分類,文獻[13]通過提取電力線的多個特征,運用先驗知識從XOZ鉛垂面和XOY水平面內(nèi)提取電力線點;文獻[14]據(jù)語義關(guān)系提取電力線和電力塔。
圖2 機載LiDAR點云數(shù)據(jù)
本課題是車載雷達應用場景,考慮系統(tǒng)成本和使用場景,車載激光雷達往往選擇機械光雷達,機械式激光雷達點云比機載LiDAR點云數(shù)據(jù)要稀疏很多,且基于機載LiDAR的電力線檢測方法往往更追求檢測后電力線模型的精度,往往實時性較差,不能完全采用現(xiàn)有的電力線檢測方法。
基于車載雷達點云特點,本文提出了一種基于法線方向的濾波,將濾波后的點云進行聚類,在每個類中進行直線擬合,然后基于雷達掃描線特性提出了一種電力線后驗方法提高檢測準確率。
為了識別電力線,機械式激光雷達應該垂直安裝,即雷達掃描平面法線與地面平行。若水平安裝雷達,將會引入過多線性特征,無法辨別電力線。垂直安裝會保證更多的掃描線打在電力線上。
2.1.1 感興趣區(qū)域ROI
首先根據(jù)電力線位于高空的特點,選定感興趣區(qū)域(ROI),對于低于一定高程閾值的點進行剔除,對于以雷達為中心,半徑2m的球體空間內(nèi)(該區(qū)域內(nèi)點云多是安裝雷達的載體)點云剔除。
2.1.2 法線方向濾波
電力線點云多呈現(xiàn)規(guī)律性,其法線方向趨于一致,且有特定方向范圍。基于此特性,可對整體點云求法向量,跟據(jù)法線方向去除部分非電力線點云。
求解表面一點法線的問題近似于估計表面的一個相切面法線的問題,因此可以轉(zhuǎn)換成一個最小二乘法平面擬合估計問題。設代擬合的平面為
最小二乘擬合該平面方程,即使參選點與平面的距離平方和最小,轉(zhuǎn)換為求極值:
其中n為參與擬合點數(shù),一般選擇目標點一定半徑領(lǐng)域內(nèi)所有點;為參選點到平面的距離平方。
分別對d、a、b、c求偏導,整理后得到:
即:
其中A為領(lǐng)域內(nèi)n個點的協(xié)方差矩陣,x為特征向量。由于要使得最小,即使λ最小,則最小特征值對應的特征向量即為法向量。
計算法向量與z軸夾角,將夾角大于一定閾值的點云過濾。法線方向濾波后效果如圖3。
圖3 法線方向濾波(右側(cè)為濾波后結(jié)果,白色框內(nèi)為電力線)
此濾波方法有效保留了電力線數(shù)據(jù),去除了大部分非電力線點云,提高了后續(xù)處理的效率。
分析圖3中點云數(shù)據(jù),可以發(fā)現(xiàn)電力線在空間上明顯的聚成一類,且與其他點云間隔一定距離,所以可以采用歐式聚類對點云數(shù)據(jù)進行聚類。歐式聚類,顧名思義就是通過歐式距離作為度量準則對數(shù)據(jù)進行聚類,通過計算種子點與近鄰點的距離,判斷是否小于設定閾值來決定是否歸為一類。為了進行有效的近鄰點搜索,需要用到數(shù)據(jù)結(jié)構(gòu)KD-tree來重新組織點云數(shù)據(jù)。
KD-tree(k-dimensional tree),用于對k維空間的實例進行存儲以便快速查詢的樹形結(jié)構(gòu)數(shù)據(jù),能夠以O(n1-1k+m)的時間復雜度進行查詢,其中m表示每次要搜索的近鄰點個數(shù)。
在構(gòu)建好KD-tree后,進行歐式聚類,點云將根據(jù)點之間的歐式距離聚成多類。
歐式聚類后驗。電力線點云聚類呈懸浮空中的狀態(tài),與其他高障礙物不同,不會因歐式聚類連接到近地端,根據(jù)這一特點,可以判斷每個聚類中的最低點,如果低于某閾值,則剔除,如圖4。
剔除進一步減少了點云量,提高后續(xù)處理效率。
對于每個聚類的點集,進行直線擬合。本文采用RANSAC算法進行直線擬合,RANSAC從樣本中隨機選取一個樣本子集,用最小方差估計法對子集計算直線模型參數(shù),然后計算所有樣本點與該模型的偏差,若偏差小于預設定閾值,則將該點劃分為內(nèi)樣本點,否則劃分為外樣本點,以上過程為一次迭代,重復迭代過程,每次都記錄模型參數(shù)對應的內(nèi)樣本點個數(shù),內(nèi)樣本點最多的模型參數(shù)則為最優(yōu)直線參數(shù)。迭代結(jié)束條件為達到預設的期望誤差率或預設的迭代次數(shù)。RANSAC能在樣本集中排除外樣本點的干擾,達到檢測直線的作用。
在每個聚類樣本集中重復進行上述RANSAC擬合直線,每得到一條直線則記錄參數(shù)并將參與擬合的樣本點從樣本集中剔除,進行下一次RANSAC直線擬合,直到樣本集中的點數(shù)小于某閾值(與雷達線數(shù)相關(guān)),無法再進行電力線的擬合。對每個聚類中的直線檢測,流程如圖5所示。
圖5 每個聚類中的直線檢測流程
電力線檢測結(jié)果如圖6,可以看到圖中的電力線被較好的檢測出來。
圖6 電力線檢測結(jié)果(右側(cè)框內(nèi)白色粗點為檢測到的電力線)
由于RANSAC擬合的特性,可能會出現(xiàn)很多誤檢,本文根據(jù)垂直架設雷達掃描線的特性和電力線點云特征提出一種通過內(nèi)樣本點數(shù)目、參與擬合點的掃描線號(laserID)以及聚類中直線間夾角累加和作為判據(jù)的電力線后驗方法。
如圖7(a),雷達掃描線按序打在同一根電線上,參與擬合直線的點數(shù)不應該多過雷達掃描線數(shù),且參與擬合的點應該屬于不同的掃描線。如圖7(b),電力線走廊常為多條平行電線組成,被分為同一個聚類中的直線方向應該大體一致。根據(jù)這個特性,將不屬于電力線的直線去除。在之前的步驟中已經(jīng)得到多個點云聚類,每個聚類中都有一個擬合出的直線集設為L={li}i=1,2…n},n為直線集中直線數(shù)量,設參與擬合直線li的點集為Pi={pij}j=1,2…mi},mi為點集Pi中點的數(shù)量,則判斷每個直線集是否是電力線的后驗算法如下:
圖7 垂直架設雷達點云
其中,min threshold、max threshold、angle threshold分別為參與擬合的最少點數(shù)閾值、最多點數(shù)閾值、直線集中兩兩直線間夾角累加和閾值。angle(li,lk)為計算直線li和lk間夾角函數(shù)。對每個聚類執(zhí)行上述算法。
本文研究試用了多款雷達,最終采用三種激光雷達(北科天繪Rfans16、禾賽Pandar40M、禾賽PandarQT,掃描線數(shù)分別是16線、40線、64線),進行數(shù)據(jù)采集,本文通過學校無人車裝載三款激光雷達對學校、市區(qū)的高架電力線纜、低矮電線等多種場景進行了數(shù)據(jù)采集。最終采集了北科天繪16線共355幀、禾賽Pandar40M共425幀、禾賽PandarQT共151幀,總共931幀點云圖像。
CPU:Inter(R)Core(TM)i7-9750H;RAM:16GB;系統(tǒng):Windows10;平臺:Visual Studio 2019點云工具庫:PCL[15]。
表1 本文方法在各型號雷達數(shù)據(jù)上的表現(xiàn)
圖8 各數(shù)據(jù)集上檢測結(jié)果(框內(nèi)粗點為電力線點)
本方法在市面常見機械式激光雷達各種型號(16線、40線、64線)上表現(xiàn)良好,平均準確度、精確度、召回率都在90%左右。在距離電線較遠時,由于能夠打在電力線上的雷達點很稀疏,所以會影響召回率,但是當先導車靠近電力線時,準確度、精確度、召回率都非常高,接近98%,是符合應用需求的。本方法能滿足實時行需求,尤其是在16線雷達上耗時相當少,區(qū)別于深度神經(jīng)網(wǎng)絡的方法,本方法不需要GPU,大大降低了車載感知系統(tǒng)的成本,同時保障了裝備的魯棒性。從效果和實時行來說,本文方法能夠?qū)嶋H應用在大型車隊可通行性檢測項目中。
針對大型車輛編隊的通過性檢測項目中電力線檢測問題,本文提出了一種實時的基于車載激光雷達的電力線檢測方法。垂直裝載雷達,根據(jù)電力線點云的法線方向特征進行濾波,根據(jù)電力線點云懸浮特征進行歐式聚類,在每個聚類中進行RANSAC直線擬合,并提出一種有效的電力線后驗算法。本文采集了三種常見掃描線數(shù)的雷達點云數(shù)據(jù)集進行了實驗,驗證了本文方法的有效性和實時性。后續(xù)工作將對更加復雜的電力線場景進行實驗并優(yōu)化。