添加小助理微信AIDriver004,加入自动驾驶之心近30+方向技术交流群!
加入自动驾驶之心知识星球,星球内凝聚了众多自动驾驶实战问题,以及各个模块的学习资料:近20门视频课程(星球成员免费学习)、最新顶会论文、计算机视觉书籍、优质3D视觉算法源码等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!
在自动驾驶场景中,来自不同传感器模式(如相机和激光雷达)的数据融合已成为一种普遍的方法。最近,高效点云transformer的发展强调了集成稀疏格式信息的有效性。在融合方面,由于图像块在像素空间中密集且深度模糊,因此需要额外的设计考虑以实现有效的融合。我们对基于Transformer的稀疏相机-激光雷达融合的设计选择进行了全面探索。这项研究涵盖了图像到3D和激光雷达到2D的映射策略、注意力邻居分组、单模态分词器以及Transformer的微观结构。通过整合我们研究中发现的最有效原则,引入了FlatFusion,这是一个精心设计的稀疏相机-激光雷达融合框架。值得注意的是,FlatFusion显著优于包括UniTR、CMT和SparseFusion在内的最先进的基于稀疏Transformer的方法,在nuScenes验证集上实现了73.7的NDS(新驾驶场景评估),并且使用PyTorch达到了10.1 FPS(每秒帧数)。
自动驾驶的发展促使了复杂的3D目标检测系统的发展,这些系统能够准确地感知和解释环境。在这一努力的前沿是多模态数据输入的整合,特别强调相机和激光雷达数据的融合。相机提供了丰富的语义信息,而激光雷达则提供了精确的几何细节,这两种传感器之间的协同作用是增强自动驾驶系统鲁棒性和准确性的有力途径。尽管具有潜力,但由于相机和激光雷达数据具有不同的特性,它们的融合面临巨大挑战。相机捕捉的是密集但深度模糊的二维图像,而激光雷达生成的是精确但稀疏且语义不丰富的三维点云。这种差异要求采用创新方法来整合它们的互补优势。
稀疏Transformer领域的最新进展为高效数据整合开辟了新途径,这种格式适应于激光雷达数据的稀疏性,显示出比SparseConv更好的有效性和可扩展性。然而,相机图像的密集性需要仔细考虑,以实现与稀疏激光雷达表示的无缝融合。许多开创性工作提出了稀疏融合的一般框架,但未对各个组件的具体设计进行探索。为了弥补这一空白,我们通过深入分析、可视化和消融实验,从稀疏Transformer的角度深入探讨了相机和激光雷达数据有效融合的设计原则和架构选择。
本文探索了涵盖相机-激光雷达融合的大部分要素,包括图像到3D和激光雷达到2D的映射技术、注意力邻居分组、单模态分词器以及Transformer的微观结构。通过这项研究,揭示了最有利于稀疏相机-激光雷达融合的设计原则,包括轻量级的图像主干和激光雷达主干、基于体素的3D到2D融合、2D到3D融合的部分投影、3D到2D的一阶融合、扁平窗口划分算法以及带有3D位置编码的PreNorm Transformer结构。基于这些见解,引入了FlatFusion,这是一种为稀疏相机-激光雷达融合精心设计的方法。如图1所示,FlatFusion在准确性和效率方面都显著优于现有的最先进方法,包括UniTR、CMT和SparseFusion。值得注意的是,FlatFusion在nuScenes验证集上实现了惊人的73.7 NDS,同时保持了使用PyTorch的10.1 FPS处理速度。
主要贡献:
• 分析:对稀疏相机-激光雷达融合框架中的关键组件进行了详细研究,并通过全面的实验和可视化手段识别出其局限性。
• 改进:引入了针对已识别问题的特定且性能优化的解决方案,从而提升了融合的性能和效率。
• 性能:所提出的FlatFusion方法在准确性和速度方面都显著优于现有的稀疏融合方法,为该领域树立了新的标准。
如图2所示,基于稀疏Transformer的相机-激光雷达融合框架包括每个模态的backbone网络,用于对输入进行token化;两个表示空间用于融合信息(2D图像平面和3D空间),这需要不同的投影策略;以及稀疏窗口注意力块,这需要不同的邻域划分策略和定制的Transformer结构。在以下部分中,所有实验均在nuScenes数据集上进行,并报告验证集上的结果。在4090上以bs大小为1测试lantency,并且我们仅报告比较组件的延迟。
原始传感器数据,即图像和点云,必须在输入到Transformer之前转换为token。由于存在融合块,因此可能不需要使用过于复杂的骨干网络来实现性能与效率之间的最佳平衡。
对于图像主干网络,如表1的上部所示,我们比较了:(I)4个Transformer层(如UniTR中所示),(II)ResNet18(一种广泛使用的轻量级编码器),以及(III)VoVNet(基于实例查询的方法如CMT和SparseFusion所需)。所有图像主干网络都经过ImageNet预训练,而4个Transformer层则进一步在nuImage中进行预训练。对于激光雷达主干网络,如表1的下部所示,我们比较了:(I)VoxelNet(稀疏卷积网络),(II)4个稀疏点云Transformer层,以及(III)无(通过增加4个额外的融合层来补偿)。得出结论:
Unitr中的浅层ViT表现不佳,因为轻量级网络的要求与ViT本质上需要大量模型和广泛数据的特性之间存在不匹配。与ResNet18相比,VoVNet引入了显著的延迟,因此我们选择了ResNet18,它实现了良好的折衷。
稀疏点云Transformer优于基于稀疏卷积的VoxelNet。省略激光雷达主干网络会导致性能大幅下降,这凸显了标记化的重要性。
有效融合2D图像特征和3D激光雷达特征是本框架的核心,但像素空间和体素空间之间的差异带来了挑战。因此,常见的做法是将激光雷达特征投影到图像空间(3D到2D)或将图像特征投影到3D空间(2D到3D)。之后进行局部邻域融合,因为全局注意力在计算上是不切实际的,并且缺乏与局部性相关的归纳偏差。以下部分将研究投影策略、这两种投影的顺序和必要性。
3D到2D投影:虽然将激光雷达特征投影到像素空间在概念上很简单,但现有方法(如UniTR)存在局限性。它们在pillar空间中对激光雷达特征进行操作,但缺乏垂直(z轴)维度。因此,如图3a所示,激光雷达特征在图像特征中的neighbor被限制在地平面上,导致上下文信息的显著损失。为了解决这个问题,提出了基于体素的激光雷达特征进行3D到2D的融合,如图3b所示。体素表示法确保激光雷达特征与图像完全对齐,从而提供更全面的场景表示。为了进行公平的比较(因为体素表示法引入了额外的计算),还尝试为pillar基线添加了4个额外层,结果总结在表2中。研究结果表明,尽管计算需求适度增加,但基于体素的激光雷达特征在3D到2D融合方面的性能明显优于基于pillar的表示法。值得注意的是,为支柱表示法增加额外层并没有带来性能提升,这进一步证明了我们基于体素的方法的有效性。
2D到3D投影:将图像特征投影到激光雷达空间受到像素中固有深度模糊性的复杂影响。因此,需要设计良好的投影策略。这里研究了三种方法:(I)最近邻:根据像素空间中的最近体素进行投影。虽然这种方法避免了任何可学习的模块,但由于二维空间中附近的体素可能对应着非常不同的深度,因此会引入显著误差,导致该方法非常不准确,如图4(中间)所示。
深度估计:训练一个额外的深度网络,并使用预测的深度进行投影。这种方法可以是准确的,但需要负担沉重的网络来实现准确的深度预测。(III)部分投影:与现有设计不同,我们提出仅投影那些有激光雷达点的图像块,以确保准确的深度。表3显示,部分投影的速度明显快于深度估计,而最近邻方法会降低性能。如图4(底部)所示,由于图像特征通常会被下采样,因此大部分图像特征都会被投影,因此信息损失是有限的。此外,在3D到2D模块中会使用所有图像特征,这可以补偿一些像素的损失,因此我们选择既准确又高效的部分投影方法。
顺序与必要性:我们探索了2D到3D和3D到2D融合投影的应用顺序,是先进行2D到3D还是先进行3D到2D。此外,在保持Transformer层数一致的同时,进行了仅使用单一融合投影的实验,以隔离其影响。结果如表4所示,强调了两种融合投影的重要性,它们都为多模态关联提供了独特的视角。值得注意的是,先进行3D到2D的方法大大优于先进行2D到3D的方法,这可以归因于激光雷达体素特征在阶段之间会进行下采样,而下采样过程中会丢失对于准确3D到2D融合至关重要的z轴信息。先进行3D到2D可以为3D到2D融合提供更细粒度的z轴激光雷达体素特征,从而实现最佳性能。
与图像或语言不同,3D数据(如点云)本质上是稀疏的,特别是在自动驾驶场景中。因此,应用注意力机制需要稀疏和局部窗口化的机制。与SST中将元素划分为形状相同的窗口不同,最先进的稀疏点云Transformer将元素划分为大小相等的组,从而显著降低了延迟。在融合方面,标记的分布也是不规则的,这与稀疏点云Transformer非常契合。为此,我们在融合的背景下比较了三种最先进的分区算法:(I)动态集合:首先根据坐标将空间划分为几个窗口,然后根据每个窗口内非空体素的数量将组进行划分。它通过填充来对齐张量形状,并使用掩码执行注意力机制。(II)扁平化窗口:它也划分窗口,但仅根据索引对组进行划分,这使得它比动态集合更快,但牺牲了局部性。(III)空间填充曲线:它使用数学曲线遍历高维空间中的每个点,在3D空间中比扁平化窗口更好地保持空间邻近性。在图3中,分别在3D和2D空间中可视化了这三种分区算法。可以观察到在3D空间中的空间邻近性方面:动态集合 > 空间填充曲线 > 扁平化窗口。在2D空间中,空间填充曲线略显杂乱,这可能是因为该数学曲线是为高维空间设计的。
表5给出了性能比较,得出以下结论:
• 由于其复杂的分区机制,即使使用定制的CUDA操作符,动态集合也是最慢的。而扁平化窗口是最快的,因为它依赖于简单的索引。此外,它不需要注意力掩码,因此支持FlashAttention,从而进一步加速了处理速度。
• 动态集合和扁平化窗口的性能相似,这表明注意力机制的鲁棒性。而空间填充曲线的性能最差,原因是其2D分区效果不佳。
group大小:稀疏窗口注意力机制的一个关键超参数是组大小,即每组进行注意力计算的标记数量。我们研究了表6中列出的三种不同组大小(40、80、160)下的性能。发现80是合适的,这与PTv3中的结论大不相同,他们发现更大的组大小(高达1024)可以一致地带来性能提升。这种差异可能是因为他们主要关注室内点云,与室外点云相比,室内点云更加密集。在图6中可视化了不同组大小的分区结果。可以发现,当使用较小的组大小时,感受野受限,而较大的组会导致较差的局部性,这表明调整组大小的必要性。
Transformer由注意力机制、前馈神经网络(FFN)、残差连接、层归一化(LayerNorm)和位置编码(PE)组成。遵循LLaMA系列,我们采用了FlashAttention和SwiGLU。现有的工作如FlatFormer和UniTR都采用了后归一化(PostNorm),而现代架构通常采用前归一化(PreNorm)。UniTR提出使用额外的块级残差和后归一化。至于位置编码(PE),我们研究了窗口级局部索引或3D位置编码。在表7中发现前归一化和3D位置编码达到了最佳性能。
数据集:为了评估性能,使用了nuScenes,这是一个专为自动驾驶应用设计的大规模公开数据集。它包含1000个场景,每个场景20秒,配备了六个摄像头和一个激光雷达传感器。使用官方的训练-验证-测试分割(750-150-150)。这种多传感器设置捕获了广泛的注释,包括23个目标类别和8个属性,超过140万个带注释的3D box。
评估指标:对于3D目标检测,采用了两个主要指标:平均精度均值(mAP)和nuScenes检测分数(NDS)。mAP是通过在所有类别中,对0.5米、1米、2米和4米的距离阈值进行平均计算得出的。NDS是官方指标,它是mAP和五个衡量平移、缩放、方向、速度和属性误差的指标的加权平均值。
实现:使用OpenPCDet作为代码库,并遵循UniTR中的数据预处理、增强、后处理、优化器和训练计划。在所有实验中,输入都是点云和所有6个大小为256×704的相机图像。网格大小设置为(0.3米,0.3米,0.25米),隐藏维度为128。所有模型都在8个RTX4090上进行训练。
在表8中给出了在nuScenes验证集和测试集上的3D目标检测结果。可以观察到,Flatfusion在保持高帧率的同时实现了强大的性能,这证明了所探索设计的有效性。值得注意的是,与最新的基于稀疏Transformer的融合方法相比,即CMT、SparseFusion、UniTR,Flatfusion在性能上表现出了明显的优势。
在表9a中,研究了网络深度的影响。对于每个块(激光雷达主干、3D到2D、2D到3D)中的Transformer层数,发现2层会导致欠拟合,而8层则会导致训练不稳定。对于鸟瞰图(BEV)主干,发现常用的SECOND的性能不如定制的ResNet,这表明残差连接的有效性。
图7中给出了Flatfusion中每个组件的延迟。可以观察到,尽管经过了大量优化,分区时间仍然是最大的开销之一,这值得进一步研究。此外,任务头(密集化)、鸟瞰图(BEV)主干和Transformer模块可能还可以进一步轻量化。
[1] FlatFusion: Delving into Details of Sparse Transformer-based Camera-LiDAR Fusion for Autonomous Driving.
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!重磅,自动驾驶之心科研论文辅导来啦,申博、CCF系列、SCI、EI、毕业论文、比赛辅导等多个方向,欢迎联系我们!
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
网页端官网:www.zdjszx.com
② 国内首个自动驾驶学习社区
国内外最大最专业,近4000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(端到端自动驾驶、世界模型、仿真闭环、2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频。
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!
扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