黃潤輝,胡立坤,蘇鳴方,徐大也,陳奧然
(1. 廣西大學電氣工程學院,南寧 530004;2. 廣西大學先進測控與智能電力研究中心,南寧 530004)
激光雷達作為自動駕駛汽車或自主移動機器人不可或缺的視覺傳感器,它相比傳統相機能準確地測量大范圍環境的表面三維坐標信息及其對應屬性信息(如反射強度等),具有全天候運行、光照變化不敏感、高分辨率等優勢,廣泛應用于自動駕駛系統的環境感知、定位和路徑規劃等任務。其中,激光點云語義分割是道路環境感知與理解的重要組成部分之一。
隨著激光傳感器成本不斷降低,點云數據的獲得變得更加容易,相繼涌出一些公開大規模激光點云數據集,推動了激光點云的語義分割方法研究。由于室外場景下的激光點云具有數據點多且無序、密度不均勻、場景范圍大且復雜多變等特點,傳統手工啟發式特征提取方法已無法準確與高效地識別,因而需要以數據驅動方式自主學習激光點云特征的提取與識別。隨著深度學習在圖像的目標檢測、分割等感知任務上逐步成熟,研究者們將目光轉向3D點云感知任務上,相繼提出一系列激光點云的語義分割方法。
早期,鑒于深度學習方法在二維圖像語義分割的有效性,學者們將三維激光點云投影成鳥瞰圖或前視圖等二維圖像,并利用成熟的圖像分割方法進行處理,再利用重投影方式獲得點云的預測標簽。Wu等從激光雷達的成像原理出發,采用球面投影方式將三維激光點云轉化成二維圖像表示,并利用輕量級網絡SqueezeNet 進行分割處理。Wu 等在SqueezeSeg基礎上提出上下文聚合模塊解決前視圖存在缺失點的問題。Xu 等進一步提出空間自適應卷積模塊對輸入不同位置的投影圖自適應選擇不同卷積核,從而解決激光點云的特征投影到圖像位置對分割結果的干擾。Milioto 等借鑒Redmon等的DarkNet主干網絡處理前視圖,并提出了一種高效KNN 聚類的后處理方式優化標簽。Zhang 等將點云投影到極坐標下的鳥瞰圖,平衡了點云在柵格內分布。然而,將三維點云投影到圖像的方法不可避免地造成某一維度的信息丟失和三維拓撲結構改變,無法充分學習相鄰點之間上下文信息。
為了使點云規則化表述同時保留三維拓撲結構,學者們將激光點云體素化為笛卡爾柵格,并采用三維卷積處理。Maturana等作為該類方法的開山之作,證明了3D卷積模型在體素分支的有效性。由于點云的稀疏性造成卷積過程中存在大量無效計算,三維稀疏卷積Spconv3D(3D Sparseconv)的提出有效地解決此問題,它只計算含數據點的柵格單元,使得網絡模型輸入三維柵格可選擇更高分辨率。Choy 等提出了基于時空三維點云的四維稀疏卷積網絡,并介紹基于稀疏張量的自動微分開源庫。Zhu 等利用柱面坐標表示原始點云的三維柵格空間,并采用非對稱殘差模塊,緩解了激光點云在水平方向上密度不一致的問題。Cheng 等提出了不同感受野分支的注意力特征融合和自適應特征選擇模塊學習局部和全局的上下文信息。盡管上述方法在點云分割上取得不錯的成績,但面向室外場景下激光點云分割能力仍然有限,其主要問題在于主流的笛卡爾柵格方法忽略了室外激光點云密度不均勻的特點,即激光雷達近距離的點云相對密集,而遠距離十分稀疏。
為了保留點云的原始信息,Qi 等首次提出基于原始點云的深度學習網絡采用多層感知機(MLP)學習每個數據點的內在關系和最大池化聚合點云全局特征信息,解決點云的無序性。Qi 等采用最遠點采樣方法對輸入點云進行降采樣處理,再利用KNN 尋找鄰近點,最后利用文獻[15]中的方法對每個局部區域提取特征信息。Thomas 等根據歐幾里德距離確定鄰近點的空間權重,提出了一種可變形卷積算子的核點卷積。為了解決大規模點云采樣的問題,Hu等采用隨機點采樣方法代替了最遠點采樣,在內存和計算量上得到了顯著下降,并通過局部特征聚合模塊來彌補隨機點采樣造成的信息丟失。雖然這些方法在點云分割上取得一定成績,但通常適用于密度均勻、數據點少、場景范圍小的室內場景點云,難以直接拓展到室外場景點云,主要局限在于點云的采樣、鄰域搜索、模型感受野等問題。
綜上所述,采用何種點云表述方式直接影響后續點云分割的準確率和計算效率。因此,本文中提出一種基于三維錐形柵格的激光點云語義分割方法。結合激光雷達成像特點,采用稀疏錐形柵格劃分方法解決室外激光點云稀疏性和密度不一致性;并利用重參數化的三維稀疏卷積網絡RepSpconv3D(re-parameterizes Spconv3D),在模型推理階段減少模型參數和推理時間。
作為主動式傳感器,激光雷達由發射器快速旋轉同時發射多股不同入射角度激光光束,并利用接收器接收反射光束,從而得到360°環視物體的位置和反射強度等表面信息,如圖1 所示。可以看出,盡管激光點云是由三維場景中分散點組成,但激光點云在本質上由自上而下多條掃描光束組成,形成的點云在每條掃描光束形成圓錐面內。當激光雷達掃描平面道路時,點云呈現類似圓環;當激光雷達掃描平面墻體時,點云呈現多條類似雙曲線輪廓圖。

圖1 激光雷達生成的點云
基于笛卡爾柵格的點云表述方法是對點云的坐標進行空間劃分,使點云結構化表述的同時保留了三維拓撲結構,折衷了點云處理的計算性能與精度。然而,由圖1 采集激光點云可知,數據點集中靠近于激光雷達傳感器,而遠離的點云相對稀疏,這使得數據點集中在坐標系原點附近柵格,而遠離原點的柵格幾乎沒有數據點。這不僅造成了計算能力的浪費,而且無法充分學習原點附近柵格單元內的特征。此外,柵格單元內可能含有不同類別標簽的數據點,這使得柵格內的預測結果忽略了少類別的點云結果而偏向相同類別最多,抑制了對少類別物體的識別能力。
文獻[13]中采用柱形柵格劃分的方法處理激光點云,有效地平衡了水平方向上激光點云在柵格內分布,緩解了激光點云密度不一致的問題。然而,采用柱形柵格劃分方法只解決激光點云水平方向的密度問題,對其垂直方向密度問題仍然存在。本文的錐形柵格劃分方法是結合激光雷達掃描原理進行點云處理,從而彌補上述的缺陷。
激光雷達通常采用前視圖作為輸入點云的原始數據。所提的錐形柵格劃分方法是在前視圖的基礎上增加一個相對傳感器的水平距離維度,從而保留三維柵格表述的幾何結構。具體地說,給定一幀激光點云中數據點的笛卡爾坐標(),則數據點轉換為錐形柵格單元坐標可表示為

式中:表示相對坐標系原點的水平距離;和分別表示激光雷達的方位角和傾斜角;~、~ 和~ 表示錐形柵格單元的坐標位置;?、?和?表示錐形柵格的各維度設定步長;■■· 為向下取整函數。

圖2 激光點云水平距離范圍內非空柵格的占比
為使網絡模型充分學習點云的三維幾何信息,同時處理室外激光點云的固有特性(即稀疏性和密度不一致),本文中提出了基于三維表述方式和三維稀疏卷積網絡的室外激光點云分割方法,整體網絡模型如圖3 所示。利用稀疏錐形柵格對激光點云進行劃分,使生成的柵格內點云分布更加均勻,從而解決點云稀疏性和密度不一致性;再采用重參數化的三維稀疏卷積網絡充分學習點云幾何特性,同時在模型推理階段提升內存使用率和計算效率。

