mit的BEVFusion论文笔记

一、论文链接:

论文:https://arxiv.org/pdf/2205.13542.pdf

代码:GitHub - mit-han-lab/bevfusion: [ICRA'23] BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird's-Eye View Representation

二、Abstract:

多传感器融合对于一个精确、可靠的自动驾驶系统来说十分关键。最近的方法是基于点级融合的:用相机特征来增强激光雷达点云。然而,相机到激光雷达的投影丢弃了相机特征的语义密度,阻碍了这种方法的有效性,特别是对于面向语义的任务(如3D场景分割)。在本文中,我们用一种高效、通用的多任务多传感器融合框架——BEVFusion打破了这一惯例。它在共享鸟瞰图(BEV)表示空间中统一了多模态特征,很好地保留了几何信息和语义信息。为了实现这一点,我们通过优化BEV池化来提升视图转换中的关键效率瓶颈,减少了超过40×的延迟。BEVFusion本质上是任务无关的,无缝支持不同的3D感知任务,几乎没有架构变化。它在nuScenes上达到了新的Sota,在3D目标检测任务上mAP和NDS提高了1.3%,在BEV地图分割上mIoU提高了13.6%,计算成本降低了1.9×。

三、Introduction

自动驾驶系统配备了不同的传感器。例如,Waymo的自动驾驶汽车有29个摄像头、6个雷达和5个激光雷达。不同的传感器提供互补的信号:例如,相机捕获丰富的语义信息,激光雷达提供准确的空间信息,而雷达提供即时的速度估计。因此,多传感器融合对于准确、可靠的感知具有重要意义。

来自不同传感器的数据以根本不同的方式表示:例如,相机在透视视图中捕获数据,而激光雷达在三维视图中捕获数据。为了解决这种视图差异,我们必须找到一个适合于多任务多模态特征融合的统一表示方法。由于在二维感知方面的巨大成功,很自然的想法是将激光雷达点云投影到相机上,然后用2D CNN处理RGB-D数据。然而,这种激光雷达到相机的投影引入了严重的几何失真(见图1a:在三维空间中很远的点可能投影到平面上就变得很近),这使得它对几何导向的任务效果很差,如3D物体识别。

最近的传感器融合方法则遵循了另一个方向。它们用2D图像的语义标签、CNN或虚拟点来增强激光雷达点云,然后应用一种现有的基于激光雷达的探测器来预测3D边界框。尽管这些点级融合方法在大规模检测基准上表现出了显著的性能,但它们几乎不能在面向语义的任务上工作,如BEV地图分割。这是因为相机到激光雷达的投影在语义上是有损的(见图1b:不能完全与3D空间匹配):对于一个典型的32束激光雷达扫描仪,只有5%的相机功能将与激光雷达点相匹配,而其他所有功能都将被删除。对于更稀疏的激光雷达(或成像雷达)来说,这种密度差异将变得更加剧烈。

在本文中,我们提出BEVFusion将多模态特征统一在共享鸟瞰视图(BEV)表示空间中,用于任务无关学习。我们保持了几何结构和语义密度(见图1c),并自然地支持大多数3D感知任务(因为它们的输出空间可以被BEV自然捕获)。在将所有特性转换为BEV时,我们发现了视图转换中主要的主要效率瓶颈:即,仅BEV池化操作就占用了模型80%以上的运行时间。然后,我们提出了一种可以进行预计算和减少间隔的内核来消除这一瓶颈,实现了超过40×的加速。最后,我们应用全卷积BEV编码器来融合统一的BEV特征,并附加了一些特定于任务的头来支持不同的目标任务。

BEVFusion在nuScenes基准上达到了新的Sota。在3D目标检测中,它在所有解决方案里排名第一。BEVFusion在BEV地图分割上显示出了更显著的提升。它的mIoU比仅相机模型高6%,比仅激光雷达模型高13.6%,而现有的融合方法几乎不能工作。BEVFusion是高效的,在得到这些结果的同时也降低了1.9×的计算成本。

BEVFusion打破了长期以来的观点,即点级融合是多传感器融合的最佳解决方案。简单性也是它的关键优势。我们希望这项工作能够为未来的传感器融合研究提供一个简单而有力的基础,并激励研究者重新思考通用多任务多传感器融合的设计和范式。

四、Related Work

LiDAR-Based 3D Perception

研究人员设计了单级3D目标探测器,使用PointNets或SparseConvNet提取扁平的点云特征,并在BEV空间中进行检测。后来,Yin等人探索了无锚框的3D目标检测。另一个研究重点是两阶段目标检测,它在现有的一阶段目标检测器中增加了一个RCNN网络。还有类似U-Net的模型专门用于3D语义分割,这是离线高清地图构建的一个重要任务。

Camera-Based 3D Perception

由于激光雷达传感器的高成本,研究人员在仅相机的3D感知上花费了大量的精力。FCOS3D通过增加3D回归分支扩展了图像检测器,后来又在深度建模方面进行了改进。DETR3D、PETR和GraphDETR3D在3D空间中使用可学习的对象queries设计了基于DETR的检测头,而不是在透视视图中执行对象查询。受基于激光雷达的探测器设计的启发,另一种仅相机的3D感知模型使用视图转换器明确地将相机特征从透视视图转换为鸟瞰视图。BEVDet和M2BEV有效地将LSS和OFT扩展到3D目标检测,并在发布时实现了最先进的性能。CaDDN为视图转换器增加了显式的深度估计监督。BEVDet4D、BEVFromer和PETRv2在多摄像机3D目标检测中利用时间线索,相比单帧方法得到了显著提升。BEVFormer、CVT和Ego3RT也研究使用多头注意力进行视图转换。

Multi-Sensor Fusion

近年来,多传感器融合越来越引起了3D检测界的兴趣。现有的方法可以分为提案(proposal)级和点级融合方法。MV3D在3D中创建对象提案,并将提案投影到图像中,以提取RoI特征。F-PonintNet,F-ConvNet和CenterFusion都将图像提案提升到3D中。最近,FUTR3D和TransFusion在3D空间中定义了对象查询,并将图像特征融合到这些提案中。提案级的融合方法是以对象为中心的,不能简单地推广到其他任务,如BEV地图分割。另一方面,点级融合方法通常将图像语义特征绘制到前景的激光雷达点上,并对装饰后的点云输入进行基于激光雷达的检测。因此,它们既以对象为中心,又以几何为中心。在所有这些方法中,PointPainting、PointAugmenting、MVP、FusionPainting、AutoAlign和FocalSparseCNN是(激光雷达)输入级装饰,而Deep Continuous Fusion和DeepFusion是特征级装饰。

Multi-Task Learning

多任务学习已经在计算机视觉领域得到了广泛的研究。研究人员研究了联合执行目标检测和实例分割,并扩展到姿态估计和人-目标交互。M2BEV、BEVformer和BEVerse等并行工作,在3D中共同进行目标检测和BEV分割。上述方法均未考虑多传感器融合。MMF同时使用摄像机和激光雷达输入进行深度补全和目标检测,但仍然以目标为中心,不适用于BEV地图分割。

与所有现有的方法相比,BEVFusion在一个共享的BEV空间中进行传感器融合,并平等地处理前景信息和背景信息、几何信息和语义信息。BEVFusion是一种通用的多任务多传感器感知框架。

五、Method

BEVFusion专注于多传感器融合(即多视图摄像机和激光雷达),用于多任务三维感知(即检测和分割)。我们在图2中提供了框架的概述。给定不同的传感器输入,我们首先应用特定于模态的编码器来提取它们的特征。我们将多模态特征转换为一个统一的BEV表示,同时保留几何和语义信息。我们识别了视图转换的效率瓶颈,并通过预计算和减少间隔来加速BEV池化。然后,我们将基于卷积的BEV编码器应用于统一的BEV特征,以缓解不同特征之间的局部错位。最后,我们添加了一些特定于任务的头来支持不同的3D任务。

Unified Representation

视图差异使得特征融合十分困难,因为不同特征张量中的相同元素可能对应于完全不同的空间位置(而朴素的元素级特征融合在这种情况下将不起作用)。因此,找到一个共享的表示是至关重要的,它必须满足(1)所有的传感器特征都可以很容易地转换为它而不丢失信息,(2)它适用于不同类型的任务。

1)To Camera

