[读论文] SV3D: Novel Mult-view Synthesis and 3D Generation from a Single Image using Latent Video Diffu

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

Abstract

提出了 Stable Video 3D(SV3D),这是一种潜在视频扩散模型,用于高分辨率的图像到多视角生成,实现围绕 3D 对象的轨道视频生成。最近的 3D 生成研究提出了将 2D 生成模型适应为新视角合成(NVS)和 3D 优化的技术。然而,这些方法由于视角数量有限或 NVS 不一致,存在一定的缺点,从而影响了 3D 对象生成的效果。在本研究中,我们提出了 SV3D,这是一种图像到视频的扩散模型,专为新视角多视角合成和 3D 生成而设计,利用视频模型的广泛适应性和多视角一致性,同时增加了用于 NVS 的显式相机控制。我们还提出了改进的 3D 优化技术,以便利用 SV3D 及其 NVS 输出实现图像到 3D 的生成。在多个数据集上进行的实验结果,包括 2D和 3D 度量以及用户研究,均表明 SV3D 在 NVS 和 3D 重建方面相较于之前的工作表现出卓越的性能。

1. Introduction

2. Background

3. SV3D: Novel Multi-view Synthesis

核心理念是重新利用视频扩散模型中的时间一致性,以实现物体的空间 3D 一致性。具体而言,我们对 SVD 进行微调,使其能够基于单视图图像生成围绕 3D 物体的轨道视频。这个轨道视频的拍摄角度无需在相同的高度上,也不需要在方位角上均匀分布。SVD 非常适合这一任务,因为它经过训练,能够在大规模的真实高质量视频数据集上生成平滑一致的视频。对高质量数据的大量接触使其具有更好的泛化能力和多视角一致性,同时 SVD 的架构灵活性也便于微调以实现相机的可控性。

一些先前的工作尝试通过微调图像扩散模型、从头训练视频扩散模型或微调视频扩散模型来生成固定高度下围绕物体的预定义视角(静态轨道),以利用这些特性。然而,我们认为这些方法未能充分发挥视频扩散模型的潜力。据我们所知,SV3D 是首个基于视频扩散的可控多视角合成框架,能够生成 576×576 分辨率的多视角视频(并进一步用于 3D 生成)。

Problem Setting. 给定一个物体的图像 I∈R3×H×WI\in\R^{3\times H\times W}IR3×H×W,目标是生成一个轨道视频 J∈RK×3×H×WJ\in\R^{K\times3\times H\times W}JRK×3×H×W,该视频包含围绕物体的 K=21K=21K=21 个多视角图像,沿着相机位姿轨迹 π∈RK×2={(ei,ai)}i=1K\pi\in\R^{K\times2}=\{(e_i,a_i)\}^K_{i=1}πRK×2={(ei,ai)}i=1K 生成,表示为 KKK 组由仰角 eee 和方位角 aaa 组成的角度序列。假设相机始终对准物体的中心(世界坐标系的原点),因此任何视角只需两个参数即可指定:仰角和方位角。我们通过对学习到的条件分布 p(J∣I,π)p(J|I,\pi)p(JI,π) 的样本进行迭代去噪来生成此轨道视频,该条件分布由一个视频扩散模型参数化。

SV3D Architecture. SV3D 的架构基于 SVD 的架构,后者由一个包含多个层的 UNet 组成,每层包含一个带有 Conv3D 层的残差块和两个注意力层的 Transformer 块(空间和时间 Transformer 块)。

  1. 移除了与 SV3D 无关的 “fps id” 和 “motion bucket id” 向量条件。

  2. 经过 SVD 的 VAE 编码器嵌入到潜在空间后,条件图像被拼接到在噪声时间步 ttt 的噪声潜在状态输入 ztz_tzt​ 上,并输入到 UNet。

  3. 条件图像的 CLIP 嵌入矩阵被提供给每个 Transformer 块的交叉注意力层,作为其键和值,而查询则是该层的特征。

  4. 相机轨迹与扩散噪声时间步一起输入到残差块中。相机姿态角 eie_iei​ 和 aia_iai​ 以及噪声时间步 ttt 首先嵌入到正弦位置嵌入中。然后,相机姿态嵌入被拼接在一起,经过线性变换后与噪声时间步嵌入相加。这被传递到每个残差块,在再次线性变换以匹配特征大小后,加入到块的输出特征中。

