【多模态融合】FUTR3D: A Unified Sensor Fusion Framework for 3D Detection

论文链接:FUTR3D: A Unified Sensor Fusion Framework for 3D Detection

代码链接:https://github.com/Tsinghua-MARS-Lab/futr3d

作者:Xuanyao Chen,Tianyuan Zhang,Yue Wang,Yilun Wang,Hang Zhao

发表单位:上海期智研究院、复旦大学、CMU、清华大学、MIT、Li Auto

会议/期刊:

一、研究背景

不同的自动驾驶汽车具有不同的传感器组合和设置。FUTR3D 是用于 3D 检测的统一端到端传感器融合框架,可用于任何传感器配置,包括 2D 相机、3D LiDAR、3D 雷达和 4D 成像雷达。

传感器融合是自动感知系统中的一个关键问题。在自动驾驶车辆上,不同的传感器如LiDAR、雷达和摄像头可以捕捉互补的信息,帮助系统更准确地理解环境。

本文贡献:

(1)FUTR3D 是第一个统一的传感器融合框架,可以以端到端的方式处理任何传感器配置;

(2)设计了一个与模态无关的特征采样器,称为 MAFS。它对来自摄像头、高分辨率 LiDAR、低分辨率 LiDAR 和雷达的特征进行采样和聚合;MAFS使方法能够以与模态无关的方式对任何传感器及其组合进行操作。该模块可能适用于任何多模式用例。

(3)FUTR3D 在不同传感器组合中优于专门设计的融合方法。例如,尽管 PointPainting 被设计用于处理高分辨率的 LiDAR 和图像,但 FUTR3D 的性能优于 PointPainting;

(4)FUTR3D通过不同的传感器配置实现了出色的灵活性,并实现了用于自动驾驶的低成本感知系统,在nuScenes数据集上,FUTR3D使用4光束LiDAR和相机图像实现了58.0 mAP,超过了使用32光束LiDAR的最先进的3D检测模型。

二、整体框架

FUTR3D 概述。每种传感器模态都以其自己的坐标单独编码。然后,基于查询的模态无关特征采样器 (MAFS) 根据每个查询的 3D 参考点从所有可用模态中提取特征。最后,转换器解码器从查询中预测 3D 边界框。预测的盒子可以迭代地反馈到 MAFS 和 transformer 解码器中,以优化预测。

FUTR3D整体框架可以分为四个部分:

(1)来自不同传感器模态的数据可以通过其模态特定的特征编码器进行编码;

(2)使用基于查询的模态无关特征采样器 (MAFS) 根据查询的初始位置对所有模态的特征进行采样和聚合;

(3)接下来,使用共享 Transformer 解码器头,使用迭代细化模块根据融合特征细化边界框预测;

(4)整体损失是基于预测和GT之间的集合到集合匹配。

三、核心方法

3.1 Modality-specific Feature Encoding

FUTR3D独立地从每种模式中学习特征。由于该框架不对所使用的模态或其模型架构做出假设,因此,模型适用于任何特征编码器的选择。这项工作侧重于三种类型的数据:LiDAR 点云、雷达点云和多视图相机图像。

对于Lidar点云数据,使用VoxelNet对其编码。点云数据经过3D backbone和FPN,得到了多尺度BEV特征图:

\{\mathcal{F}_{\mathrm{lid}}^j\in\mathbb{R}^{C\times H_j\times W_j}\}_{j=1}^m

其中,C是输出通道, H_j\times W_j 是第j个BEV特征图的大小。

对于Radar数据,因为Radar数据通常更稀疏且分辨率较低,因此FUTR3D将雷达点量化为固定尺寸的柱体(pillars),然后使用多层感知器(MLP)对每个柱体进行特征提取。具体操作是 \left\{r_j\right\}_{j=1}^N\in\mathbb{R}^{C_{ri}}柱状化为0.8米的柱体,采用MLP Φrad 获得每个柱子的特征 \mathcal{F}_{\mathrm{rad}}^j=\Phi_{\mathrm{rad}}(r_j)\in\mathbb{R}^{C_{ro}},其中Cro表示编码Radar特征的数量,得到Radar的BEV特征图:

\mathcal{F}_{\mathrm{rad}}\in\mathbb{R}^{C_{ro}\times H\times W}

