点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
论文作者 | Ziying Song
编辑 | 自动驾驶之心
写在前面&笔者个人理解
将激光雷达和相机信息整合到BEV表示中已经成为自动驾驶中3D目标检测发展的重要方向。然而,现有的方法容易受到激光雷达与相机传感器标定参数不准确的影响。这种不准确性导致相机分支的深度估计错误,最终导致LiDAR和相机BEV特征之间的不对齐。在这项工作中,我们提出了一个鲁棒的融合框架GraphBEV。为了解决点云投影不准确导致的误差,引入了一个LocalAlign模块,该模块通过图匹配使用了领域感知深度特征。此外,还提出了一个GlobalAlign模块来纠正激光雷达和相机BEV特征之间的不对齐。我们的GraphBEV框架实现了SOTA的性能,mAP为70.1%,在nuScnes验证集上超过BEVFusion 1.6%。重要的是,在噪声条件下,GraphBEV比BEVFusion高出8.3%。
主要贡献
特征不对齐是多模态3D目标检测实际应用中的一个重大挑战,主要是由LiDAR和相机传感器之间的标定误差引起的,如图1(a)所示。多模态3D目标检测从早期的点级和特征级方法发展到目前流行的BEVFusion等BEV融合方法。尽管在nuScenes等噪声较小的数据集上有效,但在带噪数据集上,BEVFusion的性能会大幅下降,如图1(c)所示。这种性能下降主要是由于激光雷达和相机之间的标定误差,而道路振动等因素又加剧了这种误差。这些固有误差无法通过在线标定来纠正,这是一个重大挑战。

因此,在这项研究中,提出了一个强大的融合框架,名为GraphBEV,来解决上述特征未对齐问题。总的来说我们的贡献如下:
提出了一种名为GraphBEV的鲁棒融合框架,以解决激光雷达和相机输入之间的投影误差引起的特征偏差。
通过深入分析特征不对齐的根本原因,在GraphBEV中提出了LocalAlign和GlobalAlign模块,以解决激光雷达和相机BEV特征之间不精确深度的局部不对齐和全局不对齐。
大量的实验验证了GraphBEV的有效性,在nuScenes上展示了具有竞争力的性能。值得注意的是,GraphBEV在无噪设置和带噪条件下都保持相当的性能。
相关工作回顾
基于激光雷达的3D目标检测
基于LiDAR的3D目标检测方法根据点云表示可分为三种主要类型:基于点、基于体素和基于PV(点体素)。基于点的方法扩展了PointNet的原理,使用堆叠的多层感知器(MLP)直接处理原始点云以提取点特征。基于体素的方法通常将点云转换为体素,并应用3D稀疏卷积进行体素特征提取。此外,PointPillars将不规则的原始点云转换为pillar,并在2D主干上对它们进行编码,从而实现非常高的FPS。一些基于体素的方法进一步利用Transformers后体素化来捕获大范围体素间关系。基于PV的方法结合了体素和基于点的策略,使用这两种方法从点云的不同表示中提取特征,尽管计算需求增加,但仍实现了更高的精度。
基于相机的3D目标检测
基于相机的3D目标检测方法在学术界和工业界受到越来越多的关注,这主要是因为与LiDAR相比,相机传感器的成本显着降低。早期的方法侧重于使用额外的3D边界框回归头来增强2D目标检测器。自从LSS通过“Lift, splat”引入将多视图信息统一到鸟瞰视图(BEV)的概念以来,当前基于相机的方法已经迅速发展。基于LSS的方法像BEVDepth一样,从多视图图像中提取2D特征,并通过LiDAR到相机的投影提供有效的深度监督,然后将多视图特征统一到BEV上。后续工作引入了多视图立体技术来提高深度估计精度并实现SOTA性能。此外,受到基于Transformer的架构(例如DETR和Deformable DETR)在2D检测中的成功的启发,基于Transformer的检测器已经出现用于3D目标检测。遵循DETR3D,这些方法设计一组目标查询或BEV网格查询,然后通过查询和图像特征之间的交叉注意力来执行视图转换。
多模态3D目标检测
多模态3D目标检测是指利用来自不同传感器的数据特征,并整合这些特征以实现互补,从而实现3D目标检测。以前的多模型方法可以通过融合粗略地分为三类,即点级方法、特征级方法和基于BEV的方法。点级和特征级通常利用图像特征来增强LiDAR点或3D目标建议。基于BEV的方法有效地将LiDAR和相机的表示统一到BEV空间中。尽管BEVFusion实现了高性能,但它们通常在nuScenes等干净数据集上进行测试,忽略了现实世界的复杂性,特别是特征错位,这阻碍了它们的应用。
详解GraphBEV
为了解决之前基于BEV的方法中的特征未对齐问题,提出了一个鲁棒的融合框架,名为GraphBEV,如图2所示。从不同的传感器(包括LiDAR和相机)获取输入,我们首先应用特定于模态的编码器,Swin-Transformer作为相机编码器,Second作为LiDAR编码器,以提取他们各自的特点。然后,通过我们提出的LocalAlign模块将相机特征转换为相机BEV特征,旨在减轻先前基于BEV的方法在相机到BEV过程中由LiDAR和相机之间的投影误差引起的局部未对齐。然后沿轴压缩LiDAR特征,将3D特征表示为2D LiDAR BEV特征。接下来,我们提出了一个GlobalAlign模块,可以进一步减轻不同模式之间的全局错位,包括LiDAR和相机BEV特征。最后,我们附加检测头来完成3D目标任务。我们的基线是BEVFusion,其中我们详细介绍了下面的LocalAlign和GlobalAlign模块。

LocalAlign模块
为了便于将相机特征转换为BEV特征,BEVFusion采用基于LSS的方法,例如BEVDepth利用LiDAR到相机提供投影深度,从而实现深度和图像的融合特征。在相机到BEV的过程中,BEVFusion和BEVDepth在LiDAR到相机投影提供的深度信息准确可靠的假设下运行。然而,他们忽略了现实场景中固有的复杂性,其中激光雷达和相机之间的大多数投影矩阵都是手动标定的。这种标定不可避免地会引入投影误差,导致深度失准——周围邻居的深度被投影为像素的深度。这种深度未对准会导致深度特征不准确,从而导致多视图转换为BEV表示期间出现未对齐。鉴于基于LSS的方法依赖于像素级特征的深度估计,细节不准确,这会导致相机BEV 特征内的局部未对齐。这强调了确保BEVFusion内精确深度估计的挑战,并强调了解决投影误差的稳健方法的重要性。

研究提出了一个LocalAlign模块来解决局部未对齐问题,其流程如图3所示。具体来说,LiDAR到相机提供投影深度,定义为 ,其中表示批量大小,表示多视图数量(nuScenes中为6个),H和W分别是视图的高度和宽度图像。LiDAR到相机的投影将3D点云映射到图像平面上,从中我们可以获得投影像素的索引,定义为,其中指的是投影到像素上的点数,2表示像素坐标,如下所示。

式中,,,为LiDAR点的三维位置,,为对应的二维位置,为其在图像平面上的投影深度,K为相机固有参数,,为激光雷达相对于相机参照系的旋转和平移,表示下采样导致的比例因子。
采用KD-Tree算法来获取投影像素的邻居索引,定义为,其中Kgraph表示每个投影像素的邻居数量。算法(1)概述了该过程。值得注意的是,我们简化了KDTree算法的流程。然后,我们通过索引获得周围邻居深度与。然后和同时进入Dual Transform模块进行深度特征编码。和的形状在输入Dual Transform模块之前分别修改为和。该模块由简单的组件组成,包括卷积层、批量归一化和ReLU激活,如图3所示。该过程的结果是双深度特征,表示为,其形状为,。相机编码器从FPN输出多尺度图像特征,包括用于更丰富的语义信息,另一个用于降低分辨率H/16、W/16。本项研究选择使用分辨率为H/8 、W/8 的特征,因为它的语义内容更全面。
算法1:Graph for Finding Neighbors
GlobalAlign模块
在现实世界中,由于激光雷达和相机传感器之间的标定矩阵不一致而导致的特征不对齐是不可避免的。虽然LocalAlign模块减轻了相机到BEV过程中的局部不对齐问题,但相机BEV特征中可能仍然存在偏差。在LiDAR-camera BEV融合过程中,尽管处于相同的空间域,但由于视角转换器的深度不准确以及LiDAR BEV和camera BEV特征之间的全局偏移忽略,导致了全局不对齐。
为了解决上述全局不对齐问题,我们引入了GlobalAlign模块,使用可学习的偏移量来实现全局多模态BEV特征对齐。如图2和图4所示,我们使用干净的数据集(如nuScenes)进行训练,其偏差最小,可以忽略不计。有监督信息是由LiDAR和相机BEV特征融合卷积后得到的特征派生出来的。在训练过程中,引入全局偏移噪声,并采用了可学习的偏移量。在LiDAR分支中,LiDAR特征沿LAlign MM BEV CBR-module Offset DeformBEV z轴被平坦化,形成LiDAR BEV特征,定义为。最初,我们连接和 以获得融合的BEV特征,表示为。随后,经过卷积运算,得到一个新的融合特征,表示为。值得注意的是,将在训练过程中用作监督信号。

如图4所示,将随机偏移噪声引入的相机维度,以获得新的噪声特征,模拟源自相机BEV特征的全局未对准问题。值得注意的是,LiDAR BEV特征是直接扁平化的,因此更加准确。然后,将输入到MM-Align模块中进行全局偏移学习。 通过CBR模块进行基本卷积运算处理以学习偏移量,定义为,其中2指偏移坐标。随后,LiDAR BEV特征和进行网格采样以生成新的变形权重,定义为。网格采样的目的是利用偏移量进行 LiDAR BEV特征的空间变换,并通过可学习的偏移动态调整以比标准卷积运算更灵活地捕获空间依赖性。然后,乘以LiDAR BEV特征来动态调整特征,然后通过CBR模块进行标准卷积运算,最终得到输出Deform BEV ,定义为最后,在训练过程中,我们使用前面提到的来监督,并使用LAlign进行监督,如下所示:

其中,表示元素总数,和分别表示和中第个元素的值。该公式计算两个特征图中对应位置之间的平方差的平均值,作为损失。
实验
在这一部分说明了GraphBEV的实验设置,并评估了在nuScenes数据集上3D目标检测的性能。此外,我们遵循Ref[12]提供的解决方案来模拟特征不对齐场景。
实验设置
数据集和指标 我们在具有挑战性的大规模nuScenes数据集上评估GraphBEV,该数据集是使用32线LiDAR和六个相机收集的。数据集通常分为700/150/150个场景用于训练/验证/测试。六张图像覆盖360度周围环境,数据集提供标定矩阵,可以实现从3D点到2D像素的精确投影。我们使用所有类别的mAP和NDS作为评估的主要指标。请注意,NDS指标是mAP和其他细分指标(例如平移、比例、方向、速度和属性错误)的加权平均值。
对于消融研究,我们在训练数据的子集上训练模型,包括1/10,1/14和完整数据集,并在整个验证集上进行评估,包括75,175和700个用于训练的场景和150个用于验证的场景。此外,为了验证特征对准的鲁棒性,我们采用Ref[12]模拟LiDAR和相机投影度量误差的不对准。值得注意的是,Ref[12]只向验证数据集添加了噪声,而没有添加训练和测试数据集。
实现 我们在PyTorch中实现GraphBEV,它建立在开源的BEVFusion和OpenPCDet之上。对于LiDAR分支,使用SECOND进行特征编码,获得LiDAR BEV特征,体素维度设置为[0.075m,0.075m,0.2m],点云距离设置为X,Y和Z轴上的[-54m,-54m,-5m,54m,54m,3m]。摄像机分支采用Swin Transformer作为摄像机主干,对编号3、6、12、24的head进行积分,并利用FPN进行多尺度特征图融合。输入图像的分辨率被调整和裁剪为256 × 704。在LSS配置中,设置了X坐标[-54m,54m,0.3m],Y坐标[-54m,54m,0.3m],Z坐标[-10m,10m,20m],深度范围[1m,60m,0.5m]。在训练过程中,我们使用了10个epoch的数据增强,包括随机翻转、旋转和缩放来增强激光雷达数据。我们使用CBGS[74]对训练数据进行重采样。此外,我们使用随机旋转在[◦,◦]和随机调整大小在[0.38,0.55]来增强图像。Adam优化器与单周期学习率策略一起使用,将最大学习率设置为0.001,权重衰减为0.01。批量大小为24,训练在8块NVIDIA GeForce RTX 3090 24G gpu上进行。在推理过程中,我们删除了测试时间增强(TTA)数据增强,并且在A100 GPU上将批大小设置为1。所有延迟测量都在使用A100 GPU的同一工作站上进行。
与最先进方法的比较
3D目标检测 我们首先比较GraphBEV和其他SOTA方法在3D目标检测任务的nuScenes验证和测试上的性能,如表1所示。我们的GraphBEV算法在验证集上达到了最佳性能(mAP为70.1%,NDS为72.9%),始终优于所有单模态和多模态融合方法。在多模型方法中,PointPainting、pointaugmentation和MVP作为点级方法,无法避免特征不对齐问题。另一方面,graphhalign、AutoAlignV2、TransFusion和DeepInteraction作为特征级方法,解决了LiDAR和相机特征之间的不对齐问题。然而,这些方法不包括相机到bev的过程,因此它们不能解决BEVFusion的深度估计引起的特征不对齐问题。
表1:与SOTA方法在nuScenes验证和测试集上的比较

