从论文到代码:3D Gaussian Splatting完整复现指南
引言:3D Gaussian Splatting技术概述
3D Gaussian Splatting(3D高斯溅射)是2023年提出的实时辐射场渲染技术,能够在保持高质量视觉效果的同时实现1080p分辨率下30fps以上的实时新视角合成。该方法通过将场景表示为3D高斯分布,结合各向异性协方差优化和快速可见性感知渲染算法,解决了传统辐射场方法训练成本高、渲染速度慢的问题。
项目的核心实现包含在train.py训练脚本和SIBR_viewers可视化工具中,通过PyTorch框架和CUDA加速实现高效优化与渲染。
环境准备与依赖项
硬件要求
- CUDA兼容GPU(计算能力7.0+)
- 建议24GB VRAM(用于论文级质量训练)
- OpenGL 4.5兼容显卡(用于实时查看器)
软件要求
- Conda包管理器
- C++编译器(Windows推荐Visual Studio 2019)
- CUDA SDK 11(推荐11.8版本,11.6存在已知问题)
- CMake 3.24+
快速开始:从克隆到运行
克隆代码库
git clone https://gitcode.com/gh_mirrors/ga/gaussian-splatting --recursive
创建并激活环境
# Windows系统额外需要
SET DISTUTILS_USE_SDK=1
# 创建conda环境
conda env create --file environment.yml
conda activate gaussian_splatting
如果Conda默认路径磁盘空间不足,可指定自定义路径:
conda config --add pkgs_dirs <Drive>/<pkg_path>
conda env create --file environment.yml --prefix <Drive>/<env_path>/gaussian_splatting
conda activate <Drive>/<env_path>/gaussian_splatting
数据准备与处理
数据集结构
COLMAP处理后的数据集应包含以下结构:
<数据集路径>
├── images
│ ├── image1.jpg
│ ├── image2.jpg
│ └── ...
└── sparse
└── 0
├── cameras.bin
├── images.bin
└── points3D.bin
官方数据集
可以使用论文作者提供的数据集进行测试:
- Tanks&Temples和Deep Blending数据集:650MB
- 预训练模型:14GB
- 评估图像:7GB
模型训练流程
基本训练命令
python train.py -s <COLMAP或NeRF合成数据集路径>
关键参数说明
| 参数 | 描述 | 默认值 |
|---|---|---|
| -s, --source_path | 数据集路径 | 无(必填) |
| -m, --model_path | 模型保存路径 | output/<随机名称> |
| -r, --resolution | 图像分辨率缩放因子 | 自动调整(超过1600像素宽时) |
| --eval | 使用训练/测试集拆分进行评估 | 禁用 |
| --white_background | 使用白色背景而非黑色 | 禁用 |
| --iterations | 训练总迭代次数 | 30000 |
训练过程可视化
训练过程中可使用网络查看器实时监控:
# 在SIBR_viewers/build/install/bin目录下
./SIBR_remoteGaussian_app
默认情况下,查看器会连接本地6009端口的训练进程,可通过--ip和--port参数指定远程连接。
模型评估与渲染
生成渲染结果
训练完成后,使用以下命令生成测试集渲染结果:
python render.py -m <训练好的模型路径>
计算评估指标
python metrics.py -m <模型路径>
该命令会计算L1损失、PSNR和SSIM等指标,结果保存在模型目录中。
完整评估脚本
项目提供了完整的评估脚本full_eval.py,可批量处理多个数据集:
python full_eval.py -m360 <mipnerf360数据集路径> -tat <Tanks&Temples数据集路径> -db <Deep Blending数据集路径>
实时查看器使用指南
查看器安装
Windows预编译版本
推荐使用官方提供的预编译Windows二进制文件,解压后即可使用。
从源码编译
# Ubuntu 22.04依赖安装
sudo apt install -y libglew-dev libassimp-dev libboost-all-dev libgtk-3-dev libopencv-dev libglfw3-dev libavdevice-dev libavcodec-dev libeigen3-dev libxxf86vm-dev libembree-dev
# 编译
cd SIBR_viewers
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release
cmake --build build -j24 --target install
运行实时查看器
# 在SIBR_viewers/build/install/bin目录下
./SIBR_gaussianViewer_app -m <训练好的模型路径>
查看器导航控制
- FPS模式(默认):WASD键移动,IKJLUO键旋转
- 轨迹球模式:可从浮动菜单选择
- 快捷键:
- 空格键:暂停/继续渲染
- C键:捕捉到最近相机视角
- V键:切换视图模式
常见问题与解决方案
内存不足问题
- 降低输入图像分辨率:使用
-r 2(1/2分辨率)或-r 4(1/4分辨率) - 将图像数据放在CPU上:添加
--data_device cpu参数 - 减少高斯数量:调整
--densify_grad_threshold参数
Windows编译问题
若出现cl.exe: File not found错误,需确保:
- 已安装Visual Studio(带C++开发组件)
- CUDA SDK安装在Visual Studio之后
- 设置环境变量:
SET DISTUTILS_USE_SDK=1
查看器性能优化
- 禁用垂直同步(VSync)
- 在多GPU系统中确保OpenGL/Display GPU与CUDA GPU一致
- 关闭Top View功能(在菜单中)
项目结构与核心模块
主要代码文件
- train.py:模型训练主脚本
- render.py:渲染测试集图像
- metrics.py:计算评估指标
- full_eval.py:完整评估流程
核心模块
- gaussian_renderer:高斯渲染器实现
- scene:场景表示与相机处理
- utils:通用工具函数
- arguments:命令行参数解析
第三方依赖
- diff-gaussian-rasterization:微分高斯光栅化
- simple-knn:K近邻实现
- lpipsPyTorch:LPIPS损失计算
结论与扩展
3D Gaussian Splatting通过创新的场景表示方法,在视觉质量和实时性能之间取得了优异的平衡。本指南详细介绍了从环境搭建、数据准备、模型训练到评估渲染的完整流程,帮助研究人员和开发者快速复现论文结果。
项目仍在持续更新中,最新特性可关注dev分支,包括深度正则化、抗锯齿和曝光补偿等功能。未来工作可探索在低显存设备上的优化、动态场景支持以及与VR/AR的集成应用。
引用格式
如果使用本项目进行研究,请引用原论文:
@Article{kerbl3Dgaussians,
author = {Kerbl, Bernhard and Kopanas, Georgios and Leimk{\"u}hler, Thomas and Drettakis, George},
title = {3D Gaussian Splatting for Real-Time Radiance Field Rendering},
journal = {ACM Transactions on Graphics},
number = {4},
volume = {42},
month = {July},
year = {2023},
url = {https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/}
}
致谢
本项目由INRIA、MPI和UCA联合开发,得到ERC Advanced grant FUNGRAPH No 788065资助。感谢Adobe的捐赠以及OPAL和GENCI–IDRIS提供的计算资源支持。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00