对于摄像头的多视图数据,采用ResNet或者VoVNet,结合FPN进行图像特征提取,为每个图像输出多尺度特征:

\mathcal{F}_{\mathrm{cam}}^k=\{\mathcal{F}_{\mathrm{cam}}^{kj}\in\mathbb{R}^{C\times H_j\times W_j}\}_{j=1}^m

表示第k个图像。

3.2 Modality-Agnostic Feature Sampler

FUTR3D 最关键的部分是特征采样过程,称为模态无关特征采样器 (MAFS)。检测头的输入是一组对象查询 Q=\{q_i\}_{i=1}^{N_q}\subset\mathbb{R}^C (每个查询代表一个潜在的目标对象),以及来自所有传感器的特征。MAFS 通过从每个传感器要素中采样特征并融合它们来更新每个查询。具体过程如下:

初始化3D参考点:首先使用 N_q 个3D参考点\{c_i\}_{i=1}^{N_q}随机初始化查询,其中c_i\in\left[0,1\right]^3 表示3D空间中的相对坐标。然后,此 3D 参考点用作从多个源收集特征的锚点。

初始参考点不依赖于任何传感器的特征,它将在融合所有模态的特征后动态更新。

  • 每个查询的3D参考点 c_i是在3D空间中随机初始化的,通常这些参考点的坐标值落在一个单位立方体c_i\in\left[0,1\right]^3 内。这意味着每个点的x、y、z坐标都是从0到1的随机数。

  • 这种初始化方法保证了参考点在空间中的均匀分布,允许模型在学习过程中自适应地调整这些点以匹配实际的物体位置。

  • 初始化的参考点作为“锚点”(anchor),用于在模型的后续处理步骤中聚集或采样来自各种传感器的特征。

LiDAR 点特征采样:经过3D backbone和FPN之后的点云特征表示为 \{\mathcal{F}_{lid}^j\}_{j=1}^m ,然后利用Deformable Attention,从每个比例特征图中采样K个点,也就是所有多尺度 BEV 特征图中对 LiDAR 特征进行采样,并将它们相加。对于每个查询的3D参考点 c_i ,采样公式如下:

\mathcal{SF}_{\mathrm{lid}}^{i}=\sum_{j = 1}^{m}\sum_{k = 1}^{K}\mathcal{F}_{\mathrm{lid}}^{j}(\mathcal{P}(c_{i})+\Delta_{\mathrm{lid}}^{ijk})\cdot\sigma_{\mathrm{lid}}^{ijk}

其中, P(c_{i})是参考点在BEV上的投影, S\mathcal{F}_{\mathrm{lid}}^i表示第i个参考点的采样Lidar点特征, \Delta_{\mathrm{lid}}^{ijk}\sigma_{\mathrm{lid}}^{ijk}分别是预测的采样偏移和注意力权重,\mathcal{F}_{\mathrm{lid}}^j(\mathcal{P}(c_i)+\Delta_{ijk}) 表示来自 BEV 特征图的双线性采样。

Radar点特征采样:与 LiDAR 特征采样类似:

\mathcal{SF}_{\mathrm{rad}}^i=\sum_{k = 1}^K\mathcal{F}_{\mathrm{rad}}(\mathcal{P}(c_i)+\Delta_{\mathrm{rad}}^{ik})\cdot\sigma_{\mathrm{rad}}^{ik}

其中,\Delta_\mathrm{rad}^{ik} \sigma_\mathrm{rad}^{ik}分别表示预测的采样偏移量和注意力权重。

Camera图像特征采样:利用相机的内在和外在参数将参考点c投影到相机的图像k,并表示投影参考点的坐标。

\mathcal{SF}_{\mathrm{cam}}^i=\sum_{k=1}^N\sum_{j=1}^m\mathcal{F}_{\mathrm{cam}}^{kj}(\mathcal{T}_k(c_i))\cdot\sigma_{\mathrm{cam}}^{ikj}

其中, \mathcal{F}_{\mathrm{cam}}^{kj}(\mathcal{T}_k(c_i)),里面那个是将3D参考点ci投影到第k个摄像头图像平面的坐标,整个是第k个摄像头的第j层特征图。

对于每个3D参考点(例如,由前面的处理步骤如MAFS初始化或已经更新的点),需要将其投影到2D图像平面上。这一步骤涉及到3D到2D的空间转换,通常需要考虑相机的内参(如焦距和光学中心)和外参(即相机在世界坐标中的位置和方向)。

