0. 简介

3D占据预测在机器人感知和自动驾驶领域具有重要的潜力,它将3D场景量化为带有语义标签的网格单元。最近的研究主要利用3D体素空间中的完整占据标签进行监督。然而,昂贵的注释过程和有时模糊的标签严重限制了3D占据模型的可用性和可扩展性。为了解决这个问题,《RenderOcc: Vision-Centric 3D Occupancy Prediction with 2D Rendering Supervision》提出了RenderOcc,一种新的范式,用于仅使用2D标签训练3D占据模型。具体地,我们从多视图图像中提取类似NeRF的3D体积表示,并利用体积渲染技术建立2D渲染,从而能够通过2D语义和深度标签直接进行3D监督。此外,我们引入了一种辅助射线方法来解决自动驾驶场景中稀疏视角的问题,利用连续帧来为每个对象构建全面的2D渲染。据我们所知,RenderOcc是首次尝试仅使用2D标签训练多视图3D占据模型,减少了对昂贵的3D占据注释的依赖。大量实验证明,RenderOcc实现了与完全受3D标签监督的模型相当的性能,突显了这种方法在实际应用中的重要性。我们的代码可在Github找到。

1. 主要贡献

针对上述问题,我们引入了RenderOcc,这是一种新的范式,用于训练3D占据模型,使用2D标签,而不依赖于任何3D空间注释。如图1所示,RenderOcc的目标是消除对3D占据标签的依赖,仅依靠像素级的2D语义在网络训练期间进行监督。具体而言,它从多视图图像构建了类似NeRF的3D体积表示,并利用先进的体积渲染技术生成2D渲染。这种方法使我们能够仅使用2D语义和深度标签提供直接的3D监督。通过这种2D渲染监督,模型通过分析来自各种摄像机的相交锥体射线来学习多视图一致性,从而更深入地理解3D空间中的几何关系。值得注意的是,自动驾驶场景通常涉及有限的视角,这可能会影响渲染监督的有效性。考虑到这一点,我们引入了辅助射线的概念,利用相邻帧的射线来增强当前帧的多视图一致性约束。此外,我们还开发了一种动态采样训练策略,用于筛选出不对齐的射线,并同时减轻与其相关的额外训练成本。本文主要贡献总结如下:

  1. 我们引入了RenderOcc,这是一个基于2D渲染监督的3D占据框架。我们首次尝试仅使用2D标签训练多视图3D占据网络,摒弃了昂贵且具有挑战性的3D注释。
  2. 为了从有限的视角学习有利的3D体素表示,我们引入了辅助射线来解决自动驾驶场景中稀疏视角的挑战。同时,我们设计了一种动态采样训练策略,用于平衡和净化辅助射线。
  3. 大量实验证明,与受3D标签监督的基线相比,RenderOcc在仅使用2D标签时取得了竞争性的性能。这展示了2D图像监督在3D占据训练中的可行性和潜力。

图1. RenderOcc代表了一种新的训练范式。与以往侧重于使用昂贵的3D占据标签进行监督的作品不同,我们提出的RenderOcc利用2D标签来训练3D占据网络。通过2D渲染监督,模型可以从细粒度的2D像素级语义和深度监督中受益。

2. 问题设置

我们的目标是利用多摄像头RGB图像来预测周围场景的密集语义体积,称为3D占据情况。具体来说,对于时间戳t的车辆,我们将N个图像{I^1,I^2,···I^N}作为输入,并预测3D占据情况O ∈ \mathbb{R}^{H×W×D×L}作为输出,其中HWD表示体积的分辨率,L表示类别数量(包括空)。形式上,3D占据情况的预测可以被表述为:

\mathbb{G}是一个神经网络,从N视图图像中提取3D体积特征V ∈ \mathbb{R}^{H×W×D×C},其中C表示特征维度F负责将V转换为占据表示,先前的研究[7],[8]倾向于使用MLP实现每个体素的分类。考虑到所有现有方法都需要完整的3D占据标签来监督体素级别的分类,我们设计了一个新的概念来实现\mathbb{F},并仅使用2D像素级标签来监督{\mathbb{G},\mathbb{F}}

3. 整体框架

我们的整体框架如图2所示。在第4节中,我们首先使用2D到3D网络\mathbb{G}从多视角RGB图像中提取3D体积特征V。需要注意的是,我们的框架对于\mathbb{G}的实现不敏感,并且可以灵活地在各种BEV/Occupancy编码器之间进行切换,比如[18],[19],[29]。接下来在第5节中,我们为每个体素预测体积密度σ和语义logits S,以生成语义密度场(SDF)。随后,我们从SDF进行体积渲染,并使用2D标签优化网络。最后在第6节中,我们阐述了用于解决自动驾驶场景中稀疏视角问题的体积渲染的辅助射线训练策略。

图2. RenderOcc的整体框架。我们通过2D到3D网络提取体积特征V,并预测每个体素的密度σ和语义S。因此,我们生成了语义密度场,可以执行体积渲染以生成渲染的2D语义和深度{S^{pix},D^{pix}}。对于Rays GT的生成,我们从相邻帧中提取辅助射线,以补充当前帧的射线,并使用提出的加权射线采样策略对其进行净化。然后,我们使用射线GT和{S^{pix},D^{pix}}计算损失,实现了使用2D标签进行渲染监督。

4. 语义密度场

现有的3D占据方法从多视角图像中提取体积特征V,并进行体素级分类[29],[30],[9],[6]以生成3D语义占据。为了利用2D像素级监督,我们的RenderOcc创新地将V转换为一种称为语义密度场(SDF)的多功能表示。给定一个体积特征图V ∈ \mathbb{R}^{H×W×D×C},SDF通过两种表示来编码场景:体积密度σ ∈ \mathbb{R}^{H×W×D}和语义logits S ∈ \mathbb{R}^{H×W×D×L}。具体来说,我们简单地采用两个MLP {φ_d,φ_s}来构建SDF,其公式为

