Advertisement

【多模态融合】BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird‘s-Eye View Representation

阅读量:

论文链接:

代码链接:https://github.com/mit-han-lab/bevfusion

Jianxin Li,Zhaoqi Sun,Xiaoying Zhang,Yongtao Qi,Jiayang Jiang,Huixiang Mao,Huizi Mao,Daniela Rus,Song Han

**发表单位:**MIT、上海交通大学

会议/期刊: ICRA 2023

一、研究背景

在自动驾驶系统中通常部署了多种传感器,在Waymo的自动驾驶汽车中安装了29个摄像头、6台雷达以及5台激光雷达。各类型传感器提供相互补充的信号来源:如摄像头捕捉丰富的语义信息的同时具备即时速度估计的能力,并能为LiDAR提供准确的空间信息支持。因此,在精确可靠感知方面实现了重要突破。

不同传感器采集的数据采用本质各异的表现形式:例如,在实际应用中我们发现摄像头通常采用透视视角来获取数据而激光雷达则利用三维视角进行数据收集针对这种表现形式的差异我们必须要找到一个既能适应多种感知模式又能实现高效特征融合的一致化表征

如图(a)所示,在LiDAR至camera的数据转换过程中,默认的空间关系会发生形变。原本相距较远的红点与蓝点,在投影后将变得相邻;如图(b)所示,在密集分布的二维图像区域内,并非所有的区域都会被三维散斑数据所覆盖(因为三维散斑呈现近密布稀的特点)。

现在有两种广泛使用的多模态融合方法:(1)LiDAR对应于camera,则会产生几何畸变;(2)camera对应于LiDAR,则仅有极少数像素点能够与三维特征匹配,导致语义密度存在显著差异。

对于方案(1),我们基于2D感知技术的成功应用而自然想到将LiDAR点云数据映射至相机视角,并通过二维卷积神经网络处理RGB-D数据集。然而,在将LiDAR点云投射至相机成像空间时带来了显著的几何畸变(如图1a所示),这使得该方法在对处理基于几何形状的任务效果欠佳的情况下表现不佳。

当将LiDAR数据投射至相机过程中时

方案(2)通过整合语义标签、基于CNN的特征以及从二维图像中提取的虚拟点来提升LiDAR点云的质量,并利用现有的基于LiDAR探测器技术来进行3D边界框的预测。尽管这些方法在大规模检测基准测试中表现优异,然而这些基于点级别的融合方法几乎无法适用于语义导向的任务如鸟瞰图分割等场景。当将相机数据投影至LiDAR系统时,在这种稀疏匹配下会严重损失语义密度信息这是因为相机捕获的是密集像素数据而LiDAR数据则是相对稀疏的特性导致仅有少部分相机特征能够直接对应到单个LiDAR点上这种稀疏匹配不仅限于减少了可利用的信息量还直接影响了融合数据在BEV分割等语义导向任务中的有效性

该作者提出了一种新的解决方案——BEVFusion框架通过将摄像头和LiDAR功能整合到同一个贝叶斯卷积层中实现了对周围环境的整体感知能力,并非采用模式映射的方法。同时保持了相机端语义信息的丰富性和LiDAR端三维结构的完整性。

本文贡献:

该方法命名为BEVFusion,并通过共享鸟瞰图(BEV)表示空间中的统一多模态特征。同时保留了三维几何结构与二维语义密度,并可同时支持不同场景下的三维感知任务

在实验过程中发现BEV池化操作占据了模型运行时间超过80%,尤其是视图转换中的主要效率瓶颈,并经过针对性优化提出了一个预计算与间隔缩减相结合的专用内核来完美解决该问题,最终将性能提升至40倍

该系统不仅达到了nuScenes基准的新高度,在运营成本方面也实现了显著降低,并且各项评估指标均创新高。值得注意的是,在nuScenes基准测试中取得领先于 baseline 的成绩(于 2022 年 6 月 3 日首次实现;随后于 2022 年 8 月 16 日超越 Waymo 成就了新的里程碑)。

二、整体框架

BEVFusion 从多模态输入中提取特征表示,并通过视图变换将这些特征映射到一个共同的 Bird's-Eye 视觉空间中;该系统整合了统一的 BEV 功能模块,并利用全卷积 BEV 编码器进行深度学习;同时通过专有头部设计来适应多种不同的任务需求

BEVFusion针对各类别传感器数据(包括相机图像与LiDAR点云),通过专用编码器进行特征编码提取。

