本项目用于记录3D-Gaussian-Splatting在Windows 11 的复现过程,可能出现的问题以及数据集的制作和训练
克隆项目可以直接运行
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive值得注意的是,由于本项目涉及到了子模块。也就是说本项目克隆时还需要从其他仓库进行克隆,因此在git clone指令后面必须加recursive
有一些人可能直接会在本地文件夹下直接右键Git here后开启Git终端然后运行上面的语句
这样做可能会导致因为网络问题而无法克隆所有的仓库,因此你会在后面运行依赖安装指令的时候出现错误
不要用该指令进行克隆,采用vscode的终端cmd直接克隆,或者采用我已经下好的压缩包
conda create -n 3D-Gaussian-Splatting python=3.10
在安装依赖之前,必须要安装好外部的环境,该环境是非虚拟环境,是本地的相关软件
下载这个的原因是因为在代码中有设计到CUDA_HOME的环境变量,因此必须保证该环境变量被正确的添加到了Path中
需要下载下图所选的开发包。安装这个的原因是该项目是Cu,C++以及Python共同开发,因此需要保证你的本地可以运行C++
Colmap的安装可以从下面的官网安装COLMAP-3.8-windows-cuda.zip,然后将其解压到本地的任意路径,只要之后能找到即可。也可以通过压缩包下载
随后将Colmap文件下的COLMAP.bat添加到系统变量中。运行下面代码,如果能正常启动,则说明添加成功
E:\COLMAP\COLMAP.bat
其中E:\COLMAP\COLMAP.bat是你自己所添加的环境路径
安装完后需要将E:\ffmpeg\bin添加到环境变量Path中,运行下面的代码确保你添加成功了
ffmpeg -version
通过压缩包下载,如果你直接使用我的压缩包的话,就不需要再安装这个了。并且我推荐把这个解压到3D-Gaussian-Splatting文件下面,方便后续使用
至此,外部所有依赖都安装完成了,请在继续后面操作的时候确保以上步骤都完成
运行下面代码安装依赖
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
SET DISTUTILS_USE_SDK=1
pip install submodules\diff-gaussian-rasterization
pip install submodules\simple-knn
pip install plyfile
pip install tqdm假设你并没有采取我上面说的方法,或者你在 git clone的时候因为网络问题没有把所有子模块的仓库克隆全,则会出现下面的问题
ERROR: Failed building wheel for diff_gaussian_rasterization
Running setup.py clean for diff_gaussian_rasterization
Failed to build diff_gaussian_rasterization
ERROR: Could not build wheels for diff_gaussian_rasterization, which is required to install pyproject.toml-based projects这是因为系统没有找到你目录下面的diff_gaussian_rasterization和simple-knn的setup.py文件,因此没法造.whl文件,所以安装不了
直接利用我给你的安装包,里面的模块都是下载完全的
首先要在3D-Gaussian-Splatting的直接路径下创建data/input文件,然后转入data路径
cd data运行ffmpeg去将图片进行分割
ffmpeg -i input.mp4 -vf "setpts=0.2*PTS" input/input_%4d.jpg
其中你可以设置参数setpts=0.2*PTS,这个表示将原视频速度编程原来的5倍,具体原理是时间变成0.2倍,则播放速度就变成5倍,也可以用以下的命令指定每秒多少帧
ffmpeg -i input.mp4 -r 30 input/input_%4d.jpg
-r 30 指定了每秒输出30帧。你可以根据需要将30替换为其他任何数值来改变每秒的帧数。
最终的图片结果会被声称在input下。
运行下列代码来调用Colmap生成点云和相机位姿
python convert.py -s data
若你从别的地方获取的项目代码,则需要修改convert.py中的第27行代码,将其改为
colmap_command = '"{}"'.format(args.colmap_executable) if len(args.colmap_executable) > 0 else "E:\COLMAP\COLMAP.bat"
源代码采用的是colmap.exe,但是在windows中由于缺少很多依赖,无法直接运行colmap.exe,因此我们选择一定打包好的COLMAP.bat,在配置外部依赖中也带领大家把COLMAP.bat添加成了环境变量,在任何命令行都可以直接使用。
返回到3D-Gaussian-Splatting的直接路径下,运行下列代码即可开始训练
python train.py -s data -m data/output
cd viewer
.\bin\SIBR_gaussianViewer_app -m output


