跳转至

DepthSplat: Connecting Gaussian Splatting and Depth

Abstract

  • 本文提出 DepthSplat,通过连接 Gaussian Splatting 和深度估计来研究两者之间的相互作用
  • 首先通过利用预训练的单目深度特征构建了一个鲁棒的多视图深度模型,从而实现高质量的前馈 3D 高斯重建
  • 证明了 Gaussian Splatting 可以作为无监督预训练目标,用于从大规模多视图姿态数据集中学习强大的深度模型
  • 通过广泛的消融实验和跨任务迁移实验验证了 Gaussian Splatting 和深度估计之间的协同作用
  • DepthSplat 在 ScanNet、RealEstate10K 和 DL3DV 数据集上的深度估计和新视图合成任务均达到了 SOTA 性能
  • 能够在 0.6 秒内从 12 个输入视图(512×960 分辨率)实现前馈重建


Introduction

新视图合成和深度预测是计算机视觉中两个基础任务,在增强现实、机器人技术和自动驾驶等众多应用中发挥着重要作用。

现有方法的局限性

  1. 前馈 3DGS 方法

    • MVSplat 依赖基于特征匹配的多视图深度估计来定位 3D 高斯位置
    • 受到与其他多视图深度方法相似的限制(如遮挡、无纹理区域和反射表面)
  2. 单目深度估计

    • 虽然在多样化的野外数据上实现了鲁棒预测,但通常缺乏多视图间的一致尺度,限制了其在 3D 重建等下游任务中的性能

贡献

  • 通过将预训练的单目深度特征集成到多视图特征匹配分支中,构建了鲁棒的多视图深度模型
  • 在保持多视图深度模型一致性的同时,在难以匹配的情况下(如遮挡、无纹理区域和反射表面)获得更鲁棒的结果
  • 利用完全可微分的 Gaussian Splatting 模块,仅需光度监督即可优化所有模型组件
  • 提供了一种新的无监督方式来预训练深度预测模型,无需真实几何信息监督
  • 在各种评估设置下均达到 SOTA 结果,并实现了 12 个输入视图(512×960 分辨率)在 0.6 秒内的快速前馈重建


多视图深度估计

  • 传统方法:利用多视图光度一致性进行特征匹配和深度预测
  • 学习方法:显著提高深度质量,但仍无法处理多视图光度一致性假设不成立的挑战性情况(如遮挡、低纹理区域和非朗伯表面)

单目深度估计

  • 进展:在单图像深度估计方面取得显著进展,能在多样化的野外数据上产生准确结果
  • 局限性:固有的尺度歧义性,难以用于 3D 重建等下游任务
  • 本文方法:利用预训练单目深度模型的强大特征来增强基于特征匹配的多视图深度估计

前馈 Gaussian Splatting

  • 像素对齐方法:pixelSplat 和 Splatter Image 从图像特征预测 3D 高斯
  • 代价体积方法:MVSplat 通过代价体积编码特征匹配信息,实现更好的几何重建
  • 数据驱动方法:LGM、GRM 和 GS-LRM 完全依赖训练数据学习先验,训练成本高昂
  • 本文优势:可在 4 GPU 上 2 天完成训练,同时支持深度模型的无监督预训练

深度与 Gaussian Splatting

  • Flash3D:探索预训练单目深度模型用于单图像 3D 高斯重建
  • TranSplat:使用单目深度改善高斯重建,但存在误差传播问题
  • 本文方法:通过早期融合代价体积和单目特征避免误差传播,性能显著优于 TranSplat


Method

问题定义

给定 \(N\) 个输入图像 \(\{I_i\}_{i=1}^N\)\(I_i \in \mathbb{R}^{H \times W \times 3}\))和对应的投影矩阵 \(\{P_i\}_{i=1}^N\)\(P_i \in \mathbb{R}^{3 \times 4}\)),目标是预测:

  • 密集的逐像素深度 \(D_i \in \mathbb{R}^{H \times W}\)
  • 逐像素高斯参数 \(\{(\mu_j, \alpha_j, \Sigma_j, c_j)\}_{j=1}^{H \times W \times N}\)

