【论文笔记】GGS: Generalizable Gaussian Splatting for Lane Switching in Autonomous Driving

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

简介:本文提出了GGS,一种可泛化的高斯溅射方法,可在自动驾驶中的大视角变化下进行真实渲染。由于自动驾驶中的图像通常在单一车道上收集,这种有限的训练视角使得模型难以渲染不同车道下的图像(从而难以开发完整的自动驾驶仿真系统)。本文引入虚拟车道生成模块,可在没有多车道数据集的情况下实现高质量的车道切换(生成切换车道后的图像)。此外,还设计了扩散损失监督虚拟车道图像的生成,以解决缺乏虚拟车道数据的问题。最后,提出深度细化模块,优化GGS中的深度估计。

0. 概述

在这里插入图片描述
本文方法基于泛化模型进行优化,如图所示。输入4帧图像,在多视图深度细化模块中引入邻域特征,以更好地处理遮挡场景。此外,引入更多的全局信息,使用MVS(多视图立体)优化预测的深度图。在虚拟车道生成模块中,本文引入虚拟车道的概念,通过来回切换来解决无多车道数据的问题,使模型能灵活地切换车道。此外,还提出多车道扩散损失监督新视图合成。

1. 背景——MVSplat

MVSplat是可泛化的3D高斯溅射方法,其使用Transformer结构,利用跨视图注意力为每个输入视角建立代价张量,并使用U-Net为每个像素预测深度和高斯参数。3D高斯参数包括中心位置 x x x,尺度 s s s,旋转角 q q q,不透明度 α \alpha α和颜色 c c c。给定预测的深度图 D D D和相机投影矩阵 P P P(其中内参为 K K K),像素 p x p_x px可按下式被反投影到3D空间:
x p x = Π P − 1 ( p x , D ) x_{p_x}=\Pi^{-1}_P(p_x,D) xpx=ΠP1(px,D)

其中 Π \Pi Π表示反投影操作, x p x x_{p_x} xpx为像素对应的3D位置。不透明度 α \alpha α由匹配置信度直接表达。剩余的高斯参数由编码的特征解码:
s p x = S o f t p l u s ( h s ( Γ ( p x ) ) ) q p x = N o r m ( h q ( Γ ( p x ) ) ) c p x = S i g m o i d ( h c ( Γ ( p x ) ) ) s_{p_x}=\mathtt{Softplus}(h_s(\Gamma(p_x)))\\ q_{p_x}=\mathtt{Norm}(h_q(\Gamma(p_x)))\\ c_{p_x}=\mathtt{Sigmoid}(h_c(\Gamma(p_x))) spx=Softplus(hs(Γ(px)))qpx=Norm(hq(Γ(px)))cpx=Sigmoid(hc(Γ(px)))

其中 Γ \Gamma Γ表示高维特征向量, h s , h q , h c h_s,h_q,h_c hs,hq,hc分别为尺度头、旋转头和色彩头。

2. 多视图深度细化模块

本文使用多视图深度细化模块来增强MVSplat,从而生成更精确的3D高斯。使用邻域帧内通过Agisoft Metashape重建的反投影点云作为输入U-Net的额外颜色特征。邻域特征表达为
F n e i g h b o r i = { F m ∣ m ∈ [ i − k , i + k ] } F_{neighbor_i}=\{F_m|m\in[i-k,i+k]\} Fneighbori={Fmm[ik,i+k]}

其中 i i i为帧序号, F m F_m Fm为第 m m m帧的颜色特征, k k k为邻域距离。

邻域颜色特征与深度特征通过拼接融合,并通过UNet和高斯参数解码器得到高维高斯参数:
d e p r e f = U ( F n e i g h b o r i , d e p i ) dep_{ref}=\mathcal U(F_{neighbor_i},dep_i) depref=U(Fneighbori,depi)

其中 U \mathcal U U表示UNet。这种引入邻域帧颜色特征的方法,可以提升泛化模型在障碍遮挡下的新视图合成能力。

