Dit moi, la petit ephémère

Qui nous laisse espérer le ciel, et nous attache à des pierres

0%

Transfusion模型介绍

作者:Xuyang Bai, Zeyu Hu, Xinge Zhu, Qingqiu Huang, Yilun Chen, Hongbo Fu and Chiew-Lan Tai
原文:戳我
代码:戳戳我

本模型需要依赖一个3d和2d的backbone去分别提取lidar bev特征和相片特征。

检测头由两个序列decoder组成:

  1. 利用一堆稀疏的object queries,初始化3d的bounding box,这一层的decoder遵循相关输入与类别感知的规则进行初始化。
  2. 第二层decoder负责联结、融合上一层的object queries以及其附带的initial prediction,生成更为优质的预测结果。

建立了smca-在空间建模的交叉注意力机制,它囊括了locality inductive bias,并且帮助网络更好地与相关图片所对应的区域进行结合。

动机

  • 在诸如照明条件不良、传感器对齐错误的这种较差的图像获取条件下,怎样更为稳定地融合传感器数据,这一点还没有什么人研究。
    • 现有的融合方式是通过标定矩阵(calibration matrices)的方法,将激光雷达返回的点数据与相机返回的图像像素进行硬关联。
    • 这种方法很容易因为获取的图像质量不高而导致很大的偏差。
  • 光靠激光雷达很难识别小物体,它们可能也就只有几个点
    • 但它们在高分辨率的图像里面还是很好识别的
  • 现有的方法在回传的图片质量低下的时候,性能很糟糕
    • 它们通常是通过拼接(concatenation)或者加和(addition)的方式进行融合
  • 激光雷达回传的点数据忽略了图像的语义特征。
  • 硬关联的效果的好坏很大程度取决于两个传感器之间的校准质量。
    • 传感器回传数据存在时空偏差,校准质量一般都高不了。

创新点

  • 利用3d backbone,将decoder
  • 软关联机制

实现路径

2d物体检测

图像→ cnn→ embedding(object query)

embedding + positional encoding → object query

Query 初始化

相关输入 input dependent

一般来说query position和输入的图像是没有关联的,要么是随机生成要么是通过机器学习得来。不过近期的研究表明,在object query的初始化上下功夫,可以_弥补单层模型与多层模型之间的差距_。

所以这里作者提出了中心热力图(center heatmap) 策略对object query初始化,使得模型在只使用一层decoder的情况下,就能达到很不错的效果。

先定义一个d维的lidar bev特征:

$F_{L} \in \mathbb{R}^{X \times Y \times d}$

接下来建立一个专门为类型预测建立的热力图:

$\hat{S} \in \mathbb{R}^{ X \times Y \times K}$

其中X*Y表征BEV的尺寸,K是类型数量。

再将这个热力图视作对X_Y_K个候选对象,选择所有类别可能性最高的前N个作为initial query positions和query feature

属性感知 category aware

在bev投影位面上的物体共享同一个坐标系,因此同一个类别之间的尺度方差较小,需要对每个object query进行类别嵌入(category-embedding),确保obeject query可以被更为精确地感知。

候选类别$S_{ijk}$,其中k表示第k个类别。

具体实现方法:

element-wise sum

对象:query feature、category embedding

category embedding:将one-hot category线性投影到$\mathbb{R}^d$而得到的向量

tf解码器及其前向传播网络

解码结构和detr一脉相承:

  • object queries间进行自注意力计算,让不同候选对象形成成对关系。
  • object query与特征(点云)间进行交叉注意力计算,让相关的互文信息汇聚到候选的对象上
  • 利用mlp将query position嵌入到d维位置编码中,使能推理进程

N个object queries经过FFN后,解码为方框和标签。预测内容包含:

  • 中心点偏移
  • 偏航角
  • x, y方向上的速度
  • 分类概率

每一层解码器后面都会加计算loss

损失函数

$C_{\text {match }}=\lambda_{1} L_{c l s}(p, \hat{p})+\lambda_{2} L_{r e g}(b, \hat{b})+\lambda_{3} L_{i o u}(b, \hat{b})$

由分类、回归、intersection of union三个损失部分组成

query初始化

我们先在垂直方向上压缩了图片的特征,然后通过在激光雷达俯瞰特征上执行交叉注意力操作,将图像特征投影在俯瞰空间中。为了捕捉图像和其俯瞰定位之间的关系,每个图片都将分别被不同的多头注意力层处理。
先沿着h轴,进行maxpooling计算,让图像特征坍缩成条形并作为k和v,同时lidar在bev位面的投影特征作为q,三者进行多头注意力机制,计算得到融合后的bev特征就是初始的query

1.1 - 相关输入

随机生成的query position输入模型时,因其不具备相关性,在检测目标物体的中心位置时,需要添加额外的decoder层才能让bounding box朝着实际的中心位置移动。

近期的研究证明,如果想让只有一层的模型表现得和六层的一样好,就需要用一个更好的object query的初始化方法。

他文评述

Benchmarking the Robustness of LiDAR-Camera Fusion for 3D Object Detection

深度融合的方法都是从一个统一空间内,为两种模式(2d、3d)都分别准备已经预训练好了的神经网络,从中提取两种模式的深度特征。这种统一空间一般选的都是俯瞰空间。

tf评估了三种场景下,不同融合策略的稳定性,具体方法是将验证集分成白天和晚上,从中随机drop某几帧图片,再通过在camera到lidar的转移矩阵中,随机增加一些偏移量,造成lidar和camera无法有效对齐。

tf忽略了lidar的噪音以及时间错位的情况。

tf在实验中表现出了最优的稳定性,主要体现在它在对抗camera的噪音方面的表现堪称惊艳。

BEVFusion: multi-Task Multi-Sensor Fusion with Unified BEV Representation

tf在3d空间中定义了object query,并且在此之上融合了图片特征。