在这里插入图片描述


标题:LagerNVS: Latent Geometry for Fully Neural Real-time Novel View Synthesis
来源:牛津大学视觉几何研究组 ;Meta AI
链接:https://szymanowiczs.github.io/lagernvs

在这里插入图片描述

一、整体框架

  本文将 NVS 任务分解为编码解码两个独立阶段:

在这里插入图片描述
I 1 , … , I V I_1, \dots, I_V I1,,IV: 代表 V V V 张源图像( I 1 I_1 I1 通常作为参考图像)。 I I I: 目标输出的新图像(New image)。 g 1 , … , g V g_1, \dots, g_V g1,,gV表示源相机(Source cameras)的参数, g g g表示目标相机(Target camera)的参数。这种解耦设计允许系统针对多个不同视角的生成任务,只计算一次中间表示 z z z,从而摊销计算成本

在这里插入图片描述

1.相机参数化表示

   相机参数被表示为 11 维的向量,形如 g = ( q , t , k , w ) g = (\mathbf{q}, \mathbf{t}, \mathbf{k}, \mathbf{w}) g=(q,t,k,w)
q ∈ S 3 \mathbf{q} \in \mathbb{S}^3 qS3: 相机旋转参数(表示为单位四元数)。 t ∈ R 3 \mathbf{t} \in \mathbb{R}^3 tR3: 相机平移参数。
k ∈ R + 2 \mathbf{k} \in \mathbb{R}^2_+ kR+2: 水平和垂直视场角(Fields-of-view,假设光学中心在图像中心)。 w ∈ R + 2 \mathbf{w} \in \mathbb{R}^2_+ wR+2: 场景缩放参数(辅助输入参数)。

2. 网络架构组件

  • f f f: 代表整个新视图合成的函数,即 I = f ( g ; I 1 , … , I V ) I = f(g; I_1, \dots, I_V) I=f(g;I1,,IV) I = f ( g ; I 1 , g 1 , … , I V , g V ) I = f(g; I_1, g_1, \dots, I_V, g_V) I=f(g;I1,g1,,IV,gV)
  • e e e: 编码器网络(Encoder)。 h h h: 解码器网络(Decoder)。
  • z z z: 编码器输出的中间表示(Intermediate representation)。
    • 在 Highway 架构中, z = ( z 1 , … , z V ) z = (z_1, \dots, z_V) z=(z1,,zV),保留了每个源图像的独立特征向量。
    • 在 Bottleneck 架构中, z z z 的 token 数量与输入视图数量 V V V 无关。
  • D i D_i Di: VGGT 模型预测的源图像 I i I_i Ii 的深度图(并未直接使用)。
  • z i z_i zi: 从 VGGT 主干网络的最后几层提取的源图像 I i I_i Ii token 数组, z i ∈ R P × C z_i \in \mathbb{R}^{P \times C} ziRP×C

3. 解码器与 Transformer 符号

  • r d , r m r_d, r_m rd,rm: 普吕克坐标(Plücker coordinates)表示的射线。 r d ∈ R 3 r_d \in \mathbb{R}^3 rdR3 为射线方向(Ray direction), r m ∈ R 3 r_m \in \mathbb{R}^3 rmR3 为射线力矩(Ray moment)。
  • r ′ r' r: 卷积层的卷积核大小和步长(本文中 r ′ = 8 r' = 8 r=8)。
  • s s s: 编码目标相机 g g g 的 token 集合。包含 4 + H W / r ′ 2 4 + HW/r'^2 4+HW/r′2 个 token(其中 4 个为附加的寄存器 token)。

二、具有隐式 3D 偏置的编码器

  • 架构基础 LagerNVS 的编码器建立在 VGGT 模型之上。

  • 特征提取:它不直接使用 VGGT 输出的显式 3D 几何数据(如相机参数和深度图),而是提取其 Transformer 主干网络后几层(局部和全局注意力层)的 token,拼接后通过线性层投影到所需维度 C C C 。这种方法避免了显式 3D 重建的开销,但保留了“3D 感知(3D-aware)”的特征表示。

  • 相机输入增强:如果提供了源相机参数,会将 11 维的 g g g 通过多层感知机 (MLP) 投影为 1024 维的 token 输入给编码器;若未提供,则输入空向量。

在这里插入图片描述

三、高效的解码器

  目标相机编码:解码器采用 Plücker ray map 密集地表示目标相机 g g g。它将目标相机转化为一个 6 × H × W 6 \times H \times W 6×H×W 的图像输入,随后通过步长为 r ′ r' r 的卷积层将其转化为 H W / r ′ 2 HW/r'^2 HW/r′2 个 token,外加 4 个寄存器 token,统称为集合 s s s

  Transformer 注意力架构:解码器Transformer利用目标相机 token ( s s s) 去关注 源图像 token ( z 1 , … , z V z_1, \dots, z_V z1,,zV)。为了在质量和速度间取舍,提出了两种变体:

  • 变体 1(高质量,慢):复杂度为 O ( V 2 ) \mathcal{O}(V^2) O(V2)。将所有目标相机 token 和场景 token 拼接在一起进行**全局全注意力 (Full attention)**计算。见公式 (2): q = k = v = ( s , z 1 , … , z V ) q = k = v = (s, z_1, \dots, z_V) q=k=v=(s,z1,,zV)

  • 变体 2(高效率,快):复杂度为 O ( V ) \mathcal{O}(V) O(V)。首先仅在目标相机 token s s s 内部进行全注意力计算,随后在这组特征和场景 token ( z 1 , … , z V ) (z_1, \dots, z_V) (z1,,zV) 之间进行交叉注意力 (Cross attention) 计算。见公式 (3)。

在这里插入图片描述

四、训练

1.损失函数 (Loss Function)

  模型通过最小化新视图合成 (NVS) 损失进行训练,即缩小模型预测的新视图与真实标签(Ground Truth)之间的差距。具体使用的是均方误差 (L2 Loss) 和 感知损失 (Perceptual Loss) 的组合。公式表示为: L = λ 2 L 2 + λ p L p \mathcal{L} = \lambda_2\mathcal{L}_2 + \lambda_p\mathcal{L}_p L=λ2L2+λpLp

2.微调策略 (Fine-tuning Strategy)

  由于编码器是基于预训练的 VGGT 模型初始化的,作者需要在“端到端微调整个模型”和“仅训练新参数(主要在解码器)”之间做选择。

实验发现,必须对整个模型进行端到端的微调才能获得良好的结果(原因:VGGT 预训练时提取的特征,其原本的训练目标并不是为了保留源图像的“外观 (appearance)”,也不具备理解相机位姿条件 (camera pose conditioning) 的能力

3.训练数据 (Training Data)

  数据格式 训练数据为图像元组 ( I , g , I 1 , g 1 , … , I V , g V ) (I, g, I_1, g_1, \dots, I_V, g_V) (I,g,I1,g1,,IV,gV),需要带有相机位姿信息。
  数据集来源:受 VGGT 启发,模型混合了 13 个多视角数据集进行训练。代表性数据集:包含典型的 NVS 数据集,例如 RealEstate10k、DL3DV 和 WildRGBD。整体数据集的规模和多样性与训练 VGGT 时所用的数据量大致匹配。

  

  实现细节。采用预训练 VGGT 模型(预训练)作为编码器;解码器采用ViT-B[17]Transformer架构,搭配FlashAttention[13,14,60]注意力机制

  数据增强策略。为提升模型对输入数据的鲁棒性,随机采样1至10个源视角、选择性剔除相机标记以及调整图像纵横比。

在这里插入图片描述

  

  

  

  

  

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