基于视觉的自动驾驶 3D 占据预测:回顾与展望

24年5月来自北航大学的论文"Vision-based 3D occupancy prediction in autonomous driving: a review and outlook"。

近年来,自动驾驶因其在减轻驾驶员负担和提高驾驶安全性方面的潜力而受到越来越多的关注。基于视觉的 3D 占据预测是根据图像输入预测自动驾驶汽车周围 3D 体素网格的空间占据状态和语义,是一项新兴的感知任务,适用于经济高效的自动驾驶感知系统。本文首先介绍基于视觉的 3D 占据预测的背景并讨论该任务中的挑战。其次,从特征增强、部署友好性和标记效率三个方面对基于视觉 3D 占据预测的进展进行了全面的概述,并对每类方法的潜力和挑战进行深入分析。最后,我们总结了当前的研究趋势并提出了一些鼓舞人心的未来展望。

给定来自多视角摄像机的图像 I={I_(1,) I_(2,...,) I_n},其中 n 表示摄像机视角数量,模型 F_θ 需要联合估计场景中每个体素在 [H_l,W_l,Z_l,H_r,W_r,Z_r ] 范围内的占据状态。即将体素分为两种状态:空或占据 O_o∈〖{0,1}〗,H, W, Z 表示 x, y, z 轴上的体素数量,每个体素的形状为 [(W_l-W_r)/W,(H_l-H_r)/H,(Z_l-Z_r)/Z]。如果估计某个体素将被占据,则其语义类别也需要在预定义类别 O_c∈{1,2,...,C}中进行确认,其中 C 表示预定义类别的数量,N 表示已占据体素的数量。两个输出合并为 〖F_θ (I)=O〗_o∈{0,1,2,...,C}。对于每个输入帧,通常还会提供一个可见性掩码 M∈{0,1},并且在评估过程中会忽略不可见的体素。训练基于视觉的 3D 占据感知模型可以描述为:最小化数据集 D 中一组多视角摄像机图像及其对应的带注释占据标签 y∈{0,1,2,...,C}的总损失 L,这通常是一个分类损失。

尽管许多 3D 感知数据集(例如 nuScenes 和 Waymo)提供激光雷达点分割标签,但这些标签较为稀疏,难以用于监督密集的 3D 占据网络任务。

3D 占据预测任务中的真值标签表示 3D 空间中每个体素是否被占据,以及被占据体素的语义标签。由于三维空间中体素数量巨大,手动标注每个体素非常困难。一种常见的做法是将现有三维点云分割任务的真值进行体素化,然后根据体素中点的语义标签通过投票的方式生成三维占据预测的真值。然而,这种方式生成的真值较为稀疏,比如在道路等未被标注为占据的地方仍然存在大量已占据的体素。使用如此稀疏的真值来监督模型会导致模型性能下降。因此,需要研究包括自动或半自动地生成高质量的稠密三维占据标注。

如图所示,生成稠密的 3D 占据标注通常包含以下四个步骤:

  1. 获取连续的原始激光雷达帧,并将激光雷达点分割为静态背景和动态前景。
  2. 将连续的激光雷达帧叠加在静态背景上,并根据位置信息进行运动补偿,以对齐多帧点云,从而获得更稠密的点云。将连续的激光雷达帧叠加在动态前景上,并根据目标帧和目标 ID 对动态前景的点云进行对齐,使其更加稠密。需要注意的是,虽然点云相对更稠密,但体素化后仍然存在一些空隙,需要进一步处理。
  3. 合并前景和背景的点云,然后对其进行体素化,并使用投票机制确定体素的语义,从而得到相对稠密的体素标注。
  4. 通过后处理细化上一步获得的体素,以获得更密集、更精细的标注,作为真值。

如表所示 3D 占用预测数据集比较。Mult-view = ✓ 表示使用多视图输入的数据集。C、D、L 分别表示摄像头、深度和激光雷达。GO 是 General Object(通用目标)的缩写。

下表所示在 SemanticKITTI 和 Occ3D-nuScenes 数据集上进行的 3D 占用预测性能测试。最佳结果以粗体显示。请注意,某些实验设置可能不完全相同,此处的结果仅供参考。

下图是基于视觉的 3D 占据预测方法时间表:

这些方法在该综述主要从三种途径展开介绍,即:特征增强、部署友好和标签高效。特征增强方法,通过优化网络的特征表征能力来缓解三维空间输出与二维空间输入之间的差异。部署友好方法,旨在通过设计简洁高效的网络架构,在保证性能的同时显著降低资源消耗。标签-高效方法期望即使在标注不足或完全缺失的情况下也能获得令人满意的性能。如图给出其结构:

特征增强方法

基于视觉的三维占据感知任务涉及从二维图像空间估计三维体素空间的占据状态和语义信息,这对于从二维视觉输入中获取完美的三维特征提出关键挑战。从特征增强的角度,有不同的方法学习,即从鸟瞰图 (BEV)、三视角 (TPV) 和三维体素表征中。

一种有效的学习占据的方法,是基于鸟瞰图 (BEV),它提供对遮挡不敏感且包含一定深度几何信息的特征(比如FB-Occ和OccTransformer)。通过学习强大的 BEV表征,可以实现鲁棒的三维占据场景重建。首先利用二维主干网络从视觉输入中提取图像特征,然后通过视点变换获取BEV特征,最终基于BEV特征表示完成三维占据感知。