如表1所示,我们的GraphBEV在mAP和NDS方面分别比基线BEVFusion高出1.6%和1.5%。一般来说,开源的nuScenes数据集有最小的特征对齐问题,但不能完全避免它们,如图1(a)所示。具体来说,我们的GraphBEV利用KDTree算法来搜索LiDAR-to-camera提供的投影深度周围的邻居深度。与BEVFusion相比,我们的GraphBEV在小物体上有了显著的改进,比如障碍物提高了4.0%,自行车提高了2.2%,行人提高了2.7%。这主要是由于小物体对特征偏差更敏感,即使激光雷达和相机之间的轻微偏差也会导致小物体更大的偏差。此外,我们的GraphBEV和ObjectFusion解决了基于bev的多模态方法中的特征不对齐问题。虽然ObjectFusion引入了一种利用RoI池融合的融合后范式,但我们的GraphBEV并没有改变BEVFusion的范式,在mAP和NDS方面略微优于ObjectFusion 0.7%和0.3%。此外,当我们将nuScenes测试集的检测结果提交给官方评估服务器时,我们的GraphBEV达到了SOTA性能。它在mAP和NDS方面分别比基线BEVFusion高出1.5%和0.7%。总的来说,我们能够在不改变其优秀范例的情况下解决BEVFusion中的特征未对齐问题。
BEV地图分割 为了评估3D物体检测,我们还在nuScenes验证集上评估了BEV地图分割(语义分割)任务的泛化能力,如表2所示。遵循与基线BEVFusion相同的训练策略,我们在ego汽车周围的[-50m,50m]×[-50m,50m]区域内对每帧进行评估。我们报告了可驾驶区域、人行横道、人行道、停车线、停车场和分隔线的十字路口-联合路口(IoU)得分。可行驶区域、人行横道、人行道、停车线和停车场均有显著改善,而分隔物仅略有减少。总体而言,我们的GraphBEV不仅在3D目标检测方面表现出色,而且在BEV地图分割方面也具有很强的泛化能力。
表2:在nuScenes验证集上,BEV地图分割与SOTA方法的比较。

消融研究
不同模块在GraphBEV中角色的特征对齐。为了分析不对齐的影响,我们在我们的GraphBEV和BEVFusion之间进行了对比实验。值得注意的是,在表3中,我们在nuScenes验证集中引入了偏差,而不是像参考文献[12]中那样在训练和测试集中引入了偏差。我们在干净的nuScenes列车数据集上进行训练,并在干净和有噪声的偏差设置下评估性能。在干净环境下,GraphBEV的性能明显优于BEVFusion,而在嘈杂环境下,性能的提高是显著的。此外,BEVFusion在mAP和NDS等指标上明显下降,而GraphBEV在性能指标上的下降幅度较小。
表3:在clean设置和noisy misalignment设置下,GraphBEV中不同模块在nuScenes验证集上特征对齐的作用。