圖3 整體網絡模型
具體地說,整體網絡模型由錐形柵格分區和重參數化的三維稀疏卷積網絡(RepSpconv3D)這兩大主要部分組成。首先,對激光點云進行錐形柵格分區,通過密集連接感知機(MLP)學習逐點特征,并利用最大池化聚集柵格單元內逐點特征,從而獲得稀疏錐形柵格的特征。然后,以編碼-解碼的網絡結構作為語義分割的骨干框架,通過RepSpconv3D 模塊提取局部柵格內的特征,通過步長為2 的卷積層進行下采樣,進一步通過步長為2 的反卷積層進行上采樣。其中,每個網絡基本層由3 個RepSpconv3D模塊組成。最后,根據點與柵格之間索引關系,將錐形柵格的預測結果重映射到原始點云,獲得最終的激光點云語義分割結果。


圖4 錐形柵格分區網絡
(1)建立點云與稀疏錐形柵格之間的聯系。根據式(1)~式(3),對數據點的笛卡爾坐標P轉換為錐形柵格單元的位置坐標C∈{C|k=1},再利用哈希函數計算每個柵格單元對應的哈希值:

式中:(·)表示哈希函數;H表示第個錐形柵格單元對應的位置哈希值,從而構建數據點到錐形柵格單元的哈希映射關系,同時可實現高效的鍵值對搜索。
(2)建立逐點特征學習網絡。為了解決數據點在柵格單元內相對空間位置不一致,將數據點及所在柵格單元中心的笛卡爾坐標、錐形柵格坐標、兩者間的歐氏距離與點對應激光雷達的反射強度融合在一起;通過多層密集連接式MLP 獲得逐點的最終幾何特征,使得逐點特征與所在柵格單元中心具有一定的關聯性。逐點的幾何特征可表示為


· 表示歐式距離;⊕表示特征拼接操作;(·)為密集連接式MLP 函數,每個MLP 模塊內均含有批歸一化BN(batch normalization)和Relu 激活函數分別進行數據歸一化和激活。
(3)建立稀疏錐形柵格池化網絡。為了解決不同錐形柵格單元內數據點的數量不一致性問題,根據錐形柵格的位置哈希值,利用最大池化將錐形柵格單元內的逐點特征進行聚合,從而得到稀疏錐形柵格特征,可表示為

式中max(·,·)表示錐形柵格單元內數據點每個特征通道的最大值函數。
為了防止模型梯度消失和爆炸問題,通常采用多分支殘差結構和BN層加以解決,但這使得模型的計算量和內存消耗大大增加。最近,Ding等在2D圖像任務中采用多分支殘差結構方式訓練模型,而在模型推理階段利用結構重參數化將多分支網絡結構轉化為單分支,類似VGG 網絡結構,保持模型預測精度不變同時提高其推理效率。受其啟發,將基于二維密集卷積的結構重參數化方法拓展到三維稀疏卷積處理3D 點云感知任務,進一步提高其計算效率。本文的RepSpconv3D 模塊在模型訓練時由3×3×3稀疏卷積、1×1×1稀疏卷積和Identity層3分支組成,且每一分支都使用BN 層,類似于ResNet 的殘差結構。在模型推理階段,利用重參數化技術將多分支網絡結構轉化為單分支3×3×3稀疏卷積。結構重參數化在本質上是一種數學等價變換,從而減少模型的計算參數和推理速度,具體工作流程如圖5 所示。結構重參數化主體包括稀疏卷積層與BN 層融合(見圖5(a))、多分支稀疏卷積層融合(見圖5(b))兩部分。其中,為了便于網絡參數轉換過程的表述,采用二維結構表示三維稀疏卷積核參數。

圖5 RepSpconv3D網絡的重參數轉化流程
2.3.1 稀疏卷積層與BN層融合
稀疏卷積層與BN層融合是將BN層的計算參數直接合并到稀疏卷積層,從而減少計算量,提高運算效率。稀疏卷積計算本質上跟密集卷積一樣,區別在于其只對于非空白柵格進行卷積計算而對于空白柵格不做任何操作。則稀疏卷積計算公式可表示為

