跳转至

VolSplat: Rethinking Feed-Forward 3D Gaussian Splatting with Voxel-Aligned Prediction

会议: ECCV2026
arXiv: 2509.19297
论文: ECCV 原文
领域: 重建与渲染
关键词: 前馈重建、体素对齐、3D 高斯泼溅、多视图融合、新视角合成

一句话总结

VolSplat 保留多视图深度估计,却把“每个像素直接产生一个高斯”改为“先把带特征的预测点聚合到共享体素、再在三维邻域精化并预测高斯”,在 RealEstate10K 的 6 视图设置达到 31.30 dB PSNR,并将改进重点放在跨视图融合位置与基元组织方式,而非取消深度或相机依赖。

研究背景与动机

前馈 3D 高斯泼溅把逐场景反复优化换成一次网络预测:输入若干已知相机参数的图像,直接得到能够渲染新视角的高斯场景。pixelSplat、MVSplat、DepthSplat 等方法常以图像像素为基元索引。假如每个输入像素都产生一个高斯,那么一张图的所有像素不论落在平整墙面还是复杂边缘,都占用一个输出槽位;增加输入视图又会重复描述已见表面。

问题不只是高斯多。不同视图的预测深度不完全一致,同一表面的反投点可能错开;如果高斯在二维特征图上已经各自决定参数,后续便缺少在共同三维邻域中协调这些分歧的机会。原文因此同时关心跨视图不一致造成的漂浮物,以及输出基元分布受二维采样影响的问题。这里不能误读成“像素对齐方法的世界坐标高斯必然均匀分布”:固定的是逐像素生成关系,投影后的实际三维密度还受深度、视角和可见性影响。

VolSplat 没有抛弃已有深度网络或二维匹配,而是改变参数预测前的信息汇合点。先把各视图证据搬到共同空间,落在相同体素的特征先合并,邻近体素再相互补充,最后才生成高斯。核心 idea:把三维邻域变成高斯预测之前的共享推理空间,而不是把每张图独立预测出的高斯留到最后再融合。

方法详解

整体框架

输入是多视图 RGB 图像及相机参数,输出是体素索引的三维高斯场景,再按目标相机渲染新视角。共享 ResNet 与局部跨视图注意力提取特征,平面扫描代价体结合单目特征估计各视图深度。这些二维模块仍然是几何入口,并未被三维卷积取代。

接下来,体素特征聚合把带特征的反投点放入世界坐标的共享容器;稀疏残差精化利用三维邻域修正特征;体素高斯预测为占据体素输出中心、不透明度、协方差与颜色参数。目标视图 RGB 只在训练时提供渲染监督,不是推理必须取得的额外输入。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["多视图 RGB<br/>相机内外参"] --> B["二维特征与深度<br/>跨视图匹配 + 单目特征"]
    B --> C["体素特征聚合<br/>反投、量化、平均"]
    C --> D["稀疏残差精化<br/>三维邻域与多尺度融合"]
    D --> E["体素高斯预测<br/>局部中心与外观参数"]
    E --> F["目标相机渲染<br/>新视角图像"]
    G["训练监督<br/>目标 RGB"] -.->|MSE 与 LPIPS| F

这条推理链只需输入视图,不对每个新场景重新运行优化。可微渲染把训练误差传回预测网络;“前馈”不代表离线训练不需要优化,也不意味着已解决无位姿重建。

关键设计

1. 体素特征聚合:同一空间位置先合证据,再决定输出基元

图像特征并非直接丢进一个无几何约束的三维网络。共享 ResNet 先提取降采样特征,每个视图通过局部窗口注意力与最近的两个邻近视图交换信息。随后,平面扫描在候选深度上将邻视图特征变换到参考视图,用点积相似性形成沿深度排列的代价体;深度模块再融合单目特征,估计逐像素深度。它同时利用跨视图对应和单目先验,而不是只凭单张图猜位置。

有深度后,每个像素先由内参反投成相机坐标点,再用外参放到共同世界坐标。对应图像特征随点一起搬运。按体素尺寸除坐标并取最近整数,属于同一体素的点特征取平均,得到一个三维位置对应一个聚合特征的稀疏网格。用符号压缩这一核心汇合关系,可写为:

\[ V_v=\frac{1}{|S_v|}\sum_{p\in S_v}f_p. \]

