【论文笔记】MV2DFusion: Leveraging Modality-Specific Object Semantics for Multi-Modal 3D Detection
原文链接:https://arxiv.org/abs/2408.05945
简介:本文提出MV2DFusion,使用基于查询的融合机制。使用不确定性感知的图像查询生成器和点云查询生成器生成查询,并基于物体语义进行稀疏融合。
本文认为,特征级融合(密集特征图的融合,如BEVFusion)方法无法利用目标先验,甚至会损害模态的语义;而提案级融合(包含传统方法如F-PointNet和基于稀疏查询的融合如SparseFusion)方法则往往会偏向其中一种模态。
1. 概述

如图所示,首先使用模态检测器得到图像和点云的检测结果,并通过查询生成器生成各模态查询,输入融合解码器聚合模态特征并更新3D位置。
2. 利用模态目标语义
2.1 来自模态专家的目标提案
首先,各模态独立进行特征提取。图像主干和FPN提取多视图图像特征\{F_v^{img}|1\leq v\leq N^{img}\};激光雷达主干提取点云体素特征F^{pc}。
基于模态特征,使用 模态专家 (可为任意检测器)生成提案。对于图像,2D检测器会在每个图像上生成M^{img}个2D边界框,即\{b_v^{img}\in\mathbb R^{M^{img}\times4}|1\leq v\leq N^{img}\},其中每个边界框表达为(x_{\min},y_{\min},x_{\max},y_{\max})。对于点云,可使用稀疏检测器节省时空消耗,生成M^{pc}个3D边界框b^{pc}\in\mathbb R^{M^{pc}\times7},其中每个边界框表达为(x,y,z,w,l,h,rot)。
2.2 从专家推导物体级语义
由于存在域间隙,各模态的检测结果难以直接融合。因此,本文使用查询来编码各模态的物体级语义。
2.3 点云物体查询生成

点云查询可表达为q^{pc}=(c^{pc},r^{pc}),其中c^{pc}为内容部分,r^{pc}为位置部分。使用物体中心点r^{pc}\in\mathbb R^{M^{pc}\times3}作为查询的位置部分。查询的内容部分c^{pc}\in\mathbb R^{M^{pc}\times C}包括外观特征o^{pc}和几何特征,其中外观特征取决于检测器类型,如基于中心的检测器则是BEV网格的值,两阶段检测器则是RoI特征,稀疏检测器则是产生预测的体素特征。几何特征则是物体的大小和朝向等属性(表达于b^{pc}中)。因此,查询的内容部分可如下计算:
c^{pc}=MLP(o^{pc}+MLP(SinPos(b^{pc})))
其中SinPos表示正弦位置编码,用于将低维向量转化为高维特征。
2.4 图像物体查询生成

由于深度估计的不适定问题,获取3D预测会产生大误差,影响查询质量。
本文提出不确定性感知的图像查询。查询的位置部分保留了深度估计的不确定性,即将查询位置视为概率分布。概率分布包括n_d个采样位置s^{img}\in\mathbb R^{M^{img}\times n_d\times 3}和相应的概率u^{img}\in\mathbb R^{M^{img}\times n_d}。
v视图的图像查询表达为q_v^{img}=(c_v^{img},s_v^{img},u_v^{img});所有图像查询可表达为
q^{img}=\{q_v^{img}|1\leq v\leq N^{img}\}
查询的内容部分c^{img}_v\in\mathbb R^{M^{img}\times C}为嵌入几何信息的RoI外观特征。给定2D检测结果b^{img}_v和特征F_v^{img},首先通过RoI对齐,提取RoI外观特征o_v^{img}\in\mathbb R^{M^{img}\times H_r\times W_r \times C}:
o_v^{img}=\text{RoI-Align}(F_v^{img},b_v^{img})
等效相机内参K^i_v会用于补偿RoI对齐过程中的几何信息损失。设相机v的原始内参矩阵为
K^{ori}_v=\begin{bmatrix}f_x&0&o_x&0\\ 0&f_y&o_y&0\\ 0&0&1&0\\ 0&0&0&1\end{bmatrix}
则K^i_v定义了相机坐标系到第i个2D边界框的投影:
K^i_v=\begin{bmatrix}f_xr_x&0&(o_x-x_{\min}^i)r_x&0\\ 0&f_yr_y&(o_y-y_{\min}^i)r_y&0\\ 0&0&1&0\\ 0&0&0&1\end{bmatrix}
其中r_x=W^r/(x^i_{\max}-x^i_{\min}),r_y=H^r/(y^i_{\max}-y^i_{\min})。
此处应该还需考虑原始图像下采样到特征图大小时的内参变化。
因此,查询的内容部分c_v^{img}可计算为:
c_v^{img}=MLP([Pool(Conv(o_v^{img}));Flat(K_v)])
其中[\cdot;\cdot]表示拼接,Flat表示将矩阵拉直为向量。
c_v^{img}也可视为外观特征o_v^{img}与几何特征Flat(K_v)的组合,其中等效相机内参包含了边界框信息。
位置部分则在预定义深度范围[d_{\min},d_{\max}]内均匀采样深度集合d\in\mathbb R^{n_d},并预测2D采样位置s^{2d}\in\mathbb R^{M^{img}\times n_d\times 2}和概率u^{img}\in\mathbb R^{M^{img}\times n_d}(省略下标v):
[s^{2d};u^{logit}]=MLP(c^{img})\\ u^{img}=\text{softmax}(u^{logit})
这样可根据2D采样位置s^{2d}和深度d反投影得到3D采样位置s^{img}。
需要注意与LSS不同,本文并未将查询分散到3D空间中,而是将概率分布作为查询的一部分。
3. 融合模态信息
本文使用类似DETR解码器的结构融合模态信息并预测最终结果。解码器包含L层,每层包括自注意力,交叉注意力,层归一化,FFN和查询校准。解码器输入为点云查询和图像查询的组合q^0=(q^{pc},q^{img})。
3.1 自注意力
由于各模态的查询位置部分表达不同,本文将位置部分转化为一致的表达。
首先,使用位置编码(PE)方法和不确定性感知的位置编码(U-PE)分别建立点云和图像的位置编码:
p^{pc}=PE(r^{pc})\\ p^{img}=\text{U-PE}(s^{img},u^{img})
其中
PE(r^{pc})=MLP(SinPos(r^{pc}))
在U-PE中,首先将s^{img}转化为基础位置编码p^{base},然后将概率u^{img}通过门控操作加入p^{base}:
s^{base}=MLP(Flat(s^{img}))\\ \text{U-PE}(s^{img},u^{img})=MLP(s^{base}\odot\sigma(MLP(u^{img})))
其中\sigma为sigmoid函数。
给定多头注意力MHA(Q,K,V),自注意力可写为
SelfAttn=MHA(W^Q(c^{sa}+p^{sa}),W^K(c^{sa}+p^{sa}),W^Vc^{sa})
其中p^{sa}为p^{pc}和p^{img}的组合;c^{sa}类似。上式可简写为
SelfAttn=MHA(W^Qq^{sa},W^Kq^{sa},W^Vq^{sa})
3.2 交叉注意力
尽管自注意力足够带来较好的性能,本文发现使用交叉注意力聚合模态特征能带来提升。

