把照片变成可旋转的 3D 场景:LichtFeld Studio 的 3DGS 训练管线完整指南
【免费下载链接】LichtFeld-StudioTrain, inspect, edit, automate, and export 3D Gaussian Splatting scenes from a single native application.项目地址: https://gitcode.com/gh_mirrors/ga/LichtFeld-Studio
LichtFeld Studio 是一个把 3D Gaussian Splatting(把场景建模成海量半透明三维椭球、直接投影上屏的渲染方法)的训练、交互检视、编辑与导出全部收进同一个原生应用的工程。它用 C++23 和 CUDA 12.8+ 构建,既适合想迭代重建质量的研究者,也适合想把工作流自动化的开发者。
一次运行怎么跑:从照片到实时 3DGS 场景
把整个过程理解成一条传送带:输入是 COLMAP 处理好的一批照片和相机参数,src/io/loader_service.cpp 负责载入并做去畸变等预处理;初始点云被初始化成大量高斯,每个高斯带着位置、协方差、不透明度和球谐系数。
🔑 核心是训练循环反复做的事:src/training/rasterization/gsplat_rasterizer.cpp 里的 GPU 内核把所有高斯投影到目标视角、按透明度混合出一张渲染图;光度损失把它和真实照片比对并回传梯度,优化器更新一步参数。检查点定期落盘,中断了也能从断点接着跑。
训练结束后,模型可以导出为 PLY、SPZ 或独立的 HTML 查看器;窗口里的视口则始终实时显示当前状态,随时可以绕着场景转。
训练循环里的 densification 策略在做什么
3DGS 重建质量很大程度取决于高斯"放在哪、有多少、怎么删",这正是策略层的职责,你可以把它理解为管理椭球"人口"的负责人。
机制分三步:其一,src/training/strategies/strategy_factory.cpp 支持 MCMC 重采样、Improved GS+ 和 MRNF 三种策略,其中 MCMC 不靠分裂克隆,而是把现有高斯搬到梯度大的位置、保持点数恒定;其二,src/training/optimizer/adam_optimizer.cpp 按位置、尺度、旋转、不透明度、球谐系数分组套用不同学习率,再由调度器控制衰减;其三,损失不只是光度误差,还叠了抑制过透明高斯的正则项和可圈定优化区域的 mask 损失。
效果是训练全程点数稳定,细节逐步长出来,显存也不会中途爆掉。
显示管线如何让训练中的场景实时可见
训练跑在 CUDA 流上,视口却是另一套 Vulkan 渲染器,两边要实时看同一份 tensor,这个跨界问题在三个环节解决:
一是训练侧的 splat_data 放在外部显存里,查看端用 CUDA 异步拷贝搬进 VkBuffer,靠 timeline 信号量同步,绕开了传统"回读 CPU 再传回去"的路径。二是渲染管线文档记录的帧流程:光栅化用 12 次 dispatch 完成投影、排序和混合,双缓冲帧环(kFramesInFlight = 2)把同步延迟藏起来。三是合成环节,场景图在视口通道里与网格、锚点等覆盖层叠画,UI 直接画在交换链上,不落中间帧缓冲。
也就是说,训练进行到一半,你能同时环绕、缩放、选中一批高斯查看,互不阻塞。
想扩展自己:Python 插件与 MCP 自动化
内置功能不贴合工作流时,不必 fork 整个仓库。插件系统让你用 Python 脚本加入自定义面板、算子和工具,每个插件还能声明自己的本地依赖,不污染宿主环境。入口建议先读插件系统总览,再按上手指南写第一个插件。
另外,应用对外暴露了一组 MCP(Model Context Protocol)资源与工具,本地脚本或 agent 流程可以查询训练状态、操作场景、抓取渲染结果——等于把这个工作站当成一个可被外部驱动的控制对象,嵌进更大的管线。
上手:克隆、构建、跑起来
⚠️ 先确认机器有计算能力 7.5+ 的 NVIDIA GPU(RTX 20 系起),并装好 CUDA 12.8+、CMake 3.30+ 与 vcpkg。
git clone https://gitcode.com/gh_mirrors/ga/LichtFeld-Studio cd LichtFeld-Studio cmake -B build cmake --build build -j 16 ./build/LichtFeld-Studio -d /path/to/colmap_data -o /path/to/output-d指向 COLMAP 数据集,-o是输出目录,其余不加就是带交互窗口的完整运行。
从一组照片到能环绕查看的场景,训练管线的数据底座、CUDA 到 Vulkan 的出图路径、Python 扩展面都在这一套工程里铺好了。如果你正在评估 3DGS 研究管线,或者想把重建、检视、交付串成自动化流程,值得先跑通它的示例数据集。
【免费下载链接】LichtFeld-StudioTrain, inspect, edit, automate, and export 3D Gaussian Splatting scenes from a single native application.项目地址: https://gitcode.com/gh_mirrors/ga/LichtFeld-Studio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考