受RGB-D数据的启发,一个选择是将激光雷达点云投影到相机平面,并渲染2.5D稀疏深度。然而,这种转换在几何上是有损耗的。深度地图上的两个邻居在三维空间中可以彼此远离。这使得相机视图对于聚焦于对象/场景几何图形的任务效果降低,例如3D目标检测。

2)To LiDAR

大多数最先进的传感器融合方法用它们相应的相机特征(如语义标签、CNN特征或虚拟点)来装饰激光雷达点。然而,这种相机到激光雷达的投影在语义上是有损耗的。相机和激光雷达特征的密度截然不同,导致只有不到5%的相机特征与激光雷达点匹配(对于32通道激光雷达扫描仪)。放弃相机特征的语义密度严重影响了模型在面向语义的任务(如BEV地图分割)上的性能。类似的缺点也适用于最近在潜在空间中的许多融合方法(例如,对象查询)。

3)To Bird’s-Eye View

我们采用鸟瞰图(BEV)作为融合的统一表征。这个视图对几乎所有的感知任务都很友好,因为输出空间也在BEV中。更重要的是,向BEV的转换保留了几何结构(来自激光雷达特征)和语义密度(来自相机特征)。一方面,激光雷达到BEV的投影沿着高度维使稀疏的激光雷达特征变平,因此不会在图1a中产生几何失真。另一方面,相机到BEV的投影将每个相机特征像素投射回三维空间的射线中(详见下一节),这可以生成图1c中密集的BEV特征图,保留了相机的完整语义信息。