Static v.s. Dynamic Orbits. 设计了静态和动态轨道来研究相机姿态条件的影响。在静态轨道中,相机以与条件图像相同的仰角均匀地围绕物体旋转,但静态轨道的缺点在于,可能无法获取物体顶部或底部的信息,这取决于条件图像的仰角。在动态轨道中,方位角可以不均匀分布,仰角可以在每个视角中变化。为了构建动态轨道,我们首先采样一个静态轨道,向方位角添加少量随机噪声,并向仰角添加不同频率的正弦波的随机加权组合。这样可以保证轨道的时间平滑性,并确保相机轨迹循环回到与条件图像相同的方位和仰角处。通过这一策略能够通过视频扩散模型解决新视角合成中的泛化性、可控性和一致性三个方面,分别通过提供相机轨迹作为附加条件,并将时间一致性重新用于物体的空间 3D 一致性。

Triangular CFG Scaling. SVD 在生成的帧中使用从 1 到 4 线性递增的分类器自由引导(CFG)比例。然而,这种比例会导致生成轨道的最后几帧过度锐化。由于我们生成的视频会循环回到前视图图像,我们提出在推理过程中使用三角波 CFG 比例:从前视图开始,CFG 线性增加到后视图的 2.5,然后线性减少回到前视图的 1。

Models. 我们基于 SVD 微调了三个图像到 3D 视频的模型。首先,我们训练了一个不带姿态条件的模型 SV3Du\text{SV3D}^uSV3Du,该模型在仅依赖单视图图像的情况下生成物体的静态轨道视频。需要注意的是,与 SVD-MV 不同,我们没有向该不带姿态条件的模型提供仰角,因为我们发现模型可以从条件图像中推断出仰角。我们的第二个模型是带有姿态条件的 SV3Dc\text{SV3D}^cSV3Dc,以输入图像和轨道中的相机仰角与方位角序列为条件,并在动态轨道上训练。基于 SVD 提出的在训练中逐步增加任务难度的直觉,我们训练了第三个模型 SV3Dp\text{SV3D}^pSV3Dp,首先对 SVD 进行微调使其在无条件下生成静态轨道,然后进一步在带有相机姿态条件的动态轨道上微调。

4. 3D Generation from a Single Image Using SV3D

通过利用 SV3D 从单个图像生成物体的 3D 网格。一种方法是使用 SV3D 生成的静态/动态轨道样本作为直接重建的目标。另一种方法是将 SV3D 作为扩散引导,通过得分蒸馏采样(SDS)损失来进行生成。由于 SV3D 相较于现有方法生成了更加一致的多视角,因此仅使用 SV3D 的输出进行重建时,我们已经观察到更高质量的 3D 重建结果。然而,我们发现这种简单的方法通常会导致诸如内置照明、粗糙表面和噪声纹理等伪影,尤其是在参考轨道中的不可见区域。为此,我们进一步提出了几种技术来解决这些问题。

Coarse-to-Fine Training. 采用了两阶段的粗到精训练方案来从输入图像生成 3D 网格,类似于。在粗阶段,我们训练一个 Instant-NGP 的 NeRF 表示,以较低分辨率重建 SV3D 生成的图像(即不使用 SDS 损失)。在精细阶段,我们使用 Marching Cubes 从训练好的 NeRF 中提取网格,并采用 DMTet 表示,通过基于 SDS 的扩散引导在全分辨率下微调 3D 网格。最后,我们使用 xatlas 进行 UV 展开,并导出输出的物体网格。

Disentangled Illumination Model. 类似于其他最近的 3D 物体生成方法,输出目标是一个具有漫反射纹理的网格。通常,这类基于 SDS 的优化技术在每次迭代时使用随机光照。然而,我们的 SV3D 生成的视频具有一致的光照,即在相机绕物体旋转时,光照保持静态。因此,为了分离光照效果并获得更干净的纹理,我们提出拟合一个简单的光照模型,使用 24 个球面高斯(SG)。我们模型使用白光,因此只使用一个标量幅度来表示 SG。我们只考虑 Lambertian 着色,其中余弦着色项通过另一个 SG 来近似。我们通过重建损失,在渲染图像与 SV3D 生成的图像之间,来学习光照 SG 的参数。通过一个损失项来减少内嵌光照,该损失项复制了输入图像 III 的 HSV 值分量与渲染光照 LLL 之间的差异:

Lillum=∣V(I)−L∣2 \mathcal L_{illum}=|V(I)-L|^2 Lillum=V(I)L2

其中 V(c)=max⁡(cr,cg,cb)V(c)=\max(c_r,c_g,c_b)V(c)=max(cr,cg,cb),通过这些改进,我们的光照解耦模型能够正确表达光照变化,并能显著减少内嵌光照。从结果可以明显看出,我们能够将光照效果与基本颜色解耦。

4.1 3D Optimization Strategies and Losses

Reconstruction via Photometric Losses. 直观地,我们可以将 SV3D 生成的图像视为多视角伪真实图像,并应用 2D 重建损失来训练 3D 模型。在这种情况下,我们在 NeRF 或 DMTet 渲染的图像上应用光度损失,包括像素级 MSE 损失、遮罩损失以及感知 LPIPS 损失。这些光度损失还通过差分渲染管道优化我们的光照模型。

