当前位置: 首页 > news >正文

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

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

硬件/软件作用推荐/必须
系统Windows 11基础环境
显卡RTX 3060 (12GB)必须 NVIDIA GPU
Git Bash克隆代码,命令行操作推荐
Anaconda3隔离 Python 环境强烈推荐
CUDA 11.7GPU 计算核心,匹配 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,使用官方镜像通常速度更快。
3. 安装依赖包,推荐分别执行

pip install plyfile
pip install tqdm
pip install opencv-python
pip install joblib
  1. 安装子模块,推荐分别执行
# 注意:这些命令必须在设置了 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
在这里插入图片描述

http://www.dtcms.com/a/405871.html

相关文章:

  • 软件设计师软考备战:第五篇 软件工程与项目管理
  • 接口访问速度突然变慢,怎么排查
  • C++ IO 库全方位解析:从基础到实战
  • 从“手机拆修”看懂POD与非POD的区别
  • vc无法启动
  • SenseVoice微调
  • 【C++】: list介绍以及模拟实现
  • dlib 实战:人脸检测、关键点定位与疲劳检测的全流程实现
  • SpringBoot 整合机器学习框架 Weka 实战操作详解:MLOps 端到端流水线与知识图谱融合实践
  • 华为OD最新机试题A卷双机位-单词接龙-2025年
  • Python 爬虫(豆瓣top250)-享受爬取信息的快乐
  • Kafka选举机制深度解析:分布式系统中的民主与效率
  • 一文读懂费用分析:定义、分类与成本费用区别
  • 全国做网站找哪家好做宣传海报的网站
  • 【Linux】基础IO(3)
  • 【Redis学习】Redis中常见的全局命令、数据结构和内部编码
  • AI行业应用深度解析:从理论到实践
  • AI 伦理审查破局:从制度设计到实践落地的 2025 探索
  • RocketMQ面试问题与详细回答
  • 多传感器数据融合到base_link坐标系下
  • 阿里新开源Qwen3-Omni技术解析
  • Flink 流式分析事件时间、Watermark 与窗口
  • 解析前端框架 Axios 的设计理念与源码
  • 使用IOT-Tree消息流InfluxDB模块节点实现标签数据的时序数据库存储
  • 【深入理解JVM】垃圾回收相关概念与相关算法
  • 文档抽取技术:金融保险行业数字化转型的核心驱动力之一
  • 神秘魔法?耐达讯自动化Modbus TCP 转 Profibus 如何为光伏逆变器编织通信“天网”
  • 做庭院的网站佛山网站专业制作
  • wordpress开启多站点营销云官网
  • 企业AI 智能体(AI_Agent)落地开源方案:Dify、n8n、RAGFlow、FastGPT、AutoGen和OAP深度梳理与对比分析