Efficient Camera-to-BEV Transformation

相机到BEV的转换并不简单,因为与每个相机特征像素相关的深度本质上是模糊的。根据LSS和BEVDet,我们显式地预测了每个像素的离散深度分布。然后,我们将每个特征像素沿着相机射线散射到D个离散点上,并根据它们相应的深度概率重新缩放相关的特征(图3a)。这将生成一个大小为N HW D的相机特征点云,其中N为相机的数量,(H,W)为相机特征地图的大小。这种三维特征点云沿着x、y轴进行量化,步长为r(例如,0.4m)。我们使用BEV池化操作来聚合每个r×r的BEV网格内的所有特征,并沿着z轴将特征变平

虽然很简单,但BEV池化令人惊讶地低效和缓慢,在RTX 3090 GPU上需要超过500ms(而我们的模型的其余部分只需要大约100 ms)。这是因为相机特征点云非常大:对于典型的工作负载,每帧可能产生大约200万个点(6*32*88*118≈200万,其中32和88是输入大小的1/8),比激光雷达特征点云密度大两个数量级。为了提高这一效率瓶颈,我们提出通过预先计算和减少间隔来优化BEV池化。

1)Precomputation

BEV池化的第一步是将相机特征点云中的每个点与BEV网格关联起来。与激光雷达点云不同的是,相机特征点云的坐标是固定的(只要相机内参和外参保持不变,这通常是经过适当校准后的情况)。基于此,我们预先计算了每个点的三维坐标和BEV网格索引。我们还根据网格索引对所有的点进行排序,并记录每个点的排名。在推理过程中,我们只需要根据预先计算的排名来重新排序所有的特征点。这种缓存机制可以将网格关联的延迟从17ms减少到4ms。

2)Interval Reduction

网格关联后,同一BEV网格内的所有点在张量表示中都是连续的。BEV池化的下一步是通过某个对称函数(例如,均值、最大值和求和)来聚合每个BEV网格内的特征(对称函数与顺序无关)。如图3b所示,现有的实现首先计算所有点的前缀和,然后减去索引变化的边界处的值。然而,前缀和操作需要在GPU上进行树的缩减,并产生许多未使用的部分和(因为我们只需要边界上的这些值),这两者都是低效的。为了加速特性聚合,我们实现了一个专门的GPU内核,它直接在BEV网格上并行化:我们为每个网格分配一个GPU线程,它计算每个网格的间隔和并将结果写回来。这个内核消除了输出之间的依赖关系(因此不需要多层的tree reduction),并避免了将部分和写入DRAM,将特征聚合的延迟从500ms减少到2ms(图3c)。