在将3D参考点投影到2D图像平面后,接下来从相应的2D特征图中采样特征,通过插值方法(如双线性插值)实现,以确保从连续的特征图中提取精确的特征值。

与模态无关的特征融合:是在对所有模态的采样点特征后,融合特征并更新查询。首先,将所有模态的采样特征连接起来,并使用由以下公式给出的MLP网络 Φfus 对它们编码:

\mathcal{SF}_{\mathrm{fus}}^i=\Phi_{\mathrm{fus}}(\mathcal{SF}_{\mathrm{lid}}^i\oplus\mathcal{SF}_{\mathrm{cam}}^i\oplus\mathcal{SF}_{\mathrm{rad}}^i)

其中, \mathcal{S}\mathcal{F}_{\mathrm{fus}}^i是融合后的每个query特征,用的concat连接,MLP编码成一个统一的特征向量。

然后,将参考点的位置编码\mathrm{PE}(c_i)加入到融合特征中,使得具有位置感知能力,最后通过 q_i=q_i+\Delta q_i不断更新query。其中,

\Delta q_i=S\mathcal{F}_{\mathrm{fus}}^i+\mathrm{PE}(c_i).

然后,使用自注意力模块和 FFN 更新对象查询。

3.3 Iterative 3D Box Refinement

FUTR3D使用transformer解码器,该解码器设计为多层结构,每一层都能够接收前一层的输出,并进一步细化查询和预测。

对于每个对象查询 q_i^{\ell},使用一个共享的MLP Φreg 预测box中心坐标、大小、方向、速度的偏移量,另外一个 Φcls 负责预测分类标签的偏移量。

使用最后一层中box中心坐标的预测作为每个查询的 3D 参考点,但第一层除外,它直接解码和输入对象查询的参考点。下一层的参考点由下式给出:

c_i^{\ell+1}=c_i^\ell+\Delta x_i^\ell

3.4 Loss

每一轮的预测都会与真实的标注数据进行比较,计算一个集合到集合的匹配损失(set-to-set matching loss),这包括分类损失(Focal Loss)和边界框回归损失(L1损失)。

集合到集合的匹配损失用的是匈牙利算法,这是一种组合优化算法,用于解决分配问题,即如何在成本最小化的情况下将一组任务分配给一组代理(或预测分配给真实目标)。

在目标检测中,算法运行方式为定义一个成本矩阵,其中矩阵的每个元素代表一个预测与一个真实标注(query的数量是要大于真实物体框的数量的,所以是集合到集合的匹配问题)之间的匹配成本。成本可以基于预测和真实标注之间的差异,例如边界框的位置、尺寸差异,或分类错误。

匈牙利算法会寻找这样一个最优匹配,使得整体的匹配成本最小。结果是每个预测都唯一对应一个真实标注,且总成本最低。

四、实验结果

nuScenes 测试集结果

nuScenes va上相机结合低分辨率 LiDAR 结果

FUTR3D 的性能明显优于采用低分辨率 LiDAR 的 CenterPoint,以及采用摄像头 + 低分辨率 LiDAR 的 PointPainting。在摄像头 + 4 光束 LiDAR 设置下,FUTR3D 实现了 58.0 mAP,超过了配备 32 光束 LiDAR (56.6 mAP) 的最先进的 LiDAR 探测器 CenterPoint。

nuScenes val 集上的摄像机-雷达融合结果

FUTR3D 的定性结果。通过将 LiDAR 点投影到图像上来显示透视图像视图结果。(a) 远处有一辆用红色圆圈标记的汽车,基于 32 波束激光雷达的探测器会错过该汽车。(b) 仅凭视觉,用红色圈出的广告牌被误认为是行人。这可以在 1 光束 LiDAR 的帮助下进行校正。

使用 nuScenes 测试集对摄像机backbone进行消融。第一行显示了仅 LiDAR 版本的 FUTR3D 的结果。

使用 nuScenes 验证集对辅助 LiDAR 头进行消融。辅助头仅用于lidar分支的训练过程,是联合训练,loss权重是0.5。

按对象类别划分的性能细分

按物体距离划分的性能细分

按对象大小划分的性能细分

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值