【多模态融合】Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

论文链接:Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

代码链接:https://github.com/junjie18/CMT

作者:Junjie Yan, Yingfei Liu, Jianjian Sun, Fan Jia, Shuailin Li, Tiancai Wang, Xiangyu Zhang

发表单位:旷视科技

会议/期刊:ICCV2023

一、研究背景

多传感器融合在自动驾驶系统中展示了其巨大优势。不同的传感器通常能提供互补的信息。例如,摄像头以透视视角捕捉信息,图像中包含丰富的语义特征,而点云则提供更多的定位和几何信息。充分利用不同传感器有助于减少不确定性,从而进行准确和鲁棒的预测。

然而,由于不同模态的传感器数据在分布上的巨大差异,融合这些多模态数据一直是个挑战。当前的主流方法通常通过构建统一的鸟瞰图(BEV)表示来进行多模态特征融合,或通过查询令牌(Transformer架构)来实现多模态融合。

BEVFusion、TransFusion 和所提出的 CMT 之间的比较

上图, (a) 在 BEVFusion 中,通过视图变换将相机特征变换到 BEV 空间。两个模态特征在BEV空间中级联,并采用BEV编码器进行融合。 “VT”是从图像到3D空间的视图变换。(b) TransFusion 首先从 LiDAR 特征的高响应区域生成查询。之后,对象查询分别与点云特征和图像特征交互。 (c) 在 CMT 中,对象查询直接同时与多模态特征交互。将位置编码(PE)添加到多模态特征中以进行对齐。

性能对比以及传感器缺失情况性能评估

左:CMT 与现有方法之间的性能比较。所有速度统计数据均使用官方存储库的最佳模型在单个 Tesla A100 GPU 上测量。 (所有方法都使用spconv repo中相同的Voxelization模块。此外,BevFusion的TranFusion head也配备了CMT repo中相同的FlashAttn。CMT和BEVFusion都没有采用预计算)。

右:传感器缺失情况下 CMT 的性能评估。在推理过程中,CMT 在 LiDAR 缺失的情况下实现了基于视觉的性能,表现出很强的鲁棒性。

本文受 DETR 的启发,目标是为 3D 对象检测中的多模态融合构建一个优雅的端到端管道。

在 DETR 中,对象查询通过 Transformer 解码器中的交叉注意力直接与图像标记交互。对于 3D 对象检测,一种直观的方法是将图像和点云标记连接在一起,以便与对象查询进一步交互。然而,连接的标记是无序的并且不知道它们在 3D 空间中的相应位置。因此,有必要为多模态标记和对象查询提供位置先验。

在本文,提出了 Cross-Modal Transformer (CMT),这是一种简单但有效的端到端管道,用于鲁棒3D 对象检测。

首先,提出了坐标编码模块(CEM),它通过将 3D 点集隐式编码为多模态标记来生成位置感知特征。具体来说,对于相机图像,从视锥体空间采样的 3D 点用于指示每个像素的 3D 位置的概率。而对于 LiDAR,BEV 坐标只是简单地编码到点云标记中。接下来,使用位置引导查询。每个查询都按照 PETR初始化为 3D 参考点。将参考点的 3D 坐标变换到图像和 LiDAR 空间,以在每个空间中执行相对坐标编码。

与现有方法相比,所提出的 CMT 框架具有许多优点。

首先,该方法是一个简单的端到端管道,可以轻松扩展。 3D 位置被隐式编码到多模态特征中,这避免了引入显式跨视图特征对齐引起的偏差。

其次,方法仅包含基本操作,没有对多模态特征进行特征采样或复杂的 2D 到 3D 视图转换。它实现了最先进的性能,并且与现有方法相比显示出明显的优越性。

第三,CMT的鲁棒性比其他现有方法强得多。极端的是,在 LiDAR 未命中的情况下,与那些基于视觉的 3D 物体检测器相比,仅使用图像标记的 CMT 可以实现相似的性能。

