零基础跑通3D高斯泼溅:Spirula Studio 命令行训练完整指南
【免费下载链接】spirula-studioCross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA.项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio
Spirula Studio 是一个跨厂商的 3D 高斯泼溅(3D Gaussian Splatting)训练工具,一条命令行即可从照片/视频训练出 splat 并导出网格,支持 Vulkan 与 CUDA 双后端。本文带你零基础完成第一步:用spirula train命令行跑通你的第一次 3D 高斯泼溅训练。
一、Spirula Studio 是什么?为什么新手友好?
3D 高斯泼溅是继 NeRF 之后流行的 3D 重建技术:用数百万个带颜色、透明度的 3D 高斯点表示场景,再在新视角实时渲染。传统方案往往要装 Python + PyTorch + COLMAP,环境配置就是劝退新手的头号原因。
Spirula Studio 的核心卖点,就是把这些全部打包进了一个自包含的二进制文件:
| 特性 | 说明 |
|---|---|
| 无 Python 依赖 | 不需要 PyTorch、不需要单独装 COLMAP |
| 跨 GPU 厂商 | 通过 Vulkan 计算,NVIDIA / AMD / Intel / Apple 显卡都能训练 |
| 显存极其省 | 量化训练,8 GB 显存可训 1000 万高斯点 |
| 内置 SfM 与 AI 遮罩 | 特征提取、位姿估计、视频抽帧全在一套工具里 |
| 原生 360° 相机 | 鱼眼/全景数据集直接训练,无需先去畸变 |
二、获取spirula可执行文件的两种方式
方式 A:直接下载发布版(推荐新手)
在 GitHub Releases 页面选择你平台的压缩包,解压后双击即可打开图形界面;命令行使用其中的spirula(Windows 为spirula.exe)。
方式 B:从源码编译
适合想定制或有特殊 GPU 驱动需求的用户。仓库提供了现成的构建脚本(Linux/macOS 用bash build_develop.bash,Windows 用.\build_develop.bat),Vulkan 后端为例:
git clone https://gitcode.com/GitHub_Trending/sp/spirula-studio cd spirula-studio bash build_develop.bash -DSS_BACKEND=vulkan构建成功后会得到build_vulkan/spirula可执行文件。构建细节见项目根目录的 README.md。
三、准备数据集:三种格式自动识别
训练前需要一份带相机位姿的数据集。Spirula Studio 的解析器会按Nerfstudio → COLMAP → Metashape的顺序自动探测,你无需手动指定格式。目录结构约定很简单:
images/—— 训练图像masks/—— 可选遮罩(白色保留区域)- 相机模型放在
sparse/0、colmap/sparse/0等常见路径,自动识别
关于数据集的完整约定(遮罩、种子点、相机模型、分辨率处理)都写在 docs/datasets.md 中。如果你手上只有视频,可以先用内置的抽帧功能把视频转成帧序列,再交给内置 SfM 估计位姿。
四、第一次训练:一条命令搞定
这是全文最重要的一行命令 🎯:
spirula train --data /path/to/your/dataset就这么简单。train子命令会应用默认预设3dgs(通用预设,适用于大多数数据集),自动检测数据集格式、初始化高斯点、开始训练。默认行为包括:
- 训练 30000 步(
--num-iterations可改) - 每 2000 步保存一次检查点,输出在
outputs/目录 - 在 7007 端口启动 Web 查看器,浏览器实时观看训练进展
命令行解析与预设实现位于 src/app/cli/main.cpp 和 src/config/TrainConfig.h,想看每个参数的含义可以运行spirula train --help(只列基础参数)或--help-all(全部参数)。
五、训练预设:按场景选一个更省心
spirula train支持 7 个内置预设,写在命令的第一个位置即可生效:
spirula train 360-camera --data my_pano_dataset| 预设 | 适用场景 |
|---|---|
3dgs | 默认,通用数据集(大多数情况选它) |
360-camera | 360 相机原始畸变鱼眼图 |
in-the-wild | 网上下载/混杂来源的照片 |
centered-object | 环绕拍摄的单个物体 |
hdr | 高动态范围影像 |
synthetic | 合成渲染数据 |
meshing | 以导出高质量网格为目标 |
另一个新手神器是--quality宏:它一个参数联动控制高斯点上限和训练步数,无需理解细节:
| 档位 | 高斯点上量 | 训练步数 |
|---|---|---|
low | 20 万 | 15000 |
medium(默认) | 100 万 | 30000 |
high | 300 万 | 50000 |
ultra | 1000 万 | 80000 |
显存紧张就--quality low,追求极致细节就ultra。
六、浏览器实时看训练进度(远程GPU也适用)
spirula train默认会在http://<主机>:7007启动一个 Web 查看器,训练时每 100 步在终端打印一次进度行(当前步数、高斯点数量、耗时、剩余时间、rgb_loss / ssim / psnr 指标),同时打开浏览器就能 3D 旋转查看正在"长出来"的场景。
在远程/云 GPU 上训练时,用 SSH 端口转发即可把查看器映射到本地:
ssh -L 7007:localhost:7007 user@remote端口可用--viewer_port修改,--disable_viewer可完全关闭。
七、常见问题速查
Q1:报错 "unknown flag: xxx"?参数名支持--和_互换、大小写按驼峰转横线写法,如--sh-degree等价--sh_degree。跑spirula train --help查看当前支持的完整参数列表。
Q2:数据集没有点云会失败吗?不会。点云是可选的:没有点云时训练器自动在相机周围随机撒点初始化(--random-init auto为默认),详见 docs/datasets.md 的 Seed points 一节。
Q3:想训练中途中断、之后继续?每 2000 步的检查点会自动保存,用--resume <checkpoint目录>接着跑,命令行上手动指定的参数优先级高于检查点里保存的配置。
Q4:训练出来的 splat 文件在哪?默认在outputs/<数据集名>/下,含最终 splat 文件、config.json与检查点。后续还可用spirula mesh子命令从 splat 提取带纹理的网格,完整 CLI 一览见 src/app/cli/ 目录(sfm_main.cpp、mesh_main.cpp、encode_main.cpp等各有分工)。
八、下一步可以做什么
跑通第一步之后,推荐的进阶路线是:
- 用内置 SfM 从原始照片直接出位姿,省去外部工具
- 试试
--quality high或换个预设,对比效果差异 - 训练完成后导出网格(meshing 预设 +
spirula mesh) - 阅读 docs/architecture.md 了解引擎整体架构,docs/backends.md 了解 Vulkan 与 CUDA 后端差异
一条命令、零依赖配置、浏览器实时预览——这就是 Spirula Studio 给 3D 高斯泼溅新手准备的最低门槛。现在就去跑你的第一个场景吧!
【免费下载链接】spirula-studioCross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA.项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考