【论文笔记】GaussianAD: Gaussian-Centric End-to-End Autonomous Driving

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

简介:本文提出以高斯为中心的端到端自动驾驶框架GaussianAD,利用3D语义高斯描述场景。将场景初始化为均匀分布的3D高斯,并使用环视图像逐步细化之,得到3D高斯场景表达。使用稀疏卷积进行3D感知,并为动态语义高斯预测3D流,规划自车轨迹并进行未来场景预测。GaussianAD可端到端训练,其中感知真值是可选的。NuScenes数据集上的实验证明了本文方法在多种任务上的有效性。

在这里插入图片描述

1. 3D场景表达的重要性

自动驾驶的目标是在给定场景观测 { o } \{o\} {o}的情况下,产生安全的控制信号(如油门、制动和转向)。场景观测 { o } \{o\} {o}可从传感器(如相机)得到。

自动驾驶方法通常假设存在高性能控制器,并学习当前和历史观测 { o } \{o\} {o}到未来自车轨迹 { w } \{w\} {w}的映射 f f f
{ o T − H , ⋯   , o T } → f { w T + 1 , ⋯   , w T + F } \{o^{T-H},\cdots,o^T\}\overset{f}{\rightarrow}\{w^{T+1},\cdots,w^{T+F}\} {oTH,,oT}f{wT+1,,wT+F}

其中 T T T为当前时刻, H H H为历史帧数, F F F为预测的未来帧数。每个路径点包括BEV下的 { x , y , ψ } \{x,y,\psi\} {x,y,ψ}由2D位置 { x , y } \{x,y\} {x,y}和偏航角 ψ \psi ψ

传统自动驾驶方法将 f f f分解为感知、预测和规划模块,分别训练后进行连接:
{ o T − H , ⋯   , o T } → d T d T → { d T + 1 , ⋯   , d T + F } { d T + 1 , ⋯   , d T + F } → { w T + 1 , ⋯   , w T + F } \{o^{T-H},\cdots,o^T\}\rightarrow d^T\\ d^T\rightarrow\{d^{T+1},\cdots,d^{T+F}\}\\ \{d^{T+1},\cdots,d^{T+F}\}\rightarrow\{w^{T+1},\cdots,w^{T+F}\} {oTH,,oT}dTdT{dT+1,,dT+F}{dT+1,,dT+F}{wT+1,,wT+F}

其中 d d d为场景描述(如实例边界框或地图元素),通常只包含场景的部分信息。

不同任务关注提取不同信息,而这些模块的分开训练会加剧这一问题。因此,有方法转向端到端训练,可微地连接不同模块并进行联合学习:
{ o T − H , ⋯   , o T } → r T → r T , d T → r T , { d T + 1 , ⋯   , d T + F } → { w T + 1 , ⋯   , w T + F } \{o^{T-H},\cdots,o^T\}\rightarrow r^T\rightarrow r^T,d^T\rightarrow r^T,\{d^{T+1},\cdots,d^{T+F}\}\rightarrow\{w^{T+1},\cdots,w^{T+F}\} {oTH,,oT}rTrT,dTrT,{dT+1,,dT+F}{wT+1,,wT+F}

其中 r r r为场景表达,能提供比 d d d更加全面的信息。

r r r在整个模型中传递信息,因此其选择对性能至关重要。 r r r需要包含3D结构信息,并在性能和效率之间做出平衡。

2. 以高斯为中心的自动驾驶

3D高斯表达。类似GaussianFormer,本文使用3D语义高斯表达场景。每个高斯包括均值、协方差和语义分数属性。该表达是稀疏的显式表达。

从图像到高斯。3D高斯及其高维查询被初始化为可学习向量。使用高斯编码器迭代地增强表达。高斯编码器包含自编码模块(进行高斯之间的交互)、图像交叉注意力模块(聚合视觉信息)和细化模块(微调高斯属性)。注意与GaussianFormer不同,本文使用4D稀疏卷积构成的时间编码器从过去帧和当前帧聚合高斯信息。

从高斯进行稀疏3D检测。使用3D稀疏CNN网络 V V V编码3D高斯表达 r r r,并用一组智能体token D D D来解码 V ( r ) V(r) V(r)得到3D物体 a a a
a = f a ( D , V ( r ) ) a=f_a(D,V(r)) a=fa(D,V(r))

其中 f a f_a fa为全局交叉注意力(学习3D物体token)和3D物体解码头 d a d_a da构成。

从高斯建立稀疏地图。类似检测任务,使用一组地图token M M M表达语义地图。关注三类地图元素(车道分隔带、道路边界和人行横道):
m = f m ( M , V ( r ) ) m=f_m(M,V(r)) m=fm(M,V(r))

其中 f m f_m fm包括全局交叉注意力(学习地图token)和语义地图解码头 d m d_m dm构成。

运动预测。该模块通过预测其它交通参与者的未来轨迹来辅助自车轨迹规划。智能体token D D D与地图token M M M通过交叉注意力进行交互,得到运动token M o M_o Mo
M o = C A ( D , M ) M_o=CA(D,M) Mo=CA(D,M)

可对运动token M o M_o Mo使用运动解码器 d m o d_{mo} dmo,同时将 M o M_o Mo送入自车轨迹规划头。

用于场景预测的高斯流。从当前高斯表达 r T r^T rT和预测的自车轨迹 w T + N w^{T+N} wT+N预测高斯的移动,从而得到未来高斯表达 r T + N r^{T+N} rT+N
r T + N = f r ( r T , w T + N ) r^{T+N}=f_r(r^T,w^{T+N}) rT+N=fr(rT,wT+N)