式中:3(·)表示稀疏卷積的計算函數;表示稀疏卷積模塊的輸入;和分別表示稀疏卷積核的權重和偏置。
而BN層計算公式可表示為

式中:和分別表示尺寸因子和偏置參數;和分別表示樣本的均值和標準差;為固定的極小值(防止除數為0)。
值得注意的是,在模型訓練階段采用稀疏卷積核不帶偏置參數(即參數為0)令(3(,,),,,,,),則稀疏卷積層與BN層融合的計算公式表示為

通過式(9)變換,得

則稀疏卷積層與BN 層融合的計算公式最終可簡化為

由于在模型推理階段稀疏卷積核與BN 層的參數均為固定值,則公式與標準稀疏卷積在模型推理階段計算過程一致,從而省去了BN層的計算,提高了模型推理速度。
對于投資方向比較多元化的投資者,恐怕都比較擔心在貿易沖突持續升級、貿易戰威脅下,資產配置的變動對于居民正常生活的影響及應該如何應對資產配置的問題。目前的這種情況,對資本市場來說,更多是影響心理層面、市場情緒與風格偏好。投資股市與基金的投資者,要避免一些前期漲幅較大、估值較高、出口結構不太有利的行業或公司,并且尋找一些內需方面、影響程度相對較小的行業,好好把握買入與賣出的機會。而黃金作為標準的避險資產,資金量非常大的投資者可以考慮配置一定比例的黃金資產。資金量不多的投資者,購買黃金以及相關產品的意義不大,可以考慮與貿易戰相關性較低的投資,比如說消費金融類投資,注意回避農業相關投資。
2.3.2 多分支稀疏卷積層融合
當輸入輸出通道數相同且各分支稀疏卷積的步長相同時,可通過稀疏卷積層與BN層融合分別得到3×3×3 稀疏卷積、1×1×1 稀疏卷積和Identity 層3 分支。對于1×1×1 稀疏卷積的權重參數,通過填充0方式將其轉為3×3×3 稀疏卷積形式,而Identity 層可以看作為單位矩陣的1×1×1稀疏卷積權重參數進行處理。根據卷積核參數的可加性,通過對轉換后各分支3×3×3 稀疏卷積的權重和偏置參數相加,最終獲得單分支的標準3×3×3稀疏卷積參數。
本文的模型損失函數由位置幾何各向異性(geo-aware anisotrophic)損失函數、平均Top-K 損失函數和Lovász 損失函數3 部分組成。其中,位置幾何各向異性損失函數能有助于恢復激光點云場景中物體邊緣與稀疏點的細節信息。平均Top-K損失函數通過選擇性在網絡優化過程中傾向于復雜樣本,從而緩解數據集樣本不平衡的問題。此外,Lovász 損失函數是以評價指標交叉比mIoU(mean intersection over union)為優化目標,進一步提高語義分割結果。
位置幾何各向異性損失函數可表示為

式中:和分別表示真實標簽和預測標簽;表示錐形柵格的單元個數;表示數據集的類別數量。其中,局部幾何各向異性因子定義為

式中和q分別表示局部幾何各向異性的滑動窗口的中心柵格類別和局部相鄰柵格類別。根據實驗經驗選取滑動窗口為中心柵格單元相鄰5 個單位距離的柵格范圍。
Top-K損失函數可表示為

式中(·)表示函數集合內第大值。根據實驗經驗,設置為錐形柵格單元數量的10%。

