在 Windows 11 上从零复现 3D Gaussian Splatting (3DGS)

一、环境准备与基础软件安装

硬件/软件 作用 推荐/必须
系统 Windows 11 基础环境
显卡 RTX 3060 (12GB) 必须 NVIDIA GPU
Git Bash 克隆代码,命令行操作 推荐
Anaconda3 隔离 Python 环境 强烈推荐
CUDA 11.7 GPU 计算核心,匹配 PyTorch 必须
VS 2019 编译器工具链(C++/CUDA) 必须

1. CUDA 11.7 安装与验证

cuda11.7 地址 : [cuda11.7](CUDA Toolkit 11.7 Downloads | NVIDIA Developer)

更多cuda版本选择: CUDA Toolkit Archive | NVIDIA Developer由于我们将使用 PyTorch cu117 版本,CUDA 必须为 11.7。

  1. 下载 :访问 CUDA Toolkit 11.7 下载页面,下载并默认安装。

  2. 设置系统环境变量 :安装完成后,确保 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7 目录存在。选择path系统环境变量,选择新建。

  3. 验证:打开 CMD 终端,输入:

    复制代码
    nvcc --version

    如果显示版本信息,即为成功。

2. Visual Studio 2019 (VS2019) 安装

VS2019 社区版即可。安装时,确保勾选 "使用 C++ 的桌面开发" 工作负载,因为后续安装子模块时需要 C++ 编译器。

二、3DGS 环境与依赖安装

1. 创建并激活 Conda 环境

复制代码
conda create -n 3dgs python=3.8
conda activate 3dgs

2. 代码克隆与 PyTorch 安装

使用 Git Bash 克隆代码,必须 加上 --recursive 参数以确保子模块也被下载。

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

3. 安装 PyTorch (CUDA 11.7 版本)

复制代码
pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu117

在国内下载 PyTorch 时,建议关闭代理或 VPN ,使用官方镜像通常速度更快。

  1. 安装依赖包,推荐分别执行

    pip install plyfile
    pip install tqdm
    pip install opencv-python
    pip install joblib

  2. 安装子模块,推荐分别执行

    注意:这些命令必须在设置了 CUDA_HOME 环境变量的终端中运行

    pip install submodules/diff-gaussian-rasterization
    pip install submodules/simple-knn
    pip install submodules/fused-ssim

如果你在安装子模块时遇到 CUDA_HOME environment variable is not set 错误,请确保成功设置cuda的环境变量

三、使用官方数据训练

下载官方数据:GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering"

1. 可视化数据集

可视化工具下载地址: https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/binaries/viewers.zip

在项目根目录下创建文件夹viewers,将压缩包中的文件全部复制到viewers文件夹中

在数据集还在训练中,接着再开启个CMD命令行,用cd命令切换到D:\gaussian-splatting-main\viewers\bin(根据自己路径修改)执行可视化命令,如果出现画面则为成功

复制代码
.\SIBR_remoteGaussian_app.exe

2. 运行训练代码

复制代码
python train.py -s D:\paper_data\3dgs\gaussian-splatting\tandt_db\db\playroom --iterations 6000

如果显存不够,可以尝试降低质量

复制代码
--resolution 4 降低分辨率
--percent_dense 0.3 控制点云密度为 30%

python train.py -s D:\paper_data\3dgs\gaussian-splatting\tandt_db\db\playroom --iterations 6000 --resolution 2

四、数据集制作(自制数据)

为了方便训练自制数据,我们需要安装 Colmap 和 FFmpeg。

1. 安装 Colmap 和 FFmpeg

下载 Colmap CUDA 版本FFmpeg Essentials

  1. 在项目根目录(gaussian-splatting)下新建 tools 目录。
  2. 将下载的文件解压到 tools 中。
  3. 配置系统环境变量 :将 Colmap 和 FFmpeg 的 bin 目录路径(例如 D:\...tools\COLMAP-3.8-windows-cuda\bin)添加到系统的 Path 环境变量中。
  4. 验证:打开 CMD,输入 COLMAPffmpeg -version,若能正常运行则安装成功。

2. 视频转图片

将你的视频转换为一系列图片。

复制代码
# 示例:将 video/chair.mp4 逐帧转为图片序列
ffmpeg -i video/chair.mp4 image/input_%04d.png

【经验】 视频逐帧提取图片数量过多(如 500 张)会导致 Colmap 和训练时间过长。为加速,请在 ffmpeg 命令中加入 -r <帧率> 参数。例如:

复制代码
# 降低到 5 帧/秒,图片数量大幅减少
ffmpeg -i video/chair.mp4 -r 5 image/input_%04d.png

3. 图片转点云 (Colmap)

在项目目录下,新建数据集文件夹(例如 lab_chair),并在其中创建 input 目录存放图片,distorted 目录为空。然后运行转换脚本:

复制代码
python convert.py -s lab_chair

这一步将调用 Colmap 进行相机位姿估计和稀疏点云生成。

4.运行训练

复制代码
# 自制数据集训练示例
python train.py -s lab_chair -m lab_chair/output --resolution 2
  • -s lab_chair:指定数据集源文件夹。
  • -m lab_chair/output:指定输出模型目录。
  • --resolution 2【关键优化】 图像分辨率降低 2 倍(1/4 尺寸),可以大幅减少显存占用和训练时间。

5.查看模型

加载模型: 运行以下命令,替换为你实际的模型输出路径:

复制代码
.\viewers\bin\SIBR_gaussianViewer_app -m D:\paper_code\3dgs\gaussian-splatting\output\6d2101eb-9

报错 由于找不到 cudart64_12.dll, 无法继续执行代码 :这是因为查看器是为 CUDA 12.x 编译的。你需要下载 cudart64_12.dll 并将其复制到 viewers\bin 目录下即可解决。

下载地址:CUDART64_12.DLL : Free .DLL Download

相关推荐
吴声子夜歌19 小时前
Java数据结构与算法——基本数学问题
java·开发语言·windows
这儿有一堆花1 天前
用原生脚本编写无害恶作剧
windows
因我你好久不见1 天前
Windows部署springboot jar支持开机自启动
windows·spring boot·jar
夜流冰1 天前
Excel - MS Support for Excel: 2 Collaborate
数据库·windows·excel
林瞅瞅1 天前
PowerShell 启动卡顿?内存飙升?原来是 800MB 的历史记录在作祟!
windows
Shepherd06191 天前
【Windows Server 实战】WAC 反向代理配置
windows
云小逸1 天前
【windows系统编程】第一章 Windows 系统核心架构与基础概念
windows·架构
怣疯knight1 天前
Docker Desktop 4.55.0版本安装成功教程
windows·docker
liulilittle1 天前
VEthernet 框架实现 tun2socks 的技术原理
网络·windows·c#·信息与通信·通信
独钓寒江雨1 天前
win11在安全模式下删除360tray.exe
windows·电脑