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

大功告成!

相关推荐
alphaTao13 分钟前
LeetCode 每日一题 2026/5/18-2026/5/24
python·leetcode
徐安安_ye114 分钟前
FlashAttention学习路线:从调API到写算子,你该走哪条路
python·学习
IT策士32 分钟前
Django 从 0 到 1 打造完整电商平台:商品搜索
后端·python·django
茉莉玫瑰花茶36 分钟前
LangGraph 持久化(Persistence)[ 2 ]
开发语言·python·ai·langgraph
有味道的男人41 分钟前
AI 对接 1688 图搜接口|Open Claw 以图搜货实战
开发语言·python
MediaTea1 小时前
DL:Transformer 的基本原理与 PyTorch 实现
人工智能·pytorch·python·深度学习·transformer
wuxinyan1231 小时前
工业级大模型学习之路024:LangChain零基础入门教程(第七篇):RAG 系统评估、全链路调优
人工智能·python·学习·langchain
Kingairy1 小时前
Python简单算法题
开发语言·python
SilentSamsara1 小时前
日志与可观测性:logging 进阶配置与结构化日志实战
运维·开发语言·python·青少年编程
隔壁大炮1 小时前
MNE-Python 第7天学习笔记:事件相关电位(ERP)分析
python·eeg·mne·脑电数据处理