RSN(Range Sparse Net)的翻譯解讀

王道文 2024-06-29 21:24 11次浏览 0 条评论 taohigo.com

RSN是range view另一個代表性工作,range view由於其原生、緊湊的表達特點,近年來在3D檢測/分割的工作越來越多,這篇論文是waymo在2021年發表在CVPR的工作,關鍵詞:時序、前景點、稀疏卷積。但是這篇論文沒有開源代碼。

摘要

從LiDAR數據中檢測3D物體是大多數自動駕駛系統中的一個關鍵組成部分。安全、高速的駕駛需要更大的探測范圍,而新的LiDAR可以做到這一點。這些更大的探測范圍需要更有效和準確的探測模型。為瞭實現這一目標,我們提出瞭Range Sparse Net(RSN)—一個簡單、高效和準確的三維物體檢測器–以解決這一擴展檢測系統中的實時三維物體檢測。RSN從RV圖像中預測前景點,並在選定的前景點上應用稀疏卷積來檢測物體。在密集的RV圖像上進行輕量級的二維卷積,導致所選的前景點明顯減少,從而使RSN中後來的稀疏卷積能夠有效地運行。結合RV圖像的特征,進一步提高檢測精度。RSN在Waymo開放數據集(WOD)的150米×150米的檢測區域上以每秒60幀以上的速度運行,同時比之前發佈的檢測器更準確。截至2020年11月,根據基於LiDAR的行人和車輛檢測的APH/LEVEL_1指標,RSN在WOD排行榜上排名第一,同時比替代方案快幾倍。

1.介紹

在穩步提高三維物體檢測器算法的準確性和效率的同時[ 37, 24 , 21 , 16, 42 , 32, 22 , 30, 5 , 35, 3 ],LiDAR傳感器硬件的最大范圍和保真度也在提高,以滿足安全、高速駕駛的需要。一些最新的商業LiDAR可以在車輛周圍的各個方向感應到250米[12]和300米[36]。這種大體積的覆蓋對高效和準確的三維檢測方法提出瞭強烈的要求。基於網格的方法[43 , 16, 42 , 35, 8]將三維空間劃分為體素或支柱,每個體素或支柱可選擇使用PointNet[25]進行編碼。密集的卷積被應用於在網格上進行提取特征。這種方法對於長距離或小物體檢測所需的大網格來說是低效的。稀疏卷積[30]對大的檢測范圍有更好的擴展,但由於應用於所有點的缺陷,通常很慢。RV圖像是原生的、密集的表示,適合於處理由單個LiDAR捕獲的點雲。基於RV圖像的方法[21 , 3]直接對range進行卷積,以提取點雲特征。此類模型隨距離擴展良好,但在處理遮擋、準確的物體定位和尺寸估計方面往往表現較差。第二階段,完善一組最初的候選檢測,可以幫助緩解其中的一些質量問題,但要付出大量的計算成本。

為瞭解決現有方法的缺點,我們介紹一種新穎的3D物體檢測模型— Range Sparse Net (RSN) – 通過結合基於密集RV圖像和網格的方法的優勢來提高 3D 檢測精度和效率。RSN首先應用輕量級2D卷積網絡,從高分辨率RV圖像中有效地學習語義特征。與現有的RV圖像方法不同,RSN被訓練用於高召回率前景分割。在隨後的階段,稀疏卷積僅應用於預測的前景體素及其學習的RV圖像特征,以便準確回歸 3D 框。引入瞭可配置的稀疏卷積主幹和專為處理稀疏體素而設計的定制CenterNet [41]頭,以實現端到端,高效,準確的對象檢測,而無需非最大抑制。圖 1 總結瞭 RSN 模型與 WOD 驗證集上的其他模型相比獲得的主要收益,以證明 RSN 的有效性和準確性。可配置的稀疏卷積主幹和專為處理稀疏體素而設計的定制 CenterNet [41] 頭被引入以實現端到端、高效、準確的目標檢測,而無需non-maximum-suppression(nms)。圖 1 總結瞭與 WOD 驗證集上的其他模型相比,RSN 模型獲得的主要收益,以證明 RSN 的效率和準確性。

圖1.準確性(WOD 驗證集上的 3D AP/L1)與延遲(毫秒)。RSN 模型的性能明顯優於其他模型。有關更多詳細信息,請參閱表 1 和表 2。