σ另外还使用softplus激活函数,以确保密度值不会变为负数。基于SDF,我们获得了从任何视角进行语义渲染的能力,并在训练过程中获得了二维监督优化,这将在第5节部分进行解释

优化后,SDF可以直接转换为3D占据结果。我们使用σ过滤出占据的体素,并根据S确定它们的语义类别。该过程可以形式化如下:

τ作为σ的阈值,用于确定一个体素是否被占据。

5. 利用2D标签进行渲染监督

我们利用体积渲染来构建表面法线和2D像素之间的桥梁,从而通过2D标签方便地进行监督。具体来说,我们利用相机的内参和外参参数从当前帧提取3D射线,其中每个2D像素对应于从相机发出的一条3D射线。每条射线r携带着对应像素的语义和深度标签{\hat{S}^{pix}(r),\hat{D}^{pix}(r)}。同时,我们基于SDF进行体积渲染[40],得到渲染的语义S^{pix}(r)和深度D^{pix}(r),用于计算与2D标签{\hat{S}^{pix}(r),\hat{D}^{pix}(r)}的损失。

为了渲染像素的语义和深度,我们在射线r上预定义的范围内对射线上的K个点{z_k}^K_{k=1}进行采样。然后可以通过计算累积透射率T和终止概率α来得到点z_k的信息。

β_k = z_{k+1} − z_k是两个相邻点之间的距离。最后,我们使用{z_k}查询SDF,并将它们累积起来,以获得渲染的语义和深度。

对于损失函数,交叉熵损失L_{seg}和SILog损失L_{depth} [41] 被用来监督语义和深度。我们还引入了失真损失[35] 和TV损失[42] 作为SDF的正则化,称为L_{reg}。因此,整体损失可以通过计算得到。

6. 辅助光线:增强多视角一致性

通过第III-D节中的2D渲染监督,模型可以从多视角一致性约束中受益,并学会考虑体素之间的空间遮挡关系。然而,在单帧中,周围摄像机的视角覆盖非常稀疏,它们的重叠范围也有限。因此,大多数体素无法同时被具有显著视角差异的多条光线采样,这很容易导致局部最优解。因此,我们引入了来自相邻帧的辅助光线,以补充多视角一致性约束,如图3所示。

图3. 辅助光线:单帧图像无法很好地捕捉物体的多视角信息。相邻摄像头之间只有一个小的重叠区域,并且透视差异有限。通过引入相邻帧的辅助光线,模型将显著受益于多视角一致性约束。

6.1 辅助光线的生成

具体而言,对于当前帧索引为t,我们选择附近的M_{aux}个相邻帧。对于每个相邻帧,我们分别生成光线,并将它们转换到当前帧,以获得最终的辅助光线r_{aux}

T^{t-k}_t是从相邻帧坐标到当前帧的变换矩阵。给定相邻帧的E_{t−k}和当前帧的E_t的姿态矩阵,我们可以计算T^{t−k}_t = E^{inv}_t · E_{t−k},其中E^{inv}_tE_t的逆矩阵。

6.2 加权射线采样

引入辅助射线显著增强了2D监督,但也带来了两个挑战:(a)增加的射线导致内存和计算成本高,需要在训练过程中进行随机采样,这会丢弃许多有价值的射线。(b)由于动态物体的存在,许多辅助射线出现时间不匹配,引入了不必要的误差。为了解决这个问题,我们设计了加权射线采样策略,重点是对高信息密度和相对正确的射线进行采样。这不仅显著提高了训练效率,还优化了性能。(a)类别密度平衡:在户外自动驾驶中,极端的类别不平衡很常见。大多数射线对应于大型、低信息密度的背景对象,如道路和建筑物,而与行人、自行车相关的射线稀缺但宝贵。为此,我们根据类别出现频率计算权重W_b,公式化为

在这里,λ_s代表平滑系数,M代表所有类别的射线数量,C(r)表示射线r的类别。(b) 时间错位净化:根据方程9,辅助射线可以与当前帧对齐以进行SDF监督。然而,动态物体的移动可能导致错位,使一些辅助射线指向SDF中的错误体素。我们采用了一种简单而有效的策略来减少错位射线的采样概率,即通过屏蔽动态物体并尽可能保留当前帧的射线。

在这里,λ_{dyn}λ_{adj}是小于1的系数,C_{dynamic}表示动态对象的类别集合。通过利用λ_{adj},我们可以降低当前帧的射线被省略的可能性。将λ_{dyn}设置为接近0的值可以显著减轻动态对象引起的错位问题。

最后,我们计算每条射线的权重W = W_b·W_t。这个权重作为随机抽样的概率权重。在训练过程中,我们使用W对每个批次抽样固定数量的射线,其余的射线被丢弃,并不参与由公式8计算的损失。通过提出的加权射线抽样,我们可以在训练过程中显著减少RenderOcc的内存和计算成本,同时实现卓越的性能。

7. 总结

这篇论文提出了RenderOcc,一种新的3D占据预测方法,用于机器人感知和自动驾驶。它通过2D渲染技术和多视图图像来训练3D占据模型,减少对昂贵3D注释的依赖。RenderOcc利用类似NeRF的3D体积表示,通过体积渲染建立2D渲染进行3D监督。该方法还引入了辅助射线和动态采样训练策略,解决自动驾驶中的稀疏视角问题。RenderOcc展示了使用2D标签进行3D监督的可行性和潜力,实现了与完全3D标签监督模型相当的性能