注意此处没有考虑未来因自车移动产生的新观测区域。随后,将 r T + N r^{T+N} rT+N送入占用解码器 d o c c d_{occ} docc,以预测未来的占用。通过未来占用监督,可保证场景预测能力,从而提高自车轨迹预测性能。

3. 端到端GaussianAD框架

在这里插入图片描述
首先初始化均匀分布的3D高斯 G 0 G_0 G0,通过从环视图像 o o o整合信息逐步细化之,得到高斯场景表达 r r r。此时可选择性地从 r r r中提取不同的场景描述 d d d作为辅助任务。具体来说,可使用高斯到体素的溅射来获取密集体素特征、使用稀疏卷积获取稀疏查询。随后,直接预测3D高斯的演化,以减小信息损失,并依据高斯进行轨迹规划。GaussianAD的完整框架如下:
{ o T − H , ⋯   , o T } → r T ( → r T , d T ) → { r T , r T + 1 , ⋯   , r T + F } → { w T + 1 , ⋯   , w T + F } \{o^{T-H},\cdots,o^T\}\rightarrow r^T(\rightarrow r^T,d^T)\rightarrow\{r^T,r^{T+1},\cdots,r^{T+F}\}\rightarrow\{w^{T+1},\cdots,w^{T+F}\} {oTH,,oT}rT(rT,dT){rT,rT+1,,rT+F}{wT+1,,wT+F}

其中 ( → r T , d T ) (\rightarrow r^T,d^T) (rT,dT)表示可选步骤。

训练时,对 d d d使用不同的感知损失(如3D占用预测损失、3D检测损失、语义地图损失和运动损失):
J p e r c ( d , d ^ ) = λ o c c J o c c ( d , d ^ ) + λ d e t J d e t ( d , d ^ ) + λ m a p J m a p ( d , d ^ ) + λ m o t i o n J m o t i o n ( d , d ^ ) J_{perc}(d,\hat d)=\lambda_{occ}J_{occ}(d,\hat d)+\lambda_{det}J_{det}(d,\hat d)+\lambda_{map}J_{map}(d,\hat d)+\lambda_{motion}J_{motion}(d,\hat d) Jperc(d,d^)=λoccJocc(d,d^)+λdetJdet(d,d^)+λmapJmap(d,d^)+λmotionJmotion(d,d^)

其中 ^ \hat{} ^ 表示相应的真值。

由于3D高斯为显式表达,可使用全局仿射变换 t t t来模拟给定自车位置 w w w下的场景表达 r ~ \tilde r r~。获取预测的未来场景表达 { r T , r T + 1 , ⋯   , r T + F } \{r^T,r^{T+1},\cdots,r^{T+F}\} {rT,rT+1,,rT+F}后,根据规划的路径点 { w T + 1 , ⋯   , w T + F } \{w^{T+1},\cdots,w^{T+F}\} {wT+1,,wT+F}模拟未来的场景表达:
{ r ~ = t ( r , w ) } F \{\tilde r=t(r,w)\}^F {r~=t(r,w)}F

其中上标 F F F表示未来的 F F F帧。使用模拟表达 { r ~ } F \{\tilde r\}^F {r~}F和真实表达 { r ^ } F \{\hat r\}^F {r^}F(从未来观测 { o } \{o\} {o}计算)之间的损失:
J p r e d ( { r } F , { r ^ } F , { d ^ } F ) = λ r e J r e ( { r ~ } F , { r ^ } F ) + λ p e r c J p e r c ( { d ~ ( r ~ ) } F , { d ^ } F ) J_{pred}(\{r\}^F,\{\hat r\}^F,\{\hat d\}^F)=\lambda_{re}J_{re}(\{\tilde r\}^F,\{\hat r\}^F)+\lambda_{perc}J_{perc}(\{\tilde d(\tilde r)\}^F,\{\hat d\}^F) Jpred({r}F,{r^}F,{d^}F)=λreJre({r~}F,{r^}F)+λpercJperc({d~(r~)}F,{d^}F)

其中 J r e J_{re} Jre计算高斯表达的差异, J p e r c J_{perc} Jperc比较来自高斯表达的场景描述之间的差异。

由于预测的未来场景表达 { r ~ } F \{\tilde r\}^F {r~}F取决于规划的轨迹 { w } F \{w\}^F {w}F,故在传统的轨迹损失中加入预测损失:
J p l a n ( { w } F , { w ^ } F ) = λ t r a J t r a ( { w } F , { w ^ } F ) + λ p r e d J p r e d ( { r } F , { r ^ } F , { d ^ } F ) J_{plan}(\{w\}^F,\{\hat w\}^F)=\lambda_{tra}J_{tra}(\{w\}^F,\{\hat w\}^F)+\lambda_{pred}J_{pred}(\{r\}^F,\{\hat r\}^F,\{\hat d\}^F) Jplan({w}F,{w^}F)=λtraJtra({w}F,{w^}F)+λpredJpred({r}F,{r^}F,{d^}F)

总损失为感知损失、预测损失和规划损失之和:
J G a u s s i a n A D = J p e r c + J p r e d + J p l a n J_{GaussianAD}=J_{perc}+J_{pred}+J_{plan} JGaussianAD=Jperc+Jpred+Jplan

实验中提到,如果按照语义置信度剪枝最小语义分数的一部分高斯,感知任务的性能会略有下降,但规划任务的性能会有提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

byzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值