今天读一篇CVPR2024 Highlight的文章,这篇文章直接与NoPe-NeRF对标,相当于其3D-GS版本。
项目地址:点击前往
关于NoPe-NeRF的解读可以看我之前的文章:【论文精读】NoPe-NeRF: Optimising Neural Radiance Field with No Pose Prior
文章目录
Abstract
本论文提出一种无需COLMAP等SfM预处理的3D-GS,用于无相机位姿信息的场景重建和新视角合成。与NeRF等隐式方法不同,GS提供了显式点云表达,使得可以直接对几何结构和相机位姿进行优化。该方法通过逐帧处理输入视频,利用视频的时间连续性,逐步建立和优化一组全局高斯点云,并在过程中联合优化相机位姿。实验表明,CF-3DGS在大幅度相机运动下仍能实现优于现有方法的合成质量和位姿估计准确性。
1. Introduction
NeRF类方法对准确的相机位姿依赖严重,而常用的SfM工具如COLMAP存在:
- 特征提取不稳定;
- 在纹理缺失或重复结构场景中容易失败;
- 处理耗时。
已有一些方法尝试在NeRF框架中联合优化位姿,但由于其隐式表达和光线投射机制,优化通常困难、缓慢,且需良好的初始化。相反,Gaussian Splatting提供了显式点表示,适合直接进行变换。
CF-3DGS的核心思想:
- 局部对齐:每次仅考虑相邻两帧之间的相对位姿,估计affine变换;
- 全局整合:逐步将当前帧的信息融合到全局高斯模型中;
- 不再依赖 SfM 预处理,而是仅使用视频帧和内参。
2. Related Work
Novel View Synthesis
传统方法包括使用:
- 平面、网格、点云、多平面图像;
- NeRF及其衍生变种(MipNeRF、Zip-NeRF、Ref-NeRF等);
- PointNeRF和Gaussian Splatting等显式点云方法。
这些方法大多依赖SfM获取相机位姿。
NeRF Without SfM
为减少对SfM的依赖,已有一些尝试:
- i-NeRF、NeRFmm:联合优化姿态与 NeRF;
- BARF、GARF:使用coarse-to-fine encoding;
- Nope-NeRF:引入单目深度作为几何先验;
- MonoNeRF、RUST、FlowCam:使用自监督方式泛化到无姿态视频,但渲染效果较差。
多数方法存在问题:
- 仅适用于小范围运动;
- 训练时间长(>10h);
- 需要初始化或几何先验。
3. Method
本方法的目标是:仅凭图像序列(含已知内参)进行新视图合成与相机位姿估计,无需 SfM提供初始外参。
核心思想是结合:
- 显式点云表达(3D-GS自带buff);
- 视频帧的时间连续性(用于近邻帧相对位姿估计);
- 从局部到全局的高斯集合构建方式。
3.1 3D Gaussian Splatting 预备知识
和其他文章一样,简介3D-GS。
3.2 Local 3DGS:估计相对相机位姿
核心问题:NeRF中常通过间接方式优化pose(例如反向传播 ray origin),效率低下。而 3DGS是显式点表示,可以直接学习刚性变换。
步骤一:初始化局部高斯点集
使用单目深度网络(如 DPT)从当前帧 I t I_{t} It获取深度图 D t D_{t} Dt,将其点云初始化 G t G_{t} Gt。
目标是最小化渲染图与当前帧的重建误差:
G t ∗ = arg min c t , r t , s t , α t L r g b ( R ( G t ) , I t ) (6) G_t^* = \arg\min_{c_{t},r_{t},s_{t},\alpha_{t}} \mathcal{L}_{rgb}(\mathcal{R}(G_t), I_t) \tag{6} Gt∗=argct,rt,st,αtminLrgb(R(Gt),It)(6)
- R ( G t ) \mathcal{R}(G_t) R(Gt):3DGS渲染;
- L r g b \mathcal{L}_{rgb} Lrgb:图像重建损失。
损失定义为:
L r g b = ( 1 − λ ) L 1 + λ L D − S S I M (7) \mathcal{L}_{rgb} = (1 - \lambda)\mathcal{L}_1 + \lambda \mathcal{L}_{D-SSIM} \tag{7} Lrgb=(1−λ)L1+λLD−SSIM(7)
- L 1 \mathcal{L}_1 L1:像素L1损失;
- L D − S S I M \mathcal{L}_{D-SSIM} LD−SSIM:结构相似性损失;
- λ = 0.2 \lambda = 0.2 λ=0.2:平衡项。
步骤二:优化相对位姿
利用已训练好的3D-GS G t ∗ G_{t}^{*} Gt∗,我们冻结其所有属性,仅学习一个刚体变换 T t T_{t} Tt,使其变换后能拟合帧 t + 1 t+1 t+1:
T t ∗ = arg min T t L r g b ( R ( T t ⊙ G t ) , I t + 1 ) (8) T_t^* = \arg\min_{T_t} \mathcal{L}_{rgb}(\mathcal{R}(T_t \odot G_t), I_{t+1}) \tag{8} Tt∗=argTtminLrgb(R(Tt⊙Gt),It+1)(8)
- T t ⊙ G t T_t \odot G_t Tt⊙Gt:表示将 G t G_{t} Gt应用 T t T_{t} Tt变换;
- 由于帧间距离小,变换小、易优化;
- 优化变量仅为旋转(四元数)+ 平移(3D 向量)。
这一部分的核心意义在于:
- 利用近邻帧的局部几何对齐来估计相对相机姿态;
- 避免了全局图优化所带来的高维非凸问题;
- 更快收敛,适合大规模视频。
3.3 Global 3DGS:逐帧更新构建全局模型
局部对齐只能估计相邻帧之间的相对变换,但构建完整场景需要一个不断增长的全局点云模型。
核心机制:
- 维护一个全局 G g l o b a l G_{global} Gglobal;
- 每接收到一帧,就通过累计 T T T变换推导出与第一帧的相对位姿;
- 将当前帧的局部高斯投影进全局模型,并联合优化。
Densification(点补充)
通过梯度的大小判断哪些区域尚未被很好重建,对这些区域插值添加新的高斯点(参考原 3DGS方法):
- 每隔 N N N帧进行一次;
- 保持全局模型持续增长,避免中途停止densify导致部分区域渲染模糊。
最终效果
这种从 局部配准 → 全局融合 → 多步 densify → 全图优化 的策略:
- 保证了结构一致性与位姿连贯性;
- 对输入顺序鲁棒,可支持视频或连拍图像;
- 同时提升合成质量与相机姿态估计精度。
总结:模块本质
模块 | 作用 | 创新点 |
---|---|---|
Local 3DGS | 相邻帧之间估计相对 pose | 显式刚体变换优化,不依赖ray tracing |
Global 3DGS | 构建统一高斯点云模型 | 逐帧融合,避免全局bundle adjustment |
Densification | 弥补视角缺失区域 | 利用梯度引导,动态补全点云 |
RGB loss | supervision | 使用photometric loss即可稳定优化pose与3DGS |
4. Experiments
数据集
- Tanks and Temples:8 个室内外场景,小范围相机移动;
- CO3D-V2:多个类别的 360° 物体视频,挑战大。
评估指标
- 新视角合成:PSNR, SSIM, LPIPS;
- 相机姿态估计:RPEt, RPEr, ATE;
- 所有pose都经过Procrustes对齐。
性能对比
Table 3中:
方法 | PSNR ↑ | SSIM ↑ | LPIPS ↓ | 训练时长 |
---|---|---|---|---|
Nope-NeRF | 26.86 | 0.73 | 0.47 | ~30h |
Ours | 29.69 | 0.89 | 0.29 | ~2h |
- 在CO3D v2的大范围运动下,本方法大幅超越Nope-NeRF;
- Pose估计方面,平均RPEt从0.400降到0.140。
5. Ablation Studies
逐步增长 vs 单阶段优化
- 不使用 progressive growth 会导致合成质量与姿态估计性能下降显著(如 Table 5中Church 场景 PSNR 从 30.23 降至 22.01)。
使用深度损失
- 添加深度监督并不能提升性能,反而略有下降,说明显式点表示在photometric loss下已能很好优化。
与 COLMAP + 3DGS 对比
- 无需 COLMAP 情况下,CF-3DGS 的新视图质量与原始 3DGS 接近甚至更优。
6. Conclusion
本文提出了CF-3DGS,在无相机位姿的情况下实现联合相机姿态估计和高质量新视图合成:
- 利用了视频时间连续性;
- 显式点云结构便于优化;
- 适用于复杂相机轨迹场景;
- 快速训练,效果强大。
局限性:
- 依赖帧序列信息,不适用于无序图像集;
- 后续可拓展至 unordered image collection。