虽然基于 BEV 的表征法与图像相比具有某些优势,因为它们提供 3D 空间的自上而下的投影,但它们缺乏仅用单个平面描述场景细粒度 3D 结构的能力。基于三-透视图 (TPV) 的方法利用三个正交投影平面来建模 3D 环境,进一步增强视觉特征在占据感知中的表征能力(比如TPVFormer和PointOcc)。首先,使用 2D 主干网络从视觉输入中提取图像特征。随后,将这些图像特征提升到三视图空间,最终基于来自三个投影视点的特征表征,完成 3D 占据感知。

除了将三维空间转换为投影透视图(例如BEV或TPV)之外,还有一些方法直接对三维体素表征进行操作(比如MonoScene和VoxFormer)。这些方法的一个关键优势是它们能够直接从原始三维空间中学习,从而最大限度地减少信息丢失。通过利用原始三维体素数据,这些方法可以有效地捕获和利用完整的空间信息,从而更精确、更全面地理解占据。首先,使用二维主干网络提取图像特征。然后,利用基于卷积的特殊机制来桥接二维和三维表征,或者采用基于查询的方法直接获取三维表征。最后,基于学习的三维表征,利用三维占据头完成最终感知。

部署友好方法

其主要分为视角分解和从粗到细两种类别。

通过将视点信息从三维场景特征中分离出来,或将其投影到统一的表示空间中,可以有效降低计算复杂度,使模型更加鲁棒且更具泛化能力。视角分解(比如FlashOcc和FastOcc)的核心思想是将三维场景的表征与视点信息解耦,从而减少特征学习过程中需要考虑的变量数,降低计算复杂度。视点信息的解耦可以使模型具有更好的泛化能力,无需重新学习整个模型即可适应不同的视点变换。

一些方法开始探索采用由粗到精的特征学习范式(比如OpenOccupancy和SurroundOcc)。具体而言,网络首先从图像中学习粗略表征,然后细化并恢复整个场景的细粒度表征。这两个步骤有助于更准确、有效地预测场景的占据。

标签-高效方法

在现有创建精确占据标签的方法中,有两个基本步骤。第一步是收集与多视角图像对应的激光雷达点云并进行语义分割标注。第二步是借助动态目标的跟踪信息,通过复杂的算法融合多帧点云。这两个步骤的计算成本都相当高,这限制了占据网络利用自动驾驶场景中海量多视角图像的能力。近年来,神经辐射场(NeRF)和高斯溅射(GS)已广泛应用于二维图像渲染。一些方法以类似NeRF/GS的方式将估计的三维占据位置渲染成二维图(map),并在无需细粒度标注(比如UniOcc,GaussianOcc)或激光雷达点云(比如OccNeRF,OG-Gaussian)参与的情况下训练占据网络,从而显著降低数据标注的成本。

这些方法绕过对激光雷达点云深度或语义标签的依赖,而是利用图像数据或预训练模型来获取这些标签,从而实现真正的自监督 3D 占据感知框架。虽然这些方法可以实现最符合实际应用预期的训练模式,但仍需进一步探索才能获得令人满意的性能。

挑战

基于视觉的 3D 占据感知仍然面临着特征表征、实际应用和注释成本方面的限制。对于这项任务,有三个关键的技术挑战:

(1) 从 2D 视觉输入中获取完美的 3D 特征很困难。基于视觉 3D 占据感知的目标,是仅从图像输入中实现对 3D 场景的详细理解,但图像中固有的深度和几何信息的缺失,对直接从中学习 3D 特征表征提出了重大挑战。

(2) 3D 空间的计算负荷重。3D 占据感知通常需要使用 3D 体素特征来表示环境空间,这不可避免地涉及 3D 卷积等操作以进行特征提取,大大增加计算和内存开销,并阻碍实际部署。

(3) 昂贵的细粒度注释。三维占据感知涉及估计高分辨率体素的占据状态和语义类别,但实现这一目标通常需要对每个体素进行细粒度的语义标注,这既耗时又昂贵,成为该任务的瓶颈。

相关推荐
友莘居士33 分钟前
特征工程四-2:使用GridSearchCV 进行超参数网格搜索(Hyperparameter Tuning)的用途
人工智能·机器学习·支持向量机·特征工程
新知图书1 小时前
OpenCV的grabCut算法分割图像
人工智能·opencv·计算机视觉
爱学习的capoo1 小时前
在TensorFlow中,`Dense`和`Activation`是深度学习模型构建里常用的层
人工智能·深度学习·tensorflow
aiAIman1 小时前
深度解析Qwen3:性能实测对标Gemini 2.5 Pro?开源大模型新标杆的部署挑战与机遇
人工智能·深度学习·语言模型·开源
LIUDAN'S WORLD1 小时前
第五部分:进阶项目实战
图像处理·人工智能·python·opencv·计算机视觉·目标跟踪
唯鹿1 小时前
AI生成Flutter UI代码实践(一)
人工智能·flutter·ui
jndingxin1 小时前
OpenCV 图形API(76)图像与通道拼接函数-----对输入图像进行归一化操作函数normalize()
人工智能·opencv·计算机视觉
禺垣1 小时前
GBDT算法原理及Python实现
人工智能·python·算法·机器学习·数据挖掘·集成学习
江安的猪猪1 小时前
大连理工大学选修课——机器学习笔记(5):EM&K-Means
笔记·机器学习·kmeans
Amctwd1 小时前
【Stable Diffusion】原理详解:从噪声到艺术的AI魔法
人工智能·stable diffusion