本文贡献:

(1)提出了一种快速且强大的3D 检测器,这是一个真正的端到端框架,无需任何后处理。它克服了传感器丢失的问题。

(2)3D 位置被编码到多模式标记中,无需任何复杂的操作,例如网格采样和体素池化(cue了BEVFusion)。

(3)CMT 在nuScenes 数据集上实现了最先进的3D 检测性能。它为未来的研究提供了一个简单的基线。

二、整体框架

Cross-Modal Transformer (CMT) 范例的架构

多视图图像和点云被输入到两个骨干网络以提取特征tokens。在坐标编码模块中,相机光线和BEV位置的坐标(3D 坐标)分别转换为图像位置编码(Im PE)和点云位置编码(PC PE)。查询由位置引导查询生成器生成。在查询生成器中,3D 锚点被投影到不同的模态,并且相对坐标被编码(参见右侧部分)。多模态tokens进一步与转换器解码器中的查询交互。更新后的查询进一步用于预测 3D 边界框。整个框架以完全端到端的方式学习,LiDAR 主干从头开始训练,无需预训练。

(1)特征提取:从多视角图像和LiDAR点云中提取特征。

(2)位置编码:使用CEM对图像和点云特征进行位置编码,生成位置嵌入。

(3)初始化查询:

  • 使用PQG在3D空间中初始化锚点,并通过CEM对这些锚点进行位置编码。

  • 将位置嵌入与查询内容嵌入相结合,生成初始位置引导查询。

(4)查询更新:在跨模态Transformer解码器中,位置引导查询与多模态特征进行交互和更新,最终生成3D目标检测结果。

三、核心方法

3.1 Coordinates Encoding Module

CEM的主要目的是通过将3D点的位置信息编码到多模态令牌(图像和LiDAR)中,提供具有位置感知的特征。这种编码使模型能够隐式理解3D空间中的空间关系,这对于准确的3D目标检测至关重要。

假设P(u,v)是不同模态特征图F(u,v)的3D点集,这里的(u,v)表示特征图中的坐标。具体来说,F是相机的图像特征或者LiDAR的BEV特征。假设CEM的输出位置嵌入为Γ​(u,v),其计算公式为:

\Gamma(u,v)=\psi(P(u,v))

其中 𝜑 是多层感知 (MLP) 层。

CE for Images:对于摄像头图像,编码涉及从摄像头的截锥体空间中采样3D点,因此图像中的每个像素可以看作在3D空间中表示一条线(极线)。对于每个图像,从相机视锥体空间中的一组点进行编码以执行坐标编码,对于给定的图像特征F im,每个像素都可以表示为相机平截头体坐标中的一系列点:

\{p_{k}(u,v)=(u*d_{k},v*d_{k},d_{k},1)^{T},k=1,2,...,d\}

其中,u和v代表像素坐标,d是沿深度轴采样的点的数量。

特别说明这里的dk是怎么得到的,类似LSS中的方法:

(1)预定义的深度范围:通常,摄像头的视锥体会有一个预定义的深度范围,比如从最小深度(通常接近0)到最大深度(通常是摄像头的远裁剪面距离)。

(2)均匀采样:在这个预定义的深度范围内,均匀采样dk个点。这些点可以是等间距的,也可以按照特定的策略(如对数分布)进行采样,以便更好地捕捉近距离或远距离的细节。例如,如果预定义的深度范围是从0.1米到100米,可以均匀地在这个范围内采样d个点。

(3)深度值集合:得到的d个深度值{d1,d2,...,dk,...,d}}就代表了沿深度轴采样的点。这些点用于生成相机平截头体坐标中的点集。

采样后得到的点通过相机内外参变化矩阵进行变化,最终投影到3D空间:

p_k^{im}(u,v)=T_{c_i}^lK_i^{-1}p_k(u,v)

