【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers

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

CVPR2022
现存的Lidar-Camera融合的方法:主要分为三类:result-level,proposal-level以及point-level
result level是这么做的:首先用现成的2d检测器来生成3dproposals,然后用pointnet来进行物体定位。(FPointNet/RoarNet)
proposal level是这么做的:融合在proposal阶段,通过对于两个模态的信息进行roi pool操作进行融合。但是这种方法的效果不理想,主要是在image会引入很多的背景噪声点,这是我们不希望得到的。(MV3D、AVOD)
point level则是尝试在点层面进行融合,在lidar点云和pixel像素之间建立硬连接,然后进行concat拼接。
这么做有什么不好的地方呢?
首先这样做很大程度地收到image质量的影响。其次硬链接是一对一的连接,这样浪费了很多pixel的丰富的语义信息,同时还需要很精准的calibration。
本文要讲这么一个故事:怎么设计一个鲁棒的检测器来进行两种信息域信息的软连接?
老规矩 上图!
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第1张图片

query initialization

整篇文章的架构很像DETR和3DETR,没有看过的朋友可以先看一下这两篇文章。收到efficient DETR的启发,给定query一个精准的定位,相比随机的参数初始化是很有意义的。通过这个操作,我们可以减少对于特征层的深度。
最原始的思想是query由你的imput输入,自然,就是你的lidar点云信息来提取query。首先我们将点云信息voxel化,投影到bev图中,类似centerpoint的做法来生成一个基于类别热度图S,每个点预测k个类别的可能。类似centernet,我们取峰值点,取前N个作为我们的query点。我们用这个点对应的BEV特征和位置来初始化query。
作者认为每个类别有着很大的差异的信息,例如尺寸等等,而让query意识到class信息有利于多个类别的检测,具体的做法就是在每一个我们选取的query加一个embedding。具体做法就是选出每个query的类别热度图值S,利用一个linear层投影到d维度,随后与query进行element wise的相加处理。

Lidar decoder

还是沿袭Detr的思想,对于我们得到的query,我们先计算一个他们之间的selfattention,这里得到的是不同object之间的交互信息。再与BEV进行一个corss attention 这就是为了query感受野的扩大和提取全局信息了。位置编码是直接将query的位置进行mlp处理到d维度,再与query进行元素级别的相加得到的。最后再把这N个query送进前置层,进行前项推理,即可以得到预测结果。每一个decoder后面都有一个FFN,用来辅助检测后限制后面融合模块的corss attention。
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第2张图片

Lidar camera fusion

对于一些远处的物体 lidar点是很稀疏的,如果直接与pixel进行concat拼接实际上是浪费了丰富的pixel的语义信息。所以硬链接是一个suboptimal的方法。我们转而采用cross attention的方法,对于2d backbone提取的feature,我们建立起两个信息域直接的软连接:
首先利用标定矩阵和预测结果找到投影到image上的区域,注意 这些区域肯定是含有背景pixel的,这对于我们的检测来说是噪声,而且会带来计算负担,怎么办呢 作者采用了一个类似centernet的2d高斯掩码,加权以每个query为中心的投影周围的cross attention map (SMCA),随后让query与这个经过加权后的pixel做cross attention, 再对于这些query进行FFN输出最终的结果。

后面的loss计算的label assignment还是沿袭的DETR的set prediction,采用匈牙利算法进行一对一的匹配后计算loss。没啥好说的。

image guide query

这里是对于query初始化的优化,能够在选取query阶段就具有image的信息的指引?
答案是可以的。那就是对于BEV的feature做为query 与image的信息进行一个cross attention的计算。,生成一个集合了image信息的bev。注意为了节省计算量 这里对于image的高度维度进行了压缩。出于一遍在高度维度只存在一个object的考虑。(有点扯)
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第3张图片
来看看结果:
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第4张图片
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第5张图片
waymo上打不过一阶段的centerpoint 不过既然是基于centerpoint tracking任务还是完成的很不错!
后面做了一些夜间场景、掉帧和标定不准情况下的结果,很nice!
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第6张图片
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第7张图片
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第8张图片
ablation实验:
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第9张图片
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第10张图片
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第11张图片

我的思考

首先第一个问题 同样为一阶段网络,为什么打不过centerpoint呢?我认为融合是没有问题的,transformer也带来了更多的更好的语义信息,主要原因可能还是在于不同的检测头,使用set prediction的方法对于网络来说是困难的,需要首先进行一对一的匹配,这是否对于目标检测来说是最优的 没有一个定论。我看过的一篇文章,与detr分析过检测结果,发现无论如何迭代 set prediction的方法总是与手动的布置gt的方法存在ap上的gap。认为这种assignment对于网络来说是难以学习的。
【论文阅读】【多传感器融合】TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers_第12张图片
其次 我认为这个方法的鲁棒性主要源自于fusion 模块的cross attention采用pixel的一个区域,这样 解释标定再不准 image再模糊 还是能提取到目标上的一些有用信息 而不会像硬链接一样 随便偏移一点就 会出现很大的偏差。
效果并不是很好 不过有了trans这个噱头。

你可能感兴趣的:(论文阅读,目标检测,3d,计算机视觉)