在接下来的过程中,在不同传感器的数据特征基础上进行处理,在一个统一的BEV表示空间中完成这一转换过程。这一步骤主要体现在整合了通过摄像头获取的画面数据及其丰富的语义描述能力,并结合LiDAR提供的精确的空间感知能力。

基于预计算技术和区间缩减优化策略的BEV池化操作,在处理海量数据时能够高效地将特征聚合至对应的BEV网格结构中;

在贝格视图(BEV)空间中进行处理时,请整合来自多源传感器的特征信息,并通过全卷积网络(例如贝格编码器)来解决可能出现的局部不匹配问题。

(5)根据不同的3D感知任务,比如3D对象检测和BEV地图分割,添加特定的head。

三、核心方法

3.1 Unified Representation

采用鸟瞰图(BEV)作为多模态特征融合的统一视图是由于大多数3D感知任务的输出空间也在该视图中。这种表示方法不仅适用于多种不同的任务场景,并且能够更加自然地整合来自多种传感器的数据。

在将LiDAR数据投射至BEV视角时,能够有效地对空间信息(尤其是高度数据)进行处理,并以一种避免产生几何畸变的方式实现这一过程。这得益于原始LiDAR数据具有三维特征,在将其压缩至二维平面时能够保留物体的基本几何结构,并通过其他方式(如颜色编码)来表示非几何信息。

相机到BEV的空间转换则主要通过将各个像素特征沿着各自的视线方向进行映射至三维空间中的对应点。

3.2 Efficient Camera-to-BEV Transformation

Camera-to-BEV transformation

在相机捕获的图像数据中,每个像素的深度信息并非可直接获取。由于这种转换涉及从相机视角到BEV视角的变化,在实际应用中往往难以实现精准变换。因此需要一种可靠的方法来处理这种不确定性问题。借鉴了LSS和BEVDet方法的基础上,在此基础上提出了新的解决方案:即通过估计每个像素点对应的离散深度分布来明确其深度值的具体范围。具体流程如下:

首先,在图像中的每个像素点上估计其深度分布。这表示为每个像素点计算出一系列可能的深度值,并附带它们的概率。

(2)每个像素点遵循其深度概率分布,在相应的射线上分布为D个离散点(即D个离散位置)。例如,在一个特定场景中如果一个像素点的深度概率预测显示它可能位于2米、4米和6米处,则该像素点将在这三个深度位置上分别生成对应数量的采样点以反映其深度不确定性。

这些生成的点将继承原始像素点的特征(如色调、明暗等),其强度也会基于深度概率进行调整。这可能涉及根据距离对特征强度进行调节,在图像中表现越远的对象可能会显示得更为微弱。(如上图a所示)

此过程创建了一个三维特征点云,并对该过程进行了详细建模与实验研究。该系统能够有效地将二维图像信息转化为高维深度表征数据,并通过深度学习模型进行自动提取与分类处理。

针对这种3D点云数据的进一步处理需求,在此采用BEV池化方法。沿x轴和y轴方向进行采样操作,默认步长设定为r(例如0.4m)。通过BEV池化操作,在每个z轴方向上的采样单元内整合所有特征向量,并对每个单元内的特征进行统计汇总(如取平均值或最大值)

然而,在RTX 3090显卡上完成所需时间超过5秒(约为每个帧所需时间)。每个帧将生成约2,048,764个点:相机图像从原始的256×704像素经过八倍下采样后得到32×88像素的图像(N=6),深度范围[1, 6]米、步长设置为每半米(即D=1.5m)的结果;总点数为N \times D \times H \times W = 6 \times 1.5 \times (32/4) \times (7\text{''} - (7\text{''} - 4\text{''})/ (W-1))

3.2.1 Precomputation

BEV 池化的第一步是将相机特征点云中的每个点与 BEV 网格相关联。

Lidar点云通过发射激光脉冲并测量光线返回的时间差来计算距离,在每个扫描周期通常覆盖不同物体或物体的不同区域,在动态环境中尤其如此。其结果受到多个因素的影响,例如设备的位置精度、扫描的角度设置以及环境状况(如雨天或雾天)等因素.这些因素可能导致在同一地点但在不同时段进行的扫描会产生不同的结果.