这里 \(S_v\) 是落入体素 \(v\) 的反投点集合,\(f_p\) 是每个点携带的图像特征,平均发生在点集合上,并非把特征通道压成一个标量。多个视图对同一空间区域的观测可以在生成高斯前共享表示,重复像素也不必各自产生一个输出高斯。平均池化却不是可靠的身份匹配器:深度估错可能把不同表面混进一个格子,估计分歧太大也可能仍落入不同格子。

2. 稀疏残差精化:让邻域纠错发生在有空间含义的网格中

刚聚合的体素只汇集了落入该格的局部证据,尚未理解邻近格子的结构。例如,一个边界附近的深度噪声点可能与周围平面不一致,单格预测器看不到这种关系。稀疏 3D U-Net 在体素特征上做编码、解码和跳跃连接,将不同尺度的局部与更大范围上下文汇合,再输出每个占据体素的特征修正量。

网络预测的是残差,而不是把聚合特征全部重新生成;修正量加回原始体素特征,保留已有观测并学习哪些内容需要调整。这里被修正的是特征,不应说成直接把一个错误三维点沿确定方向搬回真表面。空间邻域有助于下游预测更一致的几何和外观,但论文没有给出对任意深度错误都能纠正的保证。

消融支持“怎样精化”比仅仅加一层三维网络更重要。12 视图设置下,完整模型为 29.40 dB,去掉精化后为 27.47;换成稀疏 3D CNN 是 28.01,不用残差则为 27.92。它们都是本文设置中的经验差异,不是残差学习对其他骨干的普遍增益定律。可读正文只说明稀疏卷积实现,没有证据把实现库指定为 MinkowskiEngine。

3. 体素高斯预测:解除一像素一基元,不等于脱离观测采样

最终每个占据体素产生一个高斯,参数向量共 38 维,包含中心偏移、不透明度、协方差及球谐颜色表示。中心相对体素中心预测,偏移通过 sigmoid 后减去 0.5,再按三倍体素尺寸缩放,因此可在体素中心两侧的局部邻域移动;不透明度也经 sigmoid。体素并不是把最终高斯中心钉死在规则格点上的硬量化。

这一改变将高斯数量从固定的输入像素数转为占据体素数。重复观测落在同一格时先融合,而新的可见表面仍能增加占据格。它允许更符合几何的非均匀分布,但不是显式学习了一个“复杂度分数”再按分数分配高斯,也没有在不可见区域任意生长新体素的模块。实际数量仍间接受输入分辨率、视图覆盖、深度和体素尺寸影响;“解除一一绑定”比“完全不依赖输入视图”更准确。

体素尺寸同时影响合并程度、邻域连通和细节保留。过大时不同结构可能被合并,过小时同一表面证据又会分散。表 4 的默认值为 0.1,列标题标为 cm;缩小至 0.05 的 PSNR 为 29.34,而不是必然因分辨率更细而提高。正文没有充分交代坐标尺度规范,不能把这个数直接当作所有真实场景都适用的物理尺寸。

一个完整示例

考虑两张房间照片都看到了洗手台边缘,另外几张照片补充其侧面。这是帮助理解的示意流程,不是新增实验或作者报告的单独样本。

  1. 深度模块从视图间匹配和单目特征估计边缘位置,再把每个像素及其特征变成世界坐标点。被遮挡的边缘没有因“融合”凭空成为可见观测。
  2. 两个预测点若落在同一体素,就先平均它们的特征,只保留一个共享槽位;若因深度错误而落在不同体素,它们暂时仍是两个槽位,不会自动知道彼此应当相同。
  3. 稀疏残差精化让这些格子观察周围洗手台与墙面的几何上下文,修正用于预测的特征。然后每格生成一个具有局部偏移和可学习形状的高斯。
  4. 目标相机下渲染出新画面。训练时与该位置的真实 RGB 比较;推理时没有这张目标真值,直接使用已训练网络生成场景并渲染。

因此,体素层先做的是证据汇合与空间建模,并不是在高斯已经预测完之后单纯删掉重复基元。

损失函数 / 训练策略

训练采用新视角 RGB 监督,不需要在所述目标中增加深度真值或外部点云标签。对一次渲染的目标视图,损失结合像素均方误差与感知距离:

\[ \mathcal L=\sum_{m=1}^{M}\left[\mathcal L_{\mathrm{MSE}}(\hat I_m,I_m)+0.05\mathcal L_{\mathrm{LPIPS}}(\hat I_m,I_m)\right]. \]

