之前博客对NeRF-SLAM进行了调研
学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客文章浏览阅读868次,点赞22次,收藏21次。NeRF 所做的任务是 Novel View Synthesis(新视角合成),即在若干已知视角下对场景进行一系列的观测(相机内外参、图像、Pose 等),合成任意新视角下的图像。传统方法中,通常这一任务采用三维重建再渲染的方式实现,NeRF 希望不进行显式的三维重建过程,仅根据内外参直接得到新视角渲染的图像。为了实现这一目的,NeRF 使用用神经网络作为一个 3D 场景的隐式表达,代替传统的点云、网格、体素、TSDF 等方式,通过这样的网络可以直接渲染任意角度任意位置的投影图像。https://blog.csdn.net/gwplovekimi/article/details/135083274?spm=1001.2014.3001.5502而上一篇博客也对Instant-NGP进行了复现测试。
实验笔记之——基于windows复现Instant-NGP-CSDN博客文章浏览阅读340次,点赞10次,收藏7次。之前博客对NeRF-SLAM进行了调研,本博文先复现一下Intant-NGP。学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客NeRF 所做的任务是 Novel View Synthesis(新视角合成),即在若干已知视角下对场景进行一系列的观测(相机内外参、图像、Pose 等),合成任意新视角下的图像。传统方法中,通常这一任务采用三维重建再渲染的方式实现,NeRF 希望不进行显式的三维重建过程,仅根据内外参直接得到新视角渲染的图像。https://blog.csdn.net/gwplovekimi/article/details/135336357?spm=1001.2014.3001.5501本博文就复现一下Gaussian Splatting。
论文链接:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gaussian_splatting_high.pdf
代码链接:https://github.com/graphdeco-inria/gaussian-splatting
原理解读部分在调研博客里面已经写了,此处就不再详述。本博文仅仅记录配置实验过程。本博文部分资料来源于网络,仅供本人学习记录用~
Windows配置
感觉Gaussian Splatting的配置比instant-GNP也复杂些,但还是基于windows来配置吧~
官方推荐的配置如下:
- Conda (recommended for easy setup)
- C++ Compiler for PyTorch extensions (we used Visual Studio 2019 for Windows)
- CUDA SDK 11 for PyTorch extensions, install after Visual Studio (we used 11.8, known issues with 11.6)
- C++ Compiler and CUDA SDK must be compatible
接下来就一步一步操作。首先Conda用的是Anaconda3(Conda被紧密地打包进了Anaconda中)
安装cuda与CudaNN
首先打开终端查看驱动信息(nvidia-smi)
说明该显卡最高支持到12.0,这里就选择11.8的版本,也是大部分推荐的版本~
进入官网下载cuda:CUDA Toolkit Archive | NVIDIA Developer
一直都是点击下一步即可~
安装完成后,用cmd运行一下nvcc --version,发现有显示版本号与安装信息~
cudann好像不安装也行?
安装vs2019
下载地址:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器
Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本
注意要调到C++预设
测试过程中采用iphone捕获数据,因此不需要用像(3D Gaussian Splatting入门指南 - 哔哩哔哩)采用COLMAP等获取位姿
创建虚拟环境
打开Anaconda Prompt,创建虚拟环境,并激活。
SET DISTUTILS_USE_SDK=1 # Windows only
conda create -n gaussian_splatting python=3.10
conda activate gaussian_splatting
在虚拟环境内安装依赖
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118pip install plyfile tqdmconda install -c anaconda vs2019_win-64pip install submodules/diff-gaussian-rasterizationpip install submodules/simple-knn
然后下载源码(下载了源码后,上述后面两个好像可以不下载?)
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
但是windows配置一直报错如下:
所以决定改为用服务器来测试了~
Linux下配置
搭建服务器环境请见下面博客
实验笔记之——服务器链接-CSDN博客文章浏览阅读69次,点赞2次,收藏2次。最近需要做NeRF相关的开发,需要用到GPU,本博文记录本人配置服务器远程链接的过程,本博文仅供本人学习记录用~https://blog.csdn.net/gwplovekimi/article/details/135360496
首先安装miniconda
- 右键”复制链接地址“;
- 在任意一个SSH登录成功后的终端上输入
wget <复制的链接地址>
并回车,等待下载完成:
执行bash Miniconda3-latest-Linux-x86_64.sh并一路回车
然后执行下面操作
- 执行
source ~/.bashrc
刷新环境变量,没有输出是正常结果; - 输入
conda -V
,若出现conda
版本号,则表示安装成功:
根据环境要求:https://github.com/graphdeco-inria/gaussian-splatting/blob/main/environment.yml
用python=3.7.13
# 格式为:conda create -n <your_env_name> python=<x.x>
conda create -n 3DGS python=3.7.13
然后输入conda env list
pytorch版本采用pytorch=1.12.1,因此进入链接:Previous PyTorch Versions | PyTorch
但是作者有提到cuda11.6是有问题的,但先不管了,直接配也行。把其余的环境也弄好。
然后可以开始train了
python train.py -s /home/gwp/dataset/tandt/train
然后安装一下可视化的插件
# Dependencies
sudo apt install -y libglew-dev libassimp-dev libboost-all-dev libgtk-3-dev libopencv-dev libglfw3-dev libavdevice-dev libavcodec-dev libeigen3-dev libxxf86vm-dev libembree-dev
# Project setup
cd SIBR_viewers
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release # add -G Ninja to build faster
cmake --build build -j24 --target install
然后下载一下MobaXterm(MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Home Edition)来远程观看训练效果
./SIBR_viewers/install/bin/SIBR_remoteGaussian_app
效果见如下视频(有点太卡了hhh)应该是由于从服务器把数据流传到本机上导致的~
Gaussian Splatting testing playroom 1(有点卡)
Gaussian Splatting testing playroom 2(有点卡)
参考资料
Gaussian Splatting代码安装部署(windows)_gaussian splatting部署-CSDN博客
gaussian-splatting windows环境配置-CSDN博客
https://www.youtube.com/watch?v=UXtuigy_wYc
(NeRF学习)3D Gaussian Splatting & Instant-NGP环境配置_训练3d gaussian splatting模型步骤-CSDN博客