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数千步的效果。
关键设计¶
-
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)\)。设计动机:潜在特征赋予网络额外的表达能力,使其在迭代更新中可以存储关于场景的隐式信息。
-
梯度引导的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的。设计动机:传统方法用网络独立处理每张图像,内存随源图像数线性增长;梯度方式则通过反向传播自然聚合,与图像数量解耦。
-
迭代重建网络 (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)极其清晰,方法推导严谨,论述层层递进
- 价值: ⭐⭐⭐⭐⭐ 在大规模场景重建领域开创了新范式,对自动驾驶仿真和数字孪生有直接应用价值
相关论文¶
- [ECCV 2024] Pixel-GS: Density Control with Pixel-aware Gradient for 3D Gaussian Splatting
- [ECCV 2024] MVSGaussian: Fast Generalizable Gaussian Splatting Reconstruction from Multi-View Stereo
- [CVPR 2025] Depth-Guided Bundle Sampling for Efficient Generalizable Neural Radiance Field Reconstruction
- [ECCV 2024] VCD-Texture: Variance Alignment based 3D-2D Co-Denoising for Text-Guided Texturing
- [ECCV 2024] AnimatableDreamer: Text-Guided Non-rigid 3D Model Generation and Reconstruction with Canonical Score Distillation