这是依据第 3.4 节可读描述整理的目标结构,不是对缓存损坏公式的逐字符恢复。RGB 监督不代表完全无先验:网络仍使用已知相机参数与预训练 Depth Anything V2 特征。前文宣称不需要辅助先验时,应理解为没有新增外部三维监督,而非不再用预测深度。

实现使用 PyTorch、AdamW 与余弦学习率调度。Depth Anything V2 骨干学习率为 \(2\times10^{-6}\),其他层为 \(2\times10^{-4}\)。RealEstate10K 和 ScanNet 实验训练 150,000 次迭代,使用 4 张 NVIDIA H20、总 batch size 4,图像分辨率为 \(256\times256\),训练输入为 6 视图;消融采用 12 视图。

正文没有明确给出目标视图固定为 8 张,也没有说明 ScanNet 必须从 RealEstate10K 顺序微调,故不补写这些配置。ACID 则明确直接使用 RealEstate10K 训练模型,不在目标数据上微调。多输入视图的测试帧选择跨度也未在可读描述中充分展开,不能仅凭 6/12/24 的名字推断其为完全相同难度的嵌套输入集。

实验关键数据

主实验

表格一节选原文表 1。三元指标分别为 PSNR(越高越好)、SSIM(越高越好)和 LPIPS(越低越好)。表注称重训所有基线,AnySplat 和 WorldMirror 也给定真实相机位姿,但作者指出它们的无位姿设计未能充分利用这些输入;不能由此直接推断它们在各自原始任务中较弱。

RealEstate10K 配置 方法 PSNR ↑ SSIM ↑ LPIPS ↓
6 视图 DepthSplat 30.52 0.931 0.079
6 视图 VolSplat 31.30 0.941 0.075
12 视图 DepthSplat 28.54 0.919 0.088
12 视图 WorldMirror 26.03 0.859 0.072
12 视图 VolSplat 29.40 0.928 0.085
24 视图 DepthSplat 26.26 0.880 0.115
24 视图 WorldMirror 26.47 0.875 0.071
24 视图 VolSplat 27.21 0.896 0.111

原表注说全部指标均最优,但 12/24 视图下 WorldMirror 的 LPIPS 分别为 0.072/0.071,优于 VolSplat 的 0.085/0.111,不能重复“全部指标第一”。24 视图中 TranSplat 的 PSNR 为 26.65,所以相对最强表内基线的差距是 0.56 dB;0.95 dB 是相对 DepthSplat,不是相对所有基线。

表格二节选原文表 2/3,两组都使用 6 个输入视图。ScanNet 是该数据集设置下的评测,ACID 才是明确的 RealEstate10K→ACID 零样本迁移,不混作同一训练条件。

数据集/设置 方法 PSNR ↑ SSIM ↑ LPIPS ↓
ScanNet FreeSplat 27.45 0.829 0.222
ScanNet WorldMirror 25.83 0.819 0.136
ScanNet VolSplat 28.41 0.906 0.127
ACID,零样本 DepthSplat 28.37 0.847 0.141
ACID,零样本 VolSplat 32.65 0.932 0.092

ACID 的 PSNR 差为 4.28 dB,支持该模型在这一跨数据集协议中更好迁移。但只凭这组结果不能证明体素表示具有普遍域不变性,也不能排除深度骨干与完整训练配方的共同作用。

消融实验

表格三取自表 4/5,在 RealEstate10K 的 12 视图设置下比较。表 4 的 PGS 定义为平均每视图高斯数;60,523 不是每场景 604K,不能混用统计单位。

来源与配置 PSNR ↑ SSIM ↑ LPIPS ↓ 显存 / GB 推理时间 / s
表 4/5:默认体素 0.1、残差 U-Net 29.40 0.928 0.085 9.04 0.768
表 4:体素 0.05 29.34 0.919 0.092 9.19 0.802
表 4:体素 0.5 27.33 0.899 0.108 8.98 0.744
表 4:体素 1 20.78 0.602 0.323 8.74 0.739
表 5:用稀疏 3D CNN 替换 U-Net 28.01 0.919 0.098 9.03 0.705
表 5:去掉残差设计 27.92 0.908 0.101 9.04 0.765
表 5:去掉精化模块 27.47 0.901 0.102 8.99 0.687

