TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers总结

标题 TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers

说明

  • 会议:CVPR 2022
  • 标题:TransFusion:用于使用 Transformer 进行 3D 对象检测的稳健 LiDAR-相机融合
  • 代码:https://github.com/XuyangBai/TransFusion
  • 论文:https://arxiv.org/abs/2203.11496

摘要总结

背景

  • 现状:激光雷达(LiDAR)和相机是自动驾驶中3D物体检测的两个重要传感器。
  • 问题:尽管传感器融合在该领域日益普及,但对较差的图像条件(如恶劣的照明和传感器未对准)的鲁棒性不足。现有的融合方法很容易受到这些条件的影响,主要是由于校准矩阵建立的激光雷达点和图像像素的硬关联。

方法

  • 总括:我们提出了 TransFusion,这是一种强大的 LiDAR-相机融合解决方案,具有软关联机制来处理劣质图像条件。
  • 具体说明:
    • 我们的 TransFusion 由卷积主干和基于Transformer解码器的检测头组成。
    • 解码器的第一层使用一组稀疏的对象查询从 LiDAR 点云预测初始边界框,其第二解码器层利用空间和上下文关系自适应地将对象查询与有用的图像特征融合
    • Transformer 的注意力机制使我们的模型能够自适应地确定应该从图像中获取的信息和信息,从而形成稳健有效的融合策略。我们还设计了一种图像引导查询初始化策略来处理点云中难以检测的对象。

结果

  • TransFusion 在大规模数据集上实现了最先进的性能。我们提供了广泛的实验来证明其对退化图像质量和校准误差的鲁棒性。
  • 我们还将所提出的方法扩展到 3D 跟踪任务,并在 nuScenes 跟踪排行榜中名列第一,显示了其有效性和泛化能力

具体方法

主要是针对点云和RGB数据的点式融合的问题:

  1. 通过逐元素添加或连接来融合 LiDAR 特征和图像特征,因此它们的性能会下降严重影响低质量图像特征,例如光照条件差的图像。
  2. 寻找稀疏 LiDAR 点和密集图像像素之间的硬关联不仅浪费了许多具有丰富语义信息的图像特征,而且严重依赖于两个传感器之间的高质量校准,由于内部原因(固有的时空错位)而通常难以获得高质量校准。

关键思想和贡献

我们的关键思想是重新定位融合过程的焦点,从硬关联到软关联,从而增强对退化图像质量和传感器未对准的鲁棒性。具体来说,我们设计了一种顺序融合方法,它使用两个 transformer 解码器层作为检测头。据我们所知,我们是第一个使用 Transformer 进行 LiDAR 相机 3D 检测。

  • 我们的第一个解码器层利用一组稀疏的对象查询来从 LiDAR 特征中生成初始边界框。与 2D中的输入独立对象查询不同,我们使对象查询 input-dependent 和 category-aware,以便查询具有更好的位置和类别信息。
  • 接下来,第二个解码器层自适应地将对象查询与由空间和上下文关系相关联的有用图像特征融合在一起。【可参考架构图】我们通过在空间上限制初始边界框周围的交叉注意力来帮助网络更好地访问相关位置,从而利用局部归纳偏差。我们的融合模块不仅为对象查询提供了丰富的语义信息,而且由于 LiDAR 点和图像像素之间的关联是以一种软自适应的方式建立的,因此对于劣质图像条件也更加稳健。
  • 最后,为了处理点云中难以检测的对象,**我们引入了图像引导查询初始化模块,以在查询初始化阶段涉及图像引导。**总体而言,这些组件的组合显着提高了我们的 LiDAR 相机 3D 检测器的有效性和稳健性。

总而言之,我们的贡献有四方面:

  1. 我们的研究调查了 LiDAR-相机融合的固有困难,并揭示了鲁棒融合的一个关键方面,即软关联机制。
  2. 我们提出了一种用于 3D 检测的新型基于变压器的 LiDAR 相机融合模型,该模型以注意力的方式执行细粒度融合,并显示出对退化图像质量和传感器未对准的卓越鲁棒性。
  3. 我们为对象查询引入了几个简单而有效的调整,以提高图像融合的初始边界框预测的质量。图像引导查询初始化模块还设计用于处理点云中难以检测的对象。
  4. 我们在 nuScenes 上实现了最先进的 3D 检测性能,在 Waymo 上取得了有竞争力的结果。我们还将我们的模型扩展到 3D 跟踪任务,并在 nuScenes 跟踪挑战的排行榜中获得第一名

具体架构描述

总体架构图
TransFusion 的整体流程。我们的模型依赖于标准的 3D 和 2D 主干来提取 LiDAR BEV 特征图和图像特征图。我们的检测头依次由两个Transformer解码器层组成:(1) 第一层使用一组稀疏的对象查询生成初始 3D 边界框,以输入相关和类别感知(参考论文的3.2)的方式进行初始化。 (2) 第二层将来自第一阶段的对象查询(具有初始预测)与图像特征密切关联和融合,产生丰富的纹理和颜色线索以获得更好的检测结果。引入空间调制交叉注意 (SMCA) 机制以涉及局部归纳偏差并帮助网络更好地关注相关图像区域。我们还提出了一种图像引导查询初始化策略,以涉及 LiDAR BEV 上的图像引导。这种策略有助于生成难以在稀疏 LiDAR 点云中检测到的对象查询。

输入依赖