基于相机感知技术而言,在相机特征点云中每个空间场景的位置坐标是固定的。由于光学镜头系统能够将外界物体的信息捕获并投射到成像表面上,在这一过程中外界物体的信息被转换为图像信号并存储下来。这一过程严格遵循几何光学定律,在这种情况下当相机系统的内参数(如焦距、主点位置等)以及外参数(包括相机在空间中的定位与朝向)达到稳定状态时同一个三维场景点在不同成像时刻的位置坐标保持一致。

一旦相机经过严格校准,在没有物理上的移动或人为调整的情况下通常会保持其内外参数的稳定性。这表明,在相同的拍摄条件下(即同一环境下拍摄),每个图像像素所代表的空间位置是固定的;即使在同一场景下重复拍摄多次,在每次成像时每个像素点所代表的空间位置也基本不变。

因此,可以进行预计算。

(1)对每个像素点,根据相机的内外参数,计算它在三维空间中的位置;

(2)根据这些三维坐标,提前确定每个点应该属于哪一个BEV网格;

(3)每个点按照它们的BEV网格索引进行排序;

确定每个点排序后的具体位置(即其对应的排名),该排名则反映了这些点在其BEV网格中的排列顺序

在实际推理阶段中无需再进行复杂的BEV网格位置计算,并可以直接依据已预先确定的排名顺序来进行点云的重排。这种方法展示了高效的空间布局优化能力。

采用预计算与快速重排相结合的技术手段,在原有的网格关联过程中将所需时间从17ms压缩至只需4ms。这一改进显著提升了数据处理效率,并使系统的响应时间大幅降低

3.2.2 Interval Reduction

BEV池化的第一步是将每个点根据其空间位置映射到相应的BEV网格中,在张量(Tensor)描述中,在同一网格中的所有点会连续排列。下一步就是利用若干对称函数(如平均值、最大值和总和)聚合每个 BEV 网格中的特征。

比如LSS中用的就是求总和的方法进行聚合特征,比如1+3=4,7-1-2=4

在过去的实施方案(LSS)中进行处理时,首先依次计算每个点与其前驱点之间的累积总和。这种累积求和的方法是从序列的第一个元素开始逐步累加的结果。

完成前缀和计算后,在每一个BEV网格周围的边缘位置必须执行减法操作,以便得到该区域内的所有点特征之和。

由于前缀和计算了从第一个点到当前点的所有值的累加例如在下图所示的部分其中第一个元素为1第二个元素则为1加上3等于4第三个元素则为三个数相加得到的结果从而存储了大量的中间过程数值。
执行前缀和操作时需要在GPU架构中实现一种树形约简机制不仅计算量较大还会产生大量不必要的中间结果包括各个阶段的部分累加值。
然而这种方法由于涉及多层次内存访问以及复杂的数据依赖关系而导致其运行效率较低。

实际上,对于一个网格,它的特征总和可以通过取该网格最后一个点的前缀和与该网格第一个点前一个点的前缀和之差来获得。例如,如果一个网格包含点索引从i到j,那么这个网格的特征总和为:
prefixsum - prefixsum

但是,在GPU上执行前缀求和操作涉及一种基于树形结构的归约过程(reduction),即通过逐步合并元素直至获得最终总和值的过程。此过程需经过多阶段处理,在每个阶段中采用不同层级的归约方式,并且每一步骤都会使并行宽度减半从而导致计算复杂度上升

在实际的BEV聚合操作中,在处理每个网格时主要关注的是其总和值,并非所有的前缀求取与中间结果都需要进行计算。这表明,在树形归约过程中生成的所有部分总和中存在大量无意义的数据冗余,在实际应用中不仅浪费了大量计算资源而且这些结果并未被最终使用所影响。

鉴于此,作者旨在通过提升特征聚合效率而开发了一个专门的GPU内核。该内核能够在每个BEV网格上独立地进行并行计算。为此,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下,在这种架构下

经过这一优化方案的实施,在特征融合过程的时间延迟方面取得了显著成效。具体而言,在原有基准下(500毫秒),经过优化后仅需2毫秒即可完成相同任务。

作者在此处列出了一个要点,并指出其他研究也发现了仅通过相机实现三维检测所面临的有效率问题。然而这些方案则采用了若干近似策略以减少计算复杂度

假设场景中的深度分布均匀:为简化深度计算而对场景中的深度分布进行均匀化处理

对于每一个BEV网格内部的处理,在每个这样的区域中仅对部分样本进行分析而不涉及全部样本。