对于图像特征,使用基于投影的可变形注意力。首先获取每个查询的锚点,点云查询的锚点a^{pc}即其位置r^{pc},而图像查询的锚点是采样位置s^{img}与概率分布u^{img}的加权求和:
a^{img}=(u^{img})^T\cdot s^{img}
基于投影的可变形注意力为
DFA(c^m,a^m,F^{img})=\sum_{v=1}^{N^{img}}\sum_{k=1}^KA_{vk}\cdot WF_v^{img}(Proj(a^m+\Delta a_k))
其中A_{vk}为注意力权重,\Delta a_k为偏移量,二者均由内容部分c^m预测;K为采样点数,Proj表示投影到图像上,m为模态(点云或图像)。
对于点云特征F^{pc},若提取的是BEV特征,则可类似进行可变形注意力操作。本文使用稀疏体素表达,因此使用原始的多头注意力聚合点云特征。F^{pc}被柱体化压缩(沿高度均值池化),产生内容部分c^{pillar}。位置编码通过BEV位置r^{pillar}生成:
p^{pillar}=MLP(SinPos(r^{pillar}))
3.3 查询校准
由于模态特点,本文认为来自图像的查询可靠性较低,而来自点云的查询相对更准确。因此,本文在每个解码层之后校准图像查询,细化位置并减小不确定性。此步骤仅细化u^{img},而s_{img}保持不变。
新的u^{img}通过与旧的u^{img}进行残差相加,在logit空间中细化:
u^{logit}=\log(u^{img})\\ u^{img}\leftarrow\text{softmax}(u^{logit}+MLP(c^{img}))
查询校准会相应影响p^{img}和锚点a^{img}。
3.4 模型输出
获取最后一层解码层输出的查询q^L后,使用分类头和回归头,从内容特征c^L和锚点a^L预测分类分数z^{cls}和回归结果z^{reg}:
z^{cls}=MLP(c^L)\\ z^{reg}=MLP(c^L)+[a^L;0]
3.5 时间信息利用
本文使用基于查询的时间融合方法。保留历史查询队列q^{hist}\in\mathbb R^{(K\times T)\times C},其中每一历史帧选取分数最高的K个,共T帧。
历史查询队列会输入解码层中的自注意力。首先使用时间滞后t\in\mathbb R^{(K\times T)}、自车姿态P\in\mathbb R^{(K\times T)\times 4\times 4}和历史查询的速度v\in\mathbb R^{(K\times T)\times 2}进行转化:
q^{trans}=\phi(q^{hist}|t,P,v)
其中\phi为小的编码网络。转化后的查询q^{trans}作为自注意力中额外的键与值:
SelfAttn=MHA(W^Qq^{sa},W^K[q^{sa};q^{trans}],W^V[q^{sa};q^{trans}])
4. 损失函数
包括各模态的检测损失(L_{det2D},L_{det3D})和融合检测损失L_{out};此外,在图像查询生成器中添加辅助监督以促进深度估计。
给定2D真实边界框b^{img}_v和3D真实边界框在图像上的投影\hat b^{proj}_v,计算其逐对IoU:U_{i,j}=IoU(b^{img}_{v,i},\hat b^{proj}_{v,j})。若满足(1)U_{ij}=\max_kU_{ik};(2)U_{ij}=\max_kU_{kj};(3)U_{ij}>\tau_{IoU},则边界框\hat b^{proj}_{v,i}被分配给目标\hat b^{proj}_{v,j}。此时深度估计d_{v,i}^{img}由目标深度\hat d_{v,j}^{proj}监督,损失为
L_{aux}=CELoss(d_{v,i}^{img},\hat d_{v,j}^{proj})
其中CELoss为交叉熵损失。
消融研究中提到,可以在训练时以一定概率丢弃某模态以达到更高的融合性能和对模态丢失的鲁棒性。
