原文链接:https://arxiv.org/abs/2408.05945

简介:本文提出MV2DFusion,使用基于查询的融合机制。使用不确定性感知的图像查询生成器和点云查询生成器生成查询,并基于物体语义进行稀疏融合。

本文认为,特征级融合(密集特征图的融合,如BEVFusion)方法无法利用目标先验,甚至会损害模态的语义;而提案级融合(包含传统方法如F-PointNet和基于稀疏查询的融合如SparseFusion)方法则往往会偏向其中一种模态。

1. 概述

在这里插入图片描述
如图所示,首先使用模态检测器得到图像和点云的检测结果,并通过查询生成器生成各模态查询,输入融合解码器聚合模态特征并更新3D位置。

2. 利用模态目标语义

2.1 来自模态专家的目标提案

首先,各模态独立进行特征提取。图像主干和FPN提取多视图图像特征 { F v i m g ∣ 1 ≤ v ≤ N i m g } \{F_v^{img}|1\leq v\leq N^{img}\} {Fvimg∣1vNimg};激光雷达主干提取点云体素特征 F p c F^{pc} Fpc

基于模态特征,使用模态专家(可为任意检测器)生成提案。对于图像,2D检测器会在每个图像上生成 M i m g M^{img} Mimg个2D边界框,即 { b v i m g ∈ R M i m g × 4 ∣ 1 ≤ v ≤ N i m g } \{b_v^{img}\in\mathbb R^{M^{img}\times4}|1\leq v\leq N^{img}\} {bvimgRMimg×4∣1vNimg},其中每个边界框表达为 ( x min ⁡ , y min ⁡ , x max ⁡ , y max ⁡ ) (x_{\min},y_{\min},x_{\max},y_{\max}) (xmin,ymin,xmax,ymax)。对于点云,可使用稀疏检测器节省时空消耗,生成 M p c M^{pc} Mpc个3D边界框 b p c ∈ R M p c × 7 b^{pc}\in\mathbb R^{M^{pc}\times7} bpcRMpc×7,其中每个边界框表达为 ( x , y , z , w , l , h , r o t ) (x,y,z,w,l,h,rot) (x,y,z,w,l,h,rot)

2.2 从专家推导物体级语义

由于存在域间隙,各模态的检测结果难以直接融合。因此,本文使用查询来编码各模态的物体级语义。

2.3 点云物体查询生成

在这里插入图片描述
点云查询可表达为 q p c = ( c p c , r p c ) q^{pc}=(c^{pc},r^{pc}) qpc=(cpc,rpc),其中 c p c c^{pc} cpc为内容部分, r p c r^{pc} rpc为位置部分。使用物体中心点 r p c ∈ R M p c × 3 r^{pc}\in\mathbb R^{M^{pc}\times3} rpcRMpc×3作为查询的位置部分。查询的内容部分 c p c ∈ R M p c × C c^{pc}\in\mathbb R^{M^{pc}\times C} cpcRMpc×C包括外观特征 o p c o^{pc} opc和几何特征,其中外观特征取决于检测器类型,如基于中心的检测器则是BEV网格的值,两阶段检测器则是RoI特征,稀疏检测器则是产生预测的体素特征。几何特征则是物体的大小和朝向等属性(表达于 b p c b^{pc} bpc中)。因此,查询的内容部分可如下计算:
c p c = M L P ( o p c + M L P ( S i n P o s ( b p c ) ) ) c^{pc}=MLP(o^{pc}+MLP(SinPos(b^{pc}))) cpc=MLP(opc+MLP(SinPos(bpc)))

其中SinPos表示正弦位置编码,用于将低维向量转化为高维特征。

2.4 图像物体查询生成

在这里插入图片描述
由于深度估计的不适定问题,获取3D预测会产生大误差,影响查询质量。

本文提出不确定性感知的图像查询。查询的位置部分保留了深度估计的不确定性,即将查询位置视为概率分布。概率分布包括 n d n_d nd个采样位置 s i m g ∈ R M i m g × n d × 3 s^{img}\in\mathbb R^{M^{img}\times n_d\times 3} simgRMimg×nd×3和相应的概率 u i m g ∈ R M i m g × n d u^{img}\in\mathbb R^{M^{img}\times n_d} uimgRMimg×nd

v v v视图的图像查询表达为 q v i m g = ( c v i m g , s v i m g , u v i m g ) q_v^{img}=(c_v^{img},s_v^{img},u_v^{img}) qvimg=(cvimg,svimg,uvimg);所有图像查询可表达为
q i m g = { q v i m g ∣ 1 ≤ v ≤ N i m g } q^{img}=\{q_v^{img}|1\leq v\leq N^{img}\} qimg={qvimg∣1vNimg}

