3DGS代码复现项目理解

        我当时是跟着3D Gaussian Splatting复现-CSDN博客进行的项目复现,本文主要记录一些对3DGS的项目理解。

        代码中关键步骤主要是以下两部:

python convert.py -s data
python train.py -s data -m data/output

一、convert.py

其中convert.py中流程大致可分为以下五步

        以上前四步都是对colmap的调用,其中前两部可以调用gpu,后三部纯cpu运算。

第一步、特征提取

        从输入图像中提取特征点,将图像元信息(大小、相机)、关键点、描述子写入database.db

第二部、特征匹配

        在不同图像间匹配特征点,将图像对之间的匹配信息(匹配点对)写入database.db。我当时很好奇为什么我输入了3669张图,但是进行匹配的时候只有74张,后来了解到这是COLMAP在特征匹配阶段将图像对分组后的 ​​块数量(Blocks)​​,用于 ​​并行匹配优化​​,而非筛选后的图像数。74是分块数量​​,由COLMAP根据图像数量和硬件资源自动计算得出。COLMAP的 ​​Exhaustive Matching(穷举匹配)​​ 会:

  1. ​计算所有可能的图像对​​:对于3669张图,理论上有 3669×3668/2 ≈ 6.7百万 对需要匹配。
  2. ​分块处理​​:为避免内存爆炸和加速匹配,COLMAP将图像对划分为多个块(Blocks),每个块包含一定数量的图像对:
    • 日志中的 Matching block [1/74, 1/74] 表示当前正在匹配 ​​第1个块与第1个块​​ 的图像对。
    • 这里的 ​​74×74​​ 是分块策略的结果(总块数=74,每个块包含约 3669/74≈50 张图像)。

        避免一次性加载所有特征点导致OOM(尤其对GPU内存)。便于并行加速​​,不同块可分配到多个线程或GPU核心同时处理。​

第三部、稀疏建图

        COLMAP 使用 Ceres Solver (非线性优化库)来执行非线性最小二乘优化,而 Ceres 是一个 纯 CPU 的库。稀疏重建是COLMAP的核心步骤,通过 ​​捆绑调整(Bundle Adj

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值