3)Takeaways

有了我们优化的BEV池化,相机到BEV的转换速度快了40×:延迟从超过500ms减少到了12ms(只有我们模型的端到端运行时间的10%),并且在不同的特性分辨率上可以很好地扩展(图3d)。这是在共享的BEV表示中统一多模态传感器特征的一个关键的促成因素。我们的两个并行工作也发现了仅用相机的3D检测中的这种效率瓶颈。它们通过假设均匀的深度分布或截断每个BEV网格内的点来近似视图转换器。相比之下,我们的技术是精确的,没有任何近似值,同时也更快。

Fully-Convolutional Fusion

通过将所有的传感器特征转换为共享的BEV表示,我们可以很容易地将它们用一个元素级的运算符(如串联)融合在一起。虽然在相同的空间中,但由于视图转换器的深度不准确,激光雷达BEV特征和相机BEV特征仍然可能在一定程度上出现空间错位。为此,我们应用了一个基于卷积的BEV编码器(带有一些残差块)来补偿这种局部失调。我们的方法可能受益于更准确的深度估计(例如,用地面真实深度监督视图转换器),我们将这些估计留给未来的工作。

Multi-Task Heads

我们将多个特定于任务的头部应用于融合的BEV特征图。我们的方法适用于大多数的3D感知任务。我们展示了两个例子:3D目标检测和BEV地图分割。

1)Detection

我们使用一个特定于类的中心热图头来预测所有物体的中心位置,并使用一些回归头来估计物体的大小、旋转和速度。

2)Segmentation

不同的地图类别可能会重叠(例如,人行横道是可驾驶空间的一个子集)。因此,我们将这个问题表述为多重二进制语义分割,每个类一个。我们遵循CVT来训练分割头与标准的focal loss(FL=-(1-pt)^γ*log(pt))。

六、Experiments

(这里我只写了3D目标检测的实验,因为分割还没有研究)

除了3D目标检测和地图分割,该模型还适用于其他3D感知任务,如3D物体跟踪和运动预测,同时也支持其他类型的传感器(如雷达和基于事件的摄像机)。

Model

我们使用Swin-T作为我们的图像backbone,VoxelNet作为我们的激光雷达backbone。我们应用FPN融合多尺度相机特征,生成一个1/8输入大小的特征图。我们将相机图像下采样至256×704,并将激光雷达点云体素化为0.075m(用于检测)和0.1m(用于分割)。由于检测和分割任务需要不同空间范围和大小的BEV特征图,我们在每个任务特定头部之前采用双线性插值的网格采样,在不同的BEV特征图之间进行显式转换。

与现有的冻结相机编码器的方法不同,我们以端到端的方式训练整个模型。我们同时应用图像和激光雷达数据增强,以防止过拟合。采用AdamW进行优化,权重衰减为0.01。

Dataset

使用nuScenes。

下面是一些结果表格和可视化图。

3D Object Detection

我们首先在以几何为中心的3D目标检测基准上进行了实验,其中BEVFusion以较低的计算成本和测量延迟获得了优越的性能。

如表1所示,BEVFusion在nuScenes检测基准测试上实现了最先进的结果,推理速度接近实时(8.4 FPS)。与TransFusion相比,BEVFusion在测试集的mAP和NDS方面提高了1.3%,同时显著降低了1.9× MACs(1MACs包含一个乘法操作与一个加法操作,大约包含2FLOPs),测量延迟减少了为1.3×。BEVFusion也优于具有代表性的点级融合方法——PointPainting和MVP,加速1.6×,减少1.5× MACs,测试集mAP提高3.8%。我们认为,BEVFusion的效率增益来自于我们选择了BEV空间作为共享融合空间,它充分利用了所有的相机特征,而不仅仅是一个5%的稀疏集。因此,BEVFusion可以在小得多的MACs上实现相同的性能。结合第3.2节(Method)中高效的BEV池化操作,BEVFusion将MACs的减少转化为测量的加速。

