不到断气不罢休 发表于 2024-12-21 03:47:46

BEVFusion论文阅读

研究问题

将摄像头特征投影到激光雷达的点云中会丢失摄像头特征的语义密度,从而削弱了这些方法的效果,尤其是在面向语义的任务(如3D场景分割)中。提出了 BEVFusion,一种高效且通用的多任务多传感器融合框架。在共享的鸟瞰视角(shared Bird’s-Eye View, BEV)表示空间中统一多模态特征,可以或许很好地保存几何和语义信息。
通过改进的 BEV 池化技术,分析并优化了视图变换中的关键效率瓶颈,将延迟降低了凌驾 40 倍。BEVFusion 本质上与具体任务(task-agnostic)无关,几乎无需结构性改动即可无缝支持不同的 3D 感知任务。在 nuScenes 基准测试中,它建立了新的SOTA,在 3D 目的检测任务中实现了 1.3% 的 mAP 和 NDS 提升,以及在 BEV 舆图分割任务中实现了 13.6% 的 mIoU 提升,同时盘算成本降低了 1.9 倍。
前置知识

https://i-blog.csdnimg.cn/direct/d903bbd03b80439cb50de3bd5f2034e9.png
自动驾驶系统配备了多种类型的传感器。比方,Waymo 的自动驾驶车辆配备了 29 个摄像头、6 个雷达和 5 个激光雷达(LiDAR)。不同的传感器提供了互补的信号:比方,摄像头捕捉丰富的语义信息,激光雷达提供精确的空间信息,而雷达则可以或许即时估算速度。因此,多传感器融合对于实现正确且可靠的感知至关重要。
不同传感器的数据本质上属于完全不同的模态:比方,摄像头以透视视角捕捉数据,而激光雷达以 3D 视角捕捉数据。为了解决这种视角差异,我们必要找到一种恰当多任务、多模态特征融合的统一表示方法。由于 2D 感知范畴的巨大成功,一个自然的想法是将激光雷达点云投影到摄像头视角中,并利用 2D 卷积神经网络(CNN)处理天生的 RGB-D 数据。然而,这种从激光雷到达摄像头的投影会引入严重的几何失真(参见图 1a),这使其在几何任务(如 3D 目的辨认)中效果较差。
另一种方向:通过语义标签、CNN 特征 或来自 2D 图像的虚拟点来加强激光雷达点云,然后利用现有的基于激光雷达的检测器推测 3D 边界框。但这些基于点级的融合方法几乎无法应用于面向语义的任务,比方 BEV 舆图分割。其主要缘故原由是摄像头到激光雷达的投影会导致语义信息的严重丢失(参见图 1b)。
本文提出的BEVFusion在共享的鸟瞰视角(shared Bird’s-Eye View, BEV)表示空间中统一多模态特征,可以或许很好地保存几何和语义信息。
在将全部特征转换为 BEV 表示的过程中,发现主要的效率瓶颈在于视角变换中的 BEV 池化操纵:单这一操纵就占用了模型运行时间的 80% 以上。为了解决这一瓶颈,我们设计了一种专用内核(specialized kernel),通过预盘算和区间压缩明显优化了这一过程,到达了凌驾 40 倍的加速效果。
末了,采用全卷积的 BEV 编码器(fully-convolutional BEV encoder)来融合统一的 BEV 特征,并附加少量任务特定的输出模块,以支持不同的目的任务。
模型框架

https://i-blog.csdnimg.cn/direct/af6f75612f384f0ba36242b89ff9a452.png
如图 2 所示,BEVFusion 专注于多传感器融合(即多视角摄像头和激光雷达)以完成多任务 3D 感知(即检测和分割)。针对不同的传感器输入,我们起首利用特定于模态的编码器提取其特征。随后,我们将多模态特征转换为统一的 BEV 表示,保存几何和语义信息。
在视角变换过程中,我们发现了效率瓶颈,并通过预盘算和区间压缩加速了 BEV 池化。接着,我们对统一的 BEV 特征应用基于卷积的 BEV 编码器,以缓解不同特征间的局部不对齐问题。末了,我们附加少量任务特定的输出模块以支持不同的 3D 任务。
特征提取

不同的特征可能存在于不同的视角中。比方,摄像头特征位于透视视角中,而激光雷达/雷达特征通常位于 3D 或鸟瞰视角中。纵然对于摄像头特征,每个特征也具有不同的视角(比方火线、后方、左侧、右侧)。这种视角差异使特征融合变得困难,由于不同特征张量中的同一元素可能对应于非常不同的空间位置(此时,简单的逐元素特征融合方法无法奏效)。
因此,找到一种共享表示至关重要,使得:(1) 全部传感器特征都能无信息丧失地轻松转换到该表示中;(2) 这种表示恰当于不同类型的任务。
为什么选择 BEV?


[*] BEV 是许多 3D 感知任务(如目的检测、分割等)的自然输出空间,简化了任务设计的复杂性。
[*] 可以或许同时保存 几何信息 和 语义信息,解决了不同模态特征间的信息不对称问题。
视角转换的细节:


[*] 激光雷到达 BEV 的投影:

[*] 将 3D 点云的高度维度压平,天生二维的 BEV 表示。
[*] 由于点云自己是稀疏的,这种投影不会引入几何失真(与透视视角的摄像头不同)。

[*] 摄像头到 BEV 的投影:

[*] 将摄像头图像的每个像素反向投影到 3D 空间射线中,再映射到 BEV 平面。
[*] 结果:天生稠密的 BEV 特征图,完备保存摄像头捕捉的语义信息。

特征转换

