跳转至

G3R: Gradient Guided Generalizable Reconstruction

会议: ECCV 2024
arXiv: 2409.19405
代码: https://waabi.ai/g3r (项目页面)
领域: 3D视觉
关键词: 可泛化3D重建, 3D高斯溅射, 梯度引导, 学习优化器, 大场景神经渲染

一句话总结

提出G3R,一种梯度引导的可泛化重建方法,通过学习一个重建网络迭代地利用可微渲染的3D梯度反馈更新3D Neural Gaussians表示,在大规模场景(>10,000m²)上实现2分钟内重建,加速至少10倍且达到与3DGS可比或更优的渲染质量。

研究背景与动机

领域现状: NeRF和3DGS等神经渲染方法已在大场景重建上实现高质量渲染,但需要耗时的逐场景优化(数小时)。可泛化方法(Generalizable NVS、Large Reconstruction Models)虽然快速,但主要适用于小场景/物体,且渲染质量较低。

现有痛点: 逐场景优化方法(如3DGS)耗时长且容易过拟合源视图,大视角变化时出现伪影。可泛化方法通常从少量源视图(≤5张)提取特征做前馈预测,受限于网络容量和内存开销,无法处理大场景所需的上百张高分辨率输入图像。

核心矛盾: 逐场景优化方法有高质量渲染但慢且缺乏泛化性;前馈预测方法快但质量差且难以扩展到大场景——如何结合两者的优势?

本文目标: 实现首个可泛化的大规模3D场景快速重建方法,在2分钟内为 >10,000m² 的场景生成可编辑的3D表示,同时保证高质量新视角渲染。

切入角度: 将可微渲染的梯度作为2D→3D的信息桥梁,训练一个"学习优化器"网络利用梯度反馈迭代更新3D表示,取代传统的梯度下降优化。

核心 idea: 渲染→计算梯度→用神经网络而非梯度下降来解读梯度并更新3D表示——学习如何优化比直接优化更快更好。

方法详解

整体框架

G3R范式(Fig. 2c)介于可泛化方法和逐场景优化之间:给定源图像和初始3D点(来自LiDAR/MVS),初始化3D Neural Gaussians \(\mathcal{S}^{(0)}\),然后迭代\(T\)步——每步先可微渲染→计算重建损失→反向传播得到3D梯度 \(\nabla_{\mathcal{S}^{(t)}}\)→重建网络 \(G_\theta\) 读取梯度和当前表示→预测表示更新→得到 \(\mathcal{S}^{(t+1)}\)。仅需24步迭代即可达到甚至超越3DGS数千步的效果。

