复现3D Gaussian Splatting

Intro

🚀最近了解到了来自UCA的天才方案——3D Gaussian Splatting。这玩意最近几年可谓是真热门奥,基本上算是让三维重建领域变天了,NeRF基本宣布去世。

📚他的思路是用高斯椭球去拟合场景,具体是用一个协方差矩阵来调整椭球的参数,同时具有各向异性,以此来进行全局渲染。(原Paper连接🔗)

这里有一些对比,可以看到基本上算是爆杀NeRF了(左3DGS 右NeRF):

非常非常的厉害啊👍

Replication

复现代码来自原Paper的官方Repo(Repo链接🔗

Viewers来自原Repo提供的pre-built版本(下载链接🔗

Set Up 基本follow原Repo readme

但是这个环境问题非常难handle,我test了很久最后发现这一套配置也是能完全跑通的,虽然他并不在Repo提供的支持列表里面:

Compiler: Visual Studio Community 2022 with C++ extention
Conda:24.11.3
CUDA SDK: 12.4
Colmap: 3.11.1
Pyton: 3.12.7
pytorch: 2.6.0+cu126
torchvision:0.21.0+cu126
torch audio:2.6.0+cu126

那这个就和原来repo里面的environment.yml冲突了,所以我的思路是修改yml文件如下:

name: gaussian_splatting
channels:
  - pytorch
  - conda-forge
  - defaults
dependencies:
  - plyfile
  - python=3.12.7
  - pip
  - tqdm

先用conda进行基础配置,之后再手动pip正确版本的torch(官网抓取cu126版本安装)以及一些子模块。

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
pip3 install ./submodules/diff-gaussian-rasterization
pip3 install ./submodules/simple-knn
pip3 install ./submodules/fused-ssim
pip3 install opencv-python
pip3 install joblib

完成环境配置 就可以开始采集数据了

我这边是使用Iphone拍摄了一段环绕主体的视频,并通过FFmpeg切成了353帧图像

接下来就是将其放到./data/input文件夹下,通过convert.py做pre处理:

python convert.py -s ./data

然后就是在这个文件夹下进行training

python train.py -s ./data

接下来就会在子文件夹下发现./output文件夹

用之前download的viewer查看即可:

cd .\viewers\bin\
.\SIBR_gaussianViewer_app.exe -m E:\Home\Project\Gaussian_Splatting\gaussian-splatting\output\0ecab52e-6

Result

最终结果还是非常优秀的:

也不难发现,其实直接用colmap的空间鲁棒性还是较弱,老老实实上SLAM吧。

END

暂无评论

发送评论 编辑评论


				
上一篇
下一篇