鄒兵,陳鵬,劉登洪
(重慶市勘測院,重慶 401520)
近年來,自動駕駛汽車環境感知技術備受關注,車端安裝激光雷達、相機、毫米波等傳感器可精準感知障礙物,保障自動駕駛汽車安全行駛[1]。激光雷達因其高精度、高采樣、測量距離遠和范圍廣的特性被廣泛應用于無人駕駛汽車的感知系統[2]中,同時激光雷達的工作環境不受光照影響,每幀數據可掃描到幾萬至幾十萬個點,可細致描述環境信息,相對相機傳感器優勢顯著。當激光雷達感知環境中障礙物時,也會觀測到冗余地面點,導致算法增加額外內存消耗,影響自動駕駛感知系統實時性能,因此實現分割地面算法具有現實意義。
現有地面分割算法中,基于物理排序算法[3~6]將激光點云按照一定規則進行線序化,通過遍歷相鄰點的局部幾何特征分割地面點,但此算法需設置相關參數區分幾何特征,因此在復雜場景進行地面分割時會出現過分割和欠分割,同時激光雷達的相關設計參數靈活多變,無法提供統一的規則有序化點云,因此基于物理排序算法應用受限。基于柵格投影算法無須有序組織點云,將三維點云投影至二維空間,將柵格平均高度[7]、高度差[8,9]等作為地面分割評價指標,該算法計算簡單,能夠滿足自動駕駛汽車實時性能需求,但是僅僅只將柵格平均高度或者高度差作為分割指標,柵格內地面點也會被誤提取為障礙物點,導致過分割問題。基于模型擬合[10,11]算法認為地面點可擬合成平面,結合RANSAC算法求解平面擬合參數,最后采用點到擬合平面距離為分割指標提取地面點,該算法對距離閾值十分敏感,距離閾值設置不合理會導致過分割和欠分割,同時在復雜城市環境中,掃描視野中往往存在地面起伏,只擬合一組平面參數不能完整提取地面點。基于深度學習算法[12,13]通過點云深度學習網絡學習地面點屬性特征,測試數據與訓練數據相似時,可以達到良好的地面分割效果,需要大量訓練數據提高其泛化能力,同時對于不同型號激光雷達,算法可移植性差且在嵌入式平臺很難達到實時效果。
鑒于上述算法應用的局限性,同時顧及自動駕駛汽車實時性能需求,本文基于柵格投影算法的思想,引入柵格單元高度方差信息,提出一種基于柵格投影的快速地面點云分割算法。首先將原始點云進行柵格化處理,然后計算柵格單元的高度差和平均高度,同時在柵格單元引入點云高度方差信息實現地面點云快速分割。該算法可降低對參數的敏感性,能夠實現地面點云快速分割,因其結構簡單,可極大提升算法實時性能。
如圖1所示為激光雷達坐標系下柵格化處理的平面幾何模型,其中Rmax為激光雷達最大探測距離,dx,dy分別為柵格單元的長和寬,激光雷達掃描點P可根據其坐標(xp,yp,zp)分配至柵格(row,col)中,(row,col)的計算公式如下:

(1)
式中,floor(·)為向下取整函數。原始點云數據經過柵格化處理,每個點都會唯一對應一個柵格序號,最終將激光點云全部存儲在柵格矩陣中。

圖1 激光雷達坐標系下柵格化處理的平面幾何模型
經過點云數據柵格化操作,可通過計算柵格單元的幾何特征信息提取包含地面點云的柵格。傳統基于柵格投影的地面分割算法,通過計算柵格單元的平均高度或柵格高度差實現地面點云分割,然而平均高度的評價指標嚴重依賴激光傳感器安裝高度等參數,且在起伏路面場景會有欠分割現象,同時高度差的評價指標抵抗粗差能力較弱,且對被遮擋的物體存在過分割現象。為了解決基于柵格投影算法中計算平均高度或高度差存在的問題,本文引入柵格單元點云高度的方差信息,實現地面點云的快速分割,減輕算法對經驗參數的依賴。算法主要計算柵格單元平均高度、高度差和高度方差,具體流程如下。
(1)計算柵格單元ceil(i,j)平均高度:
(2)
式中(i,j)表示柵格單元ceil(i,j)的行號和列號,size(·)表示求柵格單元存儲點云的數量,k為柵格單元ceil(i,j)中的點,zk表示k點的z值。對于一般平坦地面場景,非地面點云柵格單元平均高度一般較大。
(2)計算柵格單元ceil(i,j)的高度差:
Zdiff(i,j)=zmax-zmin
(3)
式中,zmax和zmin分別為柵格單元ceil(i,j)的高度的最大值和最小值,為了抵抗點云噪聲影響,本文選取次最大值和次最小值運算。對于一般平坦地面場景,非地面點云柵格單元高度差一般較大。
(3)計算柵格單元ceil(i,j)高度方差:
(4)
柵格單元的高度方差信息可以較好地反映柵格點云的高度分布。一般情況下,對于地面點云柵格,其柵格單元的高度方差應較小,對于非地面點云柵格,其方差信息較大。
綜合以上三個柵格單元屬性,分別設置平均高度、高度差和高度方差閾值來分割地面點云,因分割指標全面,對于三個分割指標不用嚴格設置閾值,即可實現良好的分割效果,因此降低了算法對參數的依賴。
本文算法采用C++實現,所用電腦配置為4核CPU處理器。本文將采用KITTI開源數據集[14]和實測數據實驗,驗證本文算法的有效性和可行性,其中KITTI數據驗證數據為平坦路面場景,實測數據為起伏地面場景。為避免柵格單元過大導致欠分割,本文算法實現過程中,設置柵格單元的長和寬均為 0.1 m,高度差閾值為 0.10 m,高度方差閾值 0.40 m2。
KITTI數據集中采用64線激光雷達采集激光點云數據,采集場景為平坦地面場景,激光雷達安裝高度 1.73 m,每幀數據約有12萬個點,極大考驗算法效率,本文算法的地面分割效果如圖2所示。

