基于Transformer的多模态BEV融合方案

机器视觉

16人已加入

描述

结合互补的传感器模式对于为自动驾驶 (AD) 等安全关键型机器人应用提供强大的感知至关重要。最近用于 AD 的最先进的相机-激光雷达融合方法依赖于单目深度估计,与直接使用来自激光雷达的深度信息相比,这是一项众所周知的困难任务。

在这里,作者发现这种方法没有像预期的那样利用深度,并且表明简单地改进深度估计不会导致对象检测性能的改进,并且令人惊讶的是,完全删除深度估计不会降低对象检测性能。这表明,在相机-激光雷达融合过程中,依赖单目深度可能是不必要的架构瓶颈。

在这项工作中,作者引入了一种新颖的融合方法,该方法完全绕过单目深度估计,而是使用简单的注意力机制在鸟瞰网格中选择和融合相机和激光雷达特征。

作者表明,作者的模型可以根据激光雷达功能的可用性来调整其对相机功能的使用,并且与依赖单目深度估计的基线相比,它在 nuScenes 数据集上产生更好的 3D 对象检测。

01  介绍

高效、有效地集成来自不同模式的信息在自动驾驶等安全关键型应用中尤其重要,其中不同的传感器模式是互补的,将它们充分组合对于保证安全至关重要。例如,相机可以捕获远距离物体的丰富语义信息,而激光雷达提供极其准确的深度信息,但在远距离处却稀疏。因此,许多现代自动驾驶平台都拥有大量不同的传感器,必须将这些传感器组合在一起,才能提供对周围场景的准确可靠的感知,并允许这些车辆在现实世界中安全部署。

多模态传感器融合——学习来自多个传感器的场景的统一表示——为这个问题提供了一个可行的解决方案。然而,训练此类多模态模型可能具有挑战性,尤其是当模态与相机(RGB 图像)和激光雷达(3D 点云)不同时。例如,众所周知,不同的模态以不同的速率过度拟合和泛化[53],并且联合训练所有模态可能导致较弱模态的利用不足,甚至在某些情况下与单模态模型相比结果较差[37]。

在自动驾驶的背景下,许多最新的相机-激光雷达融合方法[14,28,33]都是基于Lift-Splat (LS)范式[38]1。在这种方法中,相机特征在与激光雷达特征融合之前使用单目深度投影在鸟瞰图(BEV)或自上而下的空间中。因此,BEV 中相机特征的位置高度依赖于单目深度预测的质量,并且有人认为其准确性至关重要 [14, 28]。在这项工作中,作者重新考虑这些主张,并表明这些模型内的单目深度预测质量很差,无法解释它们的成功。特别是,作者提出的结果表明,当单目深度预测被激光雷达点云的直接深度估计取代或完全删除时,基于 Lift-Splat 的方法表现同样出色。这让作者认为,在融合相机和激光雷达功能时依赖单目深度是一个不必要的架构瓶颈,并且 Lift-Splat 可以被更有效的投影机制取代。

作者引入了一种名为“Lift-Attend-Splat”的相机-激光雷达融合新颖方法,该方法完全绕过单目深度估计,而是使用简单的变压器选择并融合 BEV 中的相机和激光雷达功能。作者提供的证据表明,与基于单眼深度估计的方法相比,作者的方法显示出更好的相机利用率,并且它提高了对象检测性能。作者的贡献如下:

· 作者表明,基于Lift-Splat 范式的相机-激光雷达融合方法没有按预期利用深度。特别是,作者表明,如果完全删除单目深度预测,它们的性能相同或更好。

· 作者引入了一种新颖的相机-激光雷达融合方法,该方法使用简单的注意力机制将相机和激光雷达功能融合到BEV 中。作者证明,与基于 Lift-Splat 范例的模型相比,它可以提高相机利用率并改进 3D 对象检测。

02  相关工作

用于自动驾驶的 3D 物体检测 对于 3D 物体检测,大多数基准测试以使用激光雷达点云的方法为主,因为与仅使用摄像头或雷达的方法相比,激光雷达点云的高度精确的距离测量可以更好地放置 3D 物体。用于点云分类的深度学习方法在 [40, 41] 的开创性工作中首创,早期工作已将类似的想法应用于 3D 对象检测 [42, 45]。最近的一系列方法基于 3D 空间的直接体素化 [59, 65] 或将激光雷达表示沿 z 方向压缩为“柱子”[22, 60]。这些方法非常成功,并且是许多后续工作的基础[15,19,62]。3D 物体检测的任务也可以仅通过多个摄像机来解决。早期的工作大多基于各种两阶段方法[4,20,42,54],而最近的方法直接利用单目深度估计[3,21,43]。当没有激光雷达时,这项任务很困难,因为必须仅使用图像来估计 3D 信息,这是一个具有挑战性的问题。然而,最近的工作通过借鉴激光雷达检测管道 [7,11,16] 的想法,通过改进位置嵌入 [31] 和 3D 查询 [18],以及利用时间聚合 [12,25,30,32, 52, 67] 或 2D 语义分割 [64]表现出了令人印象深刻的性能。

