ReSplat:学习循环式 Gaussian Splatting

《ReSplat: Learning Recurrent Gaussian Splatting》完整易读学术解析

作者:Haofei Xu、Daniel Barath、Andreas Geiger、Marc Pollefeys 机构:ETH Zurich、University of Tübingen / Tübingen AI Center、Microsoft 版本:arXiv v3,2026-03-12;ECCV 2026 首次发布:2025-10-09

arXiv · PDF · 项目页 · 官方代码 · 作者演讲稿

读前导航

论文内容一句严格概括:ReSplat 先从有相机位姿的多张输入图像一次性预测一组紧凑 3D Gaussians,再把当前 Gaussians 重渲染到输入相机,从 RGB 与冻结 ResNet 特征的残差中提取反馈,并用共享权重的 3D recurrent network 反复预测 Gaussian 参数增量;测试时每轮都是前向计算,不显式求图像损失对 Gaussian 的梯度。
“gradient-free”的准确边界:它不是说训练不需要反向传播。第二阶段仍通过目标视图 rendering loss 训练 recurrent network;“无梯度”特指测试时更新器直接从 rendering error 预测增量,不像 3DGS、G3R 或 QuickSplat 那样显式计算每个场景的参数梯度。官方实现还会对上一轮 Gaussian 参数执行 detach(),因此不能把它理解成对全部 recurrent 步完整展开的传统反向传播。

输入、输出与核心假设

项目内容
输入$N$ 张 RGB 图像、每张图的内参 $K_i$ 与外参 $(R_i,t_i)$;测试时输入图像本身仍可被当作反馈目标。
输出$M$ 个显式 3D Gaussian primitives:中心、opacity、协方差/尺度旋转以及 spherical harmonics,可由 gsplat 快速 rasterize。
压缩多视图默认在 $1/4$ 深度网格上建点,$M=N\,HW/16$,相对逐像素 Gaussian 减少 $16\times$。
循环反馈静态场景、已知相机、可渲染表示,以及“输入视图重建误差能指出当前 3D 表示的缺陷”。
最终能力用同一模型在测试时选择 0–4 次更新,在速度与质量之间取舍,并借由反馈适应未见数据集、视图数与分辨率。

完整信息流