查询的内容部分 c v i m g ∈ R M i m g × C c^{img}_v\in\mathbb R^{M^{img}\times C} cvimgRMimg×C为嵌入几何信息的RoI外观特征。给定2D检测结果 b v i m g b^{img}_v bvimg和特征 F v i m g F_v^{img} Fvimg,首先通过RoI对齐,提取RoI外观特征 o v i m g ∈ R M i m g × H r × W r × C o_v^{img}\in\mathbb R^{M^{img}\times H_r\times W_r \times C} ovimgRMimg×Hr×Wr×C
o v i m g = RoI-Align ( F v i m g , b v i m g ) o_v^{img}=\text{RoI-Align}(F_v^{img},b_v^{img}) ovimg=RoI-Align(Fvimg,bvimg)

等效相机内参 K v i K^i_v Kvi会用于补偿RoI对齐过程中的几何信息损失。设相机 v v v的原始内参矩阵为
K v o r i = [ f x 0 o x 0 0 f y o y 0 0 0 1 0 0 0 0 1 ] 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} Kvori= fx0000fy00oxoy100001

K v i K^i_v Kvi定义了相机坐标系到第 i i i个2D边界框的投影:
K v i = [ f x r x 0 ( o x − x min ⁡ i ) r x 0 0 f y r y ( o y − y min ⁡ i ) r y 0 0 0 1 0 0 0 0 1 ] 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} Kvi= fxrx0000fyry00(oxxmini)rx(oyymini)ry100001

其中 r x = W r / ( x max ⁡ i − x min ⁡ i ) r_x=W^r/(x^i_{\max}-x^i_{\min}) rx=Wr/(xmaxixmini) r y = H r / ( y max ⁡ i − y min ⁡ i ) r_y=H^r/(y^i_{\max}-y^i_{\min}) ry=Hr/(ymaxiymini)

此处应该还需考虑原始图像下采样到特征图大小时的内参变化。

因此,查询的内容部分 c v i m g c_v^{img} cvimg可计算为:
c v i m g = M L P ( [ P o o l ( C o n v ( o v i m g ) ) ; F l a t ( K v ) ] ) c_v^{img}=MLP([Pool(Conv(o_v^{img}));Flat(K_v)]) cvimg=MLP([Pool(Conv(ovimg));Flat(Kv)])

其中 [ ⋅ ; ⋅ ] [\cdot;\cdot] [;]表示拼接,Flat表示将矩阵拉直为向量。

c v i m g c_v^{img} cvimg也可视为外观特征 o v i m g o_v^{img} ovimg与几何特征 F l a t ( K v ) Flat(K_v) Flat(Kv)的组合,其中等效相机内参包含了边界框信息。

位置部分则在预定义深度范围 [ d min ⁡ , d max ⁡ ] [d_{\min},d_{\max}] [dmin,dmax]内均匀采样深度集合 d ∈ R n d d\in\mathbb R^{n_d} dRnd,并预测2D采样位置 s 2 d ∈ R M i m g × n d × 2 s^{2d}\in\mathbb R^{M^{img}\times n_d\times 2} s2dRMimg×nd×2和概率 u i m g ∈ R M i m g × n d u^{img}\in\mathbb R^{M^{img}\times n_d} uimgRMimg×nd(省略下标 v v v):
[ s 2 d ; u l o g i t ] = M L P ( c i m g ) u i m g = softmax ( u l o g i t ) [s^{2d};u^{logit}]=MLP(c^{img})\\u^{img}=\text{softmax}(u^{logit}) [s2d;ulogit]=MLP(cimg)uimg=softmax(ulogit)

这样可根据2D采样位置 s 2 d s^{2d} s2d和深度 d d d反投影得到3D采样位置 s i m g s^{img} simg

需要注意与LSS不同,本文并未将查询分散到3D空间中,而是将概率分布作为查询的一部分。

3. 融合模态信息

本文使用类似DETR解码器的结构融合模态信息并预测最终结果。解码器包含 L L L层,每层包括自注意力,交叉注意力,层归一化,FFN和查询校准。解码器输入为点云查询和图像查询的组合 q 0 = ( q p c , q i m g ) q^0=(q^{pc},q^{img}) q0=(qpc,qimg)

3.1 自注意力

由于各模态的查询位置部分表达不同,本文将位置部分转化为一致的表达。

首先,使用位置编码(PE)方法和不确定性感知的位置编码(U-PE)分别建立点云和图像的位置编码:
p p c = P E ( r p c ) p i m g = U-PE ( s i m g , u i m g ) p^{pc}=PE(r^{pc})\\p^{img}=\text{U-PE}(s^{img},u^{img}) ppc=PE(rpc)pimg=U-PE(simg,uimg)

其中
P E ( r p c ) = M L P ( S i n P o s ( r p c ) ) PE(r^{pc})=MLP(SinPos(r^{pc})) PE(rpc)=MLP(SinPos(rpc))

在U-PE中,首先将 s i m g s^{img} simg转化为基础位置编码 p b a s e p^{base} pbase,然后将概率 u i m g u^{img} uimg通过门控操作加入 p b a s e p^{base} pbase
s b a s e = M L P ( F l a t ( s i m g ) ) U-PE ( s i m g , u i m g ) = M L P ( s b a s e ⊙ σ ( M L P ( u i m g ) ) ) s^{base}=MLP(Flat(s^{img}))\\\text{U-PE}(s^{img},u^{img})=MLP(s^{base}\odot\sigma(MLP(u^{img}))) sbase=MLP(Flat(simg))U-PE(simg,uimg)=MLP(sbaseσ(MLP(uimg)))

其中 σ \sigma σ为sigmoid函数。

给定多头注意力 M H A ( Q , K , V ) MHA(Q,K,V) MHA(Q,K,V),自注意力可写为
S e l f A t t n = M H A ( W Q ( c s a + p s a ) , W K ( c s a + p s a ) , W V c s a ) SelfAttn=MHA(W^Q(c^{sa}+p^{sa}),W^K(c^{sa}+p^{sa}),W^Vc^{sa}) SelfAttn=MHA(WQ(csa+psa),WK(csa+psa),WVcsa)

其中 p s a p^{sa} psa p p c p^{pc} ppc p i m g p^{img} pimg的组合; c s a c^{sa} csa类似。上式可简写为
S e l f A t t n = M H A ( W Q q s a , W K q s a , W V q s a ) SelfAttn=MHA(W^Qq^{sa},W^Kq^{sa},W^Vq^{sa}) SelfAttn=MHA(WQqsa,WKqsa,WVqsa)

3.2 交叉注意力

尽管自注意力足够带来较好的性能,本文发现使用交叉注意力聚合模态特征能带来提升。
在这里插入图片描述
对于图像特征,使用基于投影的可变形注意力。首先获取每个查询的锚点,点云查询的锚点 a p c a^{pc} apc即其位置 r p c r^{pc} rpc,而图像查询的锚点是采样位置 s i m g s^{img} simg与概率分布 u i m g u^{img} uimg的加权求和:
a i m g = ( u i m g ) T ⋅ s i m g a^{img}=(u^{img})^T\cdot s^{img} aimg=(uimg)Tsimg

基于投影的可变形注意力为
D F A ( c m , a m , F i m g ) = ∑ v = 1 N i m g ∑ k = 1 K A v k ⋅ W F v i m g ( P r o j ( a m + Δ a k ) ) 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)) DFA(cm,am,Fimg)=v=1Nimgk=1KAvkWFvimg(Proj(am+Δak))

其中 A v k A_{vk} Avk为注意力权重, Δ a k \Delta a_k Δak为偏移量,二者均由内容部分 c m c^m cm预测; K K K为采样点数,Proj表示投影到图像上, m m m为模态(点云或图像)。

对于点云特征 F p c F^{pc} Fpc,若提取的是BEV特征,则可类似进行可变形注意力操作。本文使用稀疏体素表达,因此使用原始的多头注意力聚合点云特征。 F p c F^{pc} Fpc被柱体化压缩(沿高度均值池化),产生内容部分 c p i l l a r c^{pillar} cpillar。位置编码通过BEV位置 r p i l l a r r^{pillar} rpillar生成:
p p i l l a r = M L P ( S i n P o s ( r p i l l a r ) ) p^{pillar}=MLP(SinPos(r^{pillar})) ppillar=MLP(SinPos(rpillar))

3.3 查询校准

由于模态特点,本文认为来自图像的查询可靠性较低,而来自点云的查询相对更准确。因此,本文在每个解码层之后校准图像查询,细化位置并减小不确定性。此步骤仅细化 u i m g u^{img} uimg,而 s i m g s_{img} simg保持不变。

新的 u i m g u^{img} uimg通过与旧的 u i m g u^{img} uimg进行残差相加,在logit空间中细化:
u l o g i t = log ⁡ ( u i m g ) u i m g ← softmax ( u l o g i t + M L P ( c i m g ) ) u^{logit}=\log(u^{img})\\u^{img}\leftarrow\text{softmax}(u^{logit}+MLP(c^{img})) ulogit=log(uimg)uimgsoftmax(ulogit+MLP(cimg))

查询校准会相应影响 p i m g p^{img} pimg和锚点 a i m g a^{img} aimg

3.4 模型输出

获取最后一层解码层输出的查询 q L q^L qL后,使用分类头和回归头,从内容特征 c L c^L cL和锚点 a L a^L aL预测分类分数 z c l s z^{cls} zcls和回归结果 z r e g z^{reg} zreg
z c l s = M L P ( c L ) z r e g = M L P ( c L ) + [ a L ; 0 ] z^{cls}=MLP(c^L)\\z^{reg}=MLP(c^L)+[a^L;0] zcls=MLP(cL)zreg=MLP(cL)+[aL;0]

3.5 时间信息利用

本文使用基于查询的时间融合方法。保留历史查询队列 q h i s t ∈ R ( K × T ) × C q^{hist}\in\mathbb R^{(K\times T)\times C} qhistR(K×T)×C,其中每一历史帧选取分数最高的 K K K个,共 T T T帧。

历史查询队列会输入解码层中的自注意力。首先使用时间滞后 t ∈ R ( K × T ) t\in\mathbb R^{(K\times T)} tR(K×T)、自车姿态 P ∈ R ( K × T ) × 4 × 4 P\in\mathbb R^{(K\times T)\times 4\times 4} PR(K×T)×4×4和历史查询的速度 v ∈ R ( K × T ) × 2 v\in\mathbb R^{(K\times T)\times 2} vR(K×T)×2进行转化:
q t r a n s = ϕ ( q h i s t ∣ t , P , v ) q^{trans}=\phi(q^{hist}|t,P,v) qtrans=ϕ(qhistt,P,v)

其中 ϕ \phi ϕ为小的编码网络。转化后的查询 q t r a n s q^{trans} qtrans作为自注意力中额外的键与值:
S e l f A t t n = M H A ( W Q q s a , W K [ q s a ; q t r a n s ] , W V [ q s a ; q t r a n s ] ) SelfAttn=MHA(W^Qq^{sa},W^K[q^{sa};q^{trans}],W^V[q^{sa};q^{trans}]) SelfAttn=MHA(WQqsa,WK[qsa;qtrans],WV[qsa;qtrans])

4. 损失函数

包括各模态的检测损失( L d e t 2 D L_{det2D} Ldet2D, L d e t 3 D L_{det3D} Ldet3D)和融合检测损失 L o u t L_{out} Lout;此外,在图像查询生成器中添加辅助监督以促进深度估计。

给定2D真实边界框 b v i m g b^{img}_v bvimg和3D真实边界框在图像上的投影 b ^ v p r o j \hat b^{proj}_v b^vproj,计算其逐对IoU: U i , j = I o U ( b v , i i m g , b ^ v , j p r o j ) U_{i,j}=IoU(b^{img}_{v,i},\hat b^{proj}_{v,j}) Ui,j=IoU(bv,iimg,b^v,jproj)。若满足(1) U i j = max ⁡ k U i k U_{ij}=\max_kU_{ik} Uij=maxkUik;(2) U i j = max ⁡ k U k j U_{ij}=\max_kU_{kj} Uij=maxkUkj;(3) U i j > τ I o U U_{ij}>\tau_{IoU} Uij>τIoU,则边界框 b ^ v , i p r o j \hat b^{proj}_{v,i} b^v,iproj被分配给目标 b ^ v , j p r o j \hat b^{proj}_{v,j} b^v,jproj。此时深度估计 d v , i i m g d_{v,i}^{img} dv,iimg由目标深度 d ^ v , j p r o j \hat d_{v,j}^{proj} d^v,jproj监督,损失为
L a u x = C E L o s s ( d v , i i m g , d ^ v , j p r o j ) L_{aux}=CELoss(d_{v,i}^{img},\hat d_{v,j}^{proj}) Laux=CELoss(dv,iimg,d^v,jproj)

其中CELoss为交叉熵损失。

消融研究中提到,可以在训练时以一定概率丢弃某模态以达到更高的融合性能和对模态丢失的鲁棒性。

更多推荐