相机-激光雷达融合 可以通过联合利用相机和激光雷达(如果可用)来提高感知质量。最近的融合方法可以大致分为三类:点装饰方法、利用特定于任务的对象查询和架构的方法以及基于投影的方法。点装饰方法使用语义分割数据 [49, 57]、相机特征 [51] 来增强激光雷达点云,甚至使用图像平面中的对象检测来创建新的 3D 点 [63]。此类方法相对容易实现,但其缺点是需要激光雷达点来融合相机功能。TransFusion [1] 是利用激光雷达点云生成的特定于任务的对象查询的方法的最新示例。最终检测是直接进行的,无需将相机特征显式投影到 BEV 空间中。融合也可以在模型的早期进行,例如在 3D 体素 [5, 6] 或激光雷达特征 [23] 的级别,或者通过在相机和激光雷达骨干网之间共享信息 [17, 26, 39]。最后,基于投影的方法将相机特征投影为 3D,然后将其与激光雷达融合(见下文)。

基于投影的方法 作者特别感兴趣的是基于将相机特征投影为 3D 的相机-激光雷达融合方法。最近最先进的方法 [14,28,33] 在 nuScenes 排行榜 [2] 中名列前茅,它利用了 [38] 中提出的想法,并使用单目深度估计在 3D 中投影相机特征。[14] 表明,通过在单目深度估计之前将来自地面真实激光雷达深度图的特征包含到相机流中,可以显着提高 [28, 33] 的性能。另一种方法是使用激光雷达点和相机特征之间的已知对应关系将相机特征直接投影到 BEV 空间中 [8,23,55]。然而,激光雷达点云的稀疏性可能会限制投影哪些相机特征,如[33]中所述。最后,当激光雷达不存在时,可以使用变压器学习在没有明确深度的情况下在 BEV 中投影相机特征,如 [25, 44] 所示。在这里,作者将这一工作扩展到相机-激光雷达融合的情况,并利用交叉注意力来生成要与激光雷达融合的相机特征的密集 BEV 网格。

03  Lift-Splat中的单目深度预测

最近基于 Lift-Splat 范式的相机-激光雷达融合方法 [28, 33] 通过使用单目深度估计将相机特征投影到 BEV 空间中,学习 BEV 网格形式的统一表示:

自动驾驶

其中自动驾驶是从相机特征获得的上下文向量自动驾驶自动驾驶是预定深度箱上的归一化分布,Splat 表示将每个点向下投影到自动驾驶平面的操作,详细信息请参见[28,33,38]。然后使用串联 [33] 或门控注意力 [28] 将生成的特征图与激光雷达特征合并。在这种范式中,单目深度预测被表述为分类问题,并从下游任务间接学习,无需明确的深度监督。

Lift-Splat 深度预测普遍较差 作者分析了 BEVFusion 预测深度的质量,通过使用绝对相对 (Abs. Rel.) 和均方根误差 (RMSE) 将其与激光雷达深度图进行定性和定量比较 [9, 24]。如图 1 所示的示例所示,深度预测不能准确反映场景的结构,并且与激光雷达深度图明显不同,这表明单目深度没有像[33]中预期的那样得到利用。

自动驾驶

改进深度预测并不能提高检测性能 作者接下来研究改进深度预测质量是否能提高物体检测性能。为此,作者重新训练了 [33] 中的模型,损失如下:

自动驾驶

其中自动驾驶是原始3D对象检测损失,自动驾驶是使用激光雷达深度作为目标的深度估计的简单交叉熵损失。通过改变超参数自动驾驶,作者可以控制深度预测的质量并探索它如何影响检测性能。在图 1 中,作者看到,虽然深度监督确实可以在视觉上和定量上产生更准确的深度图,但随着深度监督权重的增加,使用平均精度 (mAP) 测量的检测性能会从基线下降。这表明该方法无法利用更准确的深度预测。自从对多任务损失方程进行训练以来在高自动驾驶值时可能会降低目标检测性能,作者还尝试了另外两种变体:(i) 单独预训练深度监督模块和 (ii) 直接使用激光雷达点云来完全绕过深度监督模块。预训练可以带来更准确的深度预测,但会降低相对于基线的检测性能,而直接使用激光雷达不会改变相对于基线的检测性能,即使所有深度指标都接近于零。

完全删除深度预测不会影响目标检测性能 上述结果使作者假设基于 Lift-Splat 投影的相机激光雷达融合方法没有利用精确的单目深度。为了测试这一点,作者完全删除单目深度预测并将投影(1)替换为:

自动驾驶

其中作者用 1 表示与自动驾驶形状相同的张量,所有条目等于 1。这将相机特征均匀地投影到所有深度。引人注目的是,作者在图 1(右)中看到,去除单目深度估计不会导致目标检测性能下降,这表明准确的深度估计并不是该方法的关键组成部分。作者假设,当激光雷达特征可用时,单目深度的重要性会大大降低,因为激光雷达是更精确的深度信息源,并且该模型能够轻松抑制投射在错误位置的相机特征。这表明依赖单目深度估计可能是不必要的架构瓶颈,并导致相机的利用率不足。

04  无需单目深度估计的相机-激光雷达融合方法

在本节中,作者提出了一种相机-激光雷达融合方法,该方法完全绕过单目深度估计,而是使用简单的变压器在鸟瞰图中融合相机和激光雷达特征[48]。然而,由于大量的相机和激光雷达特征以及注意力的二次性质,将 Transformer 架构简单地应用于相机-激光雷达融合问题是很困难的。如[44]所示,在 BEV 中投影相机特征时,可以使用问题的几何形状来极大地限制注意力的范围,因为相机特征应该只对沿其相应光线的位置做出贡献。作者将这一想法应用于相机-激光雷达融合的情况,并引入了一种简单的融合方法,该方法利用相机平面中的列与激光雷达 BEV 网格中的极射线之间的交叉注意力。交叉注意力不是预测单眼深度,而是学习哪些相机特征是激光雷达特征沿其光线提供的最显着的给定上下文。

自动驾驶

除了 BEV 中相机特征的投影之外,作者的模型与基于 Lift-Splat 范式 [14,28,33] 的方法具有相似的整体架构,如图 2 左侧所示。它由以下模块组成:相机和激光雷达主干,独立为每种模态生成特征;投影和融合模块,将相机特征嵌入到 BEV 中并将其与激光雷达融合;最后是检测头。在考虑对象检测时,模型的最终输出是场景中对象的属性,表示为具有位置、尺寸、方向、速度和分类信息的 3D 边界框。接下来,作者详细解释投影和融合模块的架构。

投影地平线 对于每个摄像机,作者考虑穿过图像中心的水平线以及与其 3D 投影相对应的平面。作者将该平面称为相机的投影地平线。它可以很容易地使用齐次坐标来描述为点集自动驾驶,其中存在自动驾驶使得:

自动驾驶

其中自动驾驶是3×4相机投影矩阵(内在和外在),自动驾驶是图像的高度。请注意,该平面通常不平行于 BEV 网格,其相对方向由相机的外部参数定义。作者在投影地平线上定义一个规则网格,该网格与图像平面中特征的二维网格对齐,方法是从水平线与图像平面中特征列边缘的交点追踪出光线,然后分离这些光线进入一组预先确定的深度箱(类似于[28])。该网格上的特征可以用矩阵自动驾驶表示,其中每一行对应于相机特征图自动驾驶中的特定列。投影地平线的几何形状如图 2 所示(左插图)。

投影地平线和 BEV 网格之间的对应关系 通过沿 3D 空间中的 z 方向投影投影地平线上的点和 BEV 平面上的点,作者可以轻松定义它们之间的对应关系。由于相机通常相对于地面倾斜,因此这种对应关系取决于每个相机的外部参数。作者通过在投影地平线的下投影单元中心位置对 BEV 网格进行双线性采样,将激光雷达特征从 BEV 网格传输到相机的投影地平线。作者将这个过程称为“提升”,并将其表示为相机 i 的投影地平线的 Lifti。类似地,通过在 BEV 网格的投影单元中心位置对投影地平线进行双线性采样,可以在相反的方向上将特征从投影地平线转移到 BEV 网格。作者将此操作表示为 Splati ,类似于 [28, 33, 38].

Lift-Attend-Splat 作者的投影模块如图 2(右)所示,可以分为三个简单的步骤:(i)作者首先将 BEV 激光雷达特征自动驾驶提升到相机自动驾驶的投影地平线上,产生“提升”激光雷达特征自动驾驶,(ii) 然后,作者使用简单的变换器编码器-解码器让“提升的”激光雷达特征关注相应列中的相机特征,在投影地平线上产生融合特征自动驾驶,最后(iii) 作者将这些特征重新投射到 BEV 网格上以产生自动驾驶。在参与步骤中,每列中的相机特征由变换器编码器 E 进行编码,并作为键和值传递给变换器解码器自动驾驶,变换器解码器自动驾驶使用平截头体激光雷达特征作为查询。这三个步骤的结果可以写为:

自动驾驶

