首頁 >科技週邊 >人工智慧 >NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

WBOY
WBOY轉載
2024-01-11 10:24:51798瀏覽

写在前面&笔者的个人总结

鸟瞰图(Bird eye's view, BEV)检测是一种通过融合多个环视摄像头来进行检测的方法。目前算法大部分算法都是在相同数据集训练并且评测,这导致了这些算法过拟合于不变的相机内参(相机类型)和外参(相机摆放方式)。本文提出了一种基于隐式渲染的BEV检测框架,能够解决未知域的物体检测问题。该框架通隐式渲染来建立物体3D位置和单个视图的透视位置关系,这可以用来纠正透视偏差。此方法在领域泛化(DG)和无监督领域适应(UDA)方面取得了显著的性能提升。该方法首次尝试了只用虚拟数据集上进行训练在真实场景下进行评测BEV检测,可以打破虚实之间的壁垒完成闭环测试。

  • 论文链接:https://arxiv.org/pdf/2310.11346.pdf
  • 代码链接:https://github.com/EnVision-Research/Generalizable-BEV

NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

BEV检测域泛化问题背景

多相机检测是指利用多台摄像机对三维空间中的物体进行检测和定位的任务。通过结合来自不同视点的信息,多摄像头3D目标检测可以提供更准确和鲁棒的目标检测结果,特别是在某些视点的目标可能被遮挡或部分可见的情况下。近年来,鸟瞰图检测(Bird eye's view, BEV)方法在多相机检测任务中得到了极大的关注。尽管这些方法在多相机信息融合方面具有优势,但当测试环境与训练环境存在显著差异时,这些方法的性能可能会严重下降。

目前,大多数BEV检测算法都是在相同的数据集上进行训练和评估,这导致这些算法对相机内外参数和城市道路条件的变化过于敏感,过拟合问题严重。然而,在实际应用中,BEV检测算法常常需要适应不同的新车型和新摄像头,这导致这些算法失效。因此,研究BEV检测的泛化性非常重要。 此外,闭环仿真对于无人驾驶也非常重要,但目前只能在虚拟引擎(如Carla)中进行评估。因此,有必要解决虚拟引擎和真实场景之间的域差异问题

域泛化(domain generalization, DG)和无监督域自适应(unsupervised domain adaptation, UDA)是缓解分布偏移的两个有前途的方向。DG方法经常解耦和消除特定于领域的特征,从而提高不可见领域的泛化性能。对于UDA,最近的方法通过生成伪标签或潜在特征分布对齐来缓解域偏移。然而,如果不使用来自不同视点、相机参数和环境的数据,纯视觉感知学习与视角和环境无关的特征是非常具有挑战性的。

观察表明单视角(相机平面)的2D检测往往比多视角的3D目标检测具有更强的泛化能力,如图所示。一些研究已经探索了将2D检测整合到BEV检测中,例如将2D信息融合到3D检测器中或建立2D-3D一致性。二维信息融合是一种基于学习的方法,而不是一种机制建模方法,并且仍然受到域迁移的严重影响。现有的2D-3D一致性方法是将3D结果投影到二维平面上并建立一致性。这种约束可能损害目标域中的语义信息,而不是修改目标域的几何信息。此外,这种2D-3D一致性方法使得所有检测头的统一方法具有挑战性。

NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

本论文的的贡献总结

  1. 本论文提出了一种基于视角去偏的广义BEV检测框架,该框架不仅可以帮助模型学习源域中的视角和上下文不变特征,还可以利用二维检测器进一步纠正目标域中的虚假几何特征。
  2. 本文首次尝试在BEV检测上研究无监督域自适应,并建立了一个基准。在UDA和DG协议上都取得了最先进的结果。
  3. 本文首次探索了在没有真实场景注释的虚拟引擎上进行训练,以实现真实世界的BEV检测任务。

BEV检测域泛化问题定义

问题定义

研究主要围绕增强BEV检测的泛化。为了实现这一目标,本文探索了两个广泛具有实际应用价值的协议,即域泛化(domain generalization, DG)和无监督域自适应(unsupervised domain adaptation, UDA):

BEV检测的域泛化(DG):在已有的数据集(源域)训练一个BEV检测算法,提升在具有在未知数据集(目标域)的检测性能。例如,在特定车辆或者场景下训练一个BEV检测模型,能够直接泛化到各种不同的车辆和场景。

BEV偵測的無監督域自適應(UDA):在已有的資料集(來源域)訓練一個BEV偵測演算法,並且利用目標域的無標籤資料來提高偵測效能。例如,在一個新的車輛或城市,只需要收集一些無監督數據就可以提高模型在新車和新環境的性能。值得一提的是DG和UDA的唯一差異是是否可以利用目標域的未標記資料。

視角偏差定義

為了檢測物體的未知L=[x,y,z],大部分BEV檢測會有關鍵的兩部(1)獲取不同視角的影像特徵;(2)融合這些影像特徵到BEV空間並且得到最後的預測結果:

上面公式描述,域偏差可能來自特徵提取階段或BEV融合階段。然後本文進行了在附錄進行了推到,得到了最後3D預測結果投影到2D結果的視角偏差為:

其中k_u, b_u, k_v和b_v與BEV編碼器的域偏移有關, d(u,v)為模型的最終預測深度資訊。 c_u和c_v表示相機光學中心在uv影像平面上的座標。上面等式提供了幾個重要的推論:(1)最終位置偏移的存在會導致視角偏差,這表明最佳化視角偏差有助於緩解域偏移。 (2)即使是相機光心射線上的點在單一視角成像平面上的位置也會發生移位。

直觀地說,域偏移改變了BEV特徵的位置,這是由於訓練資料視點和相機參數有限而產生的過度擬合。為了緩解這個問題,從BEV特徵中重新渲染新的視圖影像是至關重要的,從而使網路能夠學習與視角和環境無關的特徵。有鑑於此,本研究旨在解決不同渲染視點相關的視角偏差,以提高模型的泛化能力

#詳解PD-BEV演算法

PD-BEV共分為三個部分:語意渲染,源域去偏見和目標域去偏見如圖1所示。語意渲染是闡述如如何透過BEV特徵建立2D和3D的透視關係。源域去偏見是描述在源域如何透過語意渲染來提高模型泛化能力。目標域去偏見是描述在目標域利用無標住的資料透過語意渲染來提高模型泛化能力。

NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

語意渲染

由於許多演算法會將BEV體積壓縮成二維特徵,因此我們首先使用BEV解碼器將BEV特徵轉換為一個體積:

上面的公式其實就是對BEV平面進行了提升,增加了一個高度維度。然後透過相機的內外參數就可以在這個Volume採樣成為一個2D的特徵圖,然後這個2D特徵圖和相機內外參數送到一個RenderNet裡面來預測對應視角的heatmap和物體的屬性。透過這樣的類似Nerf的操作就可以建立起2D和3D的橋樑。

源域去偏誤

要提高模型的泛化效能,有幾個關鍵點需要在源域進行改進。首先,可以利用源域的3D框來監控新渲染視圖的熱圖和屬性,以減少視角偏差。其次,可以利用歸一化深度資訊來幫助影像編碼器更好地學習幾何資訊。這些改進措施將有助於提高模型的泛化性能

視角語義監督:基於語義渲染,熱圖和屬性從不同的角度渲染(RenderNet的輸出)。同時,隨機採樣一個相機內外參數,將物體的方框從3D座標利用這些內外參數投射到二維相機平面內。然後對投影後的2Dbox與渲染的結果使用Focal loss和L1 loss進行約束:

#透過此操作,可以減少對相機內外參數的過度擬合,並提高對新視角的穩健性。值得一提的是,這篇論文將監督學習從RGB影像轉換為物件中心的熱圖,以避免在無人駕駛領域中缺乏新視角RGB監督的缺點

##幾何監督:提供明確的深度資訊可以有效地提高多相機3D目標偵測的效能。然而,網路預測的深度傾向於過度擬合內在參數。因此,這篇論文借鑒了一種虛擬深度的方式:

其中BCE()表示二元交叉熵損失,D_{pre}表示DepthNet的預測深度。 f_u和f_v分別為像平面的u和v焦距,U為常數。值得注意的是,這裡的深度是使用3D框而不是點雲提供的前景深度資訊。透過這樣做,DepthNet更有可能專注於前景物體的深度。最後,當使用實際深度資訊將語意特徵提升到BEV平面時,將虛擬深度轉換回實際深度。

目標域去偏誤

在目標域就沒有標註了,所以就不能用3D box監督來提升模型的泛化能力了。所以這篇論文闡述說,2D檢測的結果比起3D結果更加穩健。所以這篇論文利用在源域中的2D預訓練的偵測器作為渲染後的視角的監督,也利用了偽標籤的機制:

這個操作可以有效地利用精確的二維偵測來校正BEV空間中的前景目標位置,這是一種目標域的無監督正規化。為了進一步增強二維預測的校正能力,採用偽方法增強預測熱圖的置信度。這篇論文在3.2和補充資料裡給出了數學證明說明了3D結果在2D投影誤差的原因。以及闡述了為什麼透過這種方式可以去偏見,詳細的可以參考原文。

整體的監督

儘管在本文中添加了一些網路以幫助訓練,但這些網路在推理過程中是不必要的。換句話說,本文的方法適用於大多數BEV檢測方法學習透視不變特徵的情況。為了測試我們的框架有效性,我們選擇使用BEVDepth進行評估。在源域上使用BEVDepth的原始損失作為主要的三維檢測監督。總之,演算法的最終損失是:

跨域實驗結果

表格1展示了不同方法在領域中泛化(DG)和無監督領域適應(UDA )協議下的效果比較。其中,Target-Free表示DG協議,Pseudo Label、Coral和AD是一些常見的UDA方法。從圖表中可以看出,這些方法在目標域上都取得了顯著的改善。這顯示語意渲染作為一個橋樑可以幫助學習針對域移位的透視不變特徵。此外,這些方法並沒有犧牲源域的效能,甚至在大多數情況下還有一些改進。需要特別提到的是,DeepAccident是基於Carla虛擬引擎開發的,經過在DeepAccident上的訓練後,演算法取得了令人滿意的泛化能力。此外,也測試了其他BEV檢測方法,但在沒有特殊設計的情況下,它們的泛化性能非常差。為了進一步驗證利用目標域無監督資料集的能力,也建立了一個UDA基準,並在DG-BEV上應用了UDA方法(包括Pseudo Label、Coral和AD)。實驗證明,這些方法在性能上有顯著的提升。隱式渲染充分利用具有更好泛化性能的二維探測器來校正三維探測器的虛假幾何資訊。此外,發現大多數演算法傾向於降低源域的效能,而本文方法相對溫和。值得一提的是,AD和Coral在從虛擬資料集轉移到真實資料集時表現出顯著的改進,但在真實測試中卻表現出效能下降。這是因為這兩種演算法是為解決風格變化而設計的,但在樣式變化很小的場景中,它們可能會破壞語義資訊。至於Pseudo Label演算法,它可以透過在一些相對較好的目標域中增加置信度來提高模型的泛化效能,但盲目地增加目標域中的置信度實際上會使模型變得更差。實驗結果證明了本文演算法在DG和UDA方面取得了顯著的性能提升

NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

#在三個關鍵組件上的消融實驗結果展示在表格2中:2D檢測器預訓練(DPT)、源域去偏(SDB)和目標域去偏(TDB)。實驗結果表明,每個組件都取得了改進,其中SDB和TDB表現出相對顯著的效果

NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

#表格3展示了演算法演算法可以遷移到BEVFormer和FB- OCC演算法上。因為這個演算法是只需要對影像特徵和BEV特徵加上額外的操作,所以可以對有BEV特徵的演算法都有提升作用。

NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

圖5展示了偵測到的未標記物件。第一行是標籤的3D框,第二行是演算法的偵測結果。藍色框表示演算法可以偵測到一些未標記的框。這表明方法在目標域甚至可以檢測到沒有標記的樣本,例如過遠或街道兩側建築內的車輛。

NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

总结

本文提出了一种基于透视去偏的通用多摄像头3D物体检测框架,能够解决未知领域的物体检测问题。该框架通过将3D检测结果投影到2D相机平面,并纠正透视偏差,实现一致和准确的检测。此外,该框架还引入了透视去偏策略,通过渲染不同视角的图像来增强模型的鲁棒性。实验结果表明,该方法在领域泛化和无监督领域适应方面取得了显著的性能提升。此外,该方法还可以在虚拟数据集上进行训练,无需真实场景标注,为实时应用和大规模部署提供了便利。这些亮点展示了该方法在解决多摄像头3D物体检测中的挑战和潜力。这篇论文尝试利用Nerf的思路来提高BEV的泛化能力,同时可以利用有标签的源域数据和无标签的目标域数据。此外,尝试了Sim2Real的实验范式,这对于无人驾驶闭环具有潜在价值。从定性和定量结果都有很好的结果,并且开源了代码值得看一看

NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real

原文链接:https://mp.weixin.qq.com/s/GRLu_JW6qZ_nQ9sLiE0p2g

以上是NeRF在BEV泛化效能方面的突破:首個跨域開源程式碼成功實現Sim2Real的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除