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 先提取降采样特征,每个视图通过局部窗口注意力与最近的两个邻近视图交换信息。随后,平面扫描在候选深度上将邻视图特征变换到参考视图,用点积相似性形成沿深度排列的代价体;深度模块再融合单目特征,估计逐像素深度。它同时利用跨视图对应和单目先验,而不是只凭单张图猜位置。
有深度后,每个像素先由内参反投成相机坐标点,再用外参放到共同世界坐标。对应图像特征随点一起搬运。按体素尺寸除坐标并取最近整数,属于同一体素的点特征取平均,得到一个三维位置对应一个聚合特征的稀疏网格。用符号压缩这一核心汇合关系,可写为:
这里 \(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,而不是必然因分辨率更细而提高。正文没有充分交代坐标尺度规范,不能把这个数直接当作所有真实场景都适用的物理尺寸。
一个完整示例¶
考虑两张房间照片都看到了洗手台边缘,另外几张照片补充其侧面。这是帮助理解的示意流程,不是新增实验或作者报告的单独样本。
- 深度模块从视图间匹配和单目特征估计边缘位置,再把每个像素及其特征变成世界坐标点。被遮挡的边缘没有因“融合”凭空成为可见观测。
- 两个预测点若落在同一体素,就先平均它们的特征,只保留一个共享槽位;若因深度错误而落在不同体素,它们暂时仍是两个槽位,不会自动知道彼此应当相同。
- 稀疏残差精化让这些格子观察周围洗手台与墙面的几何上下文,修正用于预测的特征。然后每格生成一个具有局部偏移和可学习形状的高斯。
- 目标相机下渲染出新画面。训练时与该位置的真实 RGB 比较;推理时没有这张目标真值,直接使用已训练网络生成场景并渲染。
因此,体素层先做的是证据汇合与空间建模,并不是在高斯已经预测完之后单纯删掉重复基元。
损失函数 / 训练策略¶
训练采用新视角 RGB 监督,不需要在所述目标中增加深度真值或外部点云标签。对一次渲染的目标视图,损失结合像素均方误差与感知距离:
这是依据第 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 提供了一个简单而有效的替代范式,且零样本泛化优势突出,具有很高的实用和研究迁移价值。