式中:(·,·)表示Lovász損失函數;、和分別為各損失函數的權重值,在實驗中分別設置為0.5、1.5和4。
實驗階段采用SemanticKITTI 和nuScenes 兩個室外道路場景的激光點云數據集對所提方法進行評估。
3.1.1 SemanticKITTI數據集介紹
SemanticKITTI數據集是在經典自動駕駛數據集KITTI 的基礎上,對激光點云數據精細化語義標注。該數據集采用傾斜角-24.8°~2°的64 線激光雷達Velodyne-HDLE64對德國卡爾斯魯厄的道路場景收集了22 個點云序列共43 551 幀激光點云數據,且每幀點云大約含13 萬點。其中,將00-10 序列共23 201幀激光點云作為訓練集(08序列共4 071幀激光點云作為驗證集),而11-21 序列共20 351 幀激光點云作為測試集。該數據集提供了高達28 類標簽,但在官方單次掃描評估中只采用19類高頻標簽。
3.1.2 nuScenes數據集介紹
nuScenes 數據集是用于自動駕駛的三維目標檢測、跟蹤、分割等感知任務的多模態數據集。該數據集采用傾斜角-30°~10°的32 線激光雷達Velodyne-HDL32E 對波士頓和新加坡的不同地區收集了1 000個場景的點云數據,且每個場景采集時間超過20 s。其中,28 130幀點云用于訓練,6 019幀點云用于驗證,6 008 幀點云用于測試,且每幀點云大約含3.4 萬點。該數據集提供了高達34 類標簽,與SemanticKITTI 數據集類似,只有16類高頻標簽用于官方評估。與SemanticKITTI 相比,nuScenes 采用傳感器的光束數較少且水平角分辨率較低,導致點云更加稀疏,這增加了語義分割的難度。
3.1.3 實驗參數配置
實驗基于Python3.7 編譯器,采用Pytorch 1.7、Spconv 1.2、CUDA11.1等開源庫,在硬件配置為2張Nvidia RTX 3090顯卡的計算機上運行。
在SemanticKITTI 數據集中,使用尺寸為500×720×64 的錐形柵格對水平半徑50 m 且傾斜角-24.8°~2°的激光點云區域范圍進行分區。而在nuScenes 數據集中,使用尺寸為500×720×32 的錐形柵格對水平半徑50 m 且傾斜角-30°~10°的激光點云區域范圍進行分區。整體網絡模型設置初始學習率為0.005,batch_size 為6,訓練輪次epoch 為30,采用SGD 優化器訓練網絡模型,每個epoch 的學習率衰減10%。
3.1.4 評價指標
為了驗證所提方法的有效性,本文遵循SemanticKITTI 和nuScenes 數據集官方提供的評價指標交叉比mIoU,其表述為

式 中:TP、FP和FN分 別 表 示 第類 別 的 真 陽 性(True Positive)、假陽 性(False Positive)、假陰性(False Negative);為數據集的標簽類別數量。
在實驗中,對比了本文所提的方法與目前主流的激光點云語義分割方法在SemanticKITTI 測試集上的評估結果,如表1 所示。所提方法取得71.0%mIoU,相比目前最先進的基于笛卡爾柵格的方法(AF)2-S3Net 高1.3%mIoU 和基于柱形柵格的方法Cylinder3D高3.2%mIoU。尤其,在自行車、桿、交通標志等少類別物體能更為準確地識別。在SemanticKITTI 驗證集上,通過實驗從可視化角度分析本文的方法、MinkNet42、Cylinder3D 的錯誤識別分布情況,結果如圖6 所示。其中,紅色點表示各方法的錯誤識別數據點,而灰色點表示各方法準確地識別。可以看出,所提方法能具有更低的錯誤識別率,在貨車、自行車等少類別物體能正確地識別,適用于復雜場景下運行。

圖6 SemanticKITTI驗證集的可視化分析

表1 SemanticKITTI測試集的預測結果
表2顯示所提方法與目前主流的激光點云語義分割方法在SemanticKITTI 驗證集上性能評估結果,其中,推理時間是每幀激光點云在單張Nvidia RTX 3090 顯卡上處理的時間。可以看出,所提方法通過結構重參數化技術轉換模型,相比于未轉換模型具有相同分割精度,但在模型參數、內存消耗、推理時間方面均有顯著地下降;相比于基于柱形柵格的方法Cylinder3D 在分割精度上提高了3.4% mIoU,推理速度提高1.8 倍。這得益于結構重參數化引入使得網絡整體的計算操作和內存操作得以降低。

