本文经自动驾驶之心公众号授权转载,转载请联系出处。
写在前面&笔者的个人理解
在自动驾驶系统当中,感知作为自动驾驶车辆检测周围静态和动态障碍物的重要途径,其准确性和稳定性的重要程度不言而喻。然而,当自动驾驶汽车在开放场景中行驶时,准确和稳定的感知模块变得尤其具有挑战性,因为它们必须检测看不见的或不规则的物体。
最近,由于占用预测具有更加细粒度的通用感知能力,它在自动驾驶系统的感知和规划流程中引起了越来越广泛的关注。虽然占用预测网络相比于原有的3D障碍物感知算法具有更加细粒度和通用的感知能力,但是占用预测网络需要确定当前感知的3D场景中每个体素的状态,这会导致感知模型开发过程中对计算和内存的需求很高。
基于栅格预测的相关优势以及现有存在的诸多不足,我们的核心思路是提高基于BEV空间的占用预测的性能,同时减少参数数量和计算成本。考虑到先前的研究工作中强调了Transformers算法模型在长距离建模方面的优势,但它们的计算负担也非常的大。最近,状态空间模型 (SSM)(例如 Mamba)已成为长距离建模的更有效解决方案。这一发展促使我们探索状态空间模型在改进占用预测任务方面的潜力。
因此,本文提出了一种基于Mamba框架的新型占用率预测方法,旨在实现轻量级,同时提供高效的远距离信息建模,我们称之为MambaOcc算法模型。
论文链接:https://arxiv.org/pdf/2408.11464
网络模型的整体架构&细节梳理
在详细介绍本文提出的MambaOcc算法模型的技术细节之前,下图展示了我们提出的MambaOcc算法的整体网络结构。通过下图可以看出,MambaOcc算法模型主要包括四个模块,分别是基于Mamba的图像主干网络用于图像特征的提取,用于获取BEV形式特征和聚合多帧特征的视角转换模块以及时间融合模块,带有自适应局部重排模块LAR-SS2S混合BEV编码器模块以及占用预测头模块。
MambaOcc算法模型的整体网络结构
整体而言,我们采用四种方向的视觉Mamba来提取图像特征。同时为了减轻与3D体素相关的高计算负担,我们使用BEV特征作为占用预测的中间特征表示,并设计了结合卷积层和Mamba层的混合BEV编码器。考虑到Mamba架构在特征提取过程中对标记排序的敏感性,我们引入了一个利用可变形卷积层的局部自适应重新排序模块。该模块旨在动态更新每个位置的上下文信息,使模型能够更好地捕获和利用数据中的局部依赖关系。这种方法不仅可以缓解标记序列相关的问题,还可以通过确保在提取过程中优先考虑相关的上下文信息来提高占用预测的整体准确性。
VM-Backbone(视觉Mamba主干网络)
View Transformation and Temporal Fusion(视角转换以及时序融合)
在MambaOcc算法模型中,我们采用LSS算法模型实现从图像平面到BEV平面的空间视图变换。首先,将图像主干网络的输出特征组织成2D格式的地图。然后通过深度预测网络生成每个像素的一系列离散深度。最后,使用体素池化在预定义的BEV平面上聚合每个网格内的深度预测。
在使用了时间域融合的情况下,视角转换模块提供了一种方便的方式融合来自不同视角以及不同时间戳的图像特征。利用来自前几帧的 BEV空间特征,首先基于自车运动信息进行特征转换操作。然后,应用采样和插值操作来生成与当前帧BEV空间特征图对齐的特征。最后,将对齐的特征合并到一起来实现融合时序的上下文特征信息。
LAR-SS2D Hybrid BEV Encoder(LAR-SS2D混合BEV编码器)
在BEV空间特征的提取方面,我们首先设计了基于Mamba网络模型的架构,该架构由三个块组成,其中每个块包含两个SS2D组。考虑到 SSM层对序列中token的顺序很敏感,我们进一步探索局部自适应伪重排序机制来优化上下文信息的嵌入。然后使用LAR组替换每个块中的一个SS2D组。
通过上述的修改,我们建立了一个灵活的局部伪重排序机制。此外,所提出的重排序过程可以通过可变形卷积算子高效实现,从而确保较高的计算效率并保持较快的处理速度。
Occupancy预测头(Occupancy Prediction Head)
我们采用了FlashOcc算法当中的实现思路,我们同样使用了channel-to-height操作从生成的BEV特征图的通道维度当中恢复出高度信息。这个过程允许我们在整个网络的最后来获得3D占用的特征表达。随后,我们使用线性层来预测3D空间中每个位置的类别,从而提供整个3D空间中详细完整的占用预测信息。
实验结果&评价指标
与其它SOTA算法的对比试验
为了验证我们提出的MambaOcc算法模型的有效性,我们在Occ3D-nuScenes数据集上进行了相关实验,相关的实验结果如下表所示。
不同算法模型在Occ3D-nuScenes数据集上的结果汇总
通过实验结果可以看出,与最先进的方法相比,我们提出的MambaOcc算法模型在计算效率和参数数量方面具有更加显著的优势。与以Swin-Transformer为主干网络的FlashOcc算法模型相比,MambaOcc取得了更好的性能,同时减少了42%的参数和39%的计算成本。此外,MambaOcc-Large比FlashOcc高出了0.77的mIoU,减少了14%的参数和32%的计算成本。与以ResNet-101为主干网络的PanoOcc算法相比,MambaOcc的性能高出1.23 mIoU,同时减少了19%的参数。这些结果均表明,与基于CNN和Transformer的方法相比,所提出的Mamba框架在参数量、计算效率和感知能力方面具有显著优势。
此外,为了更加直观的展示我们提出的MambaOcc算法模型的有效性,下图可视化了MambaOcc算法模型占用预测的结果。如图所示,MambaOcc可以为人类和车辆等典型物体提供精确的感知结果,同时还能有效检测电线杆、交通灯和路锥等结构不规则的物体。
MambaOcc算法模型的占用预测结果可视化
此外,为了直观的展示我们提出的MambaOcc和FlashOcc预测占用的效果对比,我们也对两个模型的结果进行了可视化,如下图所示。
MambaOcc与FlashOcc结果可视化对比
通过可视化两个模型的预测结果对比可以看出,MambaOcc算法模型在长距离平面感知方面的卓越性能,能够提供更全面的地面预测,而FlashOcc算法模型通常会将这些区域预测为空。
消融对比实验
为了清楚地展示提出的MambaOcc算法模型中每个组件的贡献,我们在下表中展示了我们进行的消融研究结果,以强调每个模块的有效性。
通过汇总的消融实验结果可以看出,用Mamba网络结构替换CNN网络架构,可使mIoU显著增加3.96,凸显了Mamba网络架构的有效性。此外,我们提出的LAR-SS2D BEV编码器模块比基于CNN的编码器额外增加了1.12的mIoU。此外,通过结合位置编码,可以进一步提高模型的预测性能。
此外,我们也进行了相关实验来验证不同的图像主干网络初始化方法对于网络模型占用预测的影响效果,相关的实验结果如下表所示。
通过实验结果可以明显的看出,良好的参数初始化方法会显著影响性能。使用ImageNet分类预训练初始化占用预测网络与随机初始化相比,对于Mamba和卷积网络,效果明显更好。例如与使用随机值初始化的相比,使用ImageNet预训练的VM-Backbone的MambaOcc在mIoU方面的性能高出10.01。
我们也对不同的BEV编码器对于占用预测任务的影响进行了相关的实验,实验结果汇总在下表所示。
如上表所示,BEV编码器的结构显著影响了占用预测性能。纯SS2D优于纯CNN,mIoU指标提高了0.56。混合CNN-SS2D网络架构的性能优于纯CNN和纯SS2D的网络架构,mIoU分别提高了0.77和0.21。所提出的LAR-SS2D混合架构取得了最佳效果,比CNN-SS2D混合架构高出0.48 mIoU。
除此之外,我们比较了LAR层中不同映射方法的效果。对于多对一映射,我们使用不同的条目数3×3和5×5进行了实验,其中原始序列中多个位置的信息在映射到新序列中的相同位置之前进行加权和融合。相关的实验结果汇总在下表中。
通过表格结果可以看出,多对一映射方法优于一对一方法。具体而言,与一对一方法相比,5×5和3×3配置分别将性能提高了0.07和0.32 mIoU,表明多对一映射可以成为提高性能的有效策略。
为了更全面地了解映射模式,我们对每个LAR层应用了四种不同的映射模式,并在分组特征通道中执行这些模式。相关的结果分别可视化在下图。
Group0 & 1的可视化结果
Group 2 & 3的可视化结果
我们观察到,不同群体之间的映射模式存在显著差异,这表明这种多样性可能有助于模型在元素之间建立更全面的联系。
结论
在本文中,我们提出了首个基于Mamba的占用预测网络模型,我们命名为MambaOcc。与基于Transformer网络模型的方法相比,MambaOcc超越了基于CNN的方法,并且实现了更好的检测效率。