其中,T_{c_{i}}^{l}\in R^{4\times4} 是从第i个相机坐标到LiDAR坐标的变换矩阵, K_{i}\in4\times4 是第i个相机的内在矩阵。也就是说,这些点通过T从摄像头坐标系变到LiDAR坐标系,然后由摄像头内参矩阵K变到LiDAR空间。

图像中每个像素的位置信息编码计算为:

\Gamma_{im}(u,v)=\psi_{im}(\{p_{k}^{im}(u,v),\quad k=1,2,...,d\})

一样是用MLP进行位置编码。

CE for Point Clouds:使用VoxelNet或PointPillar作为主干网络编码点云Tokens,称为F pc。点集沿Z轴(高度)采样。假设(u,v)是BEV特征图的坐标,那么采样得到的点集是:

p_{k}(u,v)=\left(u,v,h_{k},1\right)^{T}

其中,hk代表第k个点的高度,h0=0是默认值。BEV特征图对应的3D点就可以通过下面公式计算:

p_k^{pc}(u,v)= (u*u_d,v*v_d,h_k,1)

其中,(ud,vd)是每个BEV特征网格的大小,为了简化,只沿高度轴采样一个点,相当于BEV空间中的2D坐标编码。那么点云的position embedding(位置信息编码)可以计算:

\Gamma_{pc}(u,\upsilon)=\psi_{_{pc}}(\{p_{k}^{pc}(u,\upsilon),\quad k=1,2,...,h\})

3.2 Position-guided Query Generator

首先,位置引导的查询生成器根据Anchor-DETR和PETR的方法,初始化一组锚点。这些锚点是从均匀分布中采样的n个点,表示为:

A=\{a_{i}=(a_{x, i},a_{y, i},a_{z, i}),i=1,2,...,n\}

其中,每个锚点的坐标在[0, 1]范围内均匀分布。

接下来,这些锚点通过线性变换映射到3D世界空间中,具体公式如下:

\left\{\begin{array}{ll}a_{x,i}= a_{x,i}*(x_{max}-x_{min})+x_{min}\\a_{y,i}= a_{y,i}*(y_{max}-y_{min})+y_{min}\\a_{z,i}= a_{z,i}*(z_{max}-z_{min})+z_{min}\end{array}\right.

其中,[xmin​,ymin​,zmin​,xmax​,ymax​,zmax​]是3D世界空间的感兴趣区域(RoI)。

3D世界空间的感兴趣区域(Region of Interest, RoI)是预定义的一个空间范围,用于在该范围内进行3D目标检测。这个RoI的确定通常基于具体的应用场景和传感器的覆盖范围。RoI通常通过一组边界坐标来定义,通常是一个长方体或立方体,包含了目标可能出现的所有区域。定义RoI的边界坐标通常包括最小和最大值。

这些坐标分别表示RoI在X、Y、Z三个轴上的最小和最大范围。例如:

  • xmin​ 和 xmax​ 表示RoI在X轴(通常是车辆前后方向)的范围。

  • ymin​ 和 ymax​ 表示RoI在Y轴(通常是车辆左右方向)的范围。

  • zmin​ 和 ⁡zmax​ 表示RoI在Z轴(通常是高度方向)的范围。

这种定义确保了RoI覆盖了车辆周围的所有重要区域,从而能够有效地检测和处理这些区域内的目标。

在将锚点转换到3D世界空间后,这些锚点被投影到不同的模态(如图像和平面视图)中,并通过坐标编码模块(CEM)编码对应的点集。这样可以生成对象查询的位置信息嵌入Γq可以通过以下方式生成:

\Gamma_q=\psi_{_{pc}}(A_{_{pc}})+\psi_{_{im}}(A_{_{im}})

其中,Apc和Aim分别是投影到BEV平面和图像平面的点集,位置嵌入Γq进一步与查询内容嵌入相加,以生成初始位置引导查询Q0。

3.3 Decoder and Loss

对于解码器,遵循 DETR 中原始的 Transformer 解码器并使用解码器L层。

每个解码器层,位置引导查询与多模式令牌交互并更新其表示。两个前馈网络 (FFN) 用于使用更新的查询来预测 3D 边界框和类别。将每个解码器层的预测过程表述如下:

\stackrel{\wedge}{b}_{i}=\Psi^{reg}(Q_{i}),\stackrel{\wedge}{c}_{i}=\Psi^{cls}(Q_{i}),

其中Ψreg和Ψcls分别表示回归和分类的FFN。Qi是第i解码器层的更新的对象查询。

对于集合预测,二分匹配应用于预测和真实值之间的一对一分配。采用Focal Loss进行分类,采用L1 损失进行 3D 边界框回归:

L(y,\hat{y})=\omega_{1}L_{cls}(c,\hat{c})+\omega_{2}L_{reg}(b,\hat{b})

w1和w2是平衡两个损失项的超参数。对于查询去噪中的正查询和负查询,损失的计算方式相同。

3.4 Masked-Modal Training for Robustness

安全性是自动驾驶系统最重要的问题。理想的系统需要可靠的性能,即使其中一部分失败,并且不依赖于任何特定模式的输入。BEVFusion 探索了 LiDAR 传感器故障的鲁棒性。然而,探索仅限于有限的扫描范围,并且模型需要重新训练。在本文中,尝试了更多的极端故障,包括单摄像头缺失、摄像头缺失和激光雷达缺失,如下图所示。与实际场景一致,保证了自动驾驶的安全。

为了提高模型的鲁棒性,提出了一种训练策略,称为masked-模态训练。在训练过程中,随机使用单一模态进行训练,例如相机或激光雷达,其比例为x1和x2。该策略确保模型经过单模态和多模态的充分训练。然后可以使用单模态或多模态测试模型,而无需修改模型权重。实验结果表明,掩模模态训练不会影响融合模型的性能。即使LiDAR损坏,与基于SoTA视觉的3D探测器相比,它仍然可以实现相似的性能。

图 4:在测试期间分析了 CMT 在三种模拟传感器误差下的系统鲁棒性:(a) 单摄像头未命中、(b) 所有摄像头未命中和 (c) LiDAR 未命中。

CMT 在端到端建模方面与 FUTR3D 有着相似的动机。然而,两者的方法和效果却完全不同。 FUTR3D 重复采样每个模态的相应特征,然后执行跨模态融合。 CMT对多视点图像和点云都进行位置编码,简单地添加相应的模态标记,消除了重复的投影和采样过程。它在原有的DETR框架中保留了更多端到端的精神。此外,与 FUTR3D 相比,CMT 取得了更好的性能,显示出其卓越的有效性。可以认为 CMT 为多模态目标检测提供了更好的端到端解决方案。

四、实验结果

nuScenes 测试集上的性能比较

nuScenes 验证集的性能比较

使用 LiDAR 或相机未命中的 nuScenes val 的定量结果。通过掩模模态训练, CMT 的效率和鲁棒性得到了显着提高,特别是在缺少 LiDAR 或相机的情况下。

nuScenes val 与传感器缺失的 NDS/mAP 比较。 BEVFusion 使用掩模模态策略进行训练。 * 表示作者复现的结果。

Argoverse2 验证集上的 CDS/AP 比较。 “L”是激光雷达,“C”是相机。CDS和NDS有点相似,但是只考虑了平均平移误差、平均尺度误差和平均角度误差。

CDS的公式

nuScenes 测试集中周围视图和 BEV 空间的一些定性检测结果。不同颜色的边界框代表车辆、行人、公共汽车和卡车。

多视图图像上注意力图的可视化。蓝点是初始锚点,而红点是框预测的中心。它表明注意力图的高响应区域主要集中在靠近锚点的前景物体上。

CMT 中不同组件的消融研究

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值