作者:Xuyang Bai, Zeyu Hu, Xinge Zhu, Qingqiu Huang, Yilun Chen, Hongbo Fu and Chiew-Lan Tai
原文:戳我
代码:戳戳我
本模型需要依赖一个3d和2d的backbone去分别提取lidar bev特征和相片特征。
检测头由两个序列decoder组成:
- 利用一堆稀疏的object queries,初始化3d的bounding box,这一层的decoder遵循相关输入与类别感知的规则进行初始化。
- 第二层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,并且在此之上融合了图片特征。