值得注意的是,与BEVFusion相比,在 BEVFusion中添加LocalAlign或GlobalAlign 模块对延迟的影响最小,并且延迟低于TransFusion。当仅将LocalAlign模块添加到BEVFusion时,使用KD-Tree算法构建邻近关系并将投影深度与邻居深度融合以防止特征未对齐,在干净和噪声未对齐设置中都观察到了显着的增强。仅将GlobalAlign模块添加到BEVFusion也会带来显着的改进。特别是,同时添加LocalAlign和GlobalAlign模块在干净和嘈杂的环境中都显示出强大的性能。
对天气条件、自我距离和物体大小的鲁棒性。如表4所示,我们对GraphBEV在不同天气条件下进行了稳健性分析。各种天气条件都会影响3D物体检测任务。遵循BEVFusion和ObjectFusion的方法,我们将验证集中的场景划分为晴天、雨天、白天和夜间条件。在不同的天气条件下,我们的表现优于BEVFusion,尤其是在夜景中。总体而言,我们的 GraphBEV 通过精确的特征对齐提高了晴朗天气下的性能,并增强了恶劣天气条件下的性能。
表4:nuScenes清洁验证集对天气条件、不同自我距离、不同尺寸的鲁棒性。

此外,我们还分析了不同自我距离和目标大小对GraphBEV性能的影响。我们将注释和预测自我距离分为三组:Near(0-20m), Middle(20-30m)和Far(>30m),并总结了每个类别的大小分布,定义了三个等比例的大小级别:Small, Moderate和Large。很明显,GraphBEV在远距离和小型目标上展示了显著的性能改进。与BEVFusion相比,我们的GraphBEV在所有自我距离和目标大小上都能持续提高性能,进一步缩小性能差距。总的来说,我们的GraphBEV对自我距离和目标大小的变化表现出更强的鲁棒性。
超参数Kgraph对特征不对齐的影响。如表5所示,为了分析LocalAlign模块中超参数Kgraph对特征不对齐的影响,我们研究了它在噪声不对齐设置下对nuScenes验证集的影响。Kgraph作为LocalAlign模块中lidar到相机投影深度的最近深度数,影响邻域深度特征的表达能力。可以观察到,当Kgraph为8时,我们的GraphBEV达到了最佳的整体性能。因此,选择合适的Kgraph是至关重要的,并且在其他数据集中可能会有所不同。此外,尽管mAP由于Kgraph的变化而有较大的波动,但总体性能优于BEVFusion。
结论
在本文中,我们简单介绍了一个强大的融合框架GraphBEV,以解决基于bev的方法的特征不对齐问题。为了减轻激光雷达提供的投影深度不准确导致的特征不对齐,我们提出了LocalAlign模块,该模块通过图匹配利用邻居感知的深度特征。此外,为了防止激光雷达和相机BEV特征融合过程中的全局不对齐,我们设计了GlobalAlign模块来模拟偏移噪声,然后通过可学习的偏移来对齐全局多模态特征。实验表明GraphBEV在nuScenes验证集上明显优于BEVFusion,特别是在有噪声的不对齐设置中。这表明我们的GraphBEV极大地推进了BEVFusion在现实场景中的应用,特别是在有噪声的不对齐情况下。
参考
[1]GraphBEV: Towards Robust BEV Feature Alignment for Multi-Modal 3D Object Detection
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)

② 国内首个自动驾驶学习社区
国内最大最专业,近2700人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦2D/3D目标检测、语义分割、车道线检测、目标跟踪、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、在线地图、点云处理、端到端自动驾驶、SLAM与高精地图、深度估计、轨迹预测、NeRF、Gaussian Splatting、规划控制、模型部署落地、cuda加速、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!