RSN是一種新穎的多視圖融合方法,因為它將信息從RV圖像傳輸到3D視圖(前景點上的稀疏卷積)。它的融合方法與現有的多視圖檢測方法[42,35]的不同之處在於:1)RSN的第一階段直接在高分辨率RV圖像上操作,而過去的方法[42,35]執行體素化(在圓柱形或球面坐標系中),這可能會失去一些分辨率,特別是對於遠處的小物體。2)RSN的第二階段僅處理第一階段選擇為前景的3D點,這在特征質量和效率方面都有所提高。

RSN的設計結合瞭使模型非常有效的幾種見解。初始階段經過優化,可快速區分前景和背景點,該任務比全3D檢測更簡單,並允許以全分辨率將輕量級2D圖像主幹應用於RV圖像。下遊稀疏卷積處理僅應用於可能屬於前景對象的點,從而在計算方面額外節省大量成本。此外,通過在輸出上聚合局部最大值中心點來消除昂貴的後處理,例如非最大抑制,類似於CenterNet [41]。

在這項工作中,我們做出瞭以下主要貢獻:1. 我們提出瞭一種簡單、高效和準確的 3D LiDAR 檢測模型 RSN,該模型利用 LiDAR RV進行前景物體分割,通過稀疏卷積來有效地處理分割的前景點以檢測物體。2. 我們在RSN中提出瞭一種簡單而有效的時間融合策略,幾乎沒有額外的推理成本。3. 在Waymo開放數據集[34](WOD)的實驗中,我們展示瞭最先進的準確性以及車輛和行人檢測的效率。在內部數據集上的實驗進一步證明瞭RSN在遠程物體檢測方面的可擴展性。4. 我們進行消融研究,以檢查RV圖像特征的有效性以及前景點選擇閾值或端到端模型訓練等方面對延遲和準確性的影響。

2.相關工作

2.1. 激光雷達數據表示

這是用於 3D 對象檢測的四種主要 LiDAR 數據表示形式,包括體素網格、點集、RV圖像和混合。

基於體素網格的方法。3D 點被劃分為體素格網。每個體素都使用手工制作的指標進行編碼,例如體素要素均值和協方差。Vote3Deep [ 7 ] 是第一個將由稀疏 3D 卷積組成的深度網絡應用於 3D 檢測的公司。他們還提出瞭L1懲罰,以支持更深層的稀疏性。體素可以分散到偽圖像中,偽圖像可以通過標準圖像檢測架構進行處理。MV3D [ 4]、PIXOR [ 38] 和 Complex YOLO [33] 是基於這種方法的著名模型。體素網絡 [43] 在每個體素中應用 PointNet [ 25 ] 以避免手工制作的體素特征。PointPillars [ 16 ] 引入瞭 2D 支柱來取代 3D 體素以提高模型效率。對於足夠小的 3D 體素大小,如果使用 3D 稀疏卷積,則可以刪除 PointNet。基於這種方法的著名例子包括Second [ 37 ]和PVRCNN [30]。

基於體素的方法有三個主要缺點。1)體素大小在所有范圍內都是恒定的,這限制瞭模型在距離上的能力,通常需要更大的感受野。2)對完整3D網格的要求對長距離造成瞭限制,因為復雜性和內存消耗都隨范圍二次或立方縮放。稀疏卷積可用於提高可伸縮性,但通常仍受到大量體素的限制。3) 由於上述可擴展性問題,體素表示的分辨率有限。

基於點集的方法。這一系列方法將點雲視為無序集合。大多數方法基於開創性的PointNet和變體[25,26]。FPointNet[ 24 ] 從圖像中獲得的 2D 建議給出的裁剪點雲中檢測對象;PointRCNN[ 32] 直接從每個點提出對象;STD [39] 依賴於稀疏到密集的策略來更好地細化提案;DeepHough [23 ] 探索瞭在生成框提案之前進行deep hough 投票以獲得更好的分組點。盡管這些方法有可能隨著范圍更好地擴展,但它們落後於體素方法的質量。此外,它們需要最近鄰搜索輸入,隨點數縮放,這可能成本很高。