圖2 本文算法分割效果(紅色為地面點云,綠色為非地面點云)
從圖2可看出,本文算法在地面點和非地面點交接處分割效果很好,對于車輛、墻面和桿狀物等分割完整。為進一步驗證本文算法的有效性,結合基于物理排序[3]和基于平面模型擬合[10]的方法進行對比,其分割效果分別如圖3和圖4所示。

圖3 文獻[3]分割效果(紅色為地面點云,綠色為非地面點云)

圖4 文獻[10]分割效果(紅色為地面點云,綠色為非地面點云)
從圖3(a)和圖4(a)全局分割效果可以看出,兩種算法都可以實現地面點云分割,但是從圖3(b)和圖4(b)局部放大效果可以看出,藍色圓圈表明兩種算法都出現了不同程度的過分割或者欠分割,文獻[3]基于物理排序的算法對相鄰線束點的幾何閾值過于嚴苛,導致地面分割不徹底,然而文獻[10]基于平面模型擬合的算法,因需要設置點到平面的距離閾值參數,導致在地面點和非地面點交接處分割效果不理想,將非地面點云判定為地面點,導致過分割。
綜合上述,可定性分析出本文分割算法分割效果理想,對于地面點和非地面點交接處實現了準確的分割效果,同時通過與文獻[3]和文獻[10]的分割效果對比,驗證了本文算法的有效性。
為了凸顯柵格投影的優勢,實測數據為某公司生產的固態激光雷達采集的無序點云,無法將其序列化,因此文獻[3]的方法不再適用。采集場景為起伏地面場景,激光雷達安裝高度 0.85 m,本文算法的地面分割效果如圖5所示。

圖5 本文算法分割效果(紅色為地面點云,綠色為非地面點云)
從圖5可以看出,本文算法分割效果很好,在地面點和非地面點交接處,行人和草木分割完整,同時與文獻[10]基于平面模型的方法進行對比分析,其分割效果如圖6所示。

圖6 文獻[10]分割效果(紅色為地面點云,綠色為非地面點云)
從圖6可以看出,文獻[10]基于平面模型擬合的方法,在起伏地面場景中分割效果不理想,因其只擬合一套平面參數,導致起伏路面點云欠分割。同時對于場景中的草木和行人,因其設置點到平面距離閾值不合理,導致地面和非地面交接處,草木和行人出現欠分割現象。
綜合上述,可定性分析出本文算法的分割效果良好,對于無序點云,本文算法仍可以保持良好的分割效果,然而文獻[3]基于物理排序的方法不再適用,同時文獻[10]基于平面擬合的算法分割效果不理想,進一步表明本文算法的有效性。
為定量評估各算法性能,驗證本文算法的可行性,本文采用文獻[15]中的靈敏度(RTP)和特異度(RFP)指標進行定量評估,具體計算公式如下:
(5)
式中,TP為地面點正確分割的數量,FP為地面點誤分割的數量,FN為非地面點正確分割的數量,TN為非地面點誤分割的數量。從式(5)可知,RTP越大,地面點被正確分割為地面點的比例越高,分割效果越好;RFP越大,非地面點被錯誤分割為地面點的比例越高,分割效果越差。分別采用KITTI數據集和實測數據進行地面分割,將獲得的定量評估指標列于表1。

不同算法在不同場景下的定量評估結果 表1
由表1的靈敏度和特異度比較可知,對于KITTI數據集中平坦路面場景,本文算法和文獻[3]算法分割效果較好,本文靈敏度達到98.89%,但是對于文獻[10]基于平面模型擬合的算法中,由于設置平面距離參數不當,導致在地面點和非地面點交接處過分割,效果最差。對于實測數據中的起伏路面場景,激光點云為無序點云,本文算法和文獻[10]方法依然適用,但是此時文獻[10]只擬合一套平面參數無法完整分割地面點,因此其分割效果不理想,存在大量地面點云欠分割,而且由于設定的平面距離閾值參數的不合理,存在草木、行人與地面交接處的點云被錯誤分割,表明其算法十分依賴經驗參數,場景應用受限,然而本文算法依然能夠保持良好的分割效果,靈敏度指標達到99.31%,原因在于本文算法分割點云指標全面,綜合柵格單元的平均高度、高度差和高度方差信息作為分割指標,實現了地面點云準確分割,應用場景更廣。同時本文算法結構簡單,因此算法運行最快,對于KITTI每幀12萬個點依然能夠保持約 49 Hz結果輸出;對于實測數據,處理一幀約9萬個點僅耗時 5.784 5 ms,滿足自動駕駛汽車實時性需求。
綜上分析,本文算法在精度和效率上較文獻[3]和文獻[10]都具備優勢,在地面點和非地面點交接處實現了良好的分割效果,再次驗證了本文算法的有效性和可行性。
本文提出了一種基于柵格投影的快速地面分割算法。綜合柵格單元平均高度、高度差和高度方差信息作為分割指標,實現了地面點云的準確分割,同時本文算法結構簡單,算法實時性能高。采用KITTI數據集中的平坦路面和實測數據中的起伏路面場景進行實驗,與文獻[3]和文獻[10]的方法對比測試,驗證了本文算法在精度和效率上的優勢,能夠有效快速地分割地面點云,同時本文算法對于無序點云依然適用,應用范圍更廣。