关键设计

  1. 3D Neural Gaussians: 在标准3DGS表示 \(g_i \in \mathbb{R}^{14}\)(位置3+缩放3+旋转4+颜色3+不透明度1)的基础上,为每个高斯点扩展一个潜在特征向量 \(h_i \in \mathbb{R}^C\),通过MLP解码 \(g_i = f_{\text{mlp}}(h_i)\) 转换为标准高斯进行渲染。前14个通道固定为标准属性并用skip connection保证稳定优化。场景分解为静态背景 \(\mathcal{S}^{\mathcal{B}}\)、动态物体 \(\mathcal{S}^{\mathcal{A}}\)(假设刚体运动 \(\mathcal{T}(\mathcal{S}^{\mathcal{A}}, \boldsymbol{\xi}^{\mathcal{A}})\))和远景区域 \(\mathcal{S}^{\mathcal{Y}}\)。渲染公式为 \(f_{\text{render}}(\mathcal{S}; \Pi) = f_{\text{rast}}(f_{\text{mlp}}(\mathcal{S}^{\mathcal{B}}, \mathcal{S}^{\mathcal{Y}}, \mathcal{T}(\mathcal{S}^{\mathcal{A}}, \boldsymbol{\xi}^{\mathcal{A}})); \Pi)\)。设计动机:潜在特征赋予网络额外的表达能力,使其在迭代更新中可以存储关于场景的隐式信息。

  2. 梯度引导的2D到3D提升: 与传统方法逐张处理源图像不同,G3R通过"渲染+反向传播"将所有2D图像信息聚合到3D空间。具体地,渲染当前3D表示到所有源视图 \(\hat{\mathbf{I}}^{\text{src}} = f_{\text{render}}(\mathcal{S}; \Pi^{\text{src}})\),计算重建损失 \(L = \sum_i \| \mathbf{I}_i^{\text{src}} - f_{\text{render}}(\mathcal{S}; \Pi_i^{\text{src}}) \|_2\),反向传播得到3D梯度 \(\nabla_\mathcal{S} = \frac{\partial L}{\partial \mathcal{S}}\)。这些3D梯度天然是遮挡感知的、可高效聚合任意多张图像的、且利用了当前3D表示作为proxy的。设计动机:传统方法用网络独立处理每张图像,内存随源图像数线性增长;梯度方式则通过反向传播自然聚合,与图像数量解耦。

  3. 迭代重建网络 (G3R-Net): 核心更新公式为 \(\mathcal{S}^{(t+1)} = \mathcal{S}^{(t)} + \gamma(t) \cdot G_\theta(\mathcal{S}^{(t)}, \nabla_{\mathcal{S}^{(t)}} L; t)\),其中 \(\gamma(t)\) 使用DDIM的余弦递减调度。网络 \(G_\theta\) 采用3D UNet + 稀疏卷积处理Neural Gaussians。梯度在输入前按通道归一化。动态场景用3个独立网络分别处理背景、物体和远景。训练时 \(T=24\) 步,训练约1000个场景迭代。设计动机:迭代机制让网络先预测粗略表示再逐步精修,渐进式更新降低了单步预测的难度。

损失函数 / 训练策略

  • 总损失: \(\mathcal{L} = \mathcal{L}_{\text{mse}}(\hat{\mathbf{I}}, \mathbf{I}) + \lambda_{\text{lpips}} \mathcal{L}_{\text{lpips}}(\hat{\mathbf{I}}, \mathbf{I}) + \lambda_{\text{reg}} \mathcal{L}_{\text{reg}}(\mathcal{G})\)
  • 正则项: \(\mathcal{L}_{\text{reg}}(\mathcal{G}) = \sum_i \max(0, d_i^{\min} - \epsilon)\),鼓励每个高斯的最小scale通道趋于扁平以贴合表面
  • 关键训练策略: 每步更新后渲染到源视图和新视图计算损失,但只有源视图的梯度作为下一步 \(G_\theta\) 的输入(新视图测试时不可用)。新视图监督帮助网络学到更泛化的3D表示而非过拟合源视图。
  • 训练约30小时,2块RTX 3090。Warm-up策略逐步增加迭代步数。

实验关键数据

主实验:PandaSet(驾驶场景)

模型 类型 PSNR↑ SSIM↑ LPIPS↓ 重建时间 渲染FPS
ENeRF 可泛化 24.43 0.736 0.306 0.057s/视图 6.93
PixelSplat 可泛化 23.21 0.653 0.490 0.74s/视图 147
Instant-NGP 逐场景 24.34 0.729 0.436 7min 16s 3.24
3DGS 逐场景 25.14 0.747 0.372 50min 14s 121
G3R (turbo) ours 24.76 0.720 0.438 31s 121
G3R ours 25.22 0.742 0.371 123s 121

主实验:BlendedMVS(无人机大场景,更大视角变化)

模型 类型 PSNR↑ SSIM↑ LPIPS↓ 重建时间 渲染FPS
PixelSplat++ 可泛化 19.60 0.404 0.601 69s 158
Instant-NGP 逐场景 24.86 0.639 0.459 26min 48s 1.65
3DGS 逐场景 25.12 0.668 0.462 39.5min 97.0
G3R (turbo) ours 24.56 0.674 0.421 98s 97.0
G3R ours 25.22 0.707 0.390 210s 97.0

消融实验(PandaSet)

