点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
今天自动驾驶之心为大家分享中科院&美团最新的占用网络工作—MambaOcc!基于Mamba框架的新型占用率预测方法!如果您有相关工作需要分享,请在文末联系我们!
自动驾驶课程学习与技术交流群事宜,也欢迎添加小助理微信AIDriver004做进一步咨询
论文作者 | Yonglin Tian等
编辑 | 自动驾驶之心
写在前面&笔者的个人理解
在自动驾驶系统当中,感知作为自动驾驶车辆检测周围静态和动态障碍物的重要途径,其准确性和稳定性的重要程度不言而喻。然而,当自动驾驶汽车在开放场景中行驶时,准确和稳定的感知模块变得尤其具有挑战性,因为它们必须检测看不见的或不规则的物体。
最近,由于占用预测具有更加细粒度的通用感知能力,它在自动驾驶系统的感知和规划流程中引起了越来越广泛的关注。虽然占用预测网络相比于原有的3D障碍物感知算法具有更加细粒度和通用的感知能力,但是占用预测网络需要确定当前感知的3D场景中每个体素的状态,这会导致感知模型开发过程中对计算和内存的需求很高。
基于栅格预测的相关优势以及现有存在的诸多不足,我们的核心思路是提高基于BEV空间的占用预测的性能,同时减少参数数量和计算成本。考虑到先前的研究工作中强调了Transformers算法模型在长距离建模方面的优势,但它们的计算负担也非常的大。最近,状态空间模型 (SSM)(例如 Mamba)已成为长距离建模的更有效解决方案。这一发展促使我们探索状态空间模型在改进占用预测任务方面的潜力。
因此,本文提出了一种基于Mamba框架的新型占用率预测方法,旨在实现轻量级,同时提供高效的远距离信息建模,我们称之为MambaOcc算法模型。
论文链接:https://arxiv.org/pdf/2408.11464
网络模型的整体架构&细节梳理
在详细介绍本文提出的MambaOcc算法模型的技术细节之前,下图展示了我们提出的MambaOcc算法的整体网络结构。通过下图可以看出,MambaOcc算法模型主要包括四个模块,分别是基于Mamba的图像主干网络用于图像特征的提取,用于获取BEV形式特征和聚合多帧特征的视角转换模块以及时间融合模块,带有自适应局部重排模块LAR-SS2S混合BEV编码器模块以及占用预测头模块。
![2b98e342275635de7f29aaa5c00a1193.png](https://img-blog.csdnimg.cn/img_convert/2b98e342275635de7f29aaa5c00a1193.png)
整体而言,我们采用四种方向的视觉Mamba来提取图像特征。同时为了减轻与3D体素相关的高计算负担,我们使用BEV特征作为占用预测的中间特征表示,并设计了结合卷积层和Mamba层的混合BEV编码器。考虑到Mamba架构在特征提取过程中对标记排序的敏感性,我们引入了一个利用可变形卷积层的局部自适应重新排序模块。该模块旨在动态更新每个位置的上下文信息,使模型能够更好地捕获和利用数据中的局部依赖关系。这种方法不仅可以缓解标记序列相关的问题,还可以通过确保在提取过程中优先考虑相关的上下文信息来提高占用预测的整体准确性。
VM-Backbone(视觉Mamba主干网络)
为了从多视图图像中提取深层特征,我们使用VMamba作为特征提取的主干网络。与卷积神经网络和Transformer网络相比,基于 Mamba的网络架构模型可以高效地捕获上下文信息。Mamba网络框架的核心是选择性状态空间模型,该模型通过线性时变系统定义隐藏状态和输出的更新规则,可以用四个参数,,,表示如下:
其中,和是在时刻的输入、隐藏和输出状态。,是和的离散形式:
在中,值定义为模型的参数,,和的值通过一个由以输入为条件的投影层生成:
其中,是系统的参数,,和是映射层,是softplus函数。S6和序列化的操作一起构成了至关重要的SS2D模块。为了获得输入的token序列,多视角的图像从四个不同的方向被分成了图像块。序列被独立的喂入到S6模块中,并且S6模块的输出通过重新映射token到2D特征图的方式实现空间上的对齐。这些2D特征被加在一起以融合不同的上下文。
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组。
具体而言,给定输入的序列,如果我们定义的索引函数代表重新排序的规则,然后重新排序的序列可以用如下的形式进行表达:
对于严格的重排机制,是从的双映射,表示原来位于位置的元素的新位置。考虑到BEV特征的局部相关性,我们对上述重排序过程做了如下三点修改,并提出了伪重排序机制,具体细节如下所示。
首先,我们将排序函数设置为一个可学习的模型,该模型以作为输入。即排序结果由模型参数和输入的特征共同决定
其次,考虑到直接从输入数据生成全局重排序结果是比较困难的,我们改为引入映射锚点,其中的生成由锚定。具体来说,锚点用于学习相对位置偏移,然后用于构建置换函数。置换函数可以表示为如下的形式:
其中,代表的原始位置,代表用于学习相对位置的偏移
然后,我们将的映射从双射放宽到单射,从而允许重新排序后的序列中不同位置的元素源自原始序列中的相同元素
通过上述的修改,我们建立了一个灵活的局部伪重排序机制。此外,所提出的重排序过程可以通过可变形卷积算子高效实现,从而确保较高的计算效率并保持较快的处理速度。
除了上面描述的一对一映射之外,我们还提出了多对一映射过程。这种方法聚合了原始序列中多个位置的特征,并将它们映射到新序列中的单个位置。为了整合来自多个位置的特征,我们采用注意力机制来自适应地融合这些特征,从而使模型能够专注于最相关的信息。为了更好地捕捉位置关系,我们在LAR和SS2D组中引入了位置嵌入。
Occupancy预测头(Occupancy Prediction Head)
我们采用了FlashOcc算法当中的实现思路,我们同样使用了channel-to-height操作从生成的BEV特征图的通道维度当中恢复出高度信息。这个过程允许我们在整个网络的最后来获得3D占用的特征表达。随后,我们使用线性层来预测3D空间中每个位置的类别,从而提供整个3D空间中详细完整的占用预测信息。
实验结果&评价指标
与其它SOTA算法的对比试验
为了验证我们提出的MambaOcc算法模型的有效性,我们在Occ3D-nuScenes数据集上进行了相关实验,相关的实验结果如下表所示。
![adee0d320a049f6e6b16bd3cdd249a4a.png](https://img-blog.csdnimg.cn/img_convert/adee0d320a049f6e6b16bd3cdd249a4a.png)
通过实验结果可以看出,与最先进的方法相比,我们提出的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可以为人类和车辆等典型物体提供精确的感知结果,同时还能有效检测电线杆、交通灯和路锥等结构不规则的物体。
![c3ac8f96e116f75c139cdd5cc491748b.jpeg](https://img-blog.csdnimg.cn/img_convert/c3ac8f96e116f75c139cdd5cc491748b.jpeg)
此外,为了直观的展示我们提出的MambaOcc和FlashOcc预测占用的效果对比,我们也对两个模型的结果进行了可视化,如下图所示。
![98462b7a659cd48794c05b4a840e96c7.png](https://img-blog.csdnimg.cn/img_convert/98462b7a659cd48794c05b4a840e96c7.png)
通过可视化两个模型的预测结果对比可以看出,MambaOcc算法模型在长距离平面感知方面的卓越性能,能够提供更全面的地面预测,而FlashOcc算法模型通常会将这些区域预测为空。
消融对比实验
为了清楚地展示提出的MambaOcc算法模型中每个组件的贡献,我们在下表中展示了我们进行的消融研究结果,以强调每个模块的有效性。
![8c6e6174e653e363a6175e1f7c033ba5.png](https://img-blog.csdnimg.cn/img_convert/8c6e6174e653e363a6175e1f7c033ba5.png)
通过汇总的消融实验结果可以看出,用Mamba网络结构替换CNN网络架构,可使mIoU显著增加3.96,凸显了Mamba网络架构的有效性。此外,我们提出的LAR-SS2D BEV编码器模块比基于CNN的编码器额外增加了1.12的mIoU。此外,通过结合位置编码,可以进一步提高模型的预测性能。
此外,我们也进行了相关实验来验证不同的图像主干网络初始化方法对于网络模型占用预测的影响效果,相关的实验结果如下表所示。
![097e6b00889849991131cd77de891c58.png](https://img-blog.csdnimg.cn/img_convert/097e6b00889849991131cd77de891c58.png)
通过实验结果可以明显的看出,良好的参数初始化方法会显著影响性能。使用ImageNet分类预训练初始化占用预测网络与随机初始化相比,对于Mamba和卷积网络,效果明显更好。例如与使用随机值初始化的相比,使用ImageNet预训练的VM-Backbone的MambaOcc在mIoU方面的性能高出10.01。
我们也对不同的BEV编码器对于占用预测任务的影响进行了相关的实验,实验结果汇总在下表所示。
![52ba9d08809d226eb33333357ea3f4b7.png](https://img-blog.csdnimg.cn/img_convert/52ba9d08809d226eb33333357ea3f4b7.png)
如上表所示,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进行了实验,其中原始序列中多个位置的信息在映射到新序列中的相同位置之前进行加权和融合。相关的实验结果汇总在下表中。
![867aaf72e5b36805eaae4785c095cdcc.png](https://img-blog.csdnimg.cn/img_convert/867aaf72e5b36805eaae4785c095cdcc.png)
通过表格结果可以看出,多对一映射方法优于一对一方法。具体而言,与一对一方法相比,5×5和3×3配置分别将性能提高了0.07和0.32 mIoU,表明多对一映射可以成为提高性能的有效策略。
为了更全面地了解映射模式,我们对每个LAR层应用了四种不同的映射模式,并在分组特征通道中执行这些模式。相关的结果分别可视化在下图。
![5c4ca3503ddf4f7123f16f1d30b9ad08.png](https://img-blog.csdnimg.cn/img_convert/5c4ca3503ddf4f7123f16f1d30b9ad08.png)
![a0e97c121762eef3c8d8e783bbe1cd67.png](https://img-blog.csdnimg.cn/img_convert/a0e97c121762eef3c8d8e783bbe1cd67.png)
我们观察到,不同群体之间的映射模式存在显著差异,这表明这种多样性可能有助于模型在元素之间建立更全面的联系。
结论
在本文中,我们提出了首个基于Mamba的占用预测网络模型,我们命名为MambaOcc。与基于Transformer网络模型的方法相比,MambaOcc超越了基于CNN的方法,并且实现了更好的检测效率。
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!重磅,自动驾驶之心科研论文辅导来啦,申博、CCF系列、SCI、EI、毕业论文、比赛辅导等多个方向,欢迎联系我们!
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
![74335a1a41a1b2b832cb8fe6d12c3798.png](https://img-blog.csdnimg.cn/img_convert/74335a1a41a1b2b832cb8fe6d12c3798.png)
② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频
![e767521272e008b7a4e3abe63e692539.png](https://img-blog.csdnimg.cn/img_convert/e767521272e008b7a4e3abe63e692539.png)
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