基於距離圖像的方法。盡管是從單個視點(例如激光雷達)捕獲的 3D 點的原生和密集表示,但之前使用 2D 距離模型的工作並不廣泛。LaserNet [ 21 ] 應用傳統的 2D 卷積網絡將圖像距離直接定向到回歸盒。RCD-RCNN [3] 追求距離條件膨脹以增強傳統的 2D 卷積,然後是第二階段來完善所提出的距離圖像框,該框也被 Range-RCNN [18] 使用。在對 2D 圖像執行 2D 卷積時,僅從距離圖像中學習的特征非常有效,但在處理遮擋、準確的對象定位和尺寸回歸方面並不擅長,這通常需要更具表現力的 3D 特征。

混合方法。MultiView [42] 融合瞭從球面坐標和笛卡爾坐標中的體素中學習的特征,以減輕基於網格的方法中固定體素離散化導致的有限的距離感受野。Pillar-MultiView [35 ] 通過進一步將融合的球面和笛卡爾特征投影到鳥瞰視圖,然後進行額外的卷積處理以產生更強的特征來改進 [42]。這些方法面臨著與體素方法類似的可伸縮性問題。

2.2. 目標檢測架構

典型的兩階段檢測器[10,9,28,6]生成一組稀疏的感興趣區域(RoIs),並通過網絡對每個區域進行分類。PointRCNN [32 ]、PVRCNN [30]、RCD-RCNN [ 3] 與 Faster-RCNN 共享類似的架構,但依賴於為不同點雲表示設計的不同區域提案網絡。單級檢測器通過引入YOLO [27],SSD [20]和RetinaNet [19]而普及。類似的架構用於對單階段3D點雲方法進行設計[43,16,37,42,35]。與PVRCNN [30]等兩階段方法相比,這些方法具有競爭力的準確性,但延遲要低得多。基於關鍵點的體系結構,如 CornerNet [17] 和 CenterNet [ 41],可實現端到端訓練,而無需非最大抑制。AFDet [ 8 ] 將 CenterNet 式檢測頭應用於類似 PointPillars 的探測器,用於 3D 點雲。我們提出的RSN方法也依賴於兩個階段。然而,第一階段執行分割而不是框建議估計,第二階段從分割的前景點檢測對象,而不是執行 RoI 細化。RSN 使 CenterNet 檢測頭適應稀疏體素。

3. Range Sparse Net

這項工作的主要貢獻是Range Sparse Net(RSN)架構(圖2)。RSN 接受原始 LiDAR 距離圖像 [34] 作為提取距離圖像特征的高效 2D 卷積主幹的輸入。分割頭(unet)被添加到處理距離圖像特征中。

圖2

圖2.(最佳彩色查看)RSN對象檢測架構。該網絡由五個部分組成:1)距離圖像特征提取:對距離圖像進行二維卷積網絡,用於提取相關的圖像特征。2)前景點選擇:前景點在2a中的距離圖像上分割);與學習的距離圖像特征一起,將它們收集到2b中的稀疏點)。3)稀疏點特征提取:通過應用稀疏卷積在選定的前景點上提取每個點的特征。4)一個稀疏的CenterNet head回歸到框。紅色點是選定的前景點。淺灰色框是地面事實。藍綠色框是檢測結果。

這分割瞭背景和前景點,前景點是真實目標裡的點。與傳統的語義分割不同,在這個網絡中,召回比高精確度更重要。我們根據分割結果選擇前景點。選定的前景點被進一步體素化並饋送到稀疏卷積網絡中。這些稀疏卷積非常有效,因為我們隻需要在少量的前景點上進行操作。最後,我們應用修改後的 CenterNet [41 ] 頭來有效地回歸 3D 框,而不會進行非最大抑制。

3.1. Range Image Feature Extraction (RIFE)

距離圖像是LiDAR傳感器捕獲的數據的原生密集表示。我們的輸入距離圖像包含距離、強度和反射率通道,其中距離是收集點時從 LiDAR 到點的距離,而強度和反射率是 LiDAR 返回屬性,可以用其他 LiDAR 特定信號替換或增強。輸入距離圖像的通道值通過裁剪和重新縮放到 [0, 1] 進行歸一化。

