【论文笔记】GaussianWorld: Gaussian World Model for Streaming 3D Occupancy Prediction

原文链接:https://arxiv.org/pdf/2412.10373

简介:目前,基于时序输入的3D占用预测方法多融合过去帧的表达,预测当前帧的占用,但其忽视了驾驶场景的连续性和3D场景演化的先验(如仅有动态物体会移动)。本文将3D占用估计任务视为以当前传感器输入为条件的4D占用预测任务,并将场景分解为(1)静态场景的自车运动对齐,(2)动态物体的局部运动和(3)新观测场景。本文提出的高斯世界模型GaussianWorld显式地利用先验,考虑当前RGB观测,在3D高斯空间中推断场景演化。

在这里插入图片描述

1. 感知的世界模型

感知模型基于当前帧 T T T和过去 t t t帧的传感器输入 { x T , x T − 1 , ⋯   , x T − t } \{x^T,x^{T-1},\cdots,x^{T-t}\} {xT,xT1,,xTt},获取感知 y T y^T yT
y T = A ( { x T , ⋯   , x T − t } , { p T , ⋯   , p T − t } ) y^T=A(\{x^T,\cdots,x^{T-t}\},\{p^T,\cdots,p^{T-t}\}) yT=A({xT,,xTt},{pT,,pTt})

其中 p t p^t pt t t t时刻的自车位置。

传统的感知时序建模包括三个阶段:感知、变换和融合。感知模块 P e r P_{er} Per提取各帧的场景表达 z z z;变换模块 T r a n s T_{rans} Trans根据自车轨迹,将过去帧特征对齐到当前帧;融合模块 F u s e F_{use} Fuse整合多帧表达进行感知。传统流程如下所示:
z n = P e r ( x n ) ,      a n = T r a n s ( z n , p n ) ,      y T = F u s e ( a T , ⋯   , a T − t ) z^n=P_{er}(x^n),\;\;a^n=T_{rans}(z^n,p^n),\;\;y^T=F_{use}(a^T,\cdots,a^{T-t}) zn=Per(xn),an=Trans(zn,pn),yT=Fuse(aT,,aTt)

其中 a n a^n an为第 n n n帧对齐的场景表达, n = T − t , ⋯   , T n=T-t,\cdots,T n=Tt,,T

上述方案没有考虑到相邻帧的关联性,性能有限。本文提出基于世界模型的方法,利用场景演化进行感知。感知世界模型 w w w基于过去帧表达 z T − 1 z^{T-1} zT1和当前帧传感器输入 x T x^T xT预测当前表达 z T z^T zT
z T = w ( z T − 1 , x T ) z^T=w(z^{T-1},x^T) zT=w(zT1,xT)

进一步,本文将3D感知任务视为以当前传感器输入为条件的4D预测任务:
y T = A ( z T − 1 , x T ) = h ( w ( z T − 1 , x T ) ) y^T=A(z^{T-1},x^T)=h(w(z^{T-1},x^T)) yT=A(zT1,xT)=h(w(zT1,xT))

其中 h h h为基于表达 z z z的感知头。

得到预测的场景表达 z T z^T zT和下一帧观测 x T + 1 x^{T+1} xT+1后,可将其输入世界模型预测下一帧表达 z T + 1 z^{T+1} zT+1

若去掉 z T − 1 z^{T-1} zT1的输入,则本文方法与GaussianFormer相似。

2. 显式场景演化建模

在这里插入图片描述
场景的演化可分解为三个因素:(1)静态场景的自车运动对齐;(2)动态物体的局部运动;(3)新观测区域的补全。如图所示。
在这里插入图片描述
本文使用3D高斯作为场景表达,以显式、连续地建模场景演化。每个3D语义高斯包括位置 p p p、尺度 s s s、旋转 r r r和语义概率 c c c属性。此外,本文引入时间特征 f f f属性,以捕捉3D高斯的历史信息。则3D高斯 g g g可表达为:
g = { p , s , r , c , f } g=\{p,s,r,c,f\} g={p,s,r,c,f}

提出的GaussianWorld w w w根据过去的3D高斯 g T − 1 g^{T-1} gT1和当前传感器输入 x T x^T xT,预测当前的3D高斯 g T g^T gT
g T = w ( g T − 1 , x T ) g^T=w(g^{T-1},x^T) gT=w(gT1,xT)

静态场景的自车运动对齐。使用对齐模块 A l i g n A_{lign} Align将上一帧3D高斯 g T − 1 g^{T-1} gT1对齐到当前帧,即基于自车轨迹,对场景的所有3D高斯使用全局仿射变换。给定仿射变换矩阵 M e g o M_{ego} Mego,对齐的3D高斯 g A T g_A^T gAT
g A T = A l i g n ( g T − 1 , M e g o ) = R e f ( g T − 1 ; M e g o ⋅ A t t r ( g T − 1 ; p ) ; p ) g_A^T=A_{lign}(g^{T-1},M_{ego})=R_{ef}(g^{T-1};M_{ego}\cdot A_{ttr}(g^{T-1};p);p) gAT=Align(gT1,Mego)=Ref(gT1;MegoAttr(gT1;p);p)

其中 A t t r A_{ttr} Attr(g;p)为3D高斯 g g g p p p属性, R e f ( g ; n ; p ) R_{ef}(g;n;p) Ref(g;n;p)为使用 n n n更新3D高斯 g g g p p p属性。

