3dgs部署问题记录

3d gaussian splatting(3dgs)的出现是三维重建和图形渲染的里程碑。这里主要是关于把3dgs代码跑起来,以及viewer相关问题的记录。

论文:

代码:https://github.com/graphdeco-inria/gaussian-splatting

参考链接:

https://blog.csdn.net/xiao_ku02/article/details/126598279

一、环境

1.1 VS2019或VS2022环境

安装VS,将VS编译器目录添加到环境变量

添加环境变量(需要根据VS版本设置):

PATH~

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64

添加win sdk目录(需要根据winsdk设置):

INCLUDE

C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include

LIB

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64

环境配置好的标志是在命令行中试用cl命令可以编译cpp源码文件

1.2 CUDA环境

这里cuda需要安装 dev环境,如果以前只安装了runtime,也需要重新补充dev环境,只有runtime是不够的

CUDA_PATH、PATH这两个环境变量都需要设置

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

环境配置好的标志是在命令行中试用nvcc命令可以编译cu源码文件

1.3 Python/Conda环境

提前安装必要的package,如果不在意磁盘空间可以试用conda,这里我们试用pip把环境安装好

需要注意,除了常用的torch这些算法调用的模块,我们也需要安装cmake来帮助程序编译submodules,pip install cmake即可

1.4 其它(ffmpeg,colmap,magick,viewer,数据等,可选)

ffmpeg需要配置到环境变量

从代码readme最前会有一些数据和软件下载,

viewer可以配置到环境变量。

colmap:https://github.com/colmap/colmap/releases

二、编译安装

1.1 代码拉取

这里需要加 –recursive命令以拉取所有submodule

1.2 子模块编译

git clone xxx --recursive
cd gaussian_splatting
pip install submodules/simple-knn
pip install submodules/diff-gaussian-rasterization

这里pip install submodules/xxx 容易出现问题,这时我们需要进行检查,这里列举几类问题

  • 关注setuptools版本,如果在import setuptools阶段出现错误,需要改变pip、setuptools版本
  • 关注cmake、wheels是否安装
  • 关注cl、nvcc (cpp和cuda)编译环境是否正常
  • 出现link obj找不到文件,则可能是ninja编译出错,需要关闭ninja(在setup.py中修改use_ninja=False)
    cmdclass={
        'build_ext': BuildExtension
        'build_ext': BuildExtension.with_options(use_ninja=False)
    }

三、运行

3.1 运行例子

我们下载下来的数据

python train.py -s D:\dataset\tandt_db\tandt\train

训练结束后输出目录有如下文件

3.2 viewer查看

可以用remoteviewer,边训练边观察训练过程中3dgs更新过程,直接在训练开始前或训练开始后输入如下命令启动:

cd viewer/bin
.\SIBR_remoteGaussian_app.exe

训练结束之后,输入以下命令,用-m指定模型输出目录即可启动模型渲染

cd viewer/bin
.\SIBR_gaussianViewer_app.exe -m D:\code\gaussian-splatting\output\cf1520c9-1

3.3 运行自己的数据

首先处理一段视频,使用ffmpeg抽帧放到input目录

ffmpeg 抽帧命令可以参考:

ffmpeg -i E:\gaussian-splatting\data\cupk\cupk.mp4  -qscale:v 1 -qmin 1 -vf fps=3 %04d.jpg

然后COLMAP and ImageMagick,使用convert.py 脚本创建数据集

python convert.py -s data/cupk

然后开始train即可,也是用 -s 指定数据集目录即可

四、代码解读

Python部分应该都比较熟,对cuda不熟悉可以参考:https://blog.csdn.net/qaqwqaqwq/article/details/136886008

发表评论