Training Orbits. 对于 3D 生成,我们使用 SV3D 生成遵循相机轨道 πref\pi_{ref}πref​ 的多视角图像,称为参考轨道。在训练中使用动态轨道对于从不同角度观察时获得高质量的 3D 输出至关重要,因为在静态轨道中缺少一些顶部/底部视角。因此,对于 SV3Dc\text{SV3D}^cSV3DcSV3Dp\text{SV3D}^pSV3Dp,我们在动态轨道上渲染图像,其仰角遵循正弦函数,以确保覆盖顶部和底部视角。

SV3D-Based SDS Loss. 除了重建损失,还可以使用得分蒸馏采样(SDS)和 SV3D作为扩散引导来处理不可见区域。我们采样一个随机相机轨道 πrand\pi_{rand}πrand 并使用由 θ\thetaθ 参数化的 3D NeRF/DMTet 渲染沿 πrand\pi_{rand}πrand 的物体视图 J^\hat JJ^。然后,在潜在嵌入 ztz_tzt 中添加噪声 ϵ\epsilonϵ ,并通过可微渲染管道反向传播以下 SDS 损失(对 tttϵ\epsilonϵ 取期望):

Lsds=w(t)(ϵϕ(zt;I,πrand,t)−ϵ)∂J^∂θ \mathcal L_{sds}=w(t)(\epsilon_\phi(z_t;I,\pi_{rand},t)-\epsilon)\frac{\partial\hat J}{\partial\theta} Lsds=w(t)(ϵϕ(zt;I,πrand,t)ϵ)θJ^

where www is ttt-dependent weight, ϵ\epsilonϵ and ϵϕ\epsilon_\phiϵϕ are the added and predicted noise, and ϕ\phiϕ and θ\thetaθ are the parameters of SV3D and NeRF/DMTet.

Masked SDS Loss. 实验中,发现直接添加 SDS 损失可能会导致训练不稳定,并且会对输入图像的纹理产生不真实的效果,例如过度饱和或模糊伪影。为此设计了一种软遮罩机制,仅在未见/遮挡区域应用 SDS 损失,这样它可以填补缺失的细节,同时保留训练轨道中明显可见表面的纹理。此外,我们只在 DMTet 优化的最后阶段应用遮罩后的 SDS 损失,这大大提高了收敛速度。首先从随机相机轨道 ϕrand\phi_{rand}ϕrand 渲染物体。对于每个随机相机视图,我们获取可见的表面点 p∈R3p\in\R^3pR3 及其对应的表面法线 nnn。然后,对于每个参考相机 iii,我们计算从表面点 ppp 到其位置 πˉiref∈R3\bar\pi^{ref}_i\in\R^3πˉirefR3 的视角 vi=πˉiref−p∥πˉiref−p∥v_i=\frac{\bar\pi^{ref}_i-p}{\parallel\bar\pi^{ref}_i-p\parallel}vi=πˉirefpπˉirefp。基于 viv_ivinnn 之间的点积推断参考相机对该表面可见性的程度,由于较高的值大致表示该表面从参考相机的可见性更高,我们选择具有最大可见性概率的参考相机 c=arg⁡max⁡i(vi⋅n)c=\arg\max\limits_i(v_i\cdot n)c=argimax(vin) 由于我们只希望将 SDS 损失应用于从 ccc 处看不到或视角较小的区域,因此使用平滑步骤函数 fsf_sfs 来平滑地剪裁到 ccc 的可见性范围,由此创建了一个伪可见性遮罩:

M=1−fs(vc⋅n,0,0.5)fs(x;f0,f1)=x^2(3−2x^)x^=x−f0f1−f0 \begin{aligned} M&=1-f_s(v_c\cdot n,0,0.5)\\ f_s(x;f_0,f_1)&=\hat x^2(3-2\hat x)\\ \hat x&=\frac{x-f_0}{f_1-f_0} \end{aligned} Mfs(x;f0,f1)x^=1fs(vcn,0,0.5)=x^2(32x^)=f1f0xf0

之后将 MMM 应用于 SDS 损失:

Lmask−sds=MLsds \mathcal L_{mask-sds}=M\mathcal L_{sds} Lmasksds=MLsds

Geometric Priors. 由于基于渲染的优化是在图像层面进行的,因此我们采用了几种几何先验来规范输出形状。我们增加了来自 RegNeRF 的平滑深度损失和双边法线平滑损失,以鼓励在投影图像梯度较低的区域生成平滑的 3D 表面。此外,我们从 Omnidata 获得法线估计,并计算类似于 MonoSDF 的单目法线损失,这可以有效减少输出网格中的噪声表面

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SP FA

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

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

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

打赏作者

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

抵扣说明:

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

余额充值