动态物体的局部运动。基于语义概率,对齐的3D高斯 g A T g_A^T gAT被分为互斥的两类:动态高斯集{g_D}和静态高斯集 { g S } \{g_S\} {gS}。使用运动层 M o v e M_{ove} Move预测动态高斯的移动:
g M T = M o v e ( g A T , x T ) = R e f ( g A T ; E n c ( g A T , x T ) ⋅ I ( g A T ∈ { g D } ) ; p ) g_M^T=M_{ove}(g_A^T,x_T)=R_{ef}(g_A^T;E_{nc}(g_A^T,x_T)\cdot I(g_A^T\in\{g_D\});p) gMT=Move(gAT,xT)=Ref(gAT;Enc(gAT,xT)I(gAT{gD});p)

其中 E n c E_{nc} Enc为编码模块, I ( ⋅ ) I(\cdot) I()为指示函数。

新观测区域的补全。在自车运动过程中,本文丢弃移动到边界外的高斯,并用随机初始化的高斯补全新观测区域。新的高斯 g I T g_I^T gIT是通过在新观测区域均匀采样得到的。使用感知层 P e r P_{er} Per预测新高斯的所有属性:
g C T = P e r ( g I T , x T ) = R e f ( g I T ; E n c ( g I T , x T ) ; { p , s , r , c , f } ) g_C^T=P_{er}(g_I^T,x_T)=R_{ef}(g_I^T;E_{nc}(g_I^T,x_T);\{p,s,r,c,f\}) gCT=Per(gIT,xT)=Ref(gIT;Enc(gIT,xT);{p,s,r,c,f})

3. 3D高斯世界模型

当前帧的初始表达为对齐的高斯 g A T g_A^T gAT和新增的高斯 g I T g_I^T gIT
g T = [ g A T , g I T ] g^T=[g_A^T,g_I^T] gT=[gAT,gIT]

分别使用运动层 M o v e M_{ove} Move和感知层 P e r P_{er} Per,基于 x T x^T xT更新 g A T g_A^T gAT g I T g_I^T gIT。注意这两个模块共享结构和参数(均为编码模块 E n c E_{nc} Enc+细化模块 R e f R_{ef} Ref,唯一区别在于更新的高斯属性),从而可被集成到统一的演化模块 E v o l E_{vol} Evol中并行计算。
g l + 1 T = E v o l ( g l T , x T ) = { P e r ( g l T , x T ) 若新 M o v e ( g l T , x T ) 否则 g_{l+1}^T=E_{vol}(g_l^T,x_T)=\begin{cases}P_{er}(g_l^T,x_T)&若新\\M_{ove}(g_l^T,x_T)&否则\end{cases} gl+1T=Evol(glT,xT)={Per(glT,xT)Move(glT,xT)若新否则

其中 g l T g_l^T glT为第 l l l l = 1 , ⋯   , n e l=1,\cdots,n_e l=1,,ne)层演化模块的3D高斯。为处理3D表达和真实世界潜在的不对齐,本文还引入 n r n_r nr个细化层,微调3D高斯的属性:
g n + 1 T = R e f i n e ( g n T , x T ) = R e f ( g n T ; E n c ( g n T , x T ) ; { p , s , r , c , f } ) g_{n+1}^T=R_{efine}(g_n^T,x_T)=R_{ef}(g_n^T;E_{nc}(g_n^T,x_T);\{p,s,r,c,f\}) gn+1T=Refine(gnT,xT)=Ref(gnT;Enc(gnT,xT);{p,s,r,c,f})

其中 g n T g_n^T gnT为第 n n n个细化层的3D高斯。
在这里插入图片描述
使用交叉熵损失和lovasz-softmax损失,并在单帧任务上预训练。随后,使用流式训练策略微调模型,即每轮迭代中,会将当前帧图像和上一帧预测的3D高斯输入模型进行3D占用预测。

由于训练早期预测误差较大,因此早期训练使用短序列,并逐步增加序列长度,以增强训练稳定性。此外,使用概率建模,以概率 p p p随机丢弃上一帧的3D高斯表达,并在训练中逐渐减小 p p p,以使模型适应长序列。

### Gaussian 的 IT 概念或项目 #### 什么是高斯分布? 高斯分布(Gaussian Distribution),也称为正态分布,是一种常见的连续概率分布形式。它广泛应用于统计学、机器学习以及数据科学领域。其核心特性在于均值和方差能够完全描述该分布的形式[^1]。 #### 高斯过程及其应用 高斯过程(Gaussian Process, GP)是一类用于回归分析的概率模型,在贝叶斯优化等领域具有重要地位。通过定义输入空间上的协方差函数(Kernel Function),GP 能够捕捉复杂的数据模式并提供预测不确定性估计。这种能力使其成为许多实际问题的理想解决方案之一[^2]。 ```python import numpy as np from sklearn.gaussian_process import GaussianProcessRegressor from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C # 定义核函数 kernel = C(1.0, (1e-3, 1e3)) * RBF(10, (1e-2, 1e2)) gp = GaussianProcessRegressor(kernel=kernel) # 假设训练数据 X_train 和 y_train 已经存在 X_train = np.array([[1], [2], [3]]) y_train = np.sin(X_train).ravel() # 训练模型 gp.fit(X_train, y_train) ``` 上述代码片段展示了一个简单的基于 Scikit-Learn 库实现的高斯过程回归实例[^3]。 #### 高斯混合模型 除了单一的高斯分布外,高斯混合模型(Gaussian Mixture Model, GMM)也是一种重要的工具。它可以用来表示更加复杂的多模态分布情况,并常被应用于聚类任务中。EM算法通常用于求解此类模型参数的最大似然估计值[^4]。 ```python from sklearn.mixture import GaussianMixture gmm = GaussianMixture(n_components=3) # 设置三个组件 gmm.fit(data_matrix) # 使用数据矩阵拟合模型 labels = gmm.predict(data_matrix) # 获取每个样本所属类别标签 ``` 以上代码实现了利用 `sklearn` 中的 GMM 类完成基本建模流程的一个例子。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

byzy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值