上海AI实验室提出CVT-Occ:通过时间融合利用视差搜索刷新occ3D-Waymo SOTA
Abstract
基于视觉的3D占据预测由于单目视觉在深度估计上的固有局限性而面临显著挑战。本文介绍了CVT-Occ,一种新颖的方法,通过时间上的体素几何对应进行时间融合,以提高3D占据预测的准确性。通过在每个体素的视线方向上采样点并整合这些点的历史帧特征,我们构建了一个代价体积特征图,从而优化当前体积特征以改进预测结果。我们的方法利用了历史观察中的视差线索,并采用数据驱动的方法学习代价体积。通过在Occ3D-Waymo数据集上的严格实验验证了CVT-Occ的有效性,在3D占据预测任务上以最小的额外计算成本超越了最新的方法。
代码获取:https://github.com/Tsinghua-MARS-Lab/CVT-Occ
欢迎加入自动驾驶实战群
ntroduction
基于视觉的3D语义占据预测在3D感知领域迅速发展,推动了其在自动驾驶、机器人和增强现实中的关键应用。该任务旨在通过视觉输入估计3D空间内每个体素的占据状态和语义标签。
尽管其重要性显著,3D占据预测面临着巨大的挑战。单靠单目视觉时,深度估计的模糊性尤为突出。虽然立体视觉已被提出作为提高深度估计准确性的一种解决方案,但其在实际应用中仍然有限。立体相机的使用在自动驾驶车辆和机器人系统中是不切实际的,因为它需要大量的校准和重新校准。一种更具前景的替代方法是使用多视角时间融合,它可以利用随时间延伸的多视角基线来增强3D感知任务。
近年来,视觉3D目标检测的进展表明,结合时间观察可以提升检测性能。在我们的研究中,我们将新兴的时间融合方法分为三类,详见图1。前两类方法基于扭曲,使用IMU数据对齐不同时间点的鸟瞰视图特征图,并通过自注意机制或拼接和卷积操作进行特征融合。这些方法隐式地使用时间信息,但没有充分利用3D空间中的几何约束。第三类方法,如图1©所示,使用成本体积技术,能够更好地利用几何约束来获得深度感知的特征,但处理多视角任务时计算成本较高。总的来说,这些方法在利用时间信息和3D几何约束方面存在局限性,尤其是在处理多视角和长时间跨度的数据时。
鉴于这些方法的局限性,我们提出了一种新范式,如图1中的(d)所示。本文中,我们引入了CVT-Occ,这是一种创新的时间融合方法,旨在利用随时间变化的体素几何对应来提高占据预测的准确性。我们的方法涉及沿着每个体素的视线方向采样点——定义为体素与相机光学中心相连的直线——并根据相对相机姿态确定这些点在历史帧中的对应3D位置。然后,我们从历史帧中采样这些点的特征,并将它们与当前体素特征进行整合,构建一个代价体积特征图。该特征图随后用于优化当前体积的特征,从而提高占据预测的准确性。
3.Method
3.1 问题设置
仅给定RGB图像作为输入,模型旨在预测特定体积内的密集语义场景。具体来说,我们利用当前时间戳t及之前的图像,表示为
,
,其中L代表相机的数量。我们的输出定义为体素网格
,位于时间戳t的自车坐标系中。该网格内的每个体素要么为空(由表示),要么由特定的语义类别
占据。这里,M表示感兴趣类别的总数,而H, W, Z分别表示网格的长度、宽度和高度。主要目标是训练神经网络Θ(·)生成语义体素网格
,以逼近真实值。需要注意的是,模型必须仅通过基于视觉的输入学习3D几何结构和语义,而不能依赖LiDAR的深度测量。从2D图像推断3D占据状态具有巨大挑战,这需要设计高效方法以利用几何约束来学习准确的几何信息。
3.2 整体架构
在本节中,我们展示了CVT-Occ的完整架构,如图2所示。我们的框架首先通过图像骨干网络处理多帧、多视角的图像以提取多尺度特征。随后,这些图像空间的特征被转换为鸟瞰视图(BEV)空间特征,这些特征经过BEV编码器的精炼以生成3D体积表示。大量研究集中于从图像空间到BEV特征的转换。一类工作遵循LSS提出的提升范式;它们显式地预测深度图并将多视角图像特征提升到BEV平面。另一类工作继承了DETR3D中的从3D到2D查询的精神;它们使用可学习的查询,通过交叉注意机制从图像特征中提取信息。值得强调的是,我们提出的代价体积时间(CVT)模块具有通用性,可以兼容不同的从图像到体积空间特征转换的策略。在我们的实验验证中,我们使用BEVFormer作为基础来生成3D体积特征。这些特征随后通过CVT模块进行精炼和增强,展示了我们方法在利用时间和空间动态以丰富3D场景理解中的有效性和适应性。最后,通过占据解码器生成最终的体素预测结果。
3.3 代价体积时间模块
由于每个像素没有直接的深度信息,将图像特征转换为3D空间会引入模糊性;例如,单个像素可能对应于视线上的多个体素。为了解决这个问题,我们提出了代价体积时间模块,该模块利用时间数据推断深度信息以解决这种模糊性。具体而言,我们通过历史和当前的BEV特征构建3D代价体积特征。然后使用这些代价体积特征得出学习权重,随后用于优化当前的BEV特征。
3D体积特征。我们预定义了体积
,其中H、W、Z表示体积空间的空间维度。体积空间中的每个体素对应于真实世界中边长为s米的立方空间。默认情况下,体积的中心对应于自车的位置。对于每个体素v = (i, j, k),其对应的3D位置p = (x, y, z)可以通过公式(1)计算:
BEV特征
,其中t代表时间戳,E是嵌入维度。我们将BEV特征重塑为体积空间,作为CVT模块的输入,生成
。
构建代价体积特征。由于视线方向上的模糊性,对于每个点,我们在当前体积内采样几个额外的点
。具体而言,我们计算视线方向
,即从体积中心到点pt的向量,然后使用特定步长
采样点,如公式(2)所示:
由于这些点在图像空间中投射到同一个像素,因此同一条线上的点往往具有相似的特征。为了准确区分与像素对应的正确位置,我们使用历史BEV特征来获取补充信息。这就是我们提出的代价体积时间模块的核心见解。将这些点投射到历史坐标系中,确保它们不再位于同一条视线上。视差提供了来自历史BEV特征的附加信息,有助于减少当前帧中的深度模糊性。投影矩阵
可以将点从自车坐标系转换为全球坐标系。因此,点
通过投影矩阵投射到K−1个历史帧上,如公式(3)所述:
最后,每个点
被转换为体素坐标,这是公式(1)的逆过程,并通过双线性插值从相应的BEV特征图中采样特征。最终的代价体积特征图为
,其中C表示BEV特征的通道数量。
3.4 体积特征精炼
如公式(4)所示,构建的代价体积特征F经过一系列卷积层处理,得到输出权重
。然后通过Sigmoid激活函数将输出权重W归一化到[0,1]范围内。这些权重根据体素的占据状态直接进行监督:对于被占据的体素,其对应的权重被引导接近1,而未被占据的体素则被引导接近0。公式(4)中的符号⊗表示时间戳t时刻原始体积特征与学习到的权重W的逐元素乘积。通过这种监督学习方法,生成了占据感知的体积特征图
。学习权重的目标是减少由于深度模糊性导致的错误激活区域中的体素特征影响,同时增强正确识别的体素特征。
3.5 占据解码器
在对体素特征Vocc进行精炼后,我们的模型使用一系列反卷积层将其转换为占据特征。占据特征被投射到输出空间,生成
。该投影被设计为将占据特征映射到每个网格体素的离散语义类别预测集合中。由此,生成最终的占据输出
,其中每个体素被分配一个M个语义标签之一,未占据状态由c0表示。此步骤有效地将丰富的体素特征转换为语义分割的3D占据图。
3.6 训练损失
我们的架构将CVT模块和3D占据预测集成在一个端到端可训练的框架中。我们通过多任务损失训练整个网络,公式如下(5):
其中
表示占据预测损失,
表示代价体积时间损失。系数λ作为这两个损失组件之间的平衡因子。
对于占据预测损失,我们采用了交叉熵损失,这是语义占据预测任务中广泛使用的损失函数。
,其中和分别表示第c个语义类别的真实标签和预测结果。类特定的权重通过与类频率的逆相关来缓解类不平衡问题,这种方法参考自Occ3D。
为了增强网络性能,CVT模块直接接受监督。CVT模块的损失Lcvt采用二元交叉熵框架,如公式(6)所示:
其中j索引网格中的体素,J = H × W × Z。是输出权重
中的第j个元素。具体来说,二进制标签
表示体素处于未占据状态(即其语义分类为),而
表示体素在真实值中被占据。对CVT模块的这种直接监督不仅提升了性能,还突显了从输入数据中准确学习时间和空间特征的重要性。
Experiment
在表1中,我们展示了在Occ3D-Waymo验证集上的3D占据预测评估结果。为了确保公平比较,所有方法均使用相同的网络架构和训练策略。通过比较表1中的“BEVFormer-w/o TSA”和时间融合方法,所有时间融合方法的mIoU均高于“BEVFormer-w/o TSA”。这表明时间融合在3D占据预测任务中起着至关重要的作用。
保持一致的帧规范(数量和间隔),我们探索了不同主流时间融合方法的时间融合能力。我们的方法在mIoU方面实现了最先进的性能,并且在几乎所有类别上显示出显著的优越性。如表1所示,CVT-Occ相比现有时间融合方法(a)、(b) 和 © 的代表模型显示出优越的性能,相比基线模型BEVFormer提升了2.8%的mIoU。深入细节,CVT-Occ在几乎所有类别的IoU上均有所提升。特别是在“车辆”、“自行车”、“建筑”、“植被”和“树干”类别上,我们的方法相比基线模型BEVFormer取得了超过4%的IoU提升。这个显著的增强表明,全面理解时间几何关系能够带来显著的性能提升。
消融研究
时间跨度。时间跨度定义为最早历史帧与当前帧的时间戳差异,在时间融合分析中起着关键作用。我们进行了实验,评估了我们的方法在不同的总帧数和采样帧间隔配置下的表现,结果总结在表2中。
长时间融合能力。图3展示了BEVFormer和CVT-Occ在不同总时间差下的比较。随着时间队列长度的增加,CVT-Occ表现出更好的性能,而BEVFormer在利用长期历史数据方面遇到了困难。
CVT监督。在我们追求提高3D语义占据预测的过程中,我们不仅仅依赖传统的损失函数,还通过向CVT模块输出添加额外的监督来改进模型。表2中的实验(e)和(f)展示了CVT-Occ有无CVT损失的性能比较。引入CVT损失后,mIoU显著提升,验证了其有效性。这个提升证实了我们的设计方法,表明其在提高3D语义占据预测的准确性和可靠性方面的能力。
总的来说,我们的消融研究证实了更长的时间跨度和有效时间融合在提升CVT-Occ的3D语义占据预测性能中的重要性。此外,整合额外的监督进一步提高了模型的准确性,突显了我们的方法在基于时间视差的场景理解中的有效性。
因素分析
我们方法的核心见解在于利用不同帧之间的视差来提高3D体素深度查询的准确性。在本小节中,我们在不同条件下进行了多个评估以验证这一概念。这些实验包括二分类、不同的BEV范围和不同的自车速度。
二分类。在3D语义占据预测框架中,我们将所有其他15个物体类别汇总为单一的“非空闲”类别。这一调整去除了语义信息的影响,使我们能够专注于深度的准确性。随后,我们将我们的方法与领先的时间融合方法进行了比较。表3的结果表明,我们的方法在物体几何形状的预测上表现更好。这个结果与我们最初的设计理念一致,即利用视差来优化深度预测。
BEV范围。在Occ3D-Waymo数据集中,BEV范围沿x轴(即自车的运动方向)从-40m到40m。我们将这一范围分为两部分:[−20m, 20m]和[−40m, 20m] ∪ [20m, 40m]。表3展示了评估结果。所有方法在近区域的表现更好,这是预期的,因为离车辆较近的物体更有可能出现在历史帧和当前帧的重叠区域中。然而,与BEVFormer [20]相比,我们的方法在近区域的改进(+3.76)相比远区域(+1.43)更为显著。近物体在不同帧之间的较大视差有助于我们方法的优越预测能力。
自车速度。此外,车辆的速度在确定视差的大小方面也起着关键作用。我们进一步根据自车速度将数据集分为大致相等的两部分。分别在这两部分上评估CVT-Occ的结果如表3所示。无论是BEVFormer [20]还是CVT-Occ,两者在快速移动场景中的表现都更好。相比基线模型BEVFormer,我们的方法在快速场景下的改进(+3.17)明显高于慢速场景(+2.57)。这可以归因于当自车快速移动时,历史帧和当前帧之间的较大视差。
结论
CVT-Occ是一种创新的3D占据预测方法,其核心优势体现在以下三个方面:
多视角时间融合:CVT-Occ通过结合多个视角和时间序列的数据,利用历史观测结果来改进深度估计,这种方法有效地利用了视差效应,提高了预测的准确性。
代价体积特征图构建:该方法通过在时间帧之间采样和集成特征,构建了一个代价体积特征图,这种特征图有助于细化当前体积特征并改善预测结果。
优异的性能和低计算开销:在Occ3D-Waymo数据集上的实验表明,CVT-Occ在3D占据预测任务上超越了现有的最先进技术,同时保持了较低的额外计算成本。
文章引用:CVT-Occ: Cost Volume Temporal Fusion for 3D Occupancy Prediction
最后别忘了,帮忙点“在看”。
您的点赞,在看,是我创作的动力。
AiFighing是全网第一且唯一以代码、项目的形式讲解自动驾驶感知方向的关键技术。
关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。
扫码加入自动驾驶实战知识星球,即可跟学习自动驾驶感知项目:环境配置,算法原理,算法训练,代码理解等。