在 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

相关推荐
Mr成文4 小时前
【usb】windows usb驱动框架简介
windows·stm32·单片机
非凡ghost6 小时前
MediaHuman YouTube to MP3 多语便携版:高效音频提取工具
windows·音视频·软件需求
Su^!-苏释州7 小时前
Windows配置C/C++环境:MinGW+Vscode
c语言·c++·windows·vscode·大一新生学c语言
一点都不方女士8 小时前
.NET Framework 4.0.30319:官方下载与常见问题解决指南
c++·windows·.net·动态链接库·运行库
我的xiaodoujiao8 小时前
Windows系统Web UI自动化测试学习系列3--浏览器驱动下载使用
前端·windows·测试工具·ui
谷咕咕20 小时前
windows下python3,LLaMA-Factory部署以及微调大模型,ollama运行对话,开放api,java,springboot项目调用
java·windows·语言模型·llama
kali-Myon1 天前
解决 win+R 运行处以及文件资源管理器处无法使用 wt、wsl 命令打开终端
windows·wsl·path·regedit·wt
yubo05091 天前
YOLO系列——实时屏幕检测
开发语言·windows·python
火车叼位1 天前
Clink实战指南:让Windows开发者拥有Bash级别的命令行体验
windows