BEV新變革!GaussianBEV:首次將Gaussian引入BEV感知領域!
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
寫在前面&筆者的個人理解
BEV感知又要進化了!今天看到了一篇BEV感知結合3D Gaussian實現BEV分割的任務,很贊!!!性能暫時算不上驚艷,但范式上有很大的參考性,分割任務上是可行的,OCC、檢測等任務也可以考慮!
BEV感知已經廣泛用于環視3D感知。它允許將不同相機的特征合并到一個空間中,提供3D場景的統一表示。其核心是view transformer,將圖像視圖轉換為BEV。然而基于幾何或cross-att的view transformer方法并不能提供足夠詳細的場景表示,因為它們使用的3D空間的子采樣對于建模環境的精細結構來說是不足的。于是本文提出了GaussianBEV,這是一種將圖像特征轉換為BEV的新方法,通過使用一組在3D空間中定位和定向的3D高斯來精細地表示場景。然后通過調整基于高斯splatting的3D表示渲染,以生成BEV特征圖。GaussianBEV是第一種在線使用這種3D高斯建模和3D場景渲染過程的方法,即不在特定場景上對其進行優化,而是直接集成到單階段模型中以用于BEV場景理解。實驗表明,所提出的表示方法非常有效,將高斯BEV作為nuScenes數據集上BEV語義分割任務的最新技術。
總結來說,GaussianBEV主要貢獻如下:
- GaussianBEV利用3D高斯表示從圖像生成BEV特征圖,從而實現精細的3D場景建模。然后使用柵格化模塊在BEV中splatting此表示。據我們所知,這是第一次提出非場景特定的高斯splatting表示并將其集成到感知模型中。
- 驗證明了我們的方法的有效性,使其成為BEV語義分割的最新技術。
相關工作回顧
基于深度。基于像素深度估計和圖像特征的顯式預測,建立了一系列模型。結合相機標定參數,這使得2D特征能夠反投影到3D特征點云中,最終在BEV網格中聚合。為了適應深度估計的不確定性,特征實際上沿著穿過其像素的光線傳播,并由離散的深度概率估計進行微調。為了改進深度預測,提出了一種在模型訓練期間使用LiDAR數據的顯式深度監督方案。然而,基于深度的方法對光線采樣策略很敏感,通常是沿著光線和物體表面反向投影特征(見圖1a)。
基于投影。通過嚴格的比較研究,[7]建議放棄深度估計,轉而采用更簡單的投影方案:使用一組預定義的3D點來描述場景,并通過使用校準數據將點投影到相機特征圖上來探測相機特征。此投影忽略了實際對象和背景放置,但返回了場景的更密集表示,沒有超出對象表面深度的空隙。通過選擇稀疏網格表示來減少生成BEV網格的計算和內存開銷。基于投影的視圖變換方法很簡單,但會產生粗略的BEV表示,因為沿著光線的所有體素都接收到相同的特征(見圖1b)。
基于注意力。利用Transformer模型的最新進展,深度估計被基于注意力的特征調制方案所取代。提出了幾種優化方案來解決圖像和BEV網格標記之間成對匹配的計算復雜性:空間和時間注意力的因子分解、可變形注意力、標定和時間戳先驗的引入。對于分割任務,由于需要定義密集的查詢映射,基于注意力的視圖轉換在計算和內存方面都是密集的。這就是為什么一些方法預測低分辨率BEV(見圖1c),然后通過逆卷積對其進行上采樣。
高斯splatting。高斯splatting(GS)是一種3D場景渲染技術,它使用3D高斯來描述場景。每個高斯函數都由其位置、比例、旋轉、不透明度和球諧顏色模型參數化。整個渲染管道是差分的,允許基于一組圖像將高斯參數優化到特定場景。GS既快速又并行,允許在GPU上進行實時操作。此外,通過修剪更窄、更透明的高斯分布,可以在細節和渲染速度之間進行權衡。與稀疏體素網格相比,高斯網格提供了更有效的場景表示,因為單個高斯網格可以描述大體積,而較小的高斯網格可以以任意分辨率精確編碼更精細的細節。細節和光柵化分辨率是渲染管道的參數,而不是場景描述。已經提出了幾個擴展,允許管理動態對象或從表示中的基礎模型中提取語義特征。在所有情況下,高斯表示都是特定于場景的。
在我們的工作中,我們建議使用高斯表示來克服以前視圖變換方法的缺點。與之前離線學習高斯表示的高斯電高斯splatting不同,我們建議學習一個能夠提供場景在線高斯表示的神經網絡。
詳解GaussianBEV
整體結構如圖2所示:
3D Gaussian generator
給定輸入特征圖F,3D高斯生成器使用多個預測頭預測場景的3D高斯表示。圖3說明了它如何在特征圖上運行。
高斯中心。場景中高斯分布的3D位置由應用于F的深度頭和3D偏移頭估計。第一種方法預測3D中心沿光線的初始位置。第二種方法通過向其添加一個小的3D位移來細化這個3D位置,通過不沿光線凍結高斯分布,為高斯分布的定位提供了更大的靈活性。
更確切地說,對于坐標為($u_{n,i}$,$v_{n,i}$)的相機n的特征圖中的像素i,深度頭預測視差$d_{n,i}$∈[0,1]。為了補償從一個相機到另一個相機的焦距多樣性對深度預測的影響,如[23]中提出的,在參考焦距f中,視差被預測到一個縮放因子。知道與相機n相關的真實焦距fn,然后對度量深度$z_{n,i}$進行如下解碼:
然后使用第n個相機的內參Kn推導出相機參考系中的相應3D點:
產生的3D點被約束為沿著穿過所考慮像素的光線。由于這種約束,它們的定位不一定是最優的。為了克服這個問題,我們建議使用3D偏移預測頭。它的目的是提供一個小的位移$△_{n,i}$,應用于高斯的3D中心,以細化其在所有三個方向上的位置。通過以下步驟可以簡單地獲得精確的3D點:
在這個階段,為每個相機計算的3D高斯中心在相應的相機參考系中表示。為了在世界參考系中表達這些點,應用了外參矩陣[Rn|tn],實現相機到世界的轉換:
高斯旋轉。場景中高斯分布的3D旋轉是通過應用于F的旋轉頭來估計的。對于相機n的特征圖中的給定像素,它以單位四元數q的形式輸出偏心旋轉。像素的偏心旋轉對應于相對于穿過它的3D光線的旋轉。這種建模使旋轉頭更容易學習,因為它不知道與它正在處理的像素對應的光線。例如,放置在場景中兩個不同位置并在相機參考系中具有不同絕對(自中心)旋轉的兩個對象在圖像中可能具有相同的外觀。在這種情況下,旋轉頭預測的偏心旋轉將是相同的。然后,使用相機的固有參數來檢索自中心旋轉信息。
為此,計算表示穿過相機n的像素i的光線與軸$[0,0,1]^T$之間的旋轉的四元數。然后通過以下步驟恢復表示相機參考系中的自中心旋轉的四元數:
最后,對于高斯中心,使用$q^w_{n,i}$計算表示高斯在世界參考系中的旋轉的四元數,該四元數對相機n的相機到世界的旋轉進行建模:
高斯尺寸、不透明度和特征。最后三個高斯參數不依賴于光學特性和相機定位,而是編碼語義特性。因此,簡單地使用三個頭來預測BEV光柵化器模塊渲染高斯集G所需的集S、O和E。
BEV rasterizer
BEV光柵化器模塊用于從3D高斯生成器預測的高斯集G中獲得BEV特征圖B。為此,高斯高斯splatting中提出的差分光柵化過程已被調整為執行這種渲染。第一種調整已經在其他離線語義重建工作中提出,包括渲染C維特征而不是顏色。在我們的例子中,這會產生一個包含感知任務所必需的語義特征的渲染。第二個調整涉及所使用的投影類型。我們對渲染算法進行了參數化,以生成正交渲染而不是透視渲染,更適合場景的BEV表示。
GaussianBEV training
高斯正則化損失。盡管高斯BEV可以通過上述損失進行有效訓練,但直接作用于高斯表示的正則化函數的添加提高了其代表性。特別是,在訓練過程中增加了兩個正則化損失。
首先,深度損失旨在使用激光雷達在圖像中的投影提供的深度信息來規范高斯人的位置。這種損失增加了對深度水頭預測的約束,以獲得初始3D位置,然后通過3D偏移對其進行細化。深度損失Ldepth定義如下:
其次,早期監督損失旨在優化BEV骨干之前的高斯表示。其想法是限制BEV特征,以直接為語義分割任務提供所有必要的信息。在實踐中,分割頭被添加并直接連接到BEV光柵化器模塊的輸出。早期監督損失的定義與Lsem類似。因此,總損失函數由下式定義:
實驗結果
結論
本文介紹了GaussianBEV,這是一種新的圖像到BEV變換方法,是BEV語義分割的最新進展。基于在線3D高斯生成器,它將圖像特征圖的每個像素轉換為語義化的3D高斯。然后,高斯人被潑灑以獲得BEV特征圖。我們已經證明,高斯表示能夠適應場景中存在的不同幾何結構,從而實現精細的3D建模。我們希望這項初步工作將為使用在線高斯splatting表示的3D感知的進一步研究打開大門。