具体decoder结构
上图解释:left:用于初始边界框预测的转换器解码器层的架构。右图:用于图像融合的变压器解码器层的架构
简单描述在3.2节中表述的内容【参考上图理解】:
该模块是对Query Initialization的展开描述【第一个transformer的decoder模块实际上是一个自注意力模块,QKV都是来源于点云数据,只是在Q初始化之前通过了image的guidance】
输入依赖(Input-dependent)
传统的DETR的Q是随机生成或者依靠网络学习的(也导致了模型收敛速度慢),但是目前可以观察到通过更好的初始化Q(对象查询)可以弥合1 层结构和 6 层结构之间的差距。我们提出了一种基于中心热图的Input-dependent的初始化策略,以仅使用一个解码器层来实现具有竞争力的性能。
具体来说,给定一个 d 维 LiDAR BEV 特征图 F L ∈ R X × Y × d F_L ∈ R^{X×Y ×d} FLRX×Y×d ,我们首先预测一个类特定的热图 S ^ ∈ R X × Y × K \hat S ∈ R^{X×Y ×K} S^RX×Y×K,其中 X × Y 描述 BEV 特征图的大小,K 是类别的数量。然后我们将热图视为 X × Y × K 候选对象,并为所有类别选择前 N 个候选对象作为我们的初始对象查询。为了避免空间上过于封闭的查询,我们选择局部最大元素作为我们的对象查询,其值大于或等于它们的 8 个连接的邻居。否则,需要大量查询才能覆盖 BEV 平面。**所选候选者的位置和特征用于初始化查询位置和查询特征。**通过这种方式,我们的初始对象查询将位于或接近潜在的对象中心,从而消除了多个解码器层 来细化位置的需要。

LiDAR-Camera 融合

雷达数据是稀疏数据,Camera数据是密集数据

用于图像特征融合的 SMCA。多头注意力是一种流行的执行信息交换和在两组输入之间建立软关联的机制,它已被广泛用于特征匹配任务 [34, 41]。为了减轻硬关联策略带来的对传感器校准和劣质图像特征的敏感性,我们利用交叉注意机制在 LiDAR 和图像之间建立软关联,使网络能够自适应地确定信息的位置和内容应该取自图像。
具体来说,我们首先使用先前的预测和校准矩阵来识别对象查询所在的特定图像,然后在对象查询和相应的图像特征图之间进行交叉注意。然而,**由于 LiDAR 特征和图像特征来自完全不同的领域,对象查询可能会关注与要预测的边界框无关的视觉区域,导致网络需要很长的训练时间才能准确识别出正确的区域图片。受[9]的启发,我们设计了一个空间调制交叉注意力(SMCA)模块,它通过每个查询的投影二维中心周围的二维圆形高斯掩码( 2D circular Gaussian mask )来衡量交叉注意力。
然后
将该权重图与所有注意力头之间的交叉注意力图按元素相乘。这样,每个对象查询只关注投影 2D 框周围的相关区域,这样网络就可以根据输入的 LiDAR 特征(Q)更好更快地学习在哪里选择图像特征(K,V)。**注意图的可视化如图 3 所示。网络通常倾向于关注靠近对象中心的前景像素并忽略不相关的像素,为对象分类和边界框回归提供有价值的语义信息。在 SMCA 之后,我们使用另一个 FFN 使用包含 LiDAR 和图像信息的对象查询来生成最终的边界框预测

[9] Peng Gao, Minghang Zheng, Xiaogang Wang, Jifeng Dai, and Hongsheng Li. Fast convergence of detr with spatially modulated co-attention. ICCV, 2021.

图像引导

图像引导
上图解释:我们首先沿垂直维度压缩图像特征,然后使用与 LiDAR BEV 特征的交叉注意力将图像特征投射到 BEV 平面上。每个图像都由一个单独的多头注意力层处理,该层捕获图像列和 BEV 位置之间的关系

为了进一步利用高分辨率图像检测小物体的能力,并使我们的算法对稀疏 LiDAR 点云更加鲁棒,提出了图像引导的查询初始策略,该策略利用雷达和相机的信息选择object Query。
具体来说,我们通过与 LiDAR BEV 特征 F L F_L FL 的交叉注意力将图像特征 F C F_C FC 投影到 BEV 平面上,从而生成 LiDAR-camera BEV 特征图 F L C F_{LC} FLC

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,报错信息显示在安装mmdetection3d时出现了问题。具体来说,报错信息包括两个部分。首先,报错一指出在执行`get_indice_pairs`函数时出现了错误,具体错误信息是`cuda execution failed with error 2`。其次,报错二指出在编译`scatter_points_cuda.cu`文件时出现了错误,具体错误信息是`no instance of overloaded function "at::Tensor::index_put_" matches the argument list`。 针对这个问题,可能的原因是环境配置或依赖项安装不正确。为了解决这个问题,可以尝试以下几个步骤: 1. 确保已正确创建并激活了名为`transfusion`的conda环境,并且Python版本为3.7。 2. 确保已正确安装了PyTorch、mmcv和mmdet。可以使用`pip list`命令检查已安装的包,并确保版本与引用提供的版本一致。 3. 检查CUDA和cuDNN的版本是否与安装的PyTorch版本兼容。可以在PyTorch官方网站上查找相应的兼容性信息。 4. 如果报错一的错误是由于CUDA执行失败导致的,可以尝试更新显卡驱动程序或降低PyTorch的版本。 5. 如果报错二的错误是由于编译错误导致的,可以尝试更新或重新安装相关的依赖项,如mmpycocotools。 关于mmpycocotools的安装问题,由于提供的引用内容没有包含相关信息,无法给出具体的解决方案。但一般来说,可以尝试使用以下命令安装mmpycocotools: ``` pip install mmpycocotools ``` 如果仍然遇到问题,建议查阅相关文档或寻求开发者或社区的帮助来解决安装问题。 #### 引用[.reference_title] - *1* *2* *3* [TransFusion环境配置以及遇到的各种报错处理](https://blog.csdn.net/weixin_43603658/article/details/131756871)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值