七、Analysis

我们在不同情况下的单模态模型和最先进的多模态模型上对BEVFusion进行了深入的分析。

Weather and Lighting

我们系统地在表3中分析了BEVFusion在不同天气和照明条件下的性能。由于显著的传感器噪声,在雨天使用仅激光雷达的模型检测具有挑战性。由于相机传感器在不同天气下的鲁棒性,BEVFusion将CenterPoint提高了10.7 mAP,缩小了晴天和雨天场景之间的性能差距。较差的光照条件对检测和分割模型都具有挑战性。在检测方面,与BEVFusion相比,MVP实现的提升要小得多,因为它需要精确的2D实例分割来生成多模态虚拟点(MVPs)。这在黑暗或过曝的场景(例如,图4中的第二个场景)中是非常具有挑战性的。

Sizes and Distances

我们还分析了在不同的物体大小和距离下的性能。从图5a可以看出,相比于仅激光雷达的对应模型,BEVFusion在小型和大型物体上都取得了一致的提升,而对于大于4m的物体,MVP的提升可以忽略不计。这是因为较大的对象通常密度更大,从那些增强的多模态虚拟点(MVPs)中获益较少。此外,BEVFusion还为仅激光雷达的模型带来了更大的改进,使其可以更好地处理较小的物体(图5a)和更远的物体(图5b)的模型,这两者都没有被激光雷达覆盖,因此可以从密集的相机信息中获益更多

Sparser LiDARs

在图5c中,我们演示了仅激光雷达探测器CenterPoint、多模态探测器MVP和BEVFusion在不同激光雷达稀疏度下的性能。BEVFusion在所有稀疏水平下始终优于MVP,减少了1.6×MAC,并在1束激光雷达场景中实现了12%的提升。MVP装饰输入点云,并直接对绘制和密集的激光雷达输入应用CenterPoint。因此,它自然需要仅激光雷达的CenterPoint探测器表现良好,这在稀疏激光雷达设置下是无效的(图5c中:1束输入对应35.8的NDS)。相比之下,BEVFusion在共享的BEV空间中融合多感官信息,因此不需假设一个强的仅激光雷达的探测器。

Ablation Studies

我们在表4中展示了消融研究以证明我们的设计选择,其中我们使用了一个更短的探测器训练时间表。在表4a中,我们观察到BEVFusion对仅激光雷达检测(+8.8%)和仅相机分割(+6.1%)都有了很大的改进。这表明,在共享的BEV空间中的传感器融合有利于几何和语义切割任务。表4b、表4c和表4d表明,BEVFusion的检测变体对体素和图像分辨率都有很好的扩展能力,而当图像分辨率增长到256×704以上时,BEV的分割性能趋于稳定。我们还在表4d中注意到,使用来自1/8输入分辨率的FPN特征为检测和分割提供了最好的性能,而进一步增加计算量是没有帮助的。表4f表明,我们的BEVFusion是通用的,适用于不同的backbone。值得注意的是,在现有的多传感器3D目标检测研究中,冻结图像主干的常见做法甚至没有充分利用相机特征提取器的检测潜力,导致BEV分割的性能急剧下降(10%)。我们在表4e中进一步证明,对图像和激光雷达输入的增强有助于提高BEVFusion的性能。

八、Conclusion

Limitations:目前,BEVFusion在联合多任务训练中的性能仍然有所下降,这尚未开启在多任务设置中实现更大的推理加速的潜力。更准确的深度估计也是本文中一个未被充分探索的方向,它有可能进一步提高BEVFusion的性能。

九、结语

已经五刷这篇论文了……之前每次看完,没过几天就忘得差不多了。可能我入门还不算久,对这些还不太敏感,只能多反复多看。而且,就算论文看懂了,代码看起来还是有困难。目前是复现了,但是也不能说把代码全捋顺了。再接再厉吧,感谢观看:)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值