最近3D Gaussian Splatting很火,网上有很多复现过程,大部分都是在Windows上的。Linux上配置环境会方便简单一点,这里记录一下我在Linux上复现的过程。
Windows下的环境配置和编译,建议看这个up主的视频配置,讲解的很细致:3D Gaussian Splatting從0開始到Unreal與Unity-( pzman )_哔哩哔哩_bilibili
预先准备
一支MP4格式的视频,可以是你用手机拍摄的任何一个你想要重建的物体或者环境的视频。
Gaussian Splatting的源码,源码地址:GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering"
一、环境配置与准备
1.下载Gaussian Splatting的源码
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
2.安装CUDA
这个这里就不赘述了,需要注意的是官方说使用11.6版本的CUDA会有问题,。官方使用的是11.8版本的,所以需要确保你的CUDA版本高于11.8,使用下面的命令查看你的CUDA版本:
nvcc --version
3.使用conda安装依赖库,并创建虚拟环境
首先进入上面从GitHub上clone下载来的gaussian-splatting源码路径,在里面我们可以看到一个 environment.yml 文件,里面提供了需要的依赖库的名字,直接使用下面的命令执行会自动为你创建一个名为 gaussian_splatting 的conda虚拟环境,并开始安装所需要的依赖库:
conda env create --file environment.yml
等待安装完毕后,激活创建的conda虚拟环境:
conda activate gaussian_splatting
4.安装FFmpeg
这里主要是为了提取拍摄的视频中的图片,如果有数据集的话也可以不用安装。
由于安装别的依赖的时候,可能会装了FFmpeg,但是使用起来会有问题。这里建议先把环境中使用FFmpeg删除再重新安装:
// 删除所有安装的 ffmpeg
sudo apt-get remove ffmpeg
sudo apt-get purge ffmpeg
// 删除 Anaconda ffmpeg 模块
conda remove ffmpeg
重新安装
sudo apt-get install ffmpeg
5.安装colmap
这里安装colmap是为了从图片生成点云,因为gaussian splatting的输入是点云。如果有colmap生成的数据集或者NeRF格式的数据集也可以直接使用。
编译安装colmap可以查看我的另一篇博客:Linux 编译安装colmap_linux colmap-CSDN博客
6.安装viewers
这个工具是最后查看我们训练完后的结果的可视化,这里建议下载Windows下的,把Linux下的训练结果放到Windows下查看。因为Linux下需要源码编译,比较麻烦。
Windows安装包下载地址:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/binaries/viewers.zip
二、开始训练
1.首先进入Gaussian Splatting源码的路径下,然后创建一个data文件夹,并把准备的MP4格式的视频放到data文件夹下,我这里视频的名字为input.MP4。
2.使用FFmpeg截取视频帧为图片,在data目录下创建input目录,使用下面的代码可以截取视频帧并把图片放到input目录下:
ffmpeg -i input.mp4 -vf "setpts=0.2*PTS" input/input_%4d.jpg
3.进入到源码的目录下,使用源码中的 convert.py 文件生成点云,其中就是调用colmap生成点云,所以需要先安装好colmap,运行后的data文件夹中目录结构如下:
python convert.py -s data
4.开始训练,接下来等待训练完即可:
python train.py -s data -m data/output
训练完成后,可以看到在data文件夹下生成了一个output文件夹,里面就是我们的训练结果。input.ply是描述重建后的顶点和表面的模型文件,point_cloud下是7000步和30000步时的训练结果:
5.最后一步,可视化训练的结果。
这里是在Windows下使用的官方提供的Viewer工具,下载链接放在上面了,下载完后只要解压就行了。解压后是一个名字是viewers的文件夹,进入这个文件夹,然后把训练结果的output文件夹放在下面,在该文件夹下打开cmd,使用下面的命令运行:
.\bin\SIBR_gaussianViewer_app -m output
大功告成!