其中 \(\mu_j\)\(\alpha_j\)\(\Sigma_j\)\(c_j\) 分别是 3D 高斯的位置、不透明度、协方差和颜色。

多视图特征匹配

多视图特征提取

  1. CNN 特征提取:使用轻量级权重共享的 ResNet 架构独立提取每个图像的 \(s\) 倍下采样特征
  2. 多视图 Transformer:使用包含 6 个堆叠的自注意力和交叉注意力层的多视图 Swin Transformer 交换不同视图间的信息,得到多视角特征 \(\{ F_i \}_{i=1}^N, F_i \in \mathbb{R}^{\frac{H}{s} \times \frac{W}{s} \times C}\)
  3. 跨视图注意力策略:当输入超过两个图像时,每个参考视图与基于相机距离选择的前 2 个最近邻视图进行交叉注意力计算

特征匹配

  1. 平面扫描立体:对于每个视图 \(i\),在近远深度范围内均匀采样 \(D\) 个深度候选 \(\{d_m\}_{m=1}^D\)
  2. 特征变形:使用相机投影矩阵和每个深度候选将视图 \(j\) 的特征 \(F_j\) 变形到视图 \(i\)
  3. 相关性计算:通过点积操作测量特征相关性
  4. 代价体积构建:通过堆叠所有相关性获得代价体积 \(C_i \in \mathbb{R}^{\frac{H}{s} \times \frac{W}{s} \times D}\)

单目深度特征提取

  • 预训练模型:利用 Depth Anything V2 的预训练单目深度骨干网络
  • 特征提取:使用 patch size 为 14 的 ViT 模型,输出空间分辨率为原图像的 1/14
  • 分辨率对齐:通过双线性插值将单目特征的空间分辨率调整到与代价体积相同
  • 并行处理:为所有输入图像并行获得单目特征 \(\{F_i^{mono} \in \mathbb{R}^{\frac{H}{s} \times \frac{W}{s} \times C_{mono}}\}_{i=1}^N\)

特征融合与深度回归

  1. 特征融合:通过通道维度的简单拼接结合单目特征 \(F_i^{mono}\) 和代价体积 \(C_i\)
  2. 深度回归:使用后续的 2D U-Net 从拼接的特征中回归深度
  3. 软最大归一化:对 \(D\) 维度进行 softmax 操作并执行所有深度候选的加权平均
  4. 分层匹配:采用额外的细化步骤,在 2 倍更高的特征分辨率上进行对应搜索
  5. 全分辨率上采样:使用 DPT head 将高分辨率深度预测上采样到全分辨率

高斯参数预测

  1. 高斯中心:直接将逐像素深度图与相机参数反投影到 3D 作为高斯中心 \(\mu_j\)
  2. 其他参数:使用额外的 DPT head 预测其他高斯参数 \(\alpha_j\)(不透明度)、\(\Sigma_j\)(协方差)和 \(c_j\)(颜色)
  3. 输入融合:DPT head 以拼接的图像、深度和特征信息作为输入
  4. 新视图渲染:使用 Gaussian Splatting 操作渲染新视图

训练损失

深度估计

使用 \(\ell_1\) 损失和梯度损失:

\[L_{depth} = \alpha \cdot |D_{pred} - D_{gt}| + \beta \cdot |\partial_x D_{pred} - \partial_x D_{gt}| + \beta \cdot |\partial_y D_{pred} - \partial_y D_{gt}|\]

其中 \(\alpha = 20\)\(\beta = 20\)

视图合成

使用 MSE 和 LPIPS 损失的组合:

\[L_{gs} = \sum_{m=1}^M \left[ MSE(I_m^{render}, I_m^{gt}) + \lambda \cdot LPIPS(I_m^{render}, I_m^{gt}) \right]\]

其中 \(M\) 是单次前向传播中渲染的新视图数量,LPIPS 损失权重 \(\lambda = 0.05\)


Experiments

