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]。
4. 视角变换器
视角变换器是全景视图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级别和体素级别特征的图标表示。浅蓝色区域对应可选的时间融合模块,其使用取决于红色开关的激活。
04 主干网络部分
4.1 选择更合适的主干网络
目标检测任务中常见的主干网络包括:Resnet,Swin-transformer,ViT,Efficientnet,Vovnet,ShuffleNet,MobileNet,GhostNet,其中Resnet,Swin-transformer,Vovnet较为常见,Resnet-101,Resnet-50网络更是大多数模型的主干网络。
ResNet(Residual Network)是由微软亚洲研究院的Kaiming He等人提出的,它在2015年的ILSVRC比赛中斩获了冠军,成为了经典的深度学习骨干网络之一。下面我们将对ResNet进行详细介绍。
EfficientNet是由谷歌研究团队提出的一种基于复合缩放的神经网络架构,其主要特点是在不增加计算复杂度的情况下提升模型性能。EfficientNet使用了一种称为复合缩放(Compound Scaling)的方法,同时调整网络的深度、宽度和分辨率,从而在不增加计算成本的情况下提高了模型的效果。
虽然传统ResNet在一定程度上改善了传统深层网络的训练困难问题,但相比EfficientNet,ResNet仍然存在参数量大、计算量大的问题,使得在移动设备等资源受限的环境下应用时性能不尽如人意。实际应用中,不同的骨干网络具有各自的优势和局限性。EfficientNet在目标检测任务中表现出色,尤其适合资源受限的场景;而ResNet虽然在一些任务上表现较好,但对于目标检测任务来说可能存在训练速度较慢的问题。
4.2 FlashOcc主干网络
在FlashOcc中主干网络对输入的环视图像进行多尺度的特征提取,2D主干网络采用的是ResNet-50。
需要注意的是,由于当前的config配置是将时序上连续的三帧环视图像一起输入到网络模型当中,所以模型对于不同帧的处理方式是不同的。
-
如果当前时刻标记为t,那么对于t-2时刻的环视图像,2D主干网络只会输出降采样四倍的特征图用于后续进行双目立体的深度估计,代码中定义降采样4倍的特征为Stereo Feature。
-
但是对于t和t-1时刻,2D主干网络在输出降采样4倍Stereo Feature的同时,还会输出降采样16倍和32倍的特征图,用于后续完成多尺度特征的信息融合。
05 前后向投影模式
该模式由FB-Occ提出,在精度预测和推理速度上在当时都是领先的存在,该模式包含两部分:前向投影和后向投影模式。
5.1 前向投影
-
使用前向投影来生成3D体素表示
-
将 3D 体素表⽰压缩为扁平化的BEV特征图 3)最后将 3D 体素表⽰和优化的 BEV 表⽰的融合特征输⼊到后续任务头中
前向投影总结:相对原来的LSS是投影到BEV空间中,这里是投影到3D体素空间中
5.2 后向投影
-
3D体素表示压缩为BEV表示,从⽽结合更强的语义
-
利⽤了投影阶段的深度分布,能够更精确地建模投影关系
后向投影总结:灵感来源于BEVFormer
-
与使⽤随机初始化参数作为 BEV 查询的 BEVFormer 不同
-
在推理阶段使用了深度分布,从而保证了更加精确的
最后获得3D体素表示和优化后的BEV表示后, 通过扩展BEV特征的过程将他们组合起来, 从而产生最终的3D体素。
06 BEV特征解码
在三维空间中对提升的体素特征进行直接解码相比,由于维度的减少,二维BEV解码器会比三维解码器速度更快。将三维体素特征的z dim与其嵌入通道结合即,得到2D BEV特征B‘∈R(C2×Z2)×H2×W2如下图所示: