【论文笔记】GaussianFusion: Gaussian-Based Multi-Sensor Fusion for End-to-End Autonomous Driving

原文链接:https://arxiv.org/abs/2506.00034v1

简介:现有的多传感器融合方法多使用基于注意力的拉直(flatten)融合或通过几何变换的BEV融合,但前者可解释性差,后者计算开销大(如下图(a)(b)所示)。本文提出GaussianFusion(下图(c)),一种基于高斯的多传感器融合框架,用于端到端自动驾驶。使用直观而紧凑的高斯表达,聚合不同传感器的信息。具体来说,首先在驾驶场景中均匀初始化一组2D高斯,每个高斯包含其物理属性及显式与隐式特征。这些高斯通过逐步整合多模态特征被细化。显式特征捕捉语义和空间信息,而隐式特征为轨迹规划提供补充线索。为充分利用高斯丰富的空间和语义信息,本文还提出级联规划头,通过与高斯交互,逐步细化轨迹预测。
【论文笔记】GaussianFusion: Gaussian-Based Multi-Sensor Fusion for End-to-End Autonomous Driving_第1张图片

0. 概述

端到端自动驾驶的目标是直接从原始传感器输入预测自车的未来轨迹。给定多视图图像 I = { I i ∈ R 3 × H × W ∣ i = 1 , ⋯   , N } \mathcal I=\{I_i\in\mathbb R^{3\times H\times W}|i=1,\cdots,N\} I={IiR3×H×Wi=1,,N},激光雷达点云 P ∈ R n × 3 P\in\mathbb R^{n\times 3} PRn×3和变换矩阵 T = { T i ∈ R 3 × 3 ∣ i = 1 , ⋯   , N } \mathcal T=\{T_i\in\mathbb R^{3\times 3}|i=1,\cdots,N\} T={TiR3×3i=1,,N},目标是预测自车轨迹 τ = { ( x t , y t ) } t = 1 T \tau=\{(x_t,y_t)\}_{t=1}^T τ={(xt,yt)}t=1T

GaussianFusion的结构如图所示,可分为3个阶段:高斯初始化、高斯编码器和高斯解码器。
【论文笔记】GaussianFusion: Gaussian-Based Multi-Sensor Fusion for End-to-End Autonomous Driving_第2张图片

1. 高斯初始化

本文使用2D高斯建模交通场景。具体来说,随机初始化一组2D高斯 G = { G i ∣ i = 1 , ⋯   , P } \mathcal G=\{G_i|i=1,\cdots,P\} G={Gii=1,,P},其中 P P P为预定义的高斯数量。每个高斯包含物理属性和隐特征。物理属性包括均值 m ∈ R 2 m\in\mathbb R^2 mR2,尺寸 s ∈ R 2 s\in\mathbb R^2 sR2,旋转 r ∈ R 2 r\in\mathbb R^2 rR2和语义logit c ∈ R C c\in\mathbb R^C cRC C C C为类别数)。隐特征包括显式特征和隐式特征,通过两个分支分别细化。

2. 高斯编码器:来自多传感器融合的高斯

为学习高斯表达,使用两个独立的主干来提取多视图图像和激光雷达点云的多尺度特征,并使用特征迭代地细化高斯的物理属性和隐特征。每次迭代包括点交叉注意力模块、图像交叉注意力模块、高斯自注意力模块和细化模块。隐特征被分为显式分量和隐式分量,前者由多传感器输入的局部区域通过显式几何变换得到,用于更新高斯的物理属性;后者则与全局的多传感器特征交互(不依赖几何变换),并专门用于轨迹规划。

点交叉注意力:来自点的高斯。点交叉注意力(PCA)用于从点特征提取信息。对每个高斯 G = { m , s , r , c , f e x p , f i m p } G=\{m,s,r,c,f^{exp},f^{imp}\} G={m,s,r,c,fexp,fimp},本文生成一组查询点 Q = { ( x i , y i ) ∣ i = 1 , ⋯   , n q } \mathcal Q=\{(x_i,y_i)|i=1,\cdots,n_q\} Q={(xi,yi)i=1,,nq}。这组查询点包括固定点和可学习点:固定点分布于高斯周围(与高斯协方差相关),而可学习点被限制在高斯内部。给定多尺度点特征图 M p = { M i p ∈ R d × H i p × W i p ∣ i = 1 , ⋯   , n s } \mathcal M^p=\{M_i^p\in\mathbb R^{d\times H_i^p\times W_i^p}|i=1,\cdots,n_s\} Mp={MipRd×Hip×Wipi=1,,ns},使用可变形注意力层聚合信息,并更新高斯的物理属性:
f e x p † = ∑ i = 1 n q D e A t t n ( f e x p , Q i , M p ) f^{exp\dag}=\sum_{i=1}^{n_q}DeAttn(f^{exp},\mathcal Q_i,\mathcal M^p) fexp=i=1nqDeAttn(fexp,Qi,Mp)

对于隐式特征,使用交叉注意力与最后尺度的点特征 M n s p M_{n_s}^p Mnsp建立交互:
f i m p † = C r o s s A t t n ( f i m p , M n s p ) f^{imp\dag}=CrossAttn(f^{imp},M_{n_s}^p) fimp=CrossAttn(fimp,Mnsp)

上述公式省略了残差连接和FFN部分。更新后的高斯被表达为 G † = { m , s , r , c , f e x p † , f i m p † } G^{\dag}=\{m,s,r,c,f^{exp\dag},f^{imp\dag}\} G={m,s,r,c,fexp,fimp}

图像交叉注意力:来自图像的高斯。为整合视觉信息,使用图像交叉注意力(ICA)模块。该模块同样为每个高斯生成固定的和可学习的查询点,但额外包含高度信息,以能够被投影到图像上。具体来说,在采样的2D查询点的基础上,为每个位置沿垂直轴均匀采样 n p n_p np个柱体点,其高度在场景的高度范围内,即 z g ∈ [ z min ⁡ , z max ⁡ ] z_g\in[z_{\min},z_{\max}] zg[zmin,zmax]。这样,得到 n q × n p n_q\times n_p nq×np个3D查询点。给定多尺度图像特征图 M I = { M i I ∈ R d × N × H i I × W i I ∣ i = 1 , ⋯   , n s } \mathcal M^I=\{M_i^I\in\mathbb R^{d\times N\times H_i^I\times W_i^I}|i=1,\cdots,n_s\} MI={MiIRd×N×HiI×WiIi=1,,ns},高斯的显式和隐式特征可按如下计算:
f e x p ‡ = ∑ i = 1 n q × n p D e A t t n ( f e x p † , Q 3 d , i , M I ) , f i m p ‡ = C r o s s A t t n ( f i m p † , M n s I ) f^{exp\ddag}=\sum_{i=1}^{n_q\times n_p}DeAttn(f^{exp\dag},\mathcal Q_{3d,i},\mathcal M^I),\\ f^{imp\ddag}=CrossAttn(f^{imp\dag},M_{n_s}^I) fexp=i=1nq×npDeAttn(fexp,Q3d,i,MI),fimp=CrossAttn(fimp,MnsI)

这样,得到更新后的高斯表达 G ‡ = { m , s , r , c , f e x p ‡ , f i m p ‡ } G^{\ddag}=\{m,s,r,c,f^{exp\ddag},f^{imp\ddag}\} G={m,s,r,c,fexp,fimp}

高斯细化模块。分别对显式特征和隐式特征使用两个自注意力模块建立高斯之间的联系:
{ f i e x p ′ } i = 1 P = S e l f A t t n ( { f i e x p ‡ } i = 1 P , { e i } i = 1 P ) , { f i i m p ′ } i = 1 P = S e l f A t t n ( { f i i m p ‡ } i = 1 P , { e i } i = 1 P ) { e i } i = 1 P = P o s E m b e d ( { m i } i = 1 P ) \{{f_i^{exp}}'\}_{i=1}^P=SelfAttn(\{f_i^{exp\ddag}\}_{i=1}^P,\{e_i\}_{i=1}^P),\\ \{{f_i^{imp}}'\}_{i=1}^P=SelfAttn(\{f_i^{imp\ddag}\}_{i=1}^P,\{e_i\}_{i=1}^P)\\ \{e_i\}_{i=1}^P=PosEmbed(\{m_i\}_{i=1}^P) {fiexp}i=1P=SelfAttn({fiexp}i=1P,{ei}i=1P),{fiimp}i=1P=SelfAttn({fiimp}i=1P,{ei}i=1P){ei}i=1P=PosEmbed({mi}i=1P)

其中 e i e_i ei为位置嵌入。此后,使用MLP,基于显式特征细化高斯的物理属性:
G ′ = { m ′ + m , s ′ , r ′ , c ′ , f e x p ′ , f i m p ′ } , ( m ′ , s ′ , r ′ , c ′ ) = M L P ( f e x p ′ ) G'=\{m'+m,s',r',c',{f^{exp}}',{f^{imp}}'\},(m',s',r',c')=MLP({f^{exp}}') G={m+m,s,r,c,fexp,fimp},(m,s,r,c)=MLP(fexp)

高斯编码器会迭代地细化高斯表达。最后,高斯被输入到高斯解码器,进行下游任务如建图和规划。

3. 高斯解码器:高斯到场景的推理

本文设计的高斯解码器包含两个组件:建图和级联规划。前者显式重建交通场景,为细化高斯物理属性和显式特征提供反向传播的梯度,其中用到GaussianFormer-2中的概率高斯叠加。后者结合高斯的隐式特征,以级联方式生成轨迹预测。

级联规划。使用基于锚的规划策略,根据数据集的轨迹分布,建立锚轨迹集(anchor trajectory vocabulary)。给定高斯编码器的输出,以级联方式细化锚轨迹 A = { A i ∈ R T × 2 ∣ i = 1 , ⋯   , k } \mathcal A=\{A_i\in\mathbb R^{T\times2}|i=1,\cdots,k\} A={AiRT×2i=1,,k}。对锚轨迹 A A A的每个轨迹点,计算其与所有高斯的距离,并选择最近的 m m m个高斯,所有 T T T个轨迹点对应的 m m m个高斯组成高斯子集 G A = { G i ∣ i = 1 , ⋅ , m T } \mathcal G_A=\{G_i|i=1,\cdot,mT\} GA={Gii=1,,mT}。锚特征 F A F_A FA通过查询高斯子集得到:
F A = C r o s s A t t n ( F q u e r y , F G A ) , F q u e r y = E m b e d d i n g ( A ) , F G A = { [ f i e x p ; f i i m p ] ∣ i = 1 , ⋯   , m T } F_A=CrossAttn(F_{query},F_{\mathcal G_A}),\\ F_{query}=Embedding(A),\\ F_{\mathcal G_A}=\{[f_i^{exp};f_i^{imp}]|i=1,\cdots,mT\} FA=CrossAttn(Fquery,FGA),Fquery=Embedding(A),FGA={[fiexp;fiimp]i=1,,mT}

其中Embedding为嵌入层, F q u e r y F_{query} Fquery为初始查询特征, [ ⋅ ; ⋅ ] [\cdot;\cdot] [;]表示拼接操作。该式称为高斯空间注意力。

交通地图和周围智能体可通过最新的高斯集合解码得到,因此使用交叉注意力层建立锚特征 F A F_A FA与高斯隐特征之间的联系。细化的轨迹通过下式(称为高斯交叉注意力)得到:
τ = M L P ( F o ) + A F o = C r o s s A t t n ( F A , F G ) F G = { [ f i e x p ; f i i m p ] ∣ i = 1 , ⋯   , P } \tau=MLP(F_o)+A\\ F_o=CrossAttn(F_A,F_{\mathcal G})\\ F_{\mathcal G}=\{[f_i^{exp};f_i^{imp}]|i=1,\cdots,P\} τ=MLP(Fo)+AFo=CrossAttn(FA,FG)FG={[fiexp;fiimp]i=1,,P}

当前阶段的预测轨迹 τ \tau τ被下一阶段作为锚轨迹,并迭代地细化。使用与DiffusionDrive相同的轨迹损失监督级联细化过程。

实验发现加入额外的智能体预测头会降低性能,这可能是智能体预测任务不能为高斯细化过程提供有效指导,反而会引起模糊性。

附录A. 地图重建

对于地图像素位置 x ∈ R 2 x\in\mathbb R^2 xR2,计算其落入不同高斯的概率:
α ( x ; G i ) = exp ⁡ ( − 1 2 ( x − m i ) T Σ i − 1 ( x − m i ) ) Σ i = R S S T R T , S = d i a g ( s ) , R = r 2 m ( r i ) \alpha(x;G_i)=\exp(-\frac12(x-m_i)^T\Sigma^{-1}_i(x-m_i))\\ \Sigma_i=RSS^TR^T,S=diag(s),R=r2m(r_i) α(x;Gi)=exp(21(xmi)TΣi1(xmi))Σi=RSSTRT,S=diag(s),R=r2m(ri)

其中 r 2 m ( ⋅ ) r2m(\cdot) r2m()表示旋转向量到旋转矩阵的变换。概率可按下式叠加:
o ( x ; G ) = ∑ i = 1 P p ( G i ∣ x ) c i ′ = ∑ i = 1 P p ( x ∣ G i ) a i c i ′ ∑ j = 1 P p ( x ∣ G j ) a j ∈ R C p ( x ∣ G i ) = 1 ( 2 π ) 3 2 ∣ Σ i ∣ 1 2 exp ⁡ ( − 1 2 ( x − m i ) T Σ i − 1 ( x − m i ) ) o(x;\mathcal G)=\sum_{i=1}^Pp(G_i|x)c'_i=\frac{\sum_{i=1}^Pp(x|G_i)a_ic'_i}{\sum_{j=1}^Pp(x|G_j)a_j}\in\mathbb R^C\\ p(x|G_i)=\frac{1}{(2\pi)^{\frac32}|\Sigma_i|^{\frac12}}\exp(-\frac12(x-m_i)^T\Sigma^{-1}_i(x-m_i)) o(x;G)=i=1Pp(Gix)ci=j=1Pp(xGj)aji=1Pp(xGi)aiciRCp(xGi)=(2π)23Σi211exp(21(xmi)TΣi1(xmi))

其中 o ( x ; G ) o(x;\mathcal G) o(x;G) x x x处不同语义的logit, a i a_i ai为网络预测的、高斯 i i i存在的先验概率, p ( G i ∣ x ) p(G_i|x) p(Gix)为后验概率。可基于此推导前景与背景概率:
p b ( x ) = ∏ i = 1 P ( 1 − α ( x ; G i ) ) ∈ R 1 p f ( x ) = ( 1 − p b ( x ) ) S o f t m a x ( o ( x ; G ) ) ∈ R C p_b(x)=\prod_{i=1}^P(1-\alpha(x;G_i))\in\mathbb R^1\\ p_f(x)=(1-p_b(x))Softmax(o(x;\mathcal G))\in\mathbb R^C pb(x)=i=1P(1α(x;Gi))R1pf(x)=(1pb(x))Softmax(o(x;G))RC

对于背景像素 x b x_b xb p b ( x b ) p_b(x_b) pb(xb)会随着高斯聚集在 x b x_b xb处而降低,因为 p b ( x b ) ≤ 1 − α ( x b ; G i ) p_b(x_b)\leq1-\alpha(x_b;G_i) pb(xb)1α(xb;Gi)对所有高斯成立。对于前景像素 x f x_f xf p f ( x f ) p_f(x_f) pf(xf)会随高斯聚集在 x f x_f xf处而升高,因为 1 − p b ( x f ) ≥ α ( x f ; G i ) 1-p_b(x_f)\geq\alpha(x_f;G_i) 1pb(xf)α(xf;Gi)对任一高斯成立。因此,上式会鼓励高斯移动到前景位置。给定前景背景预测 [ p b ; p f ] ∈ R C + 1 [p_b;p_f]\in\mathbb R^{C+1} [pb;pf]RC+1和真实BEV地图,使用交叉熵损失和lovasz-softmax损失作为建图损失。

你可能感兴趣的:(【论文笔记】GaussianFusion: Gaussian-Based Multi-Sensor Fusion for End-to-End Autonomous Driving)