实验设置

  • 数据集:TartanAir(合成数据,完美真实深度)、ScanNet(室内场景)、RealEstate10K(YouTube 家庭漫游视频)、DL3DV(复杂真实世界场景)
  • 分辨率:256×256(RealEstate10K)、256×448(DL3DV)、512×960(高分辨率实验)
  • 模型变种:小型(ViT-S + 1-scale)、基础(ViT-B + 2-scale)、大型(ViT-L + 2-scale)
  • 评估指标:深度评估(Abs Rel、δ₁)、视图合成(PSNR、SSIM、LPIPS)

主要结果

  1. 模型变种分析

    • 更大的单目骨干网络和 2-scale 分层模型在两个任务上都持续改善性能
    • 更好的深度网络架构导致改善的视图合成
    • DepthSplat(Base):PSNR 27.34,SSIM 0.887,LPIPS 0.116
  2. 基准比较

    • ScanNet 深度估计:Abs Rel 3.8(有 GS 预训练)vs 5.9(UniMatch)
    • RealEstate10K 视图合成:PSNR 27.47 vs 26.39(MVSplat)
    • DL3DV 数据集:在 2、4、6 个输入视图设置下均优于 MVSplat
    • 跨数据集泛化:在 DL3DV 和 ACID 数据集上显著优于 MVSplat
  3. 效率分析

    • 相比 MVSplat 扩展到更多输入视图时更高效
    • 得益于轻量级局部特征匹配方法,避免了昂贵的全局成对匹配

消融研究

  1. 单目特征的重要性

    • 移除单目特征分支导致深度和视图合成性能明显下降
    • 在无纹理区域和反射表面等挑战性情况下显著改善
  2. 代价体积的重要性

    • 移除代价体积导致显著性能下降
    • 表明仅使用单目深度骨干网络难以获得尺度一致和多视图一致的预测
  3. 不同单目特征比较

    • 预训练的 Depth Anything V2 单目特征达到最佳视图合成结果
    • 相比 ConvNeXt-T、Midas、DINOv2 等其他特征表现更优
  4. 单目融合策略

    • 简单的拼接方法表现出色,优于其他替代方案
    • 相比显式尺度对齐、注意力融合等方法更有效

无深度监督预训练

  1. 预训练效果

    • 在 RealEstate10K 上使用 Gaussian Splatting 渲染损失进行无深度预测监督预训练
    • 预训练在挑战性数据集(如 TartanAir 和 KITTI)上的收益尤其显著
    • TartanAir:Abs Rel 10.20(有预训练)vs 10.86(无预训练)
  2. 泛化能力

    • 预训练模型在零样本设置下对未见的 ScanNet 和 KITTI 数据集表现更好
    • 预训练作为正则化引导学习走向更好的最小值,实现更好的分布外泛化

高分辨率结果

  • 在 512×960 分辨率下实现了大规模或 360° 场景的高质量重建
  • MVSplat 在此分辨率下与 6 或 12 个输入视图时出现内存不足,而 DepthSplat 显著提高了效率
  • 技术优势:最低特征分辨率为图像分辨率的 1/8(vs MVSplat 的 1/4),使用局部跨视图注意力(vs 全局成对注意力)


Limitations

  1. 相机姿态依赖:当前模型需要相机姿态作为输入,在输入视图极其稀疏时可能难以获得
  2. 像素对齐高斯:预测像素对齐的高斯,在处理大量输入视图时高斯数量会显著增大
  3. 几何表示改进:进一步改善几何表示和对多输入视图的可扩展性是令人兴奋的未来工作方向


Conclusion

DepthSplat 通过连接 Gaussian Splatting 和深度估计,在 ScanNet、RealEstate10K 和 DL3DV 数据集上的深度和视图合成任务均达到了 SOTA 结果。模型实现了使用 Gaussian Splatting 渲染损失进行无监督深度预训练的新方法,为利用大规模姿态多视图图像数据集训练更鲁棒和可泛化的多视图深度模型提供了新途径。两个任务的强大性能证明了连接 Gaussian Splatting 和深度的相互效益。