https://i-blog.csdnimg.cn/direct/218acc88c42440b39ed2ec956d08e805.png
摄像头到 BEV 的转换并非易事,由于与每个摄像头特征像素关联的深度本质上是暗昧的。参考 LSS 方法 ,我们显式地推测每个像素的离散深度分布。然后,我们将每个特征像素散射到摄像头射线上 DD 个离散点,并根据对应的深度概率对其关联的特征举行重缩放(如图 3a 所示)。
此过程天生了巨细为 $$N×H×W×$$的摄像头特征点云,其中 $$$$是摄像头的数量,$$(H,W$$ 是摄像头特征图的尺寸。这样的 3D 特征点云沿 $$x,y$$轴以步长 $$$$(比方 0.4 米)举行量化。我们利用 BEV 池化操纵聚合每个 $$r×$$BEV 网格内的全部特征,并沿 $$z$$轴展平特征。
尽管 BEV 池化的实现相对简单,但其效率却出乎料想地低,在 RTX 3090 GPU 上耗时凌驾 500 毫秒(而模型的其余部分仅需约 100 毫秒)。造成这种情况的主要缘故原由是摄像头特征点云的规模非常巨大:对于一个典范的工作负载,每帧可能会天生大约 200 万个点,比激光雷达特征点云的密度高出两个数量级。为了解决这一效率瓶颈,我们提出通过预盘算和区间缩减来优化 BEV 池化过程。
预盘算

BEV 池化的第一步是将摄像头特征点云中的每个点与一个 BEV 网格关联起来。与激光雷达点云不同,摄像头特征点云的坐标是固定的(只要摄像头的内参和外参保持稳定,这通常在得当标定后是成立的)。
受到这一点的启发,我们预盘算了每个点的 3D 坐标和 BEV 网格索引。我们还根据网格索引对全部点举行排序,并记录每个点的排名。在推理过程中,我们只必要基于预盘算的排名重新排序全部特征点。这个缓存机制可以或许将网格关联的延迟从 17 毫秒减少到 4 毫秒。
区间缩减

在张量表示中,ID 会在 BEV 网格中连续分布。BEV 池化的下一步是通过某种对称函数(比方均值、最大值或求和)聚合每个 BEV 网格内的特征。如图 3b 所示,现有的实现 起首盘算全部点的前缀和,然后减去边界处索引变革的值。然而,前缀和操纵必要在 GPU 上举行树形归约,而且会产生许多未利用的部分和(由于我们只必要边界上的那些值),这两者都很低效。为加速特征聚合,我们实现了一个专门的 GPU 核心,该核心直接在 BEV 网格上并行化:我们为每个网格分配一个 GPU 线程,盘算其区间和并将结果写回。这个核心消除了输出之间的依赖关系(因此不必要多级树形归约),并避免将部分和写入 DRAM,从而将特征聚合的延迟从 500 毫秒减少到 2 毫秒(图 3c)。
特征融合

将全部传感器特征转换为共享的 BEV 表示后,我们可以轻松地通过逐元素操纵(如拼接)将它们融合在一起。尽管在相同的空间中,LiDAR BEV 特征和摄像头 BEV 特征由于视图变换器中深度的禁绝确,仍旧可能在空间上存在一定程度的错位。为了解决这个问题,我们应用了基于卷积的 BEV 编码器(带有一些残差块)来赔偿这种局部错位。我们的方法可能会从更精确的深度估计中受益(比方,通过真实深度来监督视图变换器 , ),但这一点我们将在未来的工作中举行研究。
多任务Head

我们将多个任务特定的头应用于融合后的 BEV 特征图。我们的方法适用于大多数 3D 感知任务。对于 3D 物体检测,我们遵循 , 的方法,利用类特定的中心热图头来推测全部物体的中心位置,并利用几个回归头来估计物体的巨细、旋转和速度。对于舆图分割,不同的舆图类别可能会重叠(比方,人行道是可行驶空间的子集)。因此,我们将这个问题表述为多个二分类语义分割任务,每个类别一个分割任务。我们遵循 CVT 的方法,利用尺度的核心丧失 来训练分割头。
实行结果

评估了 BEVFusion 在 相机-LiDAR 融合 上的表现,涵盖了 3D 物体检测 和 BEV 舆图分割,这两个任务分别关注几何和语义信息。
训练细节

模型: 我们利用 Swin-T 作为图像特征提取网络,并利用 VoxelNet 作为 LiDAR 特征提取网络。我们应用 FPN 来融合多尺度的相机特征,以天生巨细为输入图像的 1/8 的特征图。我们将相机图像下采样到 256×704,并对 LiDAR 点云举行体素化,分别利用 0.075m(用于检测)和 0.1m(用于分割)作为体素巨细。由于检测和分割任务必要具有不同空间范围和巨细的 BEV 特征图,我们在每个任务特定的头部之前应用网格采样和双线性插值,显式地在不同的 BEV 特征图之间举行转换。
数据集: 我们在 nuScenes 和 Waymo 上评估我们的方法,这两个数据集是大规模的 3D 感知数据集,包含凌驾 40,000 个已标注的场景。两个数据集中的每个样本都配有 LiDAR 和周围的相机输入。
实行对比

3D目的检测

https://i-blog.csdnimg.cn/direct/039b19705b484e61b85da666482a5358.png
https://i-blog.csdnimg.cn/direct/cbceb1b192c448279f6d2f01998120c0.png
BEV舆图分割

https://i-blog.csdnimg.cn/direct/57812ade7df24d9da52647fd631d1cff.png
思索

这个方式类比2D上就是先通过自监督大概CLIP方式训练一个特征提取器,然后在这个特征提取上参加各种任务头举行分类、检测、分割等。但是在3D中如何得到一个好的特征提取器比较贫苦,本文将多模态输入转换到BEV表示中能尽可能多的生存下信息用到后续的各种3D任务中。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: BEVFusion论文阅读