相较于现有方案而言, 本研究提出的技术能够在无需进行任何近似处理的情况下, 实现了精准的转换过程, 并且具有更高的计算效率. 这表明该技术不仅能够维持高度的准确性, 还显著提升了运算速度.

3.3 Fully-Convolutional Fusion

当全部传感器数据被转码为BEV格式时,可以直接通过逐元素操作包括拼接等技术来融合这些特征。这种方法建立在一种假设:不同传感器的数据已经处于同一空间尺度上。

在将数据转换至BEV空间的过程中,在视图转换器中存在的深度估计不准确问题导致了LiDAR与相机在BEV空间中的特征仍存在一定程度的空间偏移。这种深度误差可能源于近似处理或传感器精度限制的影响。

为了校正这些局部的空间错位问题,采用了一种基于卷积层的BEV编码器.这种编码器整合了多个残差模块,并且能够有效处理空间中的微小偏差问题,在优化特征对齐的过程中进一步提升了模型性能.

作者建议未来的研究工作应基于真实深度数据对BEV视图转换器进行指导,以提升深度估计的准确性。

3.4 Multi-Task Heads

本论文中的方法适用于大多数3D感知任务,比如检测和分割。

在检测过程中,在每种情况下均采用一种特殊的热图头(center heatmap head)来定位图像中的各个物体中心位置,在这一基础上构建相应的定位机制以实现目标物信息的有效提取与分析。通过为每一类生成对应的热图,在这一过程中网络能够学习各类别对象在图像中所呈现的空间分布情况,并通过计算各点处的概率密度来反映该区域是否存在目标物的核心部位。为了估计对象的各种属性如尺寸、旋转速度以及运动轨迹等特征信息,在此基础之上构建了一系列针对各个核心部位的目标特性提取模块(regression heads)。这些回归任务都是基于确定各目标物的位置展开,并且均能有效地反映其运动变化特征

在分割过程中,在不同类别的地图元素(如道路、人行道、停车位等)可能存在空间上的交集。例如,在地图标注中这两者会存在空间上的交集情况。为了妥善地处理这种空间关系问题,则需要将这一复杂任务划分成多个独立的二元分类问题来进行分析与识别工作。具体而言,在神经网络模型中可以通过划分成多个独立的任务来分别对每个区域进行多分类处理,并非简单地采用单一分类器来进行统一处理

四、实验结果

nuScenes在test和val的结果

nuScenes (val)分割结果

在 3D 目标检测与 BEV 地图分割任务中获得的定性评估结果。它能够精准识别远处及小型物体(上图所示),并在复杂的城市夜晚环境中实现有效的场景识别(下图展示)。

无论光照条件或天气状况如何变化,该系统均展现出卓越的稳定性和适应能力;特别是在恶劣天气及夜晚环境下,相比传统的单一模态基准方法(以灰色标识),本方案显著提升了性能.

面对不同尺寸、距离以及LiDAR密度的各种场景,在所有情况下BEVFusion均展现出超越当前最先进的一维与多维探测系统的性能;尤其在更具挑战性的情况中——包括稀疏的三维数据以及小尺寸或远距离的目标——其优势更为明显。

消融实验。默认设置标记为灰色

整合检测与分割训练后可以看出, 将不同任务进行联合训练会对各自任务的性能带来负面效果, 这一现象通常被称为"负迁移", 这是后续优化工作的重点

五、总结

结论:

BEVFusion通过整合共享的BEV空间中的camera feature与Lidar点云feature, 为了提高camera-to-BEV转换效率, 本文提出了一种基于并行计算设计的GPU kernel架构, 实现了计算速度提升约40倍的效果。值得注意的是, BEVFusion推翻了以往认为point-wise融合是最佳解决方案的传统观点, 并在3D物体检测以及BEV分割领域均取得了新的研究进展(同时适用于小目标、恶劣天气下的雨天场景以及夜间环境)。

思考:

在训练过程中引入辅助深度信息监督模块:通过新增一个深度估计子任务来补充主干网络的训练内容,在实际应用中仅用于辅助训练主干网络的部分,并未参与到后续的推理环节;具体而言,在显式方法中(如激光雷达将三维点云投影至二维图像),以及隐式方法中(如将深度信息转化为知识蒸馏形式)。

(2)融合时空信息建模:通过时空对齐将T-1时刻与T时刻的BEV特征进行配准,并以此提高模型鲁棒性;

(3)多任务融合:不同分支支持目标检测,语义分割、路径规划和车道线检测。

全部评论 (0)

还没有任何评论哟~