image

目标

这篇文章《Wonderland: Navigating 3D Scenes from a Single Image》提出了一种基于单张图片的高效三维场景重建方法,结合视频扩散模型和高斯点渲染技术,能够在无需逐场景优化的情况下快速生成高质量、宽范围的三维场景。

方法

基本方法概述

  1. 输入:单张图片及其摄像机位姿信息。
  2. 目标:生成包含高几何一致性和高保真度的三维场景表示,并支持从任意视角生成2D图像。
  3. 核心技术
    • 视频扩散模型(Video Diffusion Model):用于从单张图片生成多视角一致的潜空间特征。
    • 3D高斯点(3D Gaussian Splatting, 3DGS):用于表达三维场景,通过稀疏高斯点的集合描述场景的几何结构和外观。
    • Latent Large Reconstruction Model(LaLRM):直接从潜特征生成三维高斯点。

image

详细步骤

1. 视频潜空间生成(Video Latent Generation)

目标:将单张图片转化为包含多视角信息的紧凑视频潜特征(Video Latents)。

  1. 视频扩散模型的使用

    • 通过预训练的视频扩散模型,从单张图片生成与摄像机轨迹相关的视频潜特征。
    • 视频扩散模型使用大规模视频数据进行训练,包含丰富的三维场景理解能力,因此能够生成具有3D一致性的视频潜空间。
  2. 摄像机条件嵌入

    • 通过Plücker坐标嵌入表示摄像机的位姿信息,结合旋转矩阵、平移向量和内参矩阵,生成6维的空间-时间相机嵌入。
    • 设计了双分支摄像头控制模块(Dual-branch Camera Conditioning),融合了ControlNet和LoRA技术:
      • ControlNet分支:保证对相机运动的精确控制。
      • LoRA分支:提供轻量化训练,适应静态场景。
  3. 生成潜特征

    • 扩散模型通过输入的图片和相机轨迹生成一段潜视频,编码了场景的多视角信息(如几何、外观)。

2. 三维重建(Latent-to-3D Reconstruction)

目标:从视频潜空间生成三维场景的稀疏表示——3D高斯点(3DGS)

  1. 潜特征离散化为Token

    • 将潜特征进行空间和时间维度上的分块(Patchify),生成潜特征Token。
    • 同时,将相机位姿嵌入生成相机Token。
  2. Token的融合与建模

    • 使用Transformer架构融合潜特征Token和相机Token,捕捉多视角之间的几何一致性。
    • Transformer输出3D高斯点的属性,包括:
      • 位置:3D点的空间坐标。
      • 颜色:每个点的RGB值。
      • 尺度:点的大小及空间覆盖范围。
      • 旋转:高斯点的方向,由四元数表示。
      • 透明度:高斯点的透明程度。
      • 射线距离:点与摄像机之间的距离(用于深度排序)。
  3. 生成高斯点云

    • 输出结果是一组稀疏的3D高斯点(Gaussian Splatting),用于描述场景的几何结构和外观。

3. 渲染为2D图像

目标:从生成的3D高斯点云中渲染出目标视角的图像。

  1. 虚拟相机的设定

    • 使用输入的目标相机参数,设置虚拟相机的位姿和视角。
  2. 高斯点的投影与体积渲染

    • 将3D高斯点投影到虚拟相机视角下的2D平面。
    • 使用体积渲染技术,将高斯点的颜色、透明度和深度信息叠加,生成目标图像。
  3. 图像生成

    • 融合所有点的渲染结果,生成目标视角下的最终图像。

4. 训练优化

为了提升生成质量,模型通过以下方式进行优化:

  1. 损失函数

    • 均方误差(MSE)损失:比较渲染图片与真实图片的像素差异。
    • 感知损失(Perceptual Loss):通过预训练的VGG网络,提取高层语义特征,保证感知一致性。
    • 正则化损失:对高斯点的尺度和透明度进行正则化,避免生成的点云过于密集或离散。
  2. 逐步训练策略

    • 初始阶段使用低分辨率数据训练,捕捉场景的基本几何结构。
    • 后期引入高分辨率数据(包括真实视频和扩散模型生成的视频)进行微调,提高生成的细节和场景范围。

创新与优势

  1. 效率高:Feed-forward架构避免了逐场景优化,直接生成三维场景表示。
  2. 一致性强:利用视频潜空间和高斯点云的特性,保证多视角一致性。
  3. 通用性强:模型在大规模数据上预训练,能生成宽范围、复杂的三维场景。
  4. 内存友好:通过潜空间的压缩表示减少内存需求,同时加速推理。

--

Q&A

1.那既然多视一致依赖于生成模型视频潜空间,那为什么不直接用生成模型生成多视角图片,而是要加上Feed-forward重建过程(并没有统一的场景3DGS的表示,所以加上重建这个阶段也很难保证多视一致性)?


1. 为什么不直接用生成模型生成多视角图片?

直接使用视频生成模型生成多视角图片看似简单,但在实际场景中存在以下问题:

(1) 多视角一致性问题

(2) 扩散模型的复杂性与高计算成本

(3) 缺乏明确的三维场景表示


2. 为什么要加入Feed-forward重建过程?

通过引入Feed-forward 3D Reconstruction,文章解决了上述问题,并显著提升了多视图一致性和效率。其优势如下:

(1) 明确的三维表示

(2) 高效的渲染过程

(3) 更好的遮挡区域推断

(4) 更适合大场景和多视图扩展


3. Feed-forward方法如何解决多视一致性?

虽然Feed-forward方法生成的是局部3DGS表示,但以下设计保证了跨视角的一致性:

(1) 基于共享模型的多视角一致性

(2) 潜空间的一致性建模

(3) 渲染阶段的深度排序


2.如何适应大场景呢?新视角有较大偏移,如何脑补出原图中不在的区域呢?

适应大场景的能力

文中方法通过以下机制支持大场景:

1. 视频潜空间的“全局上下文”

2. 多视角一致性建模

3. 高斯点云的稀疏表示


新视角大偏移的渲染

当目标视角相较原始图片偏移较大时(例如视角旋转超过90度或观察完全遮挡的区域),模型需要“脑补”出输入图片中没有的信息。文章中的方法通过以下机制解决这一问题:

1. 基于生成的“新视角信息”

2. 使用大规模多视角数据训练

3. 渐进式训练策略


文章能否完全解决大视角偏移和新区域生成的问题?

文章提供了较好的方法来缓解这一问题,但可能还无法完全解决,尤其是以下场景:

  1. 极端偏移视角

    • 如果目标视角与输入图片相差太大,且没有任何先验几何信息可参考(例如输入图片是正面视角,目标视角完全是背面),模型可能会生成缺乏细节或不完全正确的结果。
    • 此时的生成完全依赖于训练中学到的先验,结果可能带有一定的不确定性。
  2. 高复杂度大场景

    • 对于高度复杂的场景(如遮挡多、纹理丰富),由于视频潜空间的压缩性,可能会丢失部分细节,从而影响新视角的生成效果。
  3. 训练数据依赖

    • 模型的生成能力高度依赖于训练数据的多样性。如果训练集中缺乏某些类型的场景或大视角偏移的数据,生成的结果可能会受到影响。

总结
这篇文章提出的方法可以在一定程度上解决新视角大偏移问题,通过视频潜空间捕捉多视角一致性和利用生成先验,能够脑补出输入图片中未观察到的区域。对于大场景,该方法通过稀疏的3DGS表示和渐进式训练策略提升适应能力。然而,对于极端偏移视角和高度复杂场景,可能仍存在一定的挑战。