配置 PSNR SSIM LPIPS 说明
G3R (完整) 25.22 0.742 0.371 基线
−3D Neural Gaussian表示 24.72 0.718 0.420 使用标准3DGS表示,潜在特征很重要
−迭代重建 20.03 0.510 0.623 单步预测严重不足
−新视图训练 24.59 0.715 0.419 仅源视图→过拟合,新视图监督是泛化关键
−更新调度 \(\gamma(t)\) 25.03 0.732 0.400 恒定更新→性能下降

跨数据集泛化(PandaSet→BlendedMVS)

配置 PSNR SSIM LPIPS
零样本迁移 24.11 0.653 0.448
微调2个场景 24.99 0.676 0.428

关键发现

  • 速度优势: G3R仅需2分钟完成重建,比3DGS(50分钟)加速25倍,比Instant-NGP(7分钟)快3.5倍
  • 迭代是核心: 去掉迭代(单步预测)PSNR暴跌5.2dB,验证了学习优化器范式中"渐进精修"的必要性
  • 梯度 > 特征投影: 3D梯度作为2D→3D的桥梁优于传统特征投影,因为它天然遮挡感知且可聚合任意多图像
  • 泛化性极强: PandaSet训练的模型零样本迁移到BlendedMVS(驾驶→无人机)已优于在BlendedMVS上训练的所有可泛化基线
  • 鲁棒性: 在大视角外推测试中,G3R显著优于3DGS(3DGS出现黑洞和错误颜色),因为新视图训练监督避免了过拟合

亮点与洞察

  • "学习如何优化"范式: 用神经网络替代传统优化器(如Adam),网络不仅利用梯度方向信息,还利用跨场景学到的空间相关性先验——这是meta-learning在大规模3D重建中的成功应用
  • 梯度即表征: 巧妙地将可微渲染的梯度重新解读为2D→3D的信息载体,而非仅仅是优化信号。梯度天然聚合了所有源视图的信息且考虑了遮挡
  • 场景分解: 将动态场景分为背景+物体+远景,用独立网络分别处理,配合刚体运动假设,使方法可处理真实驾驶场景的复杂动态
  • 实用性强: 重建生成的是标准3D Gaussian格式,可直接用于实时渲染(>90 FPS)、场景编辑和多相机仿真

局限与展望

  • 大范围外推仍有伪影,可能需要场景补全或更好的表面正则化
  • 性能依赖初始化点云的密度,稀疏点初始化效果下降(但可用LiDAR或快速MVS缓解)
  • 未建模非刚体形变(如行人运动)和发光照明效果
  • 禁用了视角相关的球谐函数以减少内存,可能限制了高光效果的渲染质量
  • 学习优化器范式可推广到TriPlane+NeRF渲染或可泛化表面重建等其他3D逆问题

相关工作与启发

  • 3DGS: G3R可视为"用学习优化器加速3DGS",重建网络替代了Adam优化器的角色
  • PixelSplat: 前馈预测3D Gaussians的代表,但受限于低分辨率图像对和小场景
  • Learning to Optimize (Andrychowicz et al., 2016): G3R直接继承了"用梯度下降来学习梯度下降"的思想
  • DeepView: 也用迭代网络+梯度引导重建MPI,但每步用不同CNN且只能处理少量图像
  • 启发: 梯度反馈信号作为2D-3D桥梁的思路非常通用,可以应用于任何需要从大量2D观测重建3D的场景

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 梯度引导+学习优化器的范式在大规模3D重建领域是首创且极具启发性
  • 实验充分度: ⭐⭐⭐⭐ 覆盖驾驶和无人机两类大场景、消融全面、有跨数据集泛化和场景编辑演示
  • 写作质量: ⭐⭐⭐⭐⭐ 三种范式的对比图(Fig.2)极其清晰,方法推导严谨,论述层层递进
  • 价值: ⭐⭐⭐⭐⭐ 在大规模场景重建领域开创了新范式,对自动驾驶仿真和数字孪生有直接应用价值

相关论文