在距離圖像上應用二維卷積網絡,以學習距離圖像特征並進行前景分割。我們采用輕量級的U-Net [29],其結構如圖3所示。每個 D(L, C) 下采樣模塊包含 L個resnet [13] 模塊,每個模塊都有 C個輸出通道。在每個塊中,第一個塊的步幅為 2。每個 U (L, C) 模塊包含 1 個上采樣層和 L個resnet 模塊。所有 resnet 塊都有步幅 1。上采樣層由 1 × 1 卷積組成,然後是雙線性插值。

圖3.距離圖像U-Net特征提取器,用於計算高級語義范圍特征。有關詳細信息,請參閱第 3.1 節。

3.2. Foreground Point Selection

為瞭通過下遊處理中的稀疏性最大限度地提高效率,這種二維卷積網絡的輸出是將輸入數據減少到僅可能屬於對象的點。在這裡,1×1卷積層對3.1中學習的距離圖像特征執行像素級前景分類。這一層是用焦點損失[ 19]訓練的,真實標簽來自三維邊界盒,檢查相應的像素點是否在任何盒子裡。

P是有效距離圖像像素的總數。Li是i點的焦點損失。前景得分si大於閾值γ的點被選中。由於假陽性可以在後面的稀疏點特征提取階段(第3.3節)中去除,但假陰性不能恢復,所以前景閾值的選擇是為瞭達到高召回率和可接受的精度。

3.3. Sparse Point Feature Extraction (SPFE)

我們將動態體素化[ 42 ]應用於選定的前地點。與PointPillars[16]類似,我們在每個點p上附加p – m, var, p – c,其中m, var是每個體素的算術平均值和協方差,c是體素中心。體素大小沿每個維度表示為∆x,y,z。當使用二維稀疏卷積的支柱式體素化時,∆z被設置為+∞。選定的前地點被編碼為稀疏體素特征,可以選擇由 PointNet[25]進一步處理。一個二維或三維稀疏卷積網絡(分別用於支柱式或三維式體素化)被應用於稀疏體素。圖4說明瞭用於車輛和行人檢測的網絡構件和網絡結構的例子。更多的網絡結構細節可以在附錄A中找到。

圖4. SPFE構件和網狀結構的例子。使用細節見3.3節。SC表示3×3或3x3x3稀疏卷積[ 11 ],跨度為1或2。SSC表示3X3或3X3X3的子網格稀疏卷積。PedL(2D)和CarL(2D)是大型的行人和車輛SPFE。/2表示跨度為2。

3.4. Box Regression

我們使用修改過的CenterNet [41 , 8]頭來有效地從點特征中回歸盒子。這在圖5中得到瞭說明。σ是一個每類常數。我們使用一個單一的全連接層來預測熱圖和盒子的參數。熱圖是用懲罰性減弱的焦點損失[41, 19]進行回歸的。

圖5. RSN中心點熱圖的計算。熱圖值是由點和放置在盒子中心的圓之間的距離計算出來的,半徑是盒子中心到最近的點(紅點)的距離。

網絡是端到端訓練的,總損失定義為:

3.5. Temporal Fusion

現有的基於距離圖像的檢測方法[21][3]對時間融合不友好,因為距離圖像是在自動駕駛汽車(SDC)移動時構建的(會造成邊界模糊)。由於自我運動,直接堆疊距離圖像對檢測性能幾乎沒有好處。從距離圖像中刪除自我運動不是最佳的,因為不同幀的距離重建會導致大的量化誤差。

時間RSN采用一系列時間順序固定的距離圖像作為輸入,如圖2所示。RIFE(特征提取)應用於每個距離圖像以分割前景點並提取距離圖像特征。然後我們變換所有被選中的點(所有幀)到最新的幀以消除自我運動。在 SPFE (稀疏卷積特征提取)階段,每個點從其自己的幀而不是所有幀計算並附加體素特征。這效果更好,因為它避免瞭在體素化過程中將不同幀的點混合在一起。此外,我們將最新幀的時間差(以秒為單位)附加到每個點,以區分不同幀的點。從所有幀中選擇的前景點由 SPFE 主幹處理,與單幀模型相同。

有關時間融合的更多詳細信息:

1) 時間 RSN 復制每個時間幀的 RIFE (§3.1) 和前景點選擇部分 (§3.3)。如圖 9 所示,每個分支共享權重並匹配單幀 RSN 的架構。這些分支一起訓練,而在推理過程中,當其他時間步重用之前的結果時,隻計算最後一幀。

2)分割分支後,點被收集到多組點Pδi,其中δi是幀0(最新幀)和幀i之間的幀時間差,通常接近0.1∗i秒。Pδi 中的每個點 p 都用 p − m、var、p − c、δi 和從 RIFE 階段學習的特征進行增強,其中 m、var 是來自 Pδi 的體素統計量。在此每幀體素特征增強之後,所有點合並為一組 P,然後是正常體素化和點網絡。模型的其餘部分與單幀模型相同。3) 給定輸入序列 F = {fi|i = 0, 1, …, },幀被重新分組為 ̃F = {(fi, fi−1, …, fi−k)|i = 0, 1, …} 以訓練具有幀 i 目標輸出的 k + 1 幀時間 RSN 模型。如果 i − k < 0,我們重用最後一個有效幀。

圖9

4.實驗

我們介紹瞭RSN實現的細節,並在多個實驗中說明瞭其效率和準確性。進行消融研究以瞭解各種RSN成分的重要性。

4.1. Waymo Open Dataset

我們主要以具有挑戰性的Waymo開放數據集(WOD)為基準[34]。WOD直接以高質量的距離圖像格式發佈其原始數據,這使得它更適合構建距離圖像模型。該數據集總共包含 1150 個序列,分為 798 個訓練、202 個驗證和 150 個測試。每個序列包含大約 200 幀,其中每個幀捕獲圍繞自我車輛的完整 360 度,從而產生維度為 64 × 2650 像素的距離圖像。該數據集有一個遠程激光雷達,范圍上限為 75 米,還有四個近距離激光雷達。我們隻使用瞭來自遠程激光雷達的數據,但仍然在全范圍上評估瞭我們的結果。實際上,RSN可以適應接受多個LiDAR圖像作為輸入。

4.2. 實現細節

RSN 在 Tensorflow 框架 [ 1] 中實現,其稀疏卷積實現類似於 [ 37 ]。行人和車輛分別接受不同的SPFE訓練(§3.3)。它們共享相同的RIFE(§3.1)。我們展示瞭 3 種車型 CarS、CarL、CarXL 和 2 款行人PedS、PedL 的結果,網絡詳細信息在 § 3.3 和附錄 A 中進行瞭描述。每個模型都可以使用單幀輸入(例如CarS 1f)或3幀輸入(例如CarS 3f)進行訓練。輸入圖像按min(v, m)/m歸一化,其中v為距離、強度和伸長率,m分別為79.5、2.0、2.0。如果有多個激光回波,則選取最後一個。

§3.2 中的前景分數截止γ設置為車輛 0.15,行人 0.1。方程 6 中的分割損失權重 λ1 設置為 400。體素化區域是[-79.5米,79.5米]×[-79.5米,79.5米]×[-5米,5米]。車輛模型和行人模型的體素大小分別設置為 0.2 米和 0.1 米。熱圖計算中每個對象σ設置為車輛 1.0 和行人 0.5。熱圖損失權重 λ2 在等式 6 中設置為 4。§3.4 中的熱圖閾值 δ1、δ2 均設置為 0.2。

我們在方程 3 的航向箱損失中使用 12 和 4 個箱分別用於車輛和行人的航向回歸。

4.3. 訓練和推理

RSN 在 Tesla V100 GPU 上使用 ADAM 優化器 [15]從頭開始端到端訓練。不同的 SPFE 主幹以最大可能的批量大小進行訓練,以適合 GPU 內存中的網絡。單幀模型在 8 個 GPU 上訓練。3 幀時態模型在 16 個 GPU 上訓練。我們采用瞭餘弦學習率衰減,初始學習率設置為0.006,5k預熱步從0.003開始,總共120k步。我們觀察到,諸如AP之類的準確性指標在訓練期間會波動,因為選擇SPFE的點不斷變化,盡管網絡總是在最後穩定下來。SPFE 的這種輸入多樣性為 RSN 增加瞭正則化。在每個體素內的 PointNet 中使用圖層歸一化 [2] 而不是批量歸一化 [14],因為輸入幀之間的前景點數變化很大。