项目场景:
- 最近在做nerf相关的毕设,一直是在linux下配置的环境,根据官方README配置直接就可以运行了。
- 因为想着可能会改cuda的东西,想在windows配置下项目,然后来debug,发现问题比较多,中文教程也较少,结合github上的Issues和看到的博客,记录下配置的过程。
(这个不是详细的教程,只是记录下碰到的坑,以及能安装成功的方法)
gaussian-splatting:https://github.com/graphdeco-inria/gaussian-splatting
配置过程:
windows下最大的问题就是cuda的版本,torch的版本,以及visual studio的版本
-
linux下是3090的显卡,安装的cuda11.6,官方教程虽然说不要用cuda11.6,但是linux下按照官方的教程配置,似乎没碰到什么问题。(但是SIBR_viewers编译有点问题,目前用的windows下的release可运行版本)
-
windows下是1660super的显卡,先是根据README说的安装前置软件:
- cuda11.7 (测试了11.6 有点问题,11.8 应该也可以)
- vs2019(安装时勾选c++桌面开发)
- 下载COLMAP工具
- 下载代码(一定要加–recursive)
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
-
然后是conda环境配置
- 这里要是怕vs环境变量没配好,也可以去用vs自带的终端来配置环境,这里面避免了一些vs多版本的问题。
- 这里要是怕vs环境变量没配好,也可以去用vs自带的终端来配置环境,这里面避免了一些vs多版本的问题。
-
安装命令,我这里是cuda11.7 和 vs2019
# 安装环境&激活 conda create -n gaussian_splatting python=3.7 conda activate gaussian_splatting # 根据自己的cuda版本安装torch、torchvision、torchaudio,这个是带cuda的版本 conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia # "重点!" 在安装两个cuda写的子模块前 # 安装下 vs2019_win-64 这个包,可确保 Visual Studio 2019 构建工具可用并设置必要的环境变量 conda install -c conda-forge vs2019_win-64 # 之后切换到gaussian-splatting目录 cd xxx\gaussian-splatting # 然后再安装两个子模块,以及其他包 pip install submodules/diff-gaussian-rasterization pip install submodules/simple-knn pip install plyfile tqdm # 不要直接运行 conda env create --file environment.yml or it breaks
-
然后就可以愉快的训练了
碰到的bug:
cuda11.6 & cuda11.8都装过了,torch版本 和vs2019 & vs2022都试过,碰到的问题很难解决,建议不要头铁
-
安装diff-gaussian-rasterization 出现pip无法成功执行setup.py,定位问题ninja这个包的问题:
ninja Command '['ninja', '-v']' returned non-zero exit status 1.
- 有人说把torch源码里的-v 改成–version,但是测试后编译build无法生成obj,然后link找不到文件。实际上我感觉是vs的问题,下面这个issue说的
vs2019_win-64
这个库就行:
https://github.com/graphdeco-inria/gaussian-splatting/issues/522
- 有人说把torch源码里的-v 改成–version,但是测试后编译build无法生成obj,然后link找不到文件。实际上我感觉是vs的问题,下面这个issue说的
-
找不到cl,msvc等,都是visual studio安装的问题
- 检查下环境变量,在cmd下输出cl看是否正常识别,或者直接在Developer Command Prompt for VS 2019 的终端下配置
- 检查下环境变量,在cmd下输出cl看是否正常识别,或者直接在Developer Command Prompt for VS 2019 的终端下配置
-
cuda11.6下,安装错误太多,又是重定义,又是变量冲突。windows下建议不要用11.6。
-
cuda11.8下,conda安装没有官方对应的torch-cuda版,要改下torch版本,我就没有深入去尝试了,看到也有成功配置的。应该安装 vs2019_win-64 之后也是可以的。
https://github.com/graphdeco-inria/gaussian-splatting/issues/188 -
主要问题就在于安装vs之后,在conda环境里
conda install -c anaconda vs2019_win-64
,还要安装扩展包。然后cuda版本不要是11.6,也不要大于12,最好是11.7 & 11.8
。此外不要直接用官方的environment.yml
来配置环境。 -
viewer不需要编译,直接用官方编译好的版本
bin\SIBR_gaussianViewer_app.exe
https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/binaries/viewers.zip