表2 SemanticKITTI驗證集的性能評估結果
此外,進一步在SemanticKITTI 驗證集上實驗分析了本文算法、MinkNet42 和Cylinder3D 3 種方法對激光點云與傳感器在不同距離下語義分割的mIoU結果,如圖7 所示。激光點云的密度隨著水平距離增加逐漸下降,所有方法的分割效果隨之變差。所提方法在激光點云全范圍內的預測結果都優于MinkNet42 和Cylinder3D,尤其在近距離情況下表現更加優越。這得益于本文所提錐形方法在近距離的點云劃分柵格更加細化,使得網絡能充分學習點云的幾何信息。

圖7 激光點云在不同水平距離的預測結果
在實驗中,對比了所提方法與目前主流的激光點云語義分割方法在nuScenes 測試集上評估結果,如表3 所示。所提的方法優于目前主流的方法(包括PolarNet、Cylinder3D、JS3C-Net、AMVNet)。具體地說,相比于目前基于笛卡爾柵格的方法JS3C-Net和柱形的方法Cylinder3D,所提的方法分別提高了4.6%和1.0% mIoU;相比于基于二維投影的方法,則提高了0.8%~8.8% mIoU。此外,本文的方法比其他方法能更好地識別自行車、路障、行人等少類別稀疏點云,這也證明了所提出的方法在更加稀疏的激光點云數據上仍然有效。

表3 nuScenes測試集的預測結果
為了驗證所提方法對不同網絡模塊的有效性,在SemanticKITTI 驗證集上進行一系列消融實驗。此外,還分析基于三維稀疏卷積的結構重參數化網絡不同分支組合對語義分割結果的影響。
3.4.1 不同網絡模塊消融結果分析
通過實驗驗證所提方法對不同網絡模塊的有效性,結果如表4 所示。其中,采用基于笛卡爾柵格和三維卷積網絡作為基準網絡。可以看出,錐形柵格分區比基于笛卡爾柵格的基準網絡提升了2.4%mIoU,基于三維稀疏卷積的結構重參數化網絡進一步提升了2.8% mIoU,這表明錐形柵格和基于三維稀疏卷積的結構重參數化網絡在所提方法的有效性。此外,平均Top-K 損失函數通過網絡優化傾向于識別復雜樣本,有效地提升了2.1%mIoU,再通過添加Geo-aware 損失函數細化物體邊緣與稀疏點的細節信息,進一步提升了2.6%mIoU,從而獲得本文的整體網絡模型。

表4 不同網絡模塊消融結果
3.4.2 重參數化網絡的有效性分析
通過實驗進一步驗證重參數化網絡各分支的重要性,結果如表5 所示。在所提模型的基礎上,通過基于三維稀疏卷積的結構重參數化網絡移除Identity 分支或稀疏卷積分支不同組合進行消融實驗分析。其中,推理時間是模型訓練階段(未使用網絡重參數化轉換)在單張Nvidia RTX 3090 顯卡(batch_size=3)上平均每幀激光點云處理的時間。可以看出,采用單一分支3×3×3 稀疏卷積層僅得到68.4%。相對于單一分支網絡,僅增加Identity 分支提升了0.1% mIoU,僅增加1×1×1 稀疏卷積分支提升了0.7% mIoU,而同時增加Identity 分支和1×1×1稀疏卷積分支(即所提模型)能夠提升2.1% mIoU,最終達到70.5% mIoU。從模型訓練階段的推理速度可以看出,通過結構重參數化去除Identity 和稀疏卷積分支會帶來推理速度顯著地提升。

表5 重參數化網絡不同分支組合消融結果
本文提出一種基于三維錐形柵格和稀疏卷積的激光點云語義分割方法。結合激光雷達點云掃描方式,提出了一種基于錐形柵格的點云分區解決激光點云的稀疏性和密度不一致性,并保留點云的三維幾何拓撲結構;進一步提出了基于三維稀疏卷積的結構重參數化網絡提升模型推理速度。在SemanticKITTI 和nuScenes 兩個大規模室外激光點云數據集上,通過實驗結果表明所提方法均優于目前主流的幾種點云分割方法,證明了錐形柵格在激光點云處理中的有效性。
此外,本文所提的方法不只局限于激光點云語義分割,未來可進一步拓展到激光點云的實例分割和目標檢測等感知任務。