Abstract
基于视觉的语义占据与流预测在提供时空线索方面发挥着至关重要的作用,广泛应用于自动驾驶等现实任务。现有的方法通常优先考虑提高精度,以满足这些任务的需求。本研究旨在通过引入一系列针对性的改进,提高 3D 语义占据预测和流估计的性能。首先,我们引入了一种具有深度去噪技术的遮挡感知自适应升降机制,以提高 2D 到 3D 特征变换的鲁棒性,并减少对深度先验的依赖。其次,通过利用共享语义原型联合约束 2D 和 3D 特征,我们加强了 3D 特征与原始 2D 模态之间的语义一致性。这与基于置信度和类别的采样策略相辅相成,以解决 3D 空间中的长尾问题。为缓解在联合预测语义和流时的特征编码负担,我们提出了一种基于 BEV(鸟瞰视角)成本体积的流预测方法,通过成本体积将流与语义特征关联,并采用分类-回归监督方案以解决动态场景中流的尺度变化问题。我们的纯卷积架构框架名为 ALOcc,在多个基准测试中实现了速度与精度之间的最佳平衡。在 Occ3D 和没有相机可见掩膜的训练情况下,我们的 ALOcc 在 RayIoU 上获得了 2.5% 的绝对增益,同时与现有的最先进方法相比,保持了相似的速度,使用相同的输入尺寸(256×704)和 ResNet-50 主干网络。我们的方法还在 CVPR24 占据与流预测竞赛中获得了第二名。
代码获取:https://github.com/cdb342/ALOcc
欢迎加入自动驾驶实战群
Introduction
准确的 3D 语义占据预测对于感知系统的有效性至关重要,广泛应用于自动驾驶、机器人技术和虚拟现实等领域。将静态和动态物体建模为 3D 语义网格具有多个优点。它提供了比传统边界框 更细粒度和更通用的场景语义表示。近年来,仅通过周围视角摄像头传感器数据预测语义占据与流网格的研究受到了显著关注 。
基于视觉的 3D 语义占据预测旨在从 2D 输入推断规则化的 3D 场景语义。这项任务引入了额外的 2D 到 3D 重建,本质上是一个不确定性问题。挑战有两个方面。首先,准确地将 2D 语义信号传播到其正确的 3D 位置,同时准确预测语义。其次,在 3D 数据上进行计算消耗了大量计算资源,这对于自动驾驶等实时任务来说尤其具有挑战性。我们高度关注 2D 到 3D 视图转换和占据与流的解码。我们考察了两种现有的 2D 到 3D 视图转换方法:基于深度的升降-溅射-射击(LSS)和 2D-3D 跨注意力。前者通过显式地预测 2.5D 结构信息(即深度)来主动地将 2D 信息传递到 3D,而后者通过跨注意力和 3D 查询的自适应方式将 2D 信息传递到 3D。然而,基于深度的 LSS 方法存在一些固有问题,例如网络中强烈的深度归纳偏置,这可能导致由于早期深度估计不准确而卡在局部最优解中,限制了信号在遮挡区域的传播。此外,LSS 中的光线映射往往会在远距离处生成低空间密度的特征 ,阻碍了远距离物体的 3D 特征学习。相反,跨注意力方法没有显式的结构信息演化。
为了解决这些挑战,我们设计了一种遮挡感知自适应升降方法,该方法基于显式的深度概率从表面到遮挡和稀疏位置构建传输概率。这一灵感来源于人类感知,我们可以从部分视角推断遮挡物体的形状和范围。在占据解码器中,我们引入了一种语义增强方法,通过共享的语义原型集关联 3D 和 2D 特征。我们为每个类别预定义语义原型,以从 3D 和 2D 特征中聚合类别语义。这有助于将原始 2D 信号中的类间语义关系传递到 3D,并改善 3D 语义表示学习。然后,我们使用这些原型计算每个类别的分割掩膜。为了解决场景中的长尾问题,我们只在对应类在场景中存在时才训练每个原型。此外,我们引入了基于不确定性和类别先验的采样技术。我们根据类别统计和每个体素预测的不确定性来采样困难体素。训练只在采样的体素上进行。
此外,我们提出了一种新的基于 BEV 的成本体积方法来进行占据流预测。该任务的关键挑战在于,联合预测语义和流会对特征施加两种表示压力。为减轻这种压力,我们将来自地面上方多个高度层的体素特征聚合为 BEV 表示,并创建一个与历史 BEV 特征关联的成本体积。利用成本体积和体素特征进行流估计,使得体素特征能够优先关注占据语义信息,从而缓解多任务预测的约束。此外,我们提出了一种混合的分类-回归技术用于流预测,增强了模型对不同流尺度的适应性。如图 1 所示,我们的方法在多个语义占据与流预测基准测试中始终超越现有方法,建立了新的最先进性能。此外,我们提出了具有多种模型变体的 ALOcc,采用空间压缩等技术。我们的方法在保持竞争性计算效率的同时实现了卓越的性能。这在实时应用(如自动驾驶)中尤为重要。
3.The Proposed Method
我们的研究聚焦于基于视觉的3D语义占用和流预测。给定N个输入图像,目标是预测3D语义占用网格和3D占用流网格,监督信号为对应的真实标签和 。中的每个值标识其对应空间位置的类别,包括空(表示未占用空间)以及行人和汽车等语义类别。流网格Of中的每个体素包含一个2D流向量,指定x和y方向的运动。图2展示了我们方法的示意图。最初,从周围图像中提取2D特征,这些特征随后通过自适应提升转换到3D空间。提升后的特征与历史帧数据一起在3D空间中编码。然后,编码后的体积特征通过不同的任务头解码,预测3D语义占用和流网格。
第3.2节介绍了增强2D到3D视图转换的遮挡感知自适应提升技术。第3.3节详细说明了基于语义原型的占用预测头,增强了2D-3D语义对齐并缓解了长尾问题。第3.4节讨论了BEV成本体积方法以及新的回归-分类策略,用于增强占用流预测。
3.1. 重新审视基于深度的LSS
作为基于视觉的占用预测的核心模块,2D到3D视图转换过程被表述为:
其中和分别代表图像特征和提升后的特征。cat{·}表示拼接操作,这里省略了扁平化和重塑操作。
基于深度的LSS初始化为零矩阵,并用图像深度概率填充它。对于每个像素点,深度被预测为沿着相机视线的离散化的bins中的占用概率:。
坐标投影函数R(·)将3D坐标(u, v, d)从图像坐标系(ICS)映射到体素坐标系(VCS):(x, y, z) = R(u, v, d)。每个深度概率被分配到的行索引对应于四舍五入的体素坐标[(x, y, z)],列索引对应于(u, v)。由于的稀疏性,这个过程通常通过稀疏操作实现,例如PyTorch中的稀疏coo张量或BEVPool。
3.2. 遮挡感知自适应提升
我们通过引入从表面到遮挡区域的概率传输来增强基于深度的LSS。我们首先用基于概率的软填充方法替代第3.1节中基于硬舍入的填充策略。如图3所示,我们使用三线性插值将点(x, y, z)的概率扩散到其在VCS中的八个邻近点。插值计算八个概率值:
其中是邻近的体素中心坐标。然后,我们通过用填充,按对应的ICS坐标索引列,按索引行。这种方法根据距离分配深度概率,使得2D到3D的映射对于坐标是可微的。
基于深度的LSS方法通过显式的深度概率建模指导2D到3D的特征转换。然而,深度估计的目标遵循δ分布,这导致大多数权重集中在表面点。因此,遮挡区域会接收到显著较低的权重,导致归纳偏置,限制了模型捕捉这些区域信息的能力。我们旨在通过视图转换弥合可见部分与遮挡部分之间的差距。具体来说,我们处理两种类型的遮挡:1)同一物体内的遮挡,2)不同物体之间的遮挡。对于这两种情况,我们构建了一个从可见部分到遮挡部分的概率传输矩阵。
对于前一种遮挡类型,我们设计了条件概率,将表面概率传输到遮挡长度的概率。给定像素点x的离散深度概率,我们对遮挡长度预测采用相同的bin划分。我们引入贝叶斯条件概率将离散深度概率转换为离散遮挡长度概率:
为了确定,我们考虑深度的物理意义:如果相机视线到达点i,则意味着所有较浅深度的点(即索引小于i的点)是空的。因此,我们只需要估计深度对应的位置的条件概率被建模为:
其中表示如果bin i对应于表面点,则bin j被占用的可能性。对于每个像素点x,我们计算(D − 1)个离散概率,涵盖了i和j之间的所有相对位置。实际上,深度到遮挡长度概率的转换通过将深度概率与因果条件概率矩阵相乘来实现。
对于物体间遮挡,我们设计了一个概率传输矩阵,将占用概率传播到周围的点。对于每个点,我们根据其特征x估计多个偏移量和相应的传输权重。新的周围点随后通过软填充方式融入中,并且可以在训练过程中进行优化。为了计算效率,我们只对深度概率排名前k的点应用这种传输。
2D到3D语义转换中深度概率的主导作用可能由于初始不准确的深度估计导致模型收敛不理想。为了缓解这一问题,我们引入了类似于目标检测算法中的查询去噪操作的去噪方法。该方法利用真实深度概率来指导早期的模型训练。我们采用真实深度和预测深度的加权平均来指导训练中的自适应提升过程。真实深度的权重初始化为1,并随着余弦退火策略逐渐减小到0。这可以表述为:
其中是用于自适应提升的最终深度概率。和分别是真实深度和预测深度概率。t是当前训练步骤,T是总的退火步骤数。在测试时,。
3.3. 基于语义原型的占用预测头
在2D到3D特征转换后,我们通过使用共享原型来增强2D和3D特征之间的语义对齐。如图4所示,我们为每个类别初始化一个语义原型,该原型同时作为2D和3D特征的损失计算中的类别权重。这种共享原型的方法创建了一个连接2D和3D语义的快捷方式,促进了跨维度的一致特征表示。
给定每个类别的原型,一种直观的解码语义占用的方法是计算体素特征和原型之间的相似度,然后通过交叉熵进行监督。然而,由于驾驶场景中语义类别的高度偏斜分布,这种方法并不是最优的。为了处理这种不平衡问题,我们提出了一种原型无关的损失方法,该方法仅考虑每个场景的真实占用图中存在的类别。
我们通过真实标签提取所有现有语义类别(包括空类)的原型,并计算这些原型与3D特征之间的内积,以生成类别掩码。为了进一步增强尾类别的训练,我们采用基于不确定性和类别先验的采样技术 。我们使用从内积得到的每个原型的对数图(logit map)作为每个体素不确定性的度量。这种不确定性与类别先验共同形成一个多项分布。然后,我们根据这个分布从整个占用图中采样K个体素。损失仅计算在这些采样点上。最终的3D感知损失被公式化为二元交叉熵和Dice损失的组合:
其中,α和β是平衡系数,L_Dice和L_bce分别表示Dice损失和二元交叉熵损失。每个类别掩码是独立预测的,确保大量类别不会压倒少数类别。L2D在2D空间应用类似的监督,使用Dice损失和二元交叉熵损失来指导2D特征图的训练。最终,每个体素的预测类别是对语义原型或空嵌入响应最大值对应的类别:
其中,表示体素的特征,表示类别c的原型或空嵌入,MLP进一步编码。
3.4. 基于BEV成本体积的占用流预测
如图2所示,我们也从编码的体积特征中解码占用流。基本上,一个流网络预测占用流为:
我们通过最小化L2损失并最大化余弦相似度来监督与真实流的对比:
其中L2损失确保了幅度的准确性,而余弦相似度保证了方向的精度。与此同时,语义占用和流的同时预测需要同时处理语义和运动信息,增加了特征编码的压力。因此,我们提出了基于跨帧语义信息构建流先验(即BEV成本体积)。具体来说,我们对从0到4米高度的体积特征进行平均,创建一个以前景为重点的BEV特征,如图5所示。我们对BEV特征进行下采样,以增加感受野的同时减少计算开销。然后,我们使用相机参数将前一帧的BEV特征包裹到当前帧的坐标系中,并在当前帧的多个假设点周围与当前帧的特征进行匹配。通过计算每对特征之间的余弦相似度,构建成本体积:
其中,表示当前帧的BEV特征,表示前一帧的BEV特征被包裹到当前帧的坐标系中,表示预定义的假设点。我们省略了后续的上采样和扩展操作,如图5所示。然后,将成本体积与当前帧的BEV特征拼接,公式(8)可以重写为:
基于成本体积的流预测方法通过语义匹配特征与前一帧中不同位置的特征来计算流,减轻了同时编码语义和运动的表示负担。值得注意的是,它重新使用前一帧的缓存体积特征,避免了第二次推理的需要。
为了提高我们模型在不同尺度上预测流值的能力,我们通过结合回归和分类方法提出了一种混合方法 。我们根据训练集中的最大和最小流值将流值划分为多个bin。我们的流预测头预测流落入每个bin的可能性。连续流预测被公式化为各个bin中心值的加权和:
其中,是第i个bin的预测概率,是与第i个bin对应的流值,是bin的总数。
基于公式(9)中的回归监督损失,我们引入了一个额外的分类损失,基于真实的bin索引:
其中,是指示函数,表示预定义的bin中真实标签的索引。
最终的占用流损失为:
3.5. 训练目标
训练语义占用和流网络的总体目标可以总结如下:
其中,是深度监督损失。
4.Experiment
1. 准确性/速度权衡评估
为了评估ALOcc的部署能力,我们分析了多个模型变体之间的速度-准确性权衡。如图6所示,我们提供了多个模型版本,这些版本在准确性和计算效率之间达到了良好的平衡。与ALOcc-3D相比,ALOcc-2D和ALOcc-2D-mini采用了类似于FlashOcc [46]的空间压缩技术,利用高度压缩和2D卷积进行体积特征编码。ALOcc-2D-mini使用单目深度估计,而其他模型使用立体深度估计。ALOcc-2D-mini还采用了更小的通道数。我们的结果显示,ALOcc-3D和ALOcc-2D在速度上超过了当前的最先进技术(SOTA),而ALOcc-2D-mini在保持接近最先进技术性能的同时实现了实时推理。
2. 与最先进技术的比较
我们在Occ3D和OpenOcc数据集上将我们的方法与当前的最先进技术(SOTA)进行了比较,结果总结在表1、表2和表3中。默认的ALOcc-2D模型应用2D卷积进行高度压缩的体积编码,通道数为80。默认的ALOcc-3D模型使用3D卷积对完整的3D体积进行编码,通道数为32。所有结果都未经过任何后处理,如测试时增强。
3D语义占用预测(带遮罩)。如表1所示,我们在Occ3D上比较了我们的方法与当前的最先进技术,重点训练了相机可见遮罩。这个基准强调了预测场景中相机可见的区域,主要包括交通关键物体。我们的方法在小规模和大规模图像输入尺寸以及图像骨干网络方面显著超过了现有方法。
3D语义占用预测(不带遮罩)。表2展示了在不使用相机可见遮罩的情况下,3D语义占用预测的结果。我们的方法在RayIoU和mIoU方面达到了最佳性能。这证明了我们的方法在捕捉完整场景上下文和理解物体之间空间关系方面的有效性。我们的方法在不同距离下的RayIoU也表现出优越的性能,进一步突出了其在捕捉物体细节方面的鲁棒性。值得注意的是,我们的方法在最小开销下提升了性能。我们的模型不仅在性能上领先,而且在其缩小版中相比于类似方法具有显著更快的推理速度,这对于自动驾驶任务至关重要。
3D语义占用和流预测。表3展示了在OpenOcc数据集上进行的3D语义占用和流预测的结果。我们的方法在Occ分数、mAVE、mAVETP、RayIoU和不同距离的RayIoU方面达到了最佳性能。这证明了我们的方法在捕捉语义和运动信息方面的有效性,突出了其在理解场景动态方面的鲁棒性。AdaOcc-2D在mAVE和mAVETP方面超越了AdaOcc-3D。这可以归因于两个因素:1)mAVETP是在真实正例区域上计算的,这意味着计算度量的光线查询数受语义预测的影响;2)这个基准在X和Y轴上计算流,因此压缩高度并增加通道更能关注关键运动线索。
3. 消融实验
除非特别说明,我们将ALOcc-2D(BEV特征通道为40)作为这些实验的基线。
占用头部组件分析。表4展示了一个消融研究,评估了我们的核心组件在语义占用结果方面的有效性。完整模型(实验#0)在所有指标上表现出色。去除自适应升维组件(实验#1和实验#3)导致性能下降,尤其是在mIoU_m和mIoU方面,突出了我们自适应且准确的2D到3D视图转换的有效性。在实验#2中,我们将基于语义原型的占用头替换为FBOcc的占用头,导致性能明显下降。这一观察结果突出了SP组件在提高模型语义占用预测精度中的关键作用。
流头部组件分析。如表5所示,我们进行了一个消融研究,评估不同组件如何影响流预测性能。在实验#1中,我们添加了一个使用简单卷积实现的流头。实验#1与实验#0的对比表明,添加流头会对语义占用预测产生负面影响。这是因为运动流包含了与语义占用不同的信息,增加了体积特征的负担。实验#2与实验#1的结果表明,使用bin分类显著提高了流预测性能。实验#3和实验#4表明,使用BEV成本体积减轻了场景表示的压力,增强了流预测,同时保持了占用预测性能。在实验#5中,增加BEV特征通道显著提高了整体性能,表明特征的信息容量是联合学习语义占用和占用流的瓶颈。
结论
本文的主要贡献包括:
1.本文提出了一种 2D 到 3D 的自适应升降方法,通过自适应权重调整将 2D 信号转移到遮挡和稀疏区域,同时结合深度去噪技术,防止网络收敛到局部最优解。
2.本文首次提出了一种基于 BEV 的成本体积方法进行占据流预测,减轻了多任务设置中的特征编码负担,并通过结合分类和回归增强了流预测。
3.本文提出了共享语义原型,将类间关系从 2D 传递到 3D,通过选择性原型训练和基于不确定性的采样方法缓解了类不平衡问题。
在多个语义占据和流预测基准测试中的综合评估表明,我们的方法在现有最先进技术上取得了一致性改进。本文提供了多种模型变体,其中实时版本优于现有的实时方法。
文章引用:ALOcc: Adaptive Lifting-based 3D Semantic Occupancy and Cost Volume-based Flow Prediction
最后别忘了,帮忙点“在看”。
您的点赞,在看,是我创作的动力。
AiFighing是全网第一且唯一以代码、项目的形式讲解自动驾驶感知方向的关键技术。
长按扫描下面二维码,加入知识星球。