当前位置: 首页 > news >正文

【论文精读】COLMAP-Free 3D Gaussian Splatting

今天读一篇CVPR2024 Highlight的文章,这篇文章直接与NoPe-NeRF对标,相当于其3D-GS版本。
项目地址:点击前往

关于NoPe-NeRF的解读可以看我之前的文章:【论文精读】NoPe-NeRF: Optimising Neural Radiance Field with No Pose Prior

文章目录

  • Abstract
  • 1. Introduction
  • 2. Related Work
    • Novel View Synthesis
    • NeRF Without SfM
  • 3. Method
    • 3.1 3D Gaussian Splatting 预备知识
    • 3.2 Local 3DGS:估计相对相机位姿
      • 步骤一:初始化局部高斯点集
        • 步骤二:优化相对位姿
      • 3.3 Global 3DGS:逐帧更新构建全局模型
        • Densification(点补充)
        • 最终效果
    • 总结:模块本质
  • 4. Experiments
    • 数据集
    • 评估指标
    • 性能对比
  • 5. Ablation Studies
    • 逐步增长 vs 单阶段优化
    • 使用深度损失
    • 与 COLMAP + 3DGS 对比
  • 6. Conclusion

Abstract

本论文提出一种无需COLMAP等SfM预处理的3D-GS,用于无相机位姿信息的场景重建和新视角合成。与NeRF等隐式方法不同,GS提供了显式点云表达,使得可以直接对几何结构和相机位姿进行优化。该方法通过逐帧处理输入视频,利用视频的时间连续性,逐步建立和优化一组全局高斯点云,并在过程中联合优化相机位姿。实验表明,CF-3DGS在大幅度相机运动下仍能实现优于现有方法的合成质量和位姿估计准确性。

1. Introduction

NeRF类方法对准确的相机位姿依赖严重,而常用的SfM工具如COLMAP存在:

  • 特征提取不稳定;
  • 在纹理缺失或重复结构场景中容易失败;
  • 处理耗时。

已有一些方法尝试在NeRF框架中联合优化位姿,但由于其隐式表达和光线投射机制,优化通常困难、缓慢,且需良好的初始化。相反,Gaussian Splatting提供了显式点表示,适合直接进行变换。

CF-3DGS的核心思想:

  1. 局部对齐:每次仅考虑相邻两帧之间的相对位姿,估计affine变换;
  2. 全局整合:逐步将当前帧的信息融合到全局高斯模型中;
  3. 不再依赖 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提供初始外参。

核心思想是结合:

  1. 显式点云表达(3D-GS自带buff);
  2. 视频帧的时间连续性(用于近邻帧相对位姿估计);
  3. 从局部到全局的高斯集合构建方式

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+λLDSSIM(7)

  • L 1 \mathcal{L}_1 L1:像素L1损失;
  • L D − S S I M \mathcal{L}_{D-SSIM} LDSSIM:结构相似性损失;
  • λ = 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(TtGt),It+1)(8)

  • T t ⊙ G t T_t \odot G_t TtGt:表示将 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 losssupervision使用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-NeRF26.860.730.47~30h
Ours29.690.890.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。
http://www.xdnf.cn/news/937.html

相关文章:

  • vue入门:路由 router
  • [GESP202409 二级] 小杨的 N 字矩阵 题解
  • 《如何用 Function 实现动态配置驱动的处理器注册机制?》
  • Ubuntu多用户VNC远程桌面环境搭建:从零开始的完整指南
  • 多路由器通过三层交换机互相通讯(单臂路由+静态路由+默认路由版),通过三层交换机让pc端相互通讯
  • C++之类模板
  • 定制化突围:遨游防爆手机的差异化竞争策略
  • 实战|使用环信Flutter SDK构建鸿蒙HarmonyOS应用及推送配置
  • vue MarkdownIt标签多出了<p>标签导致高度变丑
  • 前端路由缓存实现
  • ServletContextAttributeListener 的用法笔记250417
  • MYSQL “Too Many Connections“ 错误解决
  • 【Python入门】文件读取全攻略:5种常用格式(csv/excel/word/ppt/pdf)一键搞定 | 附完整代码示例
  • Java基础系列-LinkedList源码解析
  • Vue项目Webpack Loader全解析:从原理到实战配置指南
  • MYOJ_11700(UVA10591)Happy Number(快乐数)(超快解法:图论思想解题)
  • JVM考古现场(二十二):降维打击·用二向箔优化内存模型
  • android如何在生产环境中做到详实的日志收集而不影响性能?
  • 算法之贪心算法
  • 【音视频】音视频FLV合成实战
  • Pikachu靶场-CSRF
  • Golang errors 包快速上手
  • 使用Qt multimedia模块实现简易的视频播放器
  • AI在能源消耗管理及能源效率提升中的核心应用场景及技术实现
  • Java性能剖析工具箱
  • 数据结构——反射、枚举以及lambda表达式
  • Qt 性能优化总结
  • Django 实现物联网管理系统的详细方案
  • 使用 OpenRewrite 简化 Java 和 SpringBoot 迁移
  • SDL基础