此外,为细化深度,还提出基于置信度的方法。3D高斯的透明度越低,则预测深度的置信度越低。当置信度较低时,通过Agisoft Metashape重建反投影的深度图,修正预测深度:
d e p i = { β d e p ^ i + ( 1 − β ) D i 若 α i < α d e p ^ i 否则 dep_i=\begin{cases}\beta\hat{dep}_i+(1-\beta)D_i&若\alpha_i<\alpha\\ \hat{dep}_i&否则\end{cases} depi={βdep^i+(1β)Didep^iαi<α否则

其中 D i D_i Di为投影深度图, d e p ^ i \hat {dep}_i dep^i为预测深度, α , β \alpha,\beta α,β分别为透明度阈值和预测深度的权重。

论文中一些变量名(如 d e p r e f dep_{ref} depref)并未得到解释且略为混乱(如 D D D在上一节和本节中均出现但含义不同),且上述基于置信度的深度细化并未画在图中,不清楚该模块的具体位置(从变量名命名来看像是在UNet前,但从写作顺序看又像是在UNet后)。

3. 虚拟车道生成模块

获取3D高斯后,为进一步提高大视角变化下的渲染质量,本文引入虚拟车道方法。

虚拟车道变换器用于选择合适的虚拟车道,随后进行垂直于车道的平移,生成虚拟视角。引入虚拟车道模块后,GGS主要包含两个阶段。

第一阶段输入 N N N个图像
I S e t 1 = { I 1 , ⋯   , I N } ISet_1=\{I_1,\cdots,I_N\} ISet1={I1,,IN}

并输出目标图像
I ^ 1 = G ( I S e t 1 ) \hat I^1=\mathcal G(ISet_1) I^1=G(ISet1)

其中 G \mathcal G G为GGS模型, I S e t 1 ISet_1 ISet1为不改变视角的渲染图像(和真值一致)。生成的虚拟车道图像为
I S e t 2 = { V ( I ^ k 1 , γ sin ⁡ θ ∣ k f ≤ k ≤ k l , θ = ω k ) } ISet_2=\{\mathcal V(\hat I_k^1,\gamma\sin\theta|k_f\leq k\leq k_l,\theta=\omega k)\} ISet2={V(I^k1,γsinθkfkkl,θ=ωk)}

其中 V \mathcal V V为虚拟车道变换器, γ \gamma γ为平移系数, k f . k l k_f.k_l kf.kl分别为输入的第一帧和最后一帧的序号。 ω \omega ω为切换周期角(每帧的切换角依次周期性变化)。

第二阶段使用生成的虚拟车道图像为输入,生成真实车道的图像:
I ^ 2 = G ( I S e t 2 ) \hat I^2=\mathcal G(ISet_2) I^2=G(ISet2)

4. 多车道扩散损失

由于改变视角会导致原本被遮挡的区域显露出来,本文利用扩散先验知识想象新视图下的颜色信息。

传统的扩散去噪模型直接补全图像,但不能保证帧间一致性。本文计算去噪前后图像的损失,生成扩散监督的新视角。此外,还建立多车道新视图图像,以保证自动驾驶车道在视角变化下仍然可见。

具体来说,本文使用Stable Diffusion,并用变分自编码器(VAE)编码多车道图像,随后将输入文本固定为自动驾驶标签,进行多个去噪步骤。生成的图像作为新视图合成的监督。

5. 损失函数

本文方法主要包括重建损失、深度损失、虚拟车道切换损失和扩散损失:
L = L r e c o n + L d e p t h + L s w i t c h + L d i f f u s i o n L=L_{recon}+L_{depth}+L_{switch}+L_{diffusion} L=Lrecon+Ldepth+Lswitch+Ldiffusion

重建损失。比较渲染图像和真实图像的均方误差:
L r e c o n = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 L_{recon}=\frac1n\sum_{i=1}^n(y_i-\hat y_i)^2 Lrecon=n1i=1n(yiy^i)2

其中 y i y_i yi表示真实像素的颜色, y ^ i \hat y_i y^i表示渲染像素的颜色。

深度损失。相邻像素的深度应该是平滑的、无突变的。因此深度损失如下:
L d e p t h = 1 n ∑ i = 1 n ( d D i d x + d D i d y + λ ( d 2 D i d x 2 + d 2 D i d y 2 ) ) L_{depth}=\frac1n\sum_{i=1}^n(\frac{dD_i}{dx}+\frac{dD_i}{dy}+\lambda(\frac{d^2D_i}{dx^2}+\frac{d^2D_i}{dy^2})) Ldepth=n1i=1n(dxdDi+dydDi+λ(dx2d2Di+dy2d2Di))

其中 d D i d x \frac{dD_i}{dx} dxdDi为深度在 x x x方向上的一阶导数(其余项类似), λ \lambda λ为深度平滑调整系数。

车道切换损失
L s w i t c h = 1 n ∑ i = 1 n ( y i − Ψ ( Φ ( y ^ i ) ) ) 2 L_{switch}=\frac1n\sum_{i=1}^n(y_i-\Psi(\Phi(\hat y_i)))^2 Lswitch=n1i=1n(yiΨ(Φ(y^i)))2

其中 Φ \Phi Φ表示切换到虚拟车道, Ψ \Psi Ψ表示切换回当前车道。

多车道扩散损失
L d i f f u s i o n = E π , t [ β ( t ) ( ∥ y − y ^ π ∥ 1 + L l p i p s ( y , y ^ π ) ) ] L_{diffusion}=\mathbb E_{\pi,t}[\beta(t)(\|y-\hat y_\pi\|_1+L_{lpips}(y,\hat y_\pi))] Ldiffusion=Eπ,t[β(t)(yy^π1+Llpips(y,y^π))]

其中 π \pi π为选择视图的相机姿态, y y y为多车道图像, y ^ π \hat y_\pi y^π为去噪模型的输出图像, β ( t ) \beta(t) β(t)为与噪声等级相关的加权函数, L l p i p s L_{lpips} Llpips为感知损失。

实验证明了该方法跨数据集的泛化能力(在A数据集上训练,在B数据集上测试),但仅有可视化结果,无定量指标。此外,结论部分提到处理动态场景和复杂场景的能力不足。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

byzy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值