3D Gaussian Splatting复现

最近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的源码

bash 复制代码
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive

2.安装CUDA

这个这里就不赘述了,需要注意的是官方说使用11.6版本的CUDA会有问题,。官方使用的是11.8版本的,所以需要确保你的CUDA版本高于11.8,使用下面的命令查看你的CUDA版本:

bash 复制代码
nvcc --version

3.使用conda安装依赖库,并创建虚拟环境

首先进入上面从GitHub上clone下载来的gaussian-splatting源码路径,在里面我们可以看到一个 environment.yml 文件,里面提供了需要的依赖库的名字,直接使用下面的命令执行会自动为你创建一个名为 gaussian_splatting 的conda虚拟环境,并开始安装所需要的依赖库:

bash 复制代码
conda env create --file environment.yml

等待安装完毕后,激活创建的conda虚拟环境:

bash 复制代码
conda activate gaussian_splatting

4.安装FFmpeg

这里主要是为了提取拍摄的视频中的图片,如果有数据集的话也可以不用安装。

由于安装别的依赖的时候,可能会装了FFmpeg,但是使用起来会有问题。这里建议先把环境中使用FFmpeg删除再重新安装:

bash 复制代码
// 删除所有安装的 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目录下:

bash 复制代码
ffmpeg -i input.mp4 -vf "setpts=0.2*PTS" input/input_%4d.jpg

3.进入到源码的目录下,使用源码中的 convert.py 文件生成点云,其中就是调用colmap生成点云,所以需要先安装好colmap,运行后的data文件夹中目录结构如下:

bash 复制代码
python convert.py -s data

4.开始训练,接下来等待训练完即可:

bash 复制代码
python train.py -s data -m data/output

训练完成后,可以看到在data文件夹下生成了一个output文件夹,里面就是我们的训练结果。input.ply是描述重建后的顶点和表面的模型文件,point_cloud下是7000步和30000步时的训练结果:

5.最后一步,可视化训练的结果。

这里是在Windows下使用的官方提供的Viewer工具,下载链接放在上面了,下载完后只要解压就行了。解压后是一个名字是viewers的文件夹,进入这个文件夹,然后把训练结果的output文件夹放在下面,在该文件夹下打开cmd,使用下面的命令运行:

bash 复制代码
.\bin\SIBR_gaussianViewer_app -m output

大功告成!

相关推荐
三只熊猫几秒前
一文打通 AI 知识脉络:大语言模型等关键内容详解
人工智能·python
Kyln.Wu9 分钟前
【python实用小脚本-187】Python一键批量改PDF文字:拖进来秒出新文件——再也不用Acrobat来回导
python·pdf·c#
xnglan1 小时前
蓝桥杯手算题和杂题简易做法
数据结构·数据库·c++·python·算法·职场和发展·蓝桥杯
小徐敲java1 小时前
python-pycharm切换python各种版本的环境与安装python各种版本的环境(pypi轮子下载)
开发语言·python·pycharm
天才测试猿1 小时前
接口自动化测试难点:数据库验证解决方案
自动化测试·软件测试·数据库·python·测试工具·职场和发展·接口测试
java1234_小锋5 小时前
[免费]基于Python的影视数据可视化分析系统(Flask+echarts)【论文+源码+SQL脚本】
python·信息可视化·flask·python影视分析·python电影分析
精致先生7 小时前
Streamlit实现Qwen对话机器人
python·机器人·大模型·streamlit
蜀中廖化8 小时前
机器学习:基于OpenCV和Python的智能图像处理 实战
python·opencv·机器学习
java1234_小锋9 小时前
一周学会Matplotlib3 Python 数据可视化-绘制热力图(Heatmap)
开发语言·python·信息可视化·matplotlib·matplotlib3
程序员岳焱9 小时前
Java 调用 Python 脚本:实现 HelloWorld
java·后端·python