Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时,并附带200G的免费磁盘空间。通过链接注册并联系客服,可以获得20元代金券(相当于6-7H的免费GPU资源)。欢迎大家体验一下~
0. 简介
鉴于能够缓解 3D 目标检测中普遍存在的长尾缺陷和复杂形状缺失的能力,占用预测已成为自动驾驶系统的关键组成部分。然而,三维体素级表示的处理不可避免地会在内存和计算方面引入大量开销,阻碍了迄今为止的占用预测方法的部署。与使模型变得更大、更复杂的趋势相反,《FlashOcc: Fast and Memory-Efficient Occupancy Prediction via Channel-to-Height Plugin》认为理想的框架应该对不同的芯片进行部署友好,同时保持高精度。为此,本文提出了一种即插即用范例,即 FlashOCC,以巩固快速且节省内存的占用预测,同时保持高精度。特别是,本文的 FlashOCC 基于当代体素级占用预测方法做出了两项改进。首先,特征保留在 BEV 中,从而能够使用高效的 2D 卷积层进行特征提取。其次,引入通道到高度变换(channel-to-height transformation) ,将 BEV 的输出 logits 提升到 3D 空间。本文将 FlashOCC 应用于具有挑战性的 Occ3D-nuScenes 基准的各种占用预测基线,并进行广泛的实验来验证其有效性。结果证实了本文的即插即用范例在精度、运行时效率和内存成本方面优于以前最先进的方法,展示了其部署潜力。该代码将可供使用。
1. 主要贡献
-
在我们的工作中,我们旨在高效实现通道到高度特征转换。鉴于BEV感知任务的进展,其中BEV表示中的每个像素包含沿高度维度的相应柱中所有对象的信息,我们直观地利用通道到高度转换来将扁平化的BEV特征重塑为三维体素级占用对数。
-
以一种通用且即插即用的方式增强现有模型,而不是开发新的模型架构,如图1(a)所示。具体来说,我们将当代方法中的3D卷积直接替换为2D卷积,并用通过2D卷积获得的BEV级特征的通道到高度转换替换从3D卷积输出中得出的占用对数。这些模型不仅在准确性和时间消耗之间取得了最佳平衡,而且表现出了出色的部署兼容性。
图1(a)说明了如何以即插即用的方式实现所提出的FlashOcc。当代方法使用经过3D卷积处理的体素级3D特征来预测占据情况。相比之下,我们的插件替代模型通过(1)用2D卷积替换3D卷积和(2)用2D卷积获取的BEV级特征的通道到高度转换来实现快速且内存高效的占据情况预测。缩写"Conv"代表卷积。图1(b)举例说明了准确性与速度、推理内存消耗和训练持续时间等因素之间的权衡。有关M0-8的详细配置,请参阅表2。"FO"是FlashOcc的缩写,"FO()“表示相应模型的插件替代,该模型以”"命名。最佳观看方式为彩色显示。
2.框架
FlashOcc 在该领域做出了开创性的贡献,成功实现了具有显著准确性的实时全景3D占据预测。此外,它在不同车载平台上展示了增强的多功能性,因为它避免了昂贵的体素级特征处理,其中避免了视图变换器或3D(可变形)卷积运算符的需求。如图2所示,FlashOcc的输入数据包括全景图像,而输出是密集的占据预测结果。尽管我们的FlashOcc专注于以一种通用和即插即用的方式增强现有模型,但它仍然可以分为五个基本模块:(1)负责从多摄像头图像中提取图像特征的2D图像编码器。(2)一个视图变换模块,用于将2D感知视图图像特征映射到3D BEV表示。(3)负责处理BEV特征信息的BEV编码器。(4)占据预测模块,用于预测每个体素的分割标签。(5)一个可选的时间融合模块,旨在整合历史信息以提高性能。
3. 图像编码器
图像编码器将输入图像提取为感知视图中的高级特征。具体来说,它利用骨干网络提取多尺度语义特征,随后将其馈送到颈部模块进行融合,从而充分利用具有不同粒度的语义信息。经典的ResNet [8]和强大的SwinTransformer [18]通常被选择为骨干网络。ResNet的多个残差块设计使其能够优雅地获取具有丰富和多粒度语义信息的特征表示。Swin Transformer引入了一个分层结构,将输入图像分成小块并逐步处理。通过利用移位窗口机制,SwinTransformer在保持竞争性能的同时实现了高效性和可扩展性。至于颈部模块,简洁的FPN-LSS [9, 25]被选中。它将细粒度特征与直接上采样的粗粒度特征进行整合。事实上,由于所提出的范式从未局限于特定的架构,因此骨干网络可以替换为其他先进模型,如SwinTransformer [18],Vit [5]。颈部模块也可以替换为其他具有竞争力的变体,如NAS-FPN [7],BiFPN [29]。
## …详情请参照[古月居](https://www.guyuehome.com/47203)
视角变换器是全景视图3D感知系统中的关键组件,它将2D感知视图特征映射到BEV表示。最近的工作中广泛使用了Lift-splat-shot(LSS)[9, 25]和激光雷达结构(LS)[13]。LSS利用像素级密集深度预测和相机内/外参数将图像特征投影到预定义的3D网格体素上。随后,沿垂直维度(高度)应用池化操作以获得扁平的BEV表示。然而,LS依赖于均匀分布的深度假设来转移特征,这导致特征错位,随后在相机光线方向上引起虚假检测,尽管计算复杂度降低。
5. BEV编码器
BEV编码器增强了通过视角变换获得的粗略BEV特征,从而产生更详细的3D表示。BEV编码器的架构类似于图像编码器,包括骨干和颈部。我们采用了第4节中概述的设置。通过在骨干中的几个块之后进行特征扩散,改善了LSS中缺失的中心特征[6]或LS中的混叠伪影。如图2所示,集成了两个多尺度特征以增强表示质量。
6. 占用预测模块
如图2所示,从颈部获取的BEV特征用于占用预测,输入到一个占用头中。它由一个多层卷积网络[1, 22, 23]或者复杂的多尺度特征融合模块[15]组成,后者具有更优越的全局感受野,能够更全面地感知整个场景,同时也提供了对局部详细特征更精细的表征。占用头产生的BEV特征然后通过通道到高度模块。该模块对通道维度执行简单的重塑操作,将BEV特征从 B × C × W × H B × C × W × H B×C×W×H的形状转换为具有 B × C ∗ × Z × W × H B × C^∗ × Z × W × H B×C∗×Z×W×H形状的占用对数,其中 B B B、 C C C、 C ∗ C^∗ C∗、 W W W、 H H H和 Z Z Z分别代表批处理大小、通道数、类别数、3D空间中 x / y / z x/y/z x/y/z维度的数量,且 C = C ∗ × Z C = C^∗ × Z C=C∗×Z。
7. 时间融合模块
时间融合模块旨在通过整合历史信息来增强对动态对象或属性的感知。它由两个主要组件组成:时空对齐模块和特征融合模块,如图2所示。对齐模块利用自车信息将历史BEV特征与当前激光雷达系统进行对齐。这一对齐过程确保历史特征被正确插值并与当前感知系统同步。一旦对齐完成,对齐的BEV特征被传递到特征融合模块。该模块整合了对齐的特征,考虑了它们的时间上下文,生成了动态对象或属性的全面表示。融合过程结合了历史特征和当前感知输入的相关信息,以提高整体感知准确性和可靠性。
图2. 该图示意了我们的FlashOcc的总体架构,最好以彩色和缩放功能查看。
虚线框标识的区域表示可替换模块的存在。每个可替换模块的特征形状分别用代表2D图像、BEV级别和体素级别特征的图标表示。浅蓝色区域对应可选的时间融合模块,其使用取决于红色开关的激活。