基于视觉的3D占用预测在深度估计方面受到单目视觉固有限制的严重影响。
本文介绍了CVT-Occ,一种利用时间融合通过时间上 Voxel 几何对应来提高3D占用预测准确性的新颖方法。
通过沿每个 Voxel 视线方向采样点,并从历史帧中集成这些点的特征,作者构建了一个成本体积特征图,以改进当前体积特征,从而提高预测结果。
作者的方法利用历史观察的视差线索,并采用数据驱动方法学习成本体积。
通过在Occ3D-Waymo数据集上进行严格的实验来验证CVT-Occ的有效性,它在3D占用预测方面超过了最先进的方法,且额外计算成本最小。
代码已发布在https://github.com/Tsinghua-MARS-Lab/CVT-Occ。
1 Introduction
基于视觉的3D语义占用预测在3D感知领域迅速发展,其关键应用领域包括自动驾驶、机器人学和增强现实。该任务旨在从视觉输入中估计3D空间中每个 Voxel (voxel)的占用状态和语义标签。
尽管其重要性不言而喻,3D占用预测面临着巨大的挑战。当仅依赖单目视觉时,这些挑战尤为突出,原因在于从单张图像中估计深度存在固有的歧义。虽然立体视觉被提出作为提高深度估计准确性的解决方案[14],但在实际应用中其应用仍然有限。在自动驾驶车辆和机器人系统中广泛应用立体相机进行大量校准和重新校准的要求使其不切实际。因此,一种更具有前景的替代方法是采用多视图时间融合,该方法可以利用随时间可用的扩展多视图 Baseline 来增强3D感知任务。
近年来视觉3D目标检测领域的最新进展表明,将时间观察纳入检测过程有提高检测性能的潜力[20, 25, 37, 8, 26]。在作者研究中,作者将新兴的时间融合方法分为三个范式,如图1所示。
首先,这两种范式被归类为基于变换的方法。这些方法主要涉及在多个时间实例上对Bird's Eye View (BEV)特征图进行对齐,这些相对的相机姿态来自惯性测量单元(IMU)。对齐后的特征通过两种主要方法进行融合。第一种方法使用自注意力机制,如图1(a)所示。一个使用这种方法的典型方法是BEVFormer [20]。另一种方法通过 ConCat 将对齐后的特征进行融合,如图1(b)所示。采用这种方法的典型方法包括BEVDet4D [8],BEVFormerv2 [37]和PanoOcc [35]。这些方法强调使用 ConCat 和卷积操作进行特征融合。尽管它们有潜力,但它们主要以隐式方式利用时间信息,缺乏对时间几何的坚固理解。因此,它们在充分利用3D空间固有的几何约束方面有所欠缺。
相比之下,基于成本体积的方法,如图1中的(c)所示,以及由SOLOFusion[26]表示,借鉴了立体匹配技术。从时间序列中捕获的不同视点的图像构建成本体积,可以利用几何约束获取深度感知的特征。然而,对于多视视觉任务,图像对的数量可能导致在融合更长的时间跨度时计算开销显著增加。
认识到这些方法的局限性,作者提出了一种新颖的范式,如图1中的(d)所示。本文介绍了CVT-Occ,一种创新的时间融合方法,旨在利用 Voxel 在时间上的几何对应关系,从而提高占用预测的准确性。作者的方法包括为每个 Voxel 在视线方向上采样点,定义为 Voxel 到摄像机光心的连线,并在基于相对摄像机姿态的历史帧中识别这些点的对应3D位置。然后,在历史帧中采样这些点的特征,并将其与当前 Voxel 的特征集成,构建一个成本体积特征图。该图随后被用于优化当前体积的特征,从而提高占用预测。
与图1中的范式(a)和(b)相比,作者提出的CVT-Occ明确地利用了视差线索来优化3D Voxel 深度。与范式(c)不同,作者的方法避免了针对每个图像对的成本体积计算,实现了在最小额外计算开销下优越的性能。CVT-Occ通过利用历史观测中的固有视差信息并采用数据驱动的方法学习成本体积而脱颖而出。作者在Occ3D-Waymo数据集上的实验表明,CVT-Occ实现了最先进的3D占用率预测性能。
2 Related Work
3D Occupancy Prediction
3D占用预测的目标是估计3D空间中每个离散 Voxel 的占用情况。这一任务最初源于移动机器人导航中的占用网格映射(OGM)[24, 28],其中机器人配备了距离传感器(如激光雷达)并在静态环境中导航。最近的工作已经转变为更一般的场景:它们利用视觉系统在动态环境中进行占用预测。
MonoScene [1] 通过稀疏预测从激光雷达点重建3D场景。VoxFormer [16] 利用语义标签和单目RGB图像的深度估计进行密集 Voxel 预测。TPVFormer [11] 提出了一种三视角视图分解方法,用于高效进行3D占用预测。OccFormer [40] 提出了一种双路径Transformer网络,用于有效地处理3D体积进行语义占用预测。
此外,这些进展已经导致了新的基准测试,如视觉3D占用预测[29, 30, 32]和语义场景完成[15]。作者强调,作者提出的是一种简单且即插即用的模块,可以无缝地集成到现有的占用预测 Pipeline 中,显著提高其性能。
Temporal Fusion for 3D Perception
利用时间信息进行占用预测是一种自然策略,因为它为构建几何表示提供了足够的空间信息[25, 36]。在视觉3D目标检测中的时间融合是一种常见做法,即BEV特征对齐。它通过根据不同时间步相对相机姿势的相机视图变换,将过去BEV特征变形到当前时间进行时间融合。已经证明,短期帧可以显著提高3D检测性能。然而,仅仅通过变形和融合增加更多帧并不能带来显著改进。
最近的工作UniFusion [27]提出了一种新的长时间融合方法。它为时间特征创建“虚拟视图”,就像它们存在于当前时间一样,并直接访问所有有用的历史特征。然而,当帧数增加时,这种方法面临计算成本的严重影响。SOLOFusion [25]是一种更高效、更有效的模型,它平衡了分辨率和时间戳,并将时间融合问题转化为时间多视图立体问题。
Stereo Matching and Multi-View Stereo
立体匹配的根源在于从2D图像特征构建3D代价体积,并预测深度图。最近的工作通过提出相关性基础的代价体积,如GCNet [2]进一步发展了这一技术。同时,多视图立体匹配方法利用平面遍历体积进行深度图生成。在自动驾驶场景中,最近的一个趋势是使用立体匹配,重点关注3D感知。然而,现有的立体匹配工作通常使用立体图像对,这种格式不适合处理自动驾驶场景中的多视图和多时间输入。此外,这些方法需要为每对图像生成一个平面遍历体积,导致效率低下。
此外,最近的进展如OccDepth [23]展示了通过隐式学习立体图像之间的相关性来改进3D深度感知特征融合的潜力。
作者提出的Temporal Cost Volume方法,专门针对多视图和多时间数据设计,提供更有效和高效解决方案。CVT模块的核心创新在于其能够通过汇总信息来构建场景的全面3D表示。
3 Methodology
Problem Setup
给定仅包含RGB图像作为输入,该模型旨在预测在指定体积内的密集语义场景。具体来说,作者使用当前时间戳
以及之前的图像作为输入,表示为
,其中
表示摄像机的数量。作者的输出是一个位于自车辆时间戳
的坐标系中的 Voxel 网格
,其中每个 Voxel 都由一个特定的语义类中的一个占用(表示为
)或空(表示为
)。
在这里,
表示感兴趣的总类数,而
、
和
分别表示网格的长度、宽度和高度。主要目标是训练一个神经网络
,使其能够生成一个近似 GT 的语义 Voxel 网格
。值得注意的是,该模型必须仅从视觉输入中学习3D几何和语义,而无需借助LiDAR的深度测量。
从2D图像推理3D占用率是一项巨大的挑战,需要设计高效的方法来利用几何约束进行精确几何的学习。
Overall Architecture
在本节中,作者描述了CVT-Occ的全景架构,如图2所示。作者的框架处理多帧、多视角图像,首先通过图像 Backbone 提取多尺度特征。然后,这些从图像空间转换到BEV空间特征,通过BEV编码器进行精炼,生成3D体积表示。关于从图像空间到BEV特征的转换,已经有很多研究。一种工作遵循LSS [26]中提出的提升范式;他们明确预测深度图,并将多视图图像特征提升到BEV平面。
另一种工作继承了DETR3D [34]中从3D到2D Query 的精神;他们使用可学习 Query 通过交叉注意力机制从图像特征中提取信息[13, 20, 21]。重要的是要强调,作者提出的成本-体积-时间(CVT)模块在从图像到体积空间的不同特征转换策略上是通用且兼容的。
为了作者的实验验证,作者使用BEVFormer [20]作为基础来生成3D体积特征。这些特征通过CVT模块进行精炼和增强,展示了作者在利用时间和空间动态进行丰富的3D场景理解的有效性和适应性。最后,使用占用解码器生成最终 Voxel 预测结果。
Cost Volume Temporal Module
由于每个像素的直接深度信息不可得,将图像特征转换到3D空间引入了歧义;例如,一个像素可能对应于视线方向上的多个 Voxel 。为了解决这个挑战,作者提出了Cost Volume Temporal模块,该模块利用时间数据推理深度信息并消除歧义。具体来说,作者使用历史和当前的BEV特征构建3D成本体积特征。然后,这些成本体积特征被用来推导学习权重,这些权重随后被用于细化当前的BEV特征。
3D Volume Features.
作者预定义体积
, 其中
表示体积空间的 Voxel 大小。体积空间中的每个 Voxel 对应于实际世界中的一个边长为
米的立方体。默认为,体积中心对应于自动驾驶车辆的位置。对于每个 Voxel
, 其对应的 3D 位置
可由公式 1 计算:
BEV特征是
,其中
表示时间戳,
表示嵌入维度。作者将BEV特征 Reshape 为体积空间作为CVT模块的输入,得到
。
构建成本-体积特征。由于视线存在歧义,对于每个点
,作者在当前体积内取多个额外的点
。具体而言,作者计算视线方向
,即体积中心到点
的向量,然后使用特定步长
如公式2所示采样点:
由于这些点在图像空间中指向相同的像素,同一条直线上的点往往具有相似的特征。为了准确区分对应像素的正确位置,作者使用历史BEV特征来获取互补信息。这就来到了作者提出的成本-体积-时间(Cost Volume Temporal,CVT)模块的核心见解。将这些点映射到历史坐标系 ensures它们不再在同一行视线上。这种视差提供了来自历史BEV特征的额外信息,有助于减少当前帧中的深度歧义。投影矩阵
可以将点从自车辆坐标系转换到全局坐标系。因此,点
通过投影矩阵(如公式3所示)映射到
个历史帧中。
最后,每个点
都被转换为 Voxel 坐标,这是方程1的逆过程,并且使用双线性插值从相应的BEV特征图采样特征。最终的成本体积特征图
,其中
表示BEV特征的通道数。
Volume Features Refinement
在等式4中,
表示时间戳为
的原始体积特征与学习得到的权重
的逐元素乘积。这种监督学习方法产生一个 Voxel 占用感知的体积特征图
。学习得到的权重的目标是减小由于深度歧义导致错误激活区域的 Voxel 特征的影响,同时增强正确识别的 Voxel 的特征。
Occupancy Decoder
在对 Voxel 特征
进行优化后,作者的模型使用一系列解卷积层将其转换为占用特征。占用特征被映射到输出空间,得到