MVSplat: Efficient 3D Gaussian Splatting from Sparse Multi-View Images¶
Abstract¶
- 本文提出 MVSplat,一个高效的前馈模型,能够从稀疏多视图图像中预测干净的 3D 高斯
- 为了准确定位高斯中心,构建了基于平面扫描的代价体积(cost volume)表示,其中存储的跨视图特征相似性能够为深度估计提供有价值的几何线索
- 在仅依赖光度监督的情况下,联合学习高斯中心和其他高斯原语参数
- 在大规模 RealEstate10K 和 ACID 基准测试中,MVSplat 实现了最快的前馈推理速度(22 fps)的 SOTA 性能
- 相比最新的 SOTA 方法 pixelSplat,MVSplat 使用少 10 倍的参数,推理速度快 2 倍以上,同时提供更高的外观和几何质量以及更好的跨数据集泛化能力
Introduction¶
现有前馈高斯溅射方法的局限性:
- Splatter Image:使用标准图像到图像架构回归像素对齐的高斯参数,主要针对单视图物体级 3D 重建,对于更一般和更大的场景重建具有固有的歧义性
- pixelSplat:为双目重建问题回归高斯参数,为每个输入视图预测概率深度分布然后从中采样深度,但仅从图像特征预测可靠的概率深度分布具有挑战性,导致几何重建质量相对较低并产生噪声伪影
贡献¶
- 通过平面扫描在 3D 空间中构建代价体积表示来准确定位 3D 高斯中心,将任务表述为学习执行特征匹配来识别高斯中心,而非先前工作中从图像特征进行数据驱动的 3D 回归
- 通过多视图一致的深度估计获得 3D 高斯中心,同时并行预测其他高斯属性(协方差、不透明度和球谐系数)
- 相比 pixelSplat,使用 10 倍更少的参数和 2 倍以上更快的推理速度,同时提供更高的外观和几何质量以及更好的跨数据集泛化
Related Work¶
稀疏视图场景重建与合成¶
现有稀疏视图方法可以分为两类:
- 逐场景优化方法:主要设计有效的正则化项来更好地约束优化过程,但由于昂贵的逐场景梯度反向传播过程,推理时间固有地较慢
- 跨场景前馈推理方法:从大规模数据集学习强大的先验,通过单次前馈推理实现 3D 重建和视图合成,比逐场景优化方法快得多
前馈 NeRF¶
- pixelNeRF:开创了从图像预测像素对齐特征用于辐射场重建的范式
- 后续改进:通过使用特征匹配信息、Transformer 和 3D 体积表示逐步改进
- MuRF:基于目标视图视锥体积和 \((2+1)D\) CNN 的 SOTA 前馈 NeRF 模型,但训练昂贵且渲染相对较慢
- 共同问题:所有现有前馈 NeRF 模型都受到渲染过程中昂贵的逐像素体积采样的影响
前馈 3DGS¶
- Splatter Image:从单视图使用 U-Net 模型回归像素对齐的高斯参数,主要关注物体级重建
- Flash3D:扩展到场景级重建,但由于单图像提供的信息有限,在复杂场景上的性能本质上不令人满意
- pixelSplat:从两个输入视图回归高斯参数,演示了从极线 Transformer 学习的跨视图感知特征的重要性,但从特征到深度分布的映射本质上是模糊和不可靠的
- GPS-Gaussian:针对人体重建的前馈高斯模型,依赖于两个校正的立体图像来估计视差,训练时需要真实深度监督
多视图立体视觉¶
- 概念相似性:尽管与成熟的 MVS 重建流水线在概念上相似,但本方法具有独特优势
- 单步推理:与典型 MVS 方法涉及分离的深度估计和点云融合阶段不同,利用 3DGS 表示的独特属性在单步中推理 3D 结构
- 无需真实几何监督:模型完全可微分,不需要真实几何监督进行训练,使其更具可扩展性并适用于野外场景
Method¶
问题定义¶
给定 \(K\) 个稀疏视图图像 \(I=\{I_i\}_{i=1}^K\)(\(I_i \in \mathbb{R}^{H \times W \times 3}\))和对应的相机投影矩阵 \(P=\{P_i\}_{i=1}^K\),目标是学习映射:
其中高斯参数包括位置 \(\mu_j\)、不透明度 \(\alpha_j\)、协方差 \(\Sigma_j\) 和颜色 \(c_j\)(表示为球谐函数)。
多视图深度估计¶
模型纯粹基于 2D 卷积和注意力,不使用任何 3D 卷积,使模型高效。
多视图特征提取¶
- CNN 特征提取:使用浅层 ResNet-like CNN 提取 4 倍下采样的逐视图图像特征
- Transformer 处理:使用带有自注意力和交叉注意力层的多视图 Transformer 在不同视图间交换信息,采用 Swin Transformer 的局部窗口注意力提高效率
- 输出:获得跨视图感知的 Transformer 特征 \(\{F_i\}_{i=1}^K\)(\(F_i \in \mathbb{R}^{\frac{H}{4} \times \frac{W}{4} \times C}\))
代价体积构建¶
构建 \(K\) 个代价体积预测 \(K\) 个深度图。以视图 \(i\) 的代价体积构建为例:
-
深度候选采样:在给定深度范围间,在逆深度域中均匀采样 \(D\) 个深度候选 \(\{d_m\}_{m=1}^D\)
-
特征变形:使用相机投影矩阵将视图 \(j\) 的特征 \(F_j\) 变形到视图 \(i\):
\[F_{j \rightarrow i}^{d_m} = W(F_j, P_i, P_j, d_m) \in \mathbb{R}^{\frac{H}{4} \times \frac{W}{4} \times C}\] -
相关性计算:计算 \(F_i\) 和 \(F_{j \rightarrow i}^{d_m}\) 之间的点积:
\[C_i^{d_m} = \frac{F_i \cdot F_{j \rightarrow i}^{d_m}}{\sqrt{C}} \in \mathbb{R}^{\frac{H}{4} \times \frac{W}{4}}\] -
多视图聚合:当有超过两个视图时,类似地变形其他视图特征并计算相关性,然后像素级平均所有相关性
-
代价体积组装:收集所有相关性得到视图 \(i\) 的代价体积:
\[C_i = [C_i^{d_1}, C_i^{d_2}, \cdots, C_i^{d_D}] \in \mathbb{R}^{\frac{H}{4} \times \frac{W}{4} \times D}\]
代价体积细化¶
使用轻量级 2D U-Net 进一步细化代价体积:
- 输入处理:U-Net 以 Transformer 特征 \(F_i\) 和代价体积 \(C_i\) 的拼接为输入
- 残差输出:输出残差 \(\Delta C_i \in \mathbb{R}^{\frac{H}{4} \times \frac{W}{4} \times D}\),添加到初始代价体积
- 细化结果:\(\tilde{C}_i = C_i + \Delta C_i\)
- 跨视图信息交换:在 U-Net 架构的最低分辨率注入三个交叉注意力层
- 上采样:低分辨率代价体积最终通过基于 CNN 的上采样器上采样到全分辨率 \(\hat{C}_i \in \mathbb{R}^{H \times W \times D}\)
深度估计¶
使用 softmax 操作获得逐视图深度预测:
- 归一化:在深度维度上归一化细化的代价体积 \(\hat{C}_i\)
-
加权平均:对所有深度候选 \(G = [d_1, d_2, \cdots, d_D] \in \mathbb{R}^D\) 执行加权平均:
\[V_i = \text{softmax}(\hat{C}_i)G \in \mathbb{R}^{H \times W}\]
深度细化¶
使用非常轻量级的 2D U-Net 进一步提高预测深度的质量:
- 输入:多视图图像、特征和当前深度预测
- 输出:逐视图残差深度,添加到当前深度预测作为最终深度输出
- 跨视图注意力:在最低分辨率引入交叉注意力层以跨视图交换信息
高斯参数预测¶
高斯中心 \(\mu\)¶
获得多视图深度预测后,使用相机参数直接将其反投影到 3D 点云,将逐视图点云转换为对齐的世界坐标系并直接组合为 3D 高斯的中心。
不透明度 \(\alpha\)¶
从 softmax 操作 \(\text{softmax}(\hat{C}_i)\) 获得的匹配分布中,可以获得匹配置信度作为 softmax 输出的最大值。匹配置信度与不透明度具有相似的物理意义(匹配置信度高的点更可能在表面上),因此使用两个卷积层从匹配置信度输入预测不透明度。
协方差 \(\Sigma\) 和颜色 \(c\)¶
使用两个卷积层预测这些参数,输入为拼接的图像特征、细化的代价体积和原始多视图图像。协方差矩阵 \(\Sigma = R(\theta)^T \text{diag}(s) R(\theta)\) 由缩放矩阵 \(s\) 和通过四元数表示的旋转矩阵 \(R(\theta)\) 组成,颜色 \(c\) 从预测的球谐系数计算。
训练损失¶
模型预测一组 3D 高斯参数,然后用于在新视点渲染图像。使用真实目标 RGB 图像作为监督,训练损失计算为 \(\ell_2\) 和 LPIPS 损失的线性组合,损失权重分别为 1 和 0.05。
Experiments¶
实验设置¶
- 数据集:RealEstate10K(67,477 训练场景,7,289 测试场景)和 ACID(11,075 训练场景,1,972 测试场景)
- 基线方法:pixelNeRF、GPNR、AttnRend、MuRF、pixelSplat
- 评估指标:PSNR、SSIM、LPIPS,以及推理时间和模型参数
- 分辨率:所有实验在 256×256 分辨率下进行
主要结果¶
-
图像质量评估:在所有视觉质量指标上超越之前的 SOTA 模型
- 在 LPIPS 指标上有更明显的改善,该指标与人类感知更好对齐
- RealEstate10K:PSNR 26.39,SSIM 0.869,LPIPS 0.128
- ACID:PSNR 28.25,SSIM 0.843,LPIPS 0.144
-
模型效率:在所有比较模型中显示最快的推理时间和轻量级模型大小
- 推理时间:0.044s(包括编码和渲染阶段)
- 参数量:12.0M(比 pixelSplat 少 10 倍)
- 编码器运行时间:0.043s(比 pixelSplat 的 0.102s 快 2 倍以上)
-
几何重建质量:产生比 pixelSplat 质量显著更高的 3D 高斯原语
- pixelSplat 需要额外的 50,000 步深度正则化微调才能实现合理的几何重建
- MVSplat 仅通过光度监督训练就能生成高质量几何
-
跨数据集泛化:在分布外新场景泛化方面本质上更优越
- 主要由于代价体积捕获特征间的相对相似性,与特征的绝对尺度相比保持不变
- 在 RE10K → ACID 和 RE10K → DTU 的跨数据集测试中均优于 pixelSplat
消融研究¶
-
代价体积的重要性:代价体积是 MVSplat 成功的基石
- 移除代价体积导致 PSNR 下降超过 3dB,LPIPS 增加 0.064(近 50% 的相对退化)
- 没有代价体积的变体表现出两个输入视图的直接叠加
-
交叉注意力的重要性:跨视图匹配在学习多视图几何中非常重要
- 移除交叉注意力导致 1dB PSNR 下降,并出现过拟合问题
-
代价体积细化 U-Net 的重要性:对于处理具有挑战性的区域很重要
- 对于只存在于一个输入中的内容,U-Net 细化对于将高频细节从输入视图映射到高斯表示很重要
- 总体改善约 0.7dB PSNR
-
深度细化:额外的深度细化有助于提高深度质量,本质上导致更好的视觉质量
Limitations¶
- 反射表面:模型可能对反射表面(如玻璃和窗户)产生不可靠的结果,这是现有方法的开放挑战
- 数据集多样性:模型目前在 RealEstate10K 数据集上训练,尽管规模大但多样性不足以鲁棒地泛化到野外真实世界场景
- 训练数据依赖:未来探索模型在更大、更多样化训练数据集上的可扩展性(如通过混合多个现有场景级数据集)将是有趣的方向
Conclusion¶
MVSplat 是一个高效的前馈 3D 高斯溅射模型,通过构建代价体积利用多视图对应信息实现更好的几何学习,这与现有采用数据驱动设计的方法不同。通过为 3D 高斯原语预测量身定制的精心设计编码器,MVSplat 在两个大规模场景级重建基准测试中设定了新的 SOTA。相比最新的 SOTA 方法 pixelSplat,MVSplat 使用 10 倍更少的参数和 2 倍以上更快的推理速度,同时提供更高的外观和几何质量以及更好的跨数据集泛化能力。