其中,自动驾驶自动驾驶将 BEV 特征投影到摄像机自动驾驶的投影地平线上(反之亦然),如上所述。最后,作者应用一个简单的融合模块,将不同相机的投影特征相加,将它们与激光雷达特征连接起来,并应用卷积块以获得 BEV 中的最终特征。这种简单的架构允许将相机特征从图像平面投影到 BEV 网格上,而无需单目深度估计。作者使用一组柱截头体变压器权重,这些权重在所有柱截头体对和相机之间共享。为了简单起见,作者在这里使用单个变压器编码器和解码器,但表明增加此类块的数量可能是有益的。

注意力与深度预测 值得讨论的是作者的方法与直接预测单眼深度有何不同。当使用单目深度时,相机特征图中的每个特征都被投影到由归一化深度分布加权的多个位置处的 BEV 中。这种归一化限制每个特征要么投影到单个位置,要么在多个深度上以较低强度涂抹。然而,在作者的方法中,相机和激光雷达之间的注意力是这样的,即相同的相机功能可以完全为 BEV 网格中的多个位置做出贡献。这是可能的,因为注意力是在键上标准化的,键对应于相机特征图中的不同高度,而不是查询,对应于沿光线的不同距离。此外,作者的模型在选择投影相机功能的位置时可以访问 BEV 中的激光雷达功能,这使其具有更大的灵活性。

05  实验

自动驾驶

表1上展示了 3D 对象检测任务的结果。与基于 Lift-Splat 投影 [28, 33] 的基线相比,作者的方法显示了 nuScenes 数据集的验证和测试分割方面的改进。特别是,作者在测试分组中显示了 mAP (+1.1) 和 NDS (+0.4) 的显着改进。由于激光雷达骨干网是冻结的并且在所有方法中都是相似的,这表明作者的模型能够更好地利用相机功能。底部显示了使用测试时间增强 (TTA) 和模型集成的结果。作者对镜像和旋转增强以及单元分辨率为 0.05m、0.075m 和 0.10m 的整体模型的组合执行 TTA。作者首先在每个单元分辨率上应用 TTA,然后使用加权框融合 (WBF) [47] 合并结果框。毫不奇怪,作者的方法在这些技术方面表现出了出色的扩展性,并且在 nuScenes 验证集上优于 BEVFusion [33]。

自动驾驶

作者可以根据物体与ego的距离和大小对其进行聚类,进一步分析作者模型的性能,见图 3。作者可以看到,大部分改进都来自于距离较远和尺寸较小的物体。在这些情况下,单眼深度估计尤其困难,这也解释了为什么作者的模型在这些情况下表现更好。请注意,即使远处和小物体包含的激光雷达点较少,作者的模型仍然能够有效地利用相机特征,即使激光雷达提供的背景较弱。

自动驾驶

作者可视化相机特征投影到 BEV 网格上的位置,并将作者的方法与 BEVFusion [33] 进行比较。对于作者的方法,作者检查变压器中最终交叉注意力块的注意力图,对所有注意力头进行平均。对于 BEVFusion,作者使用单目深度估计来建立相机和 BEV 空间中的位置之间的对应强度。在计算 BEV 中投影相机特征的总权重时,作者仅考虑与地面实况对象相对应的像素,如图 4a(左)所示,作者的方法将相机特征主要放置在存在地面实况边界框的区域。这表明它可以有效地利用激光雷达点云作为上下文,以便将相机特征投影到 BEV 中的相关位置。与图 4b 中所示的 BEVFusion 相比,特征分布在物体周围显得更窄且更强。这可能是因为作者的投影机制不需要沿其光线对相机特征的权重进行归一化,从而使作者的模型能够更灵活地将特征放置在所需位置。有趣的是,尽管作者的方法也将相机特征投影到 BEV 中的真实框之外,但这些区域中的激活强度受到融合模块的抑制。这与作者在第 3 节中的发现是一致的。

自动驾驶

作者消除了作者方法的一些设计选择,并在表2上显示了它们对目标检测性能的影响。对于所有的消融实验,作者使用更简单的训练设置,安排 10 个 epoch,批量累积而不是完整批量训练,并且没有相机增强。作者首先分析融合模块的不同实现的影响:作者比较一个简单的跳跃连接(add)、一个小的串联和卷积层(Cat+Conv,如[33])和一个门控 sigmoid 块[28]。作者发现它们的表现都非常相似,其中 Cat+Conv 在 mAP 方面表现稍好,这与 [28] 的发现相反。作者还减少了投影“参与”阶段中变压器解码器块的数量,并表明增加它们的数量确实会导致 mAP 略有改善。这表明作者的方法可以随着计算量的增加而扩展,但作者在实验中使用单个解码器块,因为它在质量和性能之间提供了良好的平衡。最后,当训练期间增加时间特征聚合中的帧数时,作者还看到检测分数得到了很好的提高。

审核编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分