精化相对去掉模块增加 0.081 秒,并提高 1.93 dB;这是可见的质量—开销折中,不是三维处理免费。残差配置相对直接预测提高 1.48 dB。体素从 0.1 缩至 0.05 的改进没有出现,符合“更细并不自动更好”的现象,但不能仅据单点成绩证明作者提出的空间上下文解释是唯一原因。

关键发现

  • 共享容器不是额外输入视图。 图 7 的定性结果与消融支持在三维空间融合的价值,仍不能保证所有漂浮物都被消除,或每个占据格都对应正确表面。
  • 多视图列之间不能直接推导输入越多越差。 表 1 多个方法从 6 到 24 视图的绝对分数下降,测试选择及覆盖变化需要与协议共同解释;相对差距也不是对所有基线单调扩大。
  • 效率要用可核验的原文设置。 当前缓存给出的默认推理计时为 0.768 秒、9.04 GB;未找到旧笔记中的 0.575 秒、4.65 GB 或和 MVSplat/DepthSplat 的同设置计时表,故不保留这些断言。
  • 有尺度不代表完成几何验收。 主要指标评估渲染图像,没有直接报告完整的表面重建误差或位姿鲁棒性曲线;视觉更好不等于计量精度全面更高。

亮点与洞察

  • 关键选择发生在“在哪里合并证据”:在参数预测前共享三维特征,与预测后合并高斯并不等价。前者允许邻域信息影响高斯的几何及外观决策。
  • 固定网格可以作为可学习连续表示的脚手架。体素提供邻域索引,局部偏移与高斯形状负责摆脱格点限制,两者并非只能二选一。
  • 对“自适应”的理解要落到实际机制:本文通过占据格与聚合自然改变基元数量,而非显式计算复杂度并执行增殖/裁剪。这个区别决定了哪些场景缺口能由当前结构解决。

局限与展望

  • 阅读后的限制判断:深度与相机参数仍决定特征被放到哪里;体素聚合并没有证明可以自动恢复严重标定误差,也不能保证修复镜面或低纹理区域的错误几何。
  • 阅读后的限制判断:平均聚合对落入同一格的观测等权,错误深度可能混合不同表面。可研究几何置信度加权,但这是建议,不是论文已使用的模块。
  • 阅读后的限制判断:固定体素尺度对大范围场景、细薄结构及坐标归一化敏感。自适应层级网格是可探索方向,当前实验未验证其效果。
  • 评测边界:输入视图、场景和相机参数之间的几何一致性支撑当前方法;缓存未给出专门动态物体、无位姿或极端标定误差评测,也未给出多次运行误差条。
  • 证据边界:缓存包含主文与参考文献,无额外附录。部分公式抽取损坏,体素尺寸单位/尺度及目标视图数说明不足,不把未核实内容包装成可复现实装细节。

相关工作与启发

  • vs MVSplat / DepthSplat:保留二维特征、代价体及预测深度等成熟入口,主要重排高斯参数预测前的表征空间;不是不用二维匹配的纯三维方案。
  • vs 高斯后融合方案:共同目标是减少重复及不一致,区别在于共享证据发生在预测参数之前还是之后。表 1 的结果仍应尊重不同骨干的原始任务设定与指标取舍。
  • vs EVolSplat:原文指出后者探索驾驶场景体素特征并使用显式点云中间表示;VolSplat 从图像预测深度再生成点云,不能简写成“没有点云”,更准确的是不把外部点云作为所述输入条件。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 将前馈 3DGS 的核心范式从像素对齐转向体素对齐,思路简洁但颠覆性强,是该领域久被忽视的一个设计空间选择。
  • 实验充分度: ⭐⭐⭐⭐⭐ 覆盖 3 个主流基准(RealEstate10K / ScanNet / ACID)、多种输入视图配置(6/12/24)、跨域零样本、消融组件 + 体素尺寸 + 效率对比,非常全面。
  • 写作质量: ⭐⭐⭐⭐⭐ 动机明确、分析深入(定量分析了像素对齐的两大局限)、方法叙述清楚、图例对应良好。
  • 价值: ⭐⭐⭐⭐⭐ 前馈 3DGS 是当前热点领域,VolSplat 提供了一个简单而有效的替代范式,且零样本泛化优势突出,具有很高的实用和研究迁移价值。