本文经自动驾驶之心公众号授权转载,转载请联系出处。
写在前面&笔者的个人理解
目前随着自动驾驶技术的快速发展,安全的自动驾驶车辆需要依赖可靠和准确的场景感知,其中3D目标检测是非常核心的一项任务。自动驾驶中的感知模块通过定位和识别周围3D世界中的决策敏感物体,从而为下游的规控模块做出准确的决策提供保障。
自动驾驶车辆为了输出准确和可靠的感知结果,通常均会配备激光雷达、相机、毫米波雷达以及超声波雷达等多种传感器采集设备。为了增强自动驾驶车辆的感知能力,目前大多数自动驾驶汽车都同时部署了激光雷达和摄像头传感器,分别提供3D点云和RGB图像。由于两种传感器的感知特性不同,它们自然表现出强烈的互补效应。点云涉及必要的目标定位和几何信息,具有稀疏表示的特性,而2D图像则以高分辨率的形式提供丰富的目标外观和语义信息。因此,跨模态的专用信息融合对于强大的场景感知尤为重要。
目前常用的多模态3D目标检测方法通常采用如下图(a)图的融合策略,将各个模态的表示组合成混合的特征。然而,这种融合方法在结构上受到限制,由于信息融合到统一表示的过程中存在很大程度上的不完善,所以可能会丢失很大一部分特定模态的表示信息。
针对上述提到的相关问题,并为了克服上述提到的相关挑战,我们提出了一种新颖的模态交互策略,称之为DeepInteraction++,相关的融合结构如下图的(b)图所示。
各类不同的多模态融合感知算法架构对比
我们工作的核心思路是学习和维护多种特定模态的特征表示,而不是得出单一模态的融合表示。我们提出的方法实现了模态间的交互,允许自发交换信息并保留特定模态的信息优势,同时最小化不同模态之间的干扰。具体来说,我们首先使用两个独立的特征提取主干网络,以并行的方式将3D空间的点云数据和2D平面的多视图图像映射到多尺度的LiDAR BEV特征和相机全景特征中。随后,我们使用编码器以双边方式交互异构特征来进行渐进式表示学习和集成。为了充分利用每个模态的特征表达,我们设计了一个解码器以级联方式进行多模态预测交互,以产生更准确的感知结果。大量实验证明了我们提出的DeepInteraction++框架在3D目标检测和端到端自动驾驶任务上均具有卓越的性能。
论文链接:https://www.arxiv.org/pdf/2408.05075
代码链接:https://github.com/fudan-zvg/DeepInteraction
网络模型的整体架构和细节梳理
在详细介绍本文提出的DeepInteraction++算法模型之前,下图整体展示了提出的DeepInteraction++算法模型的网络结构。
提出DeepInteraction算法模型的整体框架图
与现有技术相比,本文提出的算法模型在整个检测流程中为激光雷达点云和相机图像模态保留两种不同的特征表示,同时通过多模态的交互策略实现了不同模态信息交换和聚合,而不是创建单一的模态融合表示。通过上图的网络结构可以看出,提出的DeepInteraction++由两个主要模块组成:具有多模态表征交互的编码器模块和具有多模态预测交互的解码器模块。编码器实现模态之间的信息交换和集成,同时通过多模态表征交互保持每个模态的单独场景表达。解码器从单独的模态特定表示中聚合信息,并以统一的模态无关方式迭代细化检测结果。
编码器:实现多模态的表达交互
与通常将多个模态的输入特征聚合到一个混合特征图的传统模态融合策略不同,我们设计的编码器模块采用了多输入多输出的结构,通过多模态表达交互的方式来维护和增强单个模态的特征,其编码器的网络结构如上图中的(a)图所示。整体而言,编码器模块将激光雷达和图像主干独立提取的两个特定模态场景表示特征作为输入,并产生两个精修的特征表达作为输出。具体而言,编码器模块由堆叠多个多模态表征交互编码器层组成。在每一层中,来自不同模态的特征参与多模态表征交互和模态内表征学习,以实现模态间和模态内的交互过程。
双流Transformer的交互编码器模块
在之前DeepInteraction算法模型的基础上,为了进一步推动更高的可扩展性和降低计算开销,我们通过将原始编码器层替换为一对自定义的注意交互机制的Transformer层来实现。此外,多模态表达交互模块中的并行模态内和模态间表征学习现在用作重构架构中的自注意和交叉注意操作。这里,我们以激光雷达分支为例,每个Transformer层内的计算可以表示为如下的情况:
其中公式中的FFN表示前馈网络层,LN表示层归一化,SA和CA分别为表示多模表达交互和模态内表征学习。图像分支中的Transformer 层遵循类似的设计。
多模态表达交互
模态内表征学习
除了直接合并来自异构模态的信息之外,模态内推理还有助于更全面地整合这些表征。因此,在编码器的每一层中,我们进行与多模态交互互补的模态内表征学习。在本文中,我们利用可变形注意力进行模态内表征学习。同时,考虑到透视投影引入的尺度差异,相比于固定局部邻域内的交叉注意力,具有更灵活感受野的交互操作更为合理,从而在保持原有高效局部计算的同时,实现了更灵活的感受野,并促进了多尺度的信息交互。
分组稀疏注意力实现高效交互
考虑到激光雷达点云固有的稀疏性,激光雷达点的数量在Pillar内会根据其位置而变化,并且单个Pillar内的点最多只能被两个摄像头看到。因此,为了在图像到激光雷达的表示交互期间充分利用GPU的并行计算能力,我们仔细检查每个Pillar中有效图像标记数量的分布,并将这些Pillar划分为几个区间,然后,我们通过将键和值的数量填充到间隔的上限来批量处理每个间隔内的支柱,以进行注意力计算。通过仔细选择间隔边界,可显著减少内存消耗,而对并行性的影响可忽略不计。
解码器:多模态预测交互
除了考虑表示层面的多模态交互之外,我们还引入了具有多模态预测交互的解码器来进行预测,其网络结构如下图所示。
多模态预测交互模块网络结构图
通过上图的(a)图可以看出,我们的核心思想是增强一种模态在另一种模态条件下的3D目标检测。具体来说,解码器是通过堆叠多个多模态预测交互层来构建的,其中部署预测交互以通过交替聚合来自增强图像表示和增强BEV表示的信息来逐步细化预测过程。
端到端的自动驾驶
为了进一步证明我们提出的DeepInteraction++的可扩展性和优越性,我们将DeepInteraction++扩展为端到端多任务框架,同时解决场景感知、运动预测和规划任务。具体而言,在使用了现有的检测头之外,我们还使用了额外的任务头来形成端到端框架,包括用于地图分割的分割头、用于估计被检测物体运动状态的预测头和用于为自我车辆提供最终行动计划的规划头。考虑到来自BEV和周围视图的特征图用于深度交互式解码,我们做了一些修改以利用这一优势。首先,与激光雷达点云相比,图像上下文对于地图表示更具辨别性,而大量的点云信息可能会反过来造成混淆。因此,我们通过LSS将周围视图特征投影到BEV上,然后将它们传播到地图分割头中。随后,预测和规划头将检测和分割生成的结果作为输入,并使用标准Transformer解码器对其进行处理,从而实现端到端的自动驾驶任务。
实验
为了验证我们提出算法模型的有效性,我们在nuScenes的验证集和测试集上与其它SOTA算法模型进行了对比,相关的实验结果如下图所示。
不同算法模型在nuScenes数据集上的精度对比
通过上述的实验结果可以看出,我们提出的DeepInteraction++算法模型实现了SOTA的感知性能。此外,为了进一步直观的展现我们提出算法模型的效果,我们将模型的检测结果进行了可视化,如下图所示。
算法模型的可视化结果
此外,为了展现我们提出的DeepInteraction++框架在端到端任务上的性能,我们也在nuScenes的验证集上比较了SOTA算法模型的端到端的规划性能,具体的性能指标如下图所示。
不同算法模型的planning性能
上述的实验结果表明我们提出的算法框架在大多数评估指标上显著超越了现有的面向规划的方法。除了提供更准确的规划轨迹外,DeepInteraction++ 还可以通过对交通参与者进行更精确、更全面的感知和预测来实现更低的碰撞率。为了更加直观的展现我们模型的planning性能,我们也将相关的结果进行了可视化,如下图所示。
端到端planning任务的性能对比情况
通过上图的可视化结果可以看出,通过整合多模态信息并采用有意义的融合策略,我们提出的方法可以全面理解和分析驾驶场景,从而即使在复杂而错综复杂的驾驶环境中也能做出更合理的规划行为。此外,由于上游的精准感知,DeepInteraction++能够有效避免因累积误差而导致的错误动作,如上图中的第三行所示。
结论
在本文中,我们提出了一种新颖的多模态交互方法DeepInteraction++,用于探索自动驾驶任务中内在的多模态互补性及其各自模态的特性。大量的实验结果表明,我们提出的方法在nuScenes数据集上的3D目标检测以及端到端任务上取得了最先进的性能。