当前街景合成中容易出现过拟合训练视角,导致在视角变化较大时,生成的新视角图像出现伪影。
MuDG 的最终目标是训练一个 图像扩散模型,而引入 3DGS 的主要目的是为了应对 视角变化较大 的情况。通过结合 MDM 和 3DGS,MuDG 能够生成高质量的多模态数据,并显著提高新视角合成的质量和鲁棒性。并且 3DGS 需要逐场景优化,而 MUDG 通过密集监督信号提高了 泛化能力。
MagicDrive3D 将扩散和重建分为两个阶段会导致帧间闪烁和运动模糊,MuDG 将二者联合起来且实时性更高,动态一致性更好。并且在 MagicDrive3D 中控制条件是为了生成视频,再借助视频重建;MuDG 扩散模型直接输出 3DGS 的参数,通过 3DGS 渲染来调整扩散模型。(实时性好)
模态扩散模型(MDM)的训练阶段始于对已知相机轨迹及其密集观测值的随机采样:
对每一帧的密集观测数据:RGB 图片
I
i
∈
R
H
×
W
×
3
I_i \in R^{H×W×3}
Ii∈RH×W×3 ,单通道深度图
D
i
∈
R
H
×
W
×
1
D_i \in R^{H×W×1}
Di∈RH×W×1 (转换为伪 RGB),语义图
S
i
∈
R
H
×
W
×
K
S_i \in R^{H×W×K}
Si∈RH×W×K (着色)进行 VAE 编码
z
I
=
ε
(
I
i
)
z
D
=
ε
(
D
i
3
c
h
)
z
S
=
ε
(
S
i
c
o
l
o
r
i
z
e
d
)
z_I= \varepsilon(\boldsymbol{I}_i) \qquad \qquad z_D=\varepsilon(\boldsymbol{D}_i^{3ch}) \qquad \qquad z_S=\varepsilon(\boldsymbol{S}_i^{colorized})
zI=ε(Ii)zD=ε(Di3ch)zS=ε(Sicolorized)
在训练中为这些 latent representation 加噪,使用融合的 LiDAR 点云投影到相机空间,生成稀疏 RGB 图
P
c
o
l
o
r
P_{color}
Pcolor 和稀疏深度图
P
d
e
p
t
h
P_{depth}
Pdepth,以第一帧为参考视图,用其密集观测值替换稀疏表示,由此生成控制信号:
P
c
o
l
o
r
=
{
I
0
,
P
c
o
l
o
r
1
,
…
…
,
P
c
o
l
o
r
N
}
y
I
=
E
(
P
c
o
l
o
r
)
y
D
=
E
(
P
d
e
p
t
h
)
\begin{aligned} P_{color} =\{I_0,P_{color}^1,……,P_{color}^N\} \\y_I=E(P_{color}) \qquad \qquad y_D=E(P_{depth}) \end{aligned}
Pcolor={I0,Pcolor1,……,PcolorN}yI=E(Pcolor)yD=E(Pdepth)
使用 v-prediction 逐步去噪(
v
t
=
α
t
ϵ
t
−
σ
t
x
t
v_t=\alpha_t\epsilon_t-\sigma_tx_t
vt=αtϵt−σtxt)得到结果,通过以下方式解码:
I
i
r
e
c
o
n
=
D
(
z
I
)
D
i
r
e
c
o
n
=
1
3
∑
c
=
1
3
D
(
z
D
)
c
S
i
r
e
c
o
n
=
a
r
g
m
i
n
k
∣
∣
D
(
z
S
)
−
C
o
l
o
r
(
k
)
∣
∣
2
\begin{aligned} \boldsymbol{I}_i^{recon}=\mathcal{D}(z_I) \qquad \qquad \boldsymbol{D}_i^{recon}=\frac{1}{3}\sum_{c=1}^3\mathcal{D}(z_D)_c \\ \boldsymbol{S}_i^{recon}=argmin_k||\mathcal{D}(z_S)-Color(k)||_2 \end{aligned}
Iirecon=D(zI)Direcon=31c=1∑3D(zD)cSirecon=argmink∣∣D(zS)−Color(k)∣∣2
对于全新的相机轨迹,利用 MDM 生成新的深度图、RGB 图和语义图,并以此作为监督信号优化 3DGS,每次训练迭代时,以概率
θ
\theta
θ 选择虚拟角,用于优化 GS 模型:
L
i
n
p
u
t
=
λ
1
L
1
+
λ
s
s
i
m
L
s
s
i
m
+
λ
d
e
p
t
h
L
d
e
p
t
h
L
v
i
r
t
u
a
l
=
λ
v
c
o
l
o
r
L
l
p
i
p
s
+
λ
v
d
e
p
t
h
L
d
e
p
t
h
+
λ
v
s
e
m
L
s
e
m
\begin{aligned} \mathcal{L}_{input}=\lambda_1\mathcal{L}_1+\lambda_{ssim}\mathcal{L}_{ssim}+\lambda_{depth}\mathcal{L}_{depth} \\\mathcal{L}_{virtual}=\lambda_{v_{color}}\mathcal{L}_{lpips}+\lambda_{v_{depth}}\mathcal{L}_{depth}+\lambda_{v_{sem}}\mathcal{L}_{sem} \end{aligned}
Linput=λ1L1+λssimLssim+λdepthLdepthLvirtual=λvcolorLlpips+λvdepthLdepth+λvsemLsem
实验结果