flowchart LR
  A["N 张 posed RGB 图像"] --> B["DepthSplat 式深度与图像特征"]
  B --> C["1/4 深度网格反投影
M = N·HW/16 个 3D 点"] C --> D["6 组交替 kNN / global attention"] D --> E["初始 Gaussian g⁰ 与隐状态 z⁰"] E --> F["渲染回输入相机"] F --> G["RGB 残差 + ResNet 特征残差"] G --> H["global attention 传播误差"] H --> I["4 个 kNN attention 更新块"] I --> J["Δgᵗ, Δzᵗ"] J --> K["gᵗ⁺¹, zᵗ⁺¹"] K --> F

推荐阅读路径

  1. 先看 Figure 2 与 Section 3,分清“初始化”和“循环更新”两套网络。
  2. 再看 Table 1 与 Figure 4,理解它与 per-scene optimization 的速度口径。
  3. 看 Figure 5、Table 2 和 Table 6(a),判断提升究竟来自更大模型,还是来自测试时误差反馈。
  4. 最后读 Appendix 的压缩率、local kNN、profiling 与源码核对,理解可扩展性的真实边界。
ReSplat teaser showing recurrent feed-forward refinement
Figure 1。图中把标准优化式 3DGS 的“损失—显式梯度—参数更新”与 ReSplat 的“渲染误差—学习到的更新器—参数增量”并置。曲线与可视化强调:初始结果已经可渲染,随后每一步共享同一更新网络并逐步降低误差。该图支持的是计算范式差异;速度与质量结论仍需 Table 1 和 Figure 4 的受控实验。
对应原文:Abstract

摘要逐项解析

摘要从 feed-forward Gaussian splatting 的优势出发:它避免每个场景数千次优化,但主流方法通常只做一次预测,对训练分布外数据、更多视图或不同分辨率的适应能力有限。作者把 per-scene optimization 的“逐步纠错”抽出来,改造成可以离线学习、在线前向执行的 recurrent update。

核心主张一:紧凑初始化。深度先降至 $1/4$ 高宽,因而 3D 点/Gaussian 数量变为逐像素方案的 $1/16$;局部 $k$NN 与全局 attention 用来弥补强压缩造成的上下文缺失。
核心主张二:从渲染误差做无显式梯度更新。每轮将当前 Gaussians 渲染到输入视图,结合像素与特征残差,经全局传播和 3D 局部更新网络输出参数增量。测试时无需对场景执行 backpropagation。
核心主张三:测试时适应。误差来自当前测试样本本身,因此循环网络不仅增加有效计算深度,也获得了针对当前数据的反馈。论文用跨数据集、跨视图数和跨分辨率实验验证这一点。

摘要覆盖的尺度很宽:2、8、16、32 个输入视图;$256\times256$ 到 $540\times960$;DL3DV、RealEstate10K 与 ACID。这里的“state of the art”应按各自表格限定:不同实验使用不同训练配置、Gaussian 压缩与比较方法,不能把一个 setting 的速度或参数量直接外推到全部 setting。

对应原文:Section 1 Introduction

1. Introduction

本节任务

Introduction 建立三段论证:单步 feed-forward 模型快但容量受限;per-scene 3DGS 能迭代改进但每次都需显式梯度与数千步;因此应学习一个共享权重的更新规则,让少量 recurrent steps 在保持前向推理的同时吸收“迭代纠错”的优点。

作者特别强调 rendering error 的地位。普通 feed-forward 模型在测试时只读取输入图像一次,无法观察自己的输出哪里错了。ReSplat 把输出重新渲染到已知输入相机,于是预测结果与观测之间形成闭环。这个闭环既把大任务拆成多个小增量,也让更新器在未见分布上获得样本级反馈。

分析者解释从函数形式看,单步模型学习 $G=F(I,K,R,t)$;ReSplat 学习 $G^0=F_0(I,K,R,t)$ 以及 $G^{t+1}=U(G^t,\operatorname{Render}(G^t)-I)$。第二个式子的输入随当前预测而变,因此相同权重 $U$ 可以被反复应用;“有效深度”随迭代次数增长,但参数量不随之增长。

紧凑 Gaussian 数量是另一条必要条件。若沿用每个输入像素一个或多个 Gaussian,8 张 $512\times960$ 图就会形成约 393 万个 primitives,任何 3D 邻域更新都会非常昂贵。ReSplat 用 $1/4$ 深度图把数量降至约 24.6 万,再以 3D attention 补偿信息损失。

Introduction 报告的代表结果包括:在 DL3DV 的 8-view 高分辨率设置中,相对其 compact initialization,循环模型约提升 1.49 dB(26.21→27.70);论文叙述中的约 3.5 dB 是与相邻 feed-forward/特定基线口径比较。16-view 设置比 Long-LRM 高 0.85 dB 且 Gaussians 少约 4 倍;两视图 RE10K/ACID 也达到表中最佳或接近最佳结果。

学习检查点:为什么 rendering error 同时提升模型表达能力与分布外适应?为什么循环更新必须先解决 Gaussian 数量问题?“gradient-free”是训练属性还是测试属性?
对应原文:Section 2 Related Work

2. Related Work

本节沿三条技术谱系定位 ReSplat:feed-forward Gaussian reconstruction、learning to optimize,以及用于 view synthesis 的 learned refinement。作者的差异化不只是“也做迭代”,而是同时满足 compact feed-forward initialization、rendering-error feedback、共享权重多步更新与 scene-level evaluation。

2.1 Feed-Forward Gaussian Splatting

pixelSplat、MVSplat、GS-LRM、DepthSplat、Long-LRM、AnySplat、WorldMirror 与 YonoSplat 等工作把 posed images 直接映射为 3D Gaussians,绕开 3DGS 的逐场景优化。作者归纳出两个仍待解决的问题:其一,多数方法按输入像素产生一个或多个 Gaussian,数量随视图数和分辨率线性膨胀;其二,多数模型只做单步回归,复杂场景的质量受固定网络容量限制。

与 SplatFormer 的区别尤其重要:SplatFormer 对已经通过 3DGS 优化得到的 Gaussians 做一次非循环 refinement,主要针对 object-centric 数据;ReSplat 从图像直接得到 feed-forward initialization,再以 weight-sharing recurrent network 做多步更新,并明确把 rendering error 作为反馈。Appendix 的 scene-level 复现实验显示 SplatFormer 比 ReSplat 低约 2.04 dB,但作者也说明其网格归一化对无界场景难以调节。

2.2 Learning to Optimize

learned optimizer 的共同思想,是用共享网络模拟梯度下降的迭代结构:从初值开始,反复预测修正量。RAFT optical flow、RAFT-Stereo、scene flow、DROID-SLAM、MegaSaM、IterMVS 等说明,这类模型在对应关系、几何或状态估计上往往优于一次性回归,也常有更好的分布外表现。

许多视觉 recurrent models 使用 feature correlation volume 作为反馈;ReSplat 的关键替换是用可渲染表示天然提供的 observation residual。它并不学习通用优化器,而是学习“当前 Gaussian 参数 + latent state + 聚合渲染误差 → Gaussian 增量”的任务专用更新规则。

2.3 Learning to Optimize for View Synthesis

DeepView 用 learned gradient descent 更新 multiplane images;G3R 与 QuickSplat 也依赖显式计算出的梯度,前者还要求覆盖充分的初始 3D points。ReSplat 不需要预存 3D 点:初值来自 posed images,并且测试更新只读取前向得到的误差信号。LIFe-GOM 同样迭代更新 3D 表示,但对象是 human avatar 和 Gaussian–mesh 混合表示;ReSplat 面向一般场景的新视图合成。

“不显式求梯度”不等于更新方向与优化无关。更新器是在大量训练场景上通过 rendering loss 学出来的,因此可以被理解为 amortized、task-specific optimizer;只是推理时把昂贵的逐场景自动微分替换为一次网络前向。
ReSplat complete pipeline
Figure 2,完整 pipeline。左半部分:$N$ 张图经深度/特征网络,在 $1/4$ 网格上反投影为 $M=N HW/16$ 个带特征点;六组交替的局部 $k$NN 与 global attention 聚合 3D context,Gaussian head 输出 $g_j^0$,聚合特征作为 $z_j^0$。右半部分:每轮先重渲染输入视图,计算 RGB 与 feature error;global attention 使每个位置吸收全局残差信息;四个 $k$NN attention blocks 输出 $\Delta g_j^t,\Delta z_j^t$。图中循环箭头是测试时真实执行路径,loss supervision 只在训练时存在。
对应原文:Section 3 Approach

3. Approach

全局符号与坐标约定

符号形状/类型含义坐标系或状态
$I^i$$H\times W\times3$第 $i$ 张输入 RGB像素/图像坐标,观测量
$K^i$$3\times3$相机内参像素投影
$(R_i,t_i)$$SO(3),\mathbb R^3$外参论文记号未在此句固定 world-to-camera 或 camera-to-world;代码批次使用 4×4 extrinsics 并在进入网络前统一变到参考相机坐标
$p_j,\mu_j$$\mathbb R^3$反投影点/Gaussian 中心以中间输入视图为参考的全局 3D 坐标
$g_j^t$$\mathbb R^{59}$第 $t$ 轮 Gaussian 参数拼接位置、opacity、scale/rotation 与 3 阶 SH;是被增量更新的显式状态
$z_j^t$$\mathbb R^{C_0}$latent hidden state不直接渲染,携带初始化与历史更新信息
$\hat e_j^t,e_j^t$$\mathbb R^{256}$全局传播前/后的 rendering-error feature与 $1/4$ 多视图网格逐点对齐

问题定义

给定 $N$ 张 posed images,目标是预测 $\mathcal G=\{(\mu_j,\alpha_j,\Sigma_j,\mathrm{sh}_j)\}_{j=1}^{M}$。$\mu$ 是中心,$\alpha$ 是 opacity,$\Sigma$ 决定三维椭球形状,$\mathrm{sh}$ 是视角相关颜色。与隐式 radiance field 不同,这些 primitives 可以直接经 Gaussian rasterization 得到新视图。

方法把困难拆成两步:$F_0$ 负责“在一次前向中给出足够好的紧凑初值”,$U$ 负责“读取当前误差并作小步修正”。多视图默认 $M=N\,HW/16$;例如 8×512×960 得到 245,760 个 Gaussians,与 Table 1 的 246K 一致。

3.1 Initial Gaussian Reconstruction

本节的输入是图像和相机,输出是显式初始 Gaussian $g^0$ 及随后循环使用的隐状态 $z^0$。架构以 DepthSplat 为基础,但把逐像素生成改成强压缩点集,再引入 3D context aggregation 抵消质量下降。

Subsampled 3D Space

深度网络先产生全分辨率估计,再 resize 到 $H/4\times W/4$。每个低分辨率像素利用深度、内参与外参反投影成一个 3D 点,并附着从输入图像提取的特征 $f_j$。Small 模型 $C_0=256$,Base 模型 $C_0=512$。

Equation (1)
$$\{I_i,K_i,R_i,t_i\}_{i=1}^{N}\ \longrightarrow\ \{(p_j,f_j)\}_{j=1}^{M},\qquad M=N\frac{HW}{16}.$$

执行顺序:图像编码与深度预测 → 深度降采样到 $1/4$ → 像素射线乘深度得到相机坐标点 → 用相机位姿变换到公共参考坐标 → 将同位置图像特征与点配对。高宽各降 4 倍,所以点数降 16 倍。

边界:如果深度偏差使中心点落错位置,后续更新只能在固定 Gaussian 数量上改参数,不能额外 densify;这也是结论中的首项限制。

Aggregating the 3D Context

直接从每个压缩点独立解码 Gaussian 会丢失局部表面连续性和跨视图一致性。作者交替使用六个 $k$NN attention 与 global attention blocks:前者在三维近邻间恢复局部几何,后者允许相隔较远、来自不同视图的点交换场景级信息。

Equation (2)
$$\{(p_j,f_j)\}_{j=1}^{M}\ \longrightarrow\ \{(p_j,f_j^*)\}_{j=1}^{M}.$$

位置 $p_j$ 在此阶段保持不变,变化的是特征 $f_j\mapsto f_j^*$。公式省略了六个 block 的内部层级;官方实现的 point transformer 在相对 3D 坐标上构造 attention,而 global branch 对更稀的 token 执行全局交互。

Decoding to Gaussians

3D 点本身被直接用作 Gaussian centers;两层 MLP Gaussian head 从 $f_j^*$ 解码其余属性。所有可渲染属性拼为 $g_j^0\in\mathbb R^{59}$,而 $f_j^*$ 原样初始化 hidden state:$z_j^0=f_j^*$。这样,显式参数承担当前可渲染场景,latent state 保留比 59 维低层参数更丰富的语义和局部结构。

Equation (3)
$$\mathcal G^0=\{(g_j^0,z_j^0)\}_{j=1}^{M},\qquad z_j^0=f_j^*.$$

这里的 $\mathcal G^0$ 比标准 3DGS 集合多了 $z^0$。渲染器只消费从 $g^0$ 拆出的 means、covariances、opacities 与 SH;recurrent updater 同时读取 $g^t$ 和 $z^t$。

3.2 Recurrent Gaussian Update

在第 $t\in\{0,\ldots,T-1\}$ 轮,模型不重新生成整套 Gaussians,而是预测参数与隐藏状态的残差。训练时 $T$ 在 1–4 之间随机采样;推理时可选不同 $T$。共享同一套更新权重,使单模型可以按预算增加 test-time compute。

Equation (4)
$$g_j^{t+1}=g_j^t+\Delta g_j^t,\qquad z_j^{t+1}=z_j^t+\Delta z_j^t.$$

直觉:更新器只需预测“还差多少”,而不必在每轮从头构造合法 Gaussian。残差形式也让零增量对应保持当前结果。

官方代码实现对传入下一轮的 Gaussian 参数执行 stop-gradient,并冻结用于误差提取的 ResNet-18。训练梯度用于学习当前更新网络和 supervision 分支,但不会无界地穿过之前所有 Gaussian 状态。

Computing the Rendering Error

当前 $g^t$ 先渲染出输入相机图像 $\hat I_i^t$。像素分支计算 $\hat I_i^t-I_i$,再用 pixel unshuffle 将空间 $4\times$ 下采样并把信息移入通道;特征分支把 rendered 与 ground truth 分别送入 ImageNet 预训练 ResNet-18 的前三个 stage,取得 $1/2$、$1/4$、$1/8$ 特征,统一双线性 resize 到 $1/4$ 后拼接为 256 通道,再相减。

Equation (5)
$$\hat E^t=f(\{\hat I_i^t\},\{I_i\})=\{\hat F_i^t-F_i\}_{i=1}^{N}+\operatorname{proj}(\{\hat I_i^t-I_i\}_{i=1}^{N}).$$

proj 是线性投影加 LayerNorm,用来把 pixel-unshuffle 后的 RGB 残差对齐到 256 维 feature error。两者做逐元素加法,而不是 concat;Table 6(a) 显示 add 比 concat 高 0.14 dB。

为何需要两种误差:RGB 残差保留精确颜色与边缘错位,ResNet 特征对结构和局部语义更稳健。单独 feature error 已明显强于 RGB error,但两者相加最好。

Propagating the Rendering Error to Gaussians

虽然误差网格与 Gaussian 数量相同,但“同索引拼接”并不等价于正确 credit assignment:一个 Gaussian 可能投影到多个视图和多个像素,也可能因遮挡只在部分视图可见。作者不显式计算 rasterizer Jacobian,而是在全部误差 token 上做 global attention,让每个位置从全局残差中学习应关注的证据。

Equation (6)
$$E^t=\operatorname{global\_attention}(\hat E^t)=\{e_j^t\}_{j=1}^{N HW/16}.$$

输入与输出 token 数相同,区别在于 $e_j^t$ 已聚合所有视图/位置的信息。为控制成本,实际 global attention 还会先 pixel-unshuffle 到 $H/16\times W/16$,计算后再 pixel-shuffle 回 $1/4$。

Recurrent Gaussian Update Module

每个点把当前显式参数 $g_j^t$、latent state $z_j^t$ 与传播后的误差 $e_j^t$ 拼接,再经过四个 $k$NN attention blocks。recurrent 模型用 $k=8$,比初始化的 $k=16$ 更强调局部细节;四层 MLP head 解码 Gaussian 增量,同时更新 hidden state。

Equation (7)
$$\{(g_j^t,z_j^t,e_j^t)\}_{j=1}^{M}\ \longrightarrow\ \{(\Delta g_j^t,\Delta z_j^t)\}_{j=1}^{M}.$$

Equation (7) 与 Equation (4) 合起来定义一次状态转移。论文观察四轮后收敛/饱和;这不是数学停止条件,而是训练范围与实验证据决定的实践上限。

3.3 Training Loss

训练严格分两阶段。第一阶段只学习 compact initialization;第二阶段冻结整个初始化模型,只训练 recurrent module。这样第二阶段面对稳定的 $g^0,z^0$ 分布,计算与显存也更可控。

Equation (8)
$$L_{\mathrm{1st}}=\sum_{v=1}^{V}\ell_{\mathrm{render}}(\hat I_v,I_v)+\alpha\sum_{i=1}^{N}\ell_{\mathrm{smooth}}(I_i,\hat D_i),\qquad \alpha=0.01.$$

$V$ 是每步监督的 target views,$N$ 是 context/input views。第一项直接约束新视图渲染,第二项只正则化输入视图预测深度,不要求 ground-truth depth。

Equation (9)
$$\ell_{\mathrm{render}}(\hat I,I)=\ell_1(\hat I,I)+\lambda\,\ell_{\mathrm{perceptual}}(\hat I,I),\qquad \lambda=0.5.$$

$L_1$ 保持像素一致性,VGG feature-space perceptual loss 约束更高层结构。训练监督施加在 target views,而循环反馈误差来自可用的 context views,两者角色不同。

Equation (10)
$$\ell_{\mathrm{smooth}}(I,\hat D)=|\partial_x\hat D|e^{-|\partial_x I|}+|\partial_y\hat D|e^{-|\partial_y I|}.$$

在图像平坦区,指数权重大,抑制无依据的深度振荡;在强图像边缘,权重下降,允许深度发生不连续。它是 edge-aware regularizer,不证明所有颜色边缘都对应几何边缘。

Equation (11)
$$L_{\mathrm{2nd}}=\sum_{t=0}^{T-1}\gamma^{T-1-t}\sum_{v=1}^{V}\ell_{\mathrm{render}}(\hat I_v^t,I_v),\qquad \gamma=0.9.$$

每个 recurrent prediction 都受监督,越靠后的轮次权重越高:当 $T=4$ 时四轮系数为 $0.9^3,0.9^2,0.9,1$。这防止模型只在最后一步才纠错,同时把最终质量作为主要目标。官方代码中第二阶段初始化 forward 位于 torch.no_grad(),并对前一步 Gaussian 状态做 detach;因此 Equation (11) 的多步监督不应被误读为完整 BPTT 穿过所有参数状态。

学习检查点:像素误差为何要 pixel-unshuffle?global attention 在没有显式 rasterization gradient 时承担什么功能?$z^t$ 与 $g^t$ 为什么不能合并为同一种状态?两阶段训练的冻结边界在哪里?
对应原文:Section 4 Experiments

4. Experiments

实验回答五个问题:紧凑初始化是否仍有竞争力;少量 learned recurrent steps 是否优于数千步优化;反馈能否改善分布外泛化;收益能否由更大单步模型替代;各个误差、坐标系与 attention 组件是否必要。

指标口径:PSNR 与 SSIM 越高越好,LPIPS 越低越好。PSNR 是对像素误差的对数变换,dB 差值不能直接当作线性百分比;SSIM/LPIPS 分别更偏结构与感知距离。论文各表未报告标准差、置信区间或显著性检验,因此微小差距只能视作本次评估结果,不能自动解释为统计显著。

Implementation Details

方法以 PyTorch 实现,初始化 point transformer 用 $k=16$,recurrent update 用 $k=8$。renderer 基于 gsplat 中的 Mip-Splatting 实现;优化器为 AdamW。损失权重固定为 $\alpha=0.01,\lambda=0.5,\gamma=0.9$。正文没有逐项列出 learning rate、batch size 或随机种子;公开配置与 Appendix 的训练 schedule 补足了阶段、步数和硬件,但复现仍需以指定 commit 的 YAML/脚本为准。

Efficient Global Attention

直接对 $N\times H/4\times W/4$ token 做二次复杂度 global attention 会随分辨率迅速膨胀。实现先用 pixel unshuffle 再降 $4\times$ 空间尺度,即在 $N\times H/16\times W/16$ token 上计算 attention,之后 pixel shuffle 恢复到 $1/4$。这是无参数的 reshape,不是丢弃像素;代价是细粒度空间信息被搬到通道中,由 attention 的投影层重新混合。

Efficient kNN

低于约 300K 点时默认使用 Pointcept 的定制 CUDA global kNN;其暴力候选搜索的理论复杂度为 $O(M^2)$,在更多视图/更高分辨率下成为瓶颈。作者另给 local kNN:同一视图取半径 $r_s=3$ 的 $7\times7$ 窗口,把 3D query 投影到其他相机后再取半径 $r_c=3$ 的窗口,最后只在固定大小候选集内按三维欧氏距离选 top-$k$,复杂度写为 $O(MC)$,常数候选数 $C$ 固定时即线性。

Model Sizes

模型深度 backbone初始化循环模块总参数用途
ReSplat-SmallViT-S62M15M(profiling 表中精确为约 13.8M)77M主要消融
ReSplat-BaseViT-B209M14M223M默认主结果
ReSplat-LargeViT-L559M未用于循环比较559M测试“放大单步模型能否替代循环”

Coordinate System

COLMAP 提供的世界坐标在不同场景中任意;而 3D update network 要直接读取 Gaussian centers,坐标分布会影响学习难度。作者把全部相机/点变换到输入序列的空间中心视图(顺序轨迹通常是 middle frame)坐标。这样最大相对位姿距离更均衡。Table 6(b) 显示 middle view 比原始 COLMAP 坐标高 0.93 dB,也优于 first/last view。

Evaluation Settings

设置输入数据集比较重点
高分辨率多视图8 views,$512\times960$DL3DV重新训练 3DGS、MVSplat、DepthSplat;质量、Gaussian 数、重建/渲染时间
大场景覆盖16 views,$540\times960$DL3DV遵循 Long-LRM protocol,比较 full-scene reconstruction
标准稀疏双视图2 views,$256\times256$RealEstate10K;零样本 ACID与 pixelSplat、MVSplat、DepthSplat、GS-LRM、Long-LRM、LVSM 比较
附录规模变化8/16/32 views,$256\times448$DL3DV与 4000-step 3DGS 比较 view-count scaling

注意:不同表的输入图像、测试视图范围、模型 checkpoint 与 Gaussian 配置不完全相同,跨表直接相减不构成公平对比。

4.1 Main Results

Table 1:DL3DV,8 views,$512\times960$

方法类别迭代PSNR ↑SSIM ↑LPIPS ↓#Gaussians重建时间(s)渲染时间(s)
3DGSOptimization100020.360.6670.4489K150.0001
3DGSOptimization200023.180.7630.269137K310.0005
3DGSOptimization300023.420.7700.232283K500.0008
3DGSOptimization400023.460.7700.224359K700.0009
MVSplatFeed-Forward022.490.7640.2613932K0.1290.0030
DepthSplatFeed-Forward024.170.8150.2083932K0.1900.0030
ReSplatFeed-Forward026.210.8420.185246K0.3110.0007
ReSplatFeed-Forward127.150.8590.169246K0.4370.0007
ReSplatFeed-Forward227.510.8650.163246K0.5630.0007
ReSplatFeed-Forward327.650.8670.161246K0.6890.0007
ReSplatFeed-Forward427.700.8680.160246K0.8160.0007

Table 1 同时说明初始化与 refinement。迭代 0 已比 DepthSplat 高 2.04 dB,说明 compact 3D context regressor 本身有效;四轮再增加 1.49 dB。Gaussian 数始终固定 246K,是逐像素 MVSplat/DepthSplat 的 $1/16$,渲染时间约快 4.3 倍。相对 4000-step 3DGS,重建时间 0.816s 对 70s,约 85.8 倍;论文将不同配置下的总体趋势概括为约 $100\times$。

DL3DV novel view synthesis comparisons
Figure 3。逐列比较 ground truth、3DGS、MVSplat、DepthSplat 与 ReSplat。放大区域显示基线常见的几何断裂、纹理模糊与边界 ghosting;ReSplat 的结构更完整、残差图更暗。定性图支持误差类型的解释,但只展示选定场景,不能替代整个测试集统计。

8-view 高分辨率结论

控制输入视图与分辨率后,ReSplat 同时改善 PSNR/SSIM/LPIPS,并大幅减少 Gaussian 数。其重建时间比一次性 MVSplat/DepthSplat 更长,因为需深度、3D attention 与 recurrent steps;优势主要是仍远快于 optimization,同时显式表示的渲染更快。四轮以后边际增益从第一轮的 +0.94 dB 降到第四轮的 +0.05 dB,直接预示“迭代饱和”的限制。

PSNR versus iterations for ReSplat and 3DGS from same initialization Time versus iterations for ReSplat and 3DGS from same initialization
Figure 4(a–b)。两种 refinement 从同一 ReSplat initialization 出发,横轴分别是更新次数与累计时间。ReSplat 四次前向更新达到的质量,需要标准 3DGS 约 80 次显式梯度更新;累计 reconstruction speedup 为 $53\times$。右图局部还显示单次 learned update 更快,因为不构建/反传渲染梯度。

Optimization-based vs feed-forward refinement

这个实验比 Table 1 更能隔离 refinement 机制:初始化完全相同,差别只在后续用 learned updater 还是 3DGS optimizer。结论是 learned prior 能把训练集上积累的更新规律迁移到新场景,用更少步数获得大部分改进。它不能证明无限步 learned update 会优于收敛后的 3DGS;论文恰恰观察到 ReSplat 四轮后趋于饱和。

Cross-dataset generalization curve Cross-view generalization curve Cross-resolution generalization curve
Figure 5(a–c)。(a) 从只训练 DL3DV 的模型转到 RealEstate10K,循环轮次持续改善;(b) 输入视图数改变时,initial model 较早饱和,而 recurrent model 更能利用额外观测;(c) 测试分辨率偏离 $512\times960$ 时,循环更新修复单步模型的明显下降,在 $320\times640$ 上论文报告约 +5 dB。三个子图都以迭代 0 为同模型的无反馈基线。

跨数据集、视图数与分辨率

这些实验支持“feedback-based adaptation”而不仅是“更深网络”。输入域变化后,rendering residual 仍以相同物理含义指出当前表示与观测的不一致;更新器因而可以修正初始化的系统性偏差。局限是反馈来自已知输入视图,它不保证不可见区域一定改善,也可能在遮挡、曝光变化或错误相机位姿下产生误导。

Table 2:单步模型 vs recurrent models

类别方法参数PSNR ↑SSIM ↑LPIPS ↓
Single-stepWorldMirror1263M23.540.7890.193
Single-stepReSplat-Small init62M26.770.8650.142
Single-stepReSplat-Base init209M27.370.8770.130
Single-stepReSplat-Large init559M27.860.8860.121
RecurrentReSplat-Small,1轮77M28.170.8900.118
RecurrentReSplat-Small,2轮77M28.730.8980.110
RecurrentReSplat-Small,3轮77M28.960.9010.107
RecurrentReSplat-Small,4轮77M29.070.9020.105

参数放大不能替代误差纠正

77M 的 Small recurrent 只比其初始化多 15M 参数,一轮就以 28.17 dB 超过 559M 的 Large initialization(27.86);四轮差距增至 1.21 dB。与 1263M WorldMirror 的差距为 5.53 dB。受控程度最好的是同一 ReSplat family 内的 Small/Base/Large 对比;跨 WorldMirror 的架构和训练差异更大,应作为补充而非单变量证据。

ReSplat recurrent update from different initializations
Figure 6。以 MVSplat、ReSplat-Small 和 ReSplat-Base 三种初值启动同类 recurrent refinement,曲线都随迭代上升,且更强初值保持更高最终质量。MVSplat 有 $16\times$ 更多 Gaussians,使更新约慢 $13\times$,说明初值质量与 primitive 数量都影响循环成本。

不同初始化的迁移

更新器并非只能修复自己的 Base initialization;它对不同初值都能提供单调改善,支持“rendering error 是通用反馈”这一判断。不过曲线也表明强初始化仍然重要:循环不会完全抹平起点差距,且过多 Gaussians 会使 3D attention 成本急升。

RealEstate10K visual comparisons
Figure 7。RealEstate10K 两视图结果中,ReSplat 相比 MVSplat 与 DepthSplat 生成更锐利、连贯的建筑和室内结构。该设置并不使用默认 $16\times$ 总 Gaussian 压缩:作者为低冗余双视图改用 $1/2$ 深度网格并从每个点解码 4 个 Gaussians,使总量与逐像素方法接近。

Table 3:DL3DV,16 views,$540\times960$

方法迭代PSNR ↑SSIM ↑LPIPS ↓重建时间#Gaussians
3DGS3000021.200.7080.26413 min
Mip-Splatting3000020.880.7120.27413 min
Scaffold-GS3000022.130.7380.25016 min
Long-LRM022.660.7400.2920.4 s2073K
ReSplat022.690.7420.3070.7 s518K
ReSplat123.230.7580.2911.2 s518K
ReSplat223.510.7660.2841.7 s518K

16-view full-scene reconstruction

该 setting 覆盖更大场景,ReSplat 两轮达到 23.51 dB,比 Long-LRM 高 0.85 dB,Gaussian 数约为其四分之一;但 reconstruction 1.7s 慢于 Long-LRM 的 0.4s,作者将差距主要归因于 kNN。LPIPS 方面 Scaffold-GS 的 0.250 仍最好,说明 ReSplat 并非每个指标都占优。

Table 4:RealEstate10K 两视图

方法使用 3DGS 表示PSNR ↑SSIM ↑LPIPS ↓
pixelSplat25.890.8580.142
MVSplat26.390.8690.128
DepthSplat27.470.8890.114
GS-LRM28.100.8920.114
Long-LRM28.540.8950.109
LVSM enc-dec28.580.8930.114
LVSM dec-only29.670.9060.098
ReSplat29.750.9120.100

两视图配置与结论

两视图的跨视图冗余较低,若仍只保留 $HW/16$ 个 primitives 会过度压缩。因此模型在 $1/2$ 深度网格上取点(空间 $4\times$ subsampling),每点解码 4 个 Gaussians,总数恢复到逐像素量级。ReSplat 在 PSNR/SSIM 最好,LPIPS 比 LVSM dec-only 高 0.002;其显式 Gaussians 支持论文所述约 $20\times$ 更快 rendering,但文章表格没有列出这项计时细节。

Table 5:RealEstate10K → ACID 零样本泛化

方法PSNR ↑SSIM ↑LPIPS ↓
pixelSplat27.640.8300.160
MVSplat28.150.8410.147
DepthSplat28.370.8470.141
GS-LRM28.840.8490.146
ReSplat29.870.8640.135

ACID cross-dataset generalization

模型只在 RE10K 训练,直接测试 ACID。ReSplat 比最强表中 baseline GS-LRM 高 1.03 dB、SSIM 高 0.015、LPIPS 低 0.011,支持误差反馈缓解 domain gap。该表没有单独列出“迭代 0 vs 迭代 4”,因此它证明的是完整 ReSplat 的跨域结果,机制归因还需结合 Figure 5 与 Table 6(a)。

4.2 Analysis and Ablation

全部消融使用 ReSplat-Small、DL3DV 8 views、$256\times448$,共同 initialization 为 26.77/0.865/0.142。由于 setting 与 Table 1 不同,29.07 dB 不应与高分辨率 27.70 dB 横向比较。

Table 6 总览

Table 6 分成四个受控面板,分别改变 rendering error、坐标系、initial model context aggregation 与 recurrent model state/attention。四组共同指向一个结论:紧凑表示需要局部+全局 3D context,循环纠错需要当前误差、latent state 和局部更新,而坐标归一化决定这些空间模式是否易于学习。

Table 6(a):rendering error

方法PSNR ↑SSIM ↑LPIPS ↓
Initialization26.770.8650.142
无 rendering error27.190.8730.137
仅 RGB error27.900.8820.130
仅 feature error28.770.8970.110
RGB/feature concat28.930.9000.106
RGB/feature add29.070.9020.105

误差反馈贡献

去掉 error 后更新网络仍能把 26.77 提到 27.19,说明共享 prior 自身可做 refinement;加入完整 error 后达到 29.07,相对无误差高 1.88 dB。feature error 比 RGB 高 0.87 dB,二者融合再增 0.30 dB;addition 比 concat 仅高 0.14 dB,属于较小但一致的三指标改善。

Table 6(b):coordinate system

参考坐标PSNR ↑SSIM ↑LPIPS ↓
Initialization26.770.8650.142
COLMAP world28.140.8860.116
First view28.660.8960.109
Last view28.590.8950.110
Middle view29.070.9020.105

坐标选择的作用

相对原始 COLMAP 坐标,middle-view alignment 提升 0.93 dB。first/last 已能消除场景任意世界坐标,但中间视图进一步缩短到两端的最大变换距离,使点云中心与尺度分布更均衡。这一结论依赖顺序相机轨迹;对无序环拍,“middle”需要按空间中心重新定义。

Table 6(c):initial reconstruction model

方法PSNR ↑SSIM ↑LPIPS ↓#Gaussians
DepthSplat25.790.8610.134918K
Full initialization26.770.8650.14257K
无 kNN attention25.300.8330.17857K
无 global attention26.330.8560.15057K
两者都无24.500.8140.20057K

紧凑初始化为何可行

去掉 kNN 下降 1.47 dB,去掉 global attention 下降 0.44 dB,两者都去掉下降 2.27 dB。局部 3D context 是压缩点集恢复表面结构的主力,全局 context 提供额外跨视图一致性。Full initialization 用 57K Gaussians 超过 918K 的 DepthSplat PSNR/SSIM,但 LPIPS 略差 0.008,不能概括为所有指标全面胜出。

Table 6(d):recurrent model

方法PSNR ↑SSIM ↑LPIPS ↓
Initialization26.770.8650.142
Full29.070.9020.105
无 state $z^t$27.790.8780.125
无 kNN attention28.580.8940.111
无 global attention28.960.9000.107

循环状态与 attention

去掉 latent state 的损失最大:-1.28 dB,说明 59 维显式 Gaussian 参数不足以承载初始化网络的高层信息与迭代历史。去掉 kNN 为 -0.49 dB,去掉 error global attention 为 -0.11 dB;后者绝对差较小,但三项指标一致下降。Figure S5 提供对应的视觉证据。

对应原文:Section 5 Conclusion

5. Conclusion

论文最终贡献可以压缩为一个闭环:compact feed-forward initialization 让 3D 更新在高分辨率、多视图下可计算;input-view rendering error 让更新器看到自己的错误;共享权重 recurrent network 把 test-time compute 转成逐步质量提升。实验表明,该组合能减少 Gaussian 数、提高 rendering speed,并增强跨数据集、视图数和分辨率的稳健性。

限制一:Gaussian 数量固定。循环阶段只更新已有 primitives 的参数,不执行 3DGS 式 pruning 或 densification。初始化遗漏的薄结构、远处区域或复杂遮挡,可能无法仅靠移动/缩放固定数量的 Gaussians 完全恢复。作者把学习式自适应增删作为未来方向。
限制二:四轮后饱和。训练只随机采样 1–4 轮,Table 1 的边际增益也快速衰减。当前反馈表示和更新器无法继续有效利用更多 test-time compute;作者建议探索更有信息量的反馈机制。因而 ReSplat 不是可无限迭代直到场景最优的通用 optimizer。

Acknowledgments

作者感谢 Naama Pearl、Xudong Jiang、Stefano Esposito、Ata Celen 的评论,以及 Yung-Hsu Yang、Kashyap Chitta 的讨论。Andreas Geiger 获 ERC Starting Grant LEGO-3D(850533)和 DFG EXC 2064/1(390727645)支持;工作还获 Swiss AI Initiative / CSCS Alps 项目 a144 支持。

References 的技术范围

原文参考文献完整收录于论文 PDF;本文不逐条重抄 bibliography,而保留其在论证中的四类功能:3DGS/Mip-Splatting/gsplat 提供显式表示与 renderer;pixelSplat、MVSplat、GS-LRM、DepthSplat、Long-LRM 等构成 feed-forward baselines;RAFT、DROID-SLAM、IterMVS 等建立 learning-to-optimize 谱系;DeepView、G3R、QuickSplat、SplatFormer、LIFe-GOM 界定 learned refinement 的相邻方法。所有定量比较仍以对应表格和论文指定实现为准。

对应原文:Appendix overview

Appendix 总览

26 页 arXiv v3 已把补充材料并入同一 PDF。Appendix A 扩展比较与消融,Appendix B 给训练 schedule 和硬件,Appendix C 给更多定性图。附录不是可选旁证:它补充了 8/16/32 视图 scaling、weight sharing、SplatFormer、深度正则 3DGS、反馈特征、压缩率、local kNN 与逐模块 profiling,直接决定对效率和机制的完整判断。

对应原文:Appendix A Additional Evaluations

Appendix A. Additional Evaluations

Table S1:8/16/32 views 下与 3DGS 比较

#Views方法类别迭代PSNR ↑SSIM ↑LPIPS ↓#Gaussians重建时间(s)
83DGSOptimization400026.440.8410.134250K49
8ReSplatFeed-Forward429.200.9040.10457K0.21
163DGSOptimization400027.380.8640.119395K70
16ReSplatFeed-Forward429.010.9000.105114K0.34
323DGSOptimization400027.860.8790.113522K160
32ReSplatFeed-Forward428.300.8910.114229K0.75

View-count scaling

分辨率统一为 $256\times448$。8 与 16 views 时 ReSplat 分别高 2.76/1.63 dB;32 views 时差距缩到 0.44 dB,且 3DGS 的 LPIPS 反而略好 0.001。这说明密集观测能让逐场景优化逐渐追上 learned prior,但 ReSplat 仍快 200 倍以上。随着输入视图增加,作者扩大采样区域以覆盖更大场景,所以三组测试视图并不完全相同,不能把 PSNR 的非单调变化解释为“更多视图使 ReSplat 变差”。

Table S2:recurrent 与 non-recurrent architectures

结构#ParamsPSNR ↑SSIM ↑LPIPS ↓
Weight-sharing recurrent,iter 1 / block 413.8M28.170.8900.118
Weight-sharing recurrent,iter 2 / block 413.8M28.730.8980.110
Weight-sharing recurrent,iter 3 / block 413.8M28.960.9010.107
Weight-sharing recurrent,iter 4 / block 413.8M29.070.9020.105
Non-sharing multi-step,stack 113.8M28.170.8900.118
Non-sharing multi-step,stack 227.6M28.740.8980.109
Non-sharing multi-step,stack 341.4M28.720.8980.110
Non-sharing multi-step,stack 455.2M28.710.8970.110
Non-sharing one-step,block 413.8M28.170.8900.118
Non-sharing one-step,block 827.6M28.300.8910.116
Non-sharing one-step,block 1241.4M28.360.8930.115
Non-sharing one-step,block 1655.2M28.400.8930.115

为什么共享权重更好

把四步换成四套独立网络会把参数增至 55.2M,却在第二步后停滞在约 28.7 dB;把单步网络加深到 16 blocks 也只有 28.40 dB。共享模型的 13.8M 参数重复四次达到 29.07。作者将其解释为 weight sharing 的隐式正则化;从信息流看,它还迫使每一步学习同一种“读取当前误差并修正”的通用算子,而不是把第几步固化进权重。它同时允许推理时改变迭代数。

Table S3:SplatFormer

方法PSNR ↑SSIM ↑LPIPS ↓
SplatFormer27.030.8680.140
ReSplat29.070.9020.105

Scene-level SplatFormer comparison

作者列出四项结构差异:ReSplat 使用 rendering error;是共享多步 recurrent;初始化与 refinement 都是 feed-forward;目标是复杂 scene-level 数据。SplatFormer 依赖 Point Transformer V3 的 grid serialization,object-centric 数据可归一化到 $[-1,1]$,无界场景却难选统一 grid size。作者尝试不同 normalization 和 grid search 后报告最佳值,ReSplat 高 2.04 dB。由于 baseline 适配困难,这张表既说明实用差距,也暴露了实现公平性的限制,不能简化为架构本身的纯粹单变量胜负。

Table S4:depth-regularized sparse-view 3DGS

方法PSNR ↑SSIM ↑LPIPS ↓重建时间(s)
3DGS,无 depth loss23.460.7700.22470.0
3DGS,有 depth loss24.540.7960.20475.4
ReSplat,无外部 depth loss27.700.8680.1600.8

稀疏视图优化的额外先验

3DGS 加入 Depth Anything V2-Large 估计深度与 rendered depth 的损失后提升 1.08 dB,但仍比 ReSplat 低 3.16 dB,且因单目深度估计和 depth rendering 增至 75.4s。ReSplat 的初始化内部确实含深度预测,但不在测试优化时调用外部 monocular depth supervision;论文据此报告约 $94\times$ 重建加速。

Table S5:反馈特征 extractor

特征#ParamsPSNR ↑SSIM ↑LPIPS ↓
ResNet0.7M29.070.9020.105
DINOv286.6M29.000.9010.107

ResNet vs DINOv2

更大的 DINOv2 没有改善,反而轻微下降。作者推测 patch-based features 的空间粒度较粗,而卷积特征更保留 pixel-accurate view synthesis 所需的局部结构。0.07 dB 差距很小且无方差报告,因此可靠结论是“没有观察到升级收益”,而不是普遍证明 ResNet 比 DINOv2 更适合所有 rendering feedback。

Table S6:Gaussian compression factor

压缩率深度网格PSNR ↑SSIM ↑LPIPS ↓时间(s)
$64\times$$1/8$ 高宽24.770.7970.2260.096
$16\times$$1/4$ 高宽26.770.8650.1420.104
$4\times$$1/2$ 高宽28.360.9000.1030.206
Qualitative comparison of Gaussian compression factors
Figure S1。$64\times$ 压缩容易丢失细结构与锐利边界;$4\times$ 最清晰但点数/更新成本更高;$16\times$ 位于二者之间。图像与 Table S6 共同支持默认折中,而不是声称 $16\times$ 质量最佳。

速度—精度折中

从 $64\times$ 放宽到 $16\times$,只增加 0.008s,却提升 2.00 dB;再放宽到 $4\times$,提升 1.59 dB,但时间近乎翻倍。在 $512\times960$ 等更高分辨率下,3D attention 的额外点数代价会更明显。因此多视图主模型选 $16\times$;低分辨率双视图因信息冗余少,改用 $4\times$ 并每点解码四个 Gaussians。

Table S7:global vs local kNN

kNNPSNR ↑SSIM ↑LPIPS ↓总时间(s)
Global27.700.8680.1600.816
Local27.650.8670.1630.591

Camera-aware local kNN

在 8×$512\times960$、246K Gaussians 上,local 方案把总推理时间从 0.816s 降到 0.591s,约快 27.6%,代价为 -0.05 dB、SSIM -0.001、LPIPS +0.003。它利用“表面近邻通常来自同视图邻近像素,或其他视图中的重投影邻域”这一多视图网格先验。若相机位姿错误、投影落在遮挡表面,候选集可能漏掉真实 3D 邻居;global kNN 质量略高但规模不可持续。

Table S8:Model Profiling

作者在 8 views、两种分辨率下拆解初始模型和单次 recurrent model 的 latency。各分量之和与 total 基本一致,能够定位后续优化的优先级。

Table S8(a):Initial model

分辨率TotalDepth pred.kNN attnGlobal attnGaussian head
$256\times448$0.1490.1110.0240.0130.001
$512\times960$0.3110.1970.0940.0180.002

Table S8(b):Single recurrent step

分辨率TotalRender errorkNN attnGlobal attnUpdate head
$256\times448$0.0220.0030.0150.0020.002
$512\times960$0.1260.0160.0920.0080.010

Profiling 结论

初始化阶段的最大项是 depth prediction(高分辨率约占 63%);单次 recurrent step 的最大项是 kNN attention(约占 73%)。global attention 经压缩后并非主要瓶颈。分辨率增大时 kNN 从 0.024→0.094 和 0.015→0.092,增长显著快于 head,说明 local kNN 或更高效邻域索引是最直接的工程方向。

对应原文:Appendix B Additional Details

Appendix B. Additional Details

Training Details

所有实验使用 cosine learning-rate schedule。DL3DV 采用 progressive training:先 8 views、$256\times448$;再 fine-tune 到 8 views、$512\times960$;最后 fine-tune 到 16 views、$512\times960$。每个阶段用 16 张 NVIDIA GH200 训练 80K steps,其中 initial reconstruction 50K,recurrent model 30K。RealEstate10K $256\times256$ 先用 16 GH200 训练 initial model 200K steps,再训练 recurrent model 100K steps。

复现边界“每阶段 80K”描述的是渐进阶段的总训练结构;具体 checkpoint 继承、batch accumulation、学习率与数据 sampler 仍由公开 shell/YAML 决定。硬件规模很大,论文没有提供单卡等效时长或能耗。

对应原文:Appendix C Additional Visualizations

Appendix C. Additional Visualizations

Appendix C 不新增指标,而是把主文中的迭代趋势、baseline 差异和两类 attention 消融落到更多场景。阅读定性图时应关注跨视图几何一致性、细线/边缘、重复纹理与残差热区,而不是只看单张图的主观锐度。

Progressive ReSplat results over recurrent iterations
Figure S2。从 initialization 到 recurrent 1–4,局部结构逐步变清晰、残差缩小;后两轮变化更细微,与 Table 1 的边际增益衰减一致。图也说明更新是渐进残差修复,而非每轮重新生成完全不同场景。
Additional DL3DV novel-view comparisons
Figure S3。更多 DL3DV 场景对比 3DGS、MVSplat、DepthSplat 与 ReSplat。ReSplat 的优势常出现在物体轮廓、长直边、室内结构与高频纹理;但这些仍是作者选择的可视化样例,完整平均表现以 Table 1 为准。
Visual ablation of initial model
Figure S4。initial model 的视觉消融。移除 $k$NN 后局部几何与边界明显受损;移除 global attention 主要影响跨区域/跨视图一致性;二者都移除时压缩点集难以恢复完整结构。它与 Table 6(c) 的数值排序一致。
Visual ablation of recurrent model
Figure S5。recurrent model 的视觉消融。无 state 时更新器缺少丰富初始化信息,残差修复最弱;无 $k$NN 时细节一致性下降;无 global error propagation 的差异更细微。对应 Table 6(d) 中 -1.28、-0.49 与 -0.11 dB 的顺序。

独立 Supplement 状态

项目页与 arXiv source package 没有发布另一个独立 supplementary 文件。论文指向的全部补充实验、训练细节与可视化已整合进 26 页 arXiv v3 的 Appendix A–C,本文已逐项覆盖;因此该预留项标记为 not applicable,不是资料抓取失败。

官方代码逐模块核对

以下核对基于官方仓库 commit cc4594af97a2e559e98f5e307d80535569ae7007。代码用于澄清执行边界,不把实现细节反向包装成论文明确声称。

1. Depth and multi-view feature encoder

官方代码encoder_resplat.py 复用 DepthSplat 式 monocular/multi-view depth features,按照配置选择 ViT-S/B/L 和 feature channels。深度、图像 feature pyramid 与相机几何共同进入后续反投影,而非仅从 RGB 直接回归 59 维参数。

2. Compact Gaussian initialization

encoder_resplat.py 初始化路径 将低分辨率 depth unproject 为 3D points,交给交替 point/global transformer,再经 Gaussian adapter/head 生成 means、covariances、SH 与 opacities。gaussian_adapter.py 负责把网络原始输出变成 renderer 可用、满足范围约束的参数。

3. Pixel/feature rendering error

encoder_resplat.py 的 error branch 先渲染 context views,再构造 RGB difference;冻结 ResNet-18 的前三阶段特征被 resize 到统一尺度后相减。RGB 经 pixel-unshuffle、linear projection 与 normalization 后和 feature error 相加,和 Equation (5)、Table 6(a) 一致。

4. Recurrent state transition

recurrent path 明确对上一轮 Gaussian attributes 执行 detach(),随后 global error propagation、$k$NN update blocks 和 MLP heads 预测增量。point_transformer/layer.py 实现局部/global attention;local_knn.py 实现 camera-aware 候选生成。

5. Two-stage loss and gradient boundary

model_wrapper.py training path 区分 init 与 refine 两阶段;refine 阶段以 torch.no_grad() 调用已训练初始化模型,再对各轮 target rendering 施加指数权重损失。loss modules 实现像素/perceptual supervision 与配置组合。由此可确认:初始化被冻结,recurrent network 仍通过 backprop 学习,但测试更新无显式 per-scene gradient。

6. gsplat-based renderer

gsplat_decoder_splatting_cuda.py 将 Gaussian means、covariances、SH、opacities 与相机参数交给 gsplat rasterization,支持 RGB 与 depth 输出。renderer 同时服务于反馈回路和 target-view loss;推理无需为反馈图构建参数梯度图。

7. DL3DV / RealEstate10K data pipeline

src/dataset 分别提供 DL3DV 与 RE10K loaders、crop/augmentation shims 和 bounded/evaluation view samplers。batch 显式区分 contexttarget:context images 产生 Gaussians 并形成 rendering feedback,target images 用于新视图监督/评估。相机 normalization 代码把 poses 变到选定 pivotal camera 坐标。

8. Training scripts and presets

scripts/ 为 DL3DV 8/16/32-view、Small/Base/Large、RE10K 2-view 分别提供 init/refine shell scripts;config/ 保存 experiment、dataset、model 与 loss overrides。这与论文的 progressive schedule 对应,也说明不同表格不是一个 checkpoint 无条件覆盖全部 setting。

9. COLMAP inference and test-time execution

scripts/infer_colmap.py 可读取 COLMAP binary/text cameras 与 images,提供 8-view $512\times960$、16-view $540\times960$ 等 presets;batch 构建时以 middle context view 对齐 poses,num_refine 可设 0–4,并可保存 images、video 与 PLY。model_wrapper.py test path 执行相同初始化—循环—渲染流程及 sliding-window 选项。

完整结论:证据支持到哪里

  1. 已被主结果直接支持:在论文给定协议下,compact initialization 可以用远少于逐像素方法的 Gaussians 获得更高质量;1–4 次 learned refinement 持续改善,且远快于数千步 optimization。
  2. 已被机制消融支持:rendering error 是主要增益来源,feature error 强于纯 RGB;hidden state、局部 $k$NN、global context 与 middle-view coordinate normalization 都有贡献。
  3. 已被泛化实验支持:同一更新机制能缓解 dataset、view-count 与 resolution shift;但不可见区域、错误位姿、动态物体与曝光变化并未被系统压力测试。
  4. 不能从论文推出:ReSplat 会随无限迭代收敛到 per-scene optimum;它完全不使用梯度训练;固定 Gaussian 数足以恢复任意复杂拓扑;所有 setting 都保持 $16\times$ 总 Gaussian 压缩。

覆盖审计

类别台账单元状态说明
正文结构、主张、定义与限制28全部覆盖Abstract、Sections 1–5、Related Work 三分支、方法组件、结论与两项 limitation
公式11全部覆盖Equation (1)–(11),含符号、执行顺序和梯度边界
Figures12全部覆盖Figure 1–7 与 Figure S1–S5;15 个源图文件均已嵌入
Tables / panels20全部覆盖Table 1–6、S1–S8 及承担独立结论的 6 个子面板
实验与设置27全部覆盖20 类实验与 7 组实现/评估/训练设置
Appendix / supplement54 covered + 1 not applicableAppendix overview、A–C;无独立 supplementary 文件
官方代码映射9全部覆盖固定到官方 commit cc4594a
合计112111 covered,1 not applicable无 pending / unavailable