如何挑选3DGS预设:Spirula Studio的3dgs/360-camera/in-the-wild场景指南
【免费下载链接】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 Gaussian Splatting(3DGS)训练器,能把照片/视频一路训练成 splat 再导出网格,支持 Vulkan 与 CUDA 双后端。内置的训练预设(preset)正是它最上手的特性之一:选对预设,等于一步到位配好整套训练参数。本文带你快速理解 3dgs、360-camera、in-the-wild 三个核心预设分别适合什么数据集,并给出一套可照做的挑选方法。
3DGS 预设是什么?为什么重要
在 3D Gaussian Splatting 训练中,学习率、正则项、场景中心化方式、深度法线监督等参数组合决定了重建质量。新手最容易踩的坑就是"用默认参数硬跑",结果出现浮点伪影(floater)、场景比例失真或收敛缓慢。
Spirula Studio 把这些参数组合封装成了命名预设,在命令行以spirula train <preset>的方式选择,GUI 里则是训练页面的预设下拉框。预设的完整定义见 src/config/TrainConfig.h,每个预设的官方说明文案在 src/i18n/catalog/Train.h 中(支持 13 种语言)。
当前内置的 7 个预设如下:
| 预设名 | 定位 | 典型场景 |
|---|---|---|
3dgs | 通用(默认) | 大多数常规数据集 |
360-camera | 360 相机 | 双鱼眼/全景相机素材 |
in-the-wild | 网络/混杂照片 | 光照极端、长焦、有杂物的素材 |
centered-object | 居中物体 | 环绕拍摄的小物体 |
hdr | HDR 色彩 | 高动态范围内容 |
synthetic | 合成数据 | 渲染器生成的数据 |
meshing | 网格提取优化 | 为导出网格服务的训练 |
预设一:3dgs —— 大多数场景的默认选择
3dgs是默认预设,它不做任何额外覆盖,直接采用基础配置。官方描述只有一句话:"Generic method that works well for most datasets"(适用于大多数数据集的通用方法)。
什么时候用它:
- 📸 自己用普通相机/手机拍摄的场景、房间、街景
- 用 COLMAP 或 Metashape 得到的标准数据集
- 首次尝试 Spirula Studio,想先跑通流程
把它理解为"起点"而非"终点":先用3dgs跑通,如果效果不理想再切换到更专门的预设,是最稳妥的探索路径。
预设二:360-camera —— 全景与双鱼眼素材专用
如果你的数据集来自 GoPro MAX、Insta360、DJI Osmo 360 这类相机,画面里能看到圆形鱼眼边界,就应该用360-camera预设。它的关键调整(见 src/config/TrainConfig.h):
- 启用 warp-to-pinhole:把超宽鱼眼/全景图像自动拆分成多个标准针孔视角再训练,这是 360 素材出效果的核心;
- 收紧掩膜边界(
mask_boundary_offset = -0.005):鱼眼圆框外沿是噪声区,需要精确裁掉; - ERank 正则 + 长轴分裂控制:抑制全景素材特有的伪影,让细长的结构(如杆、墙边)更干净。
官方推荐判断标准很简单:"如果数据集里的鱼眼图像视角很大、能看到圆形边界,就用它。"
配套的数据集侧预设同样叫360-camera(src/app/gui/DatasetPreset.cpp),它会自动设置 thin-prism-fisheye 相机模型、开启 AI 掩膜并提示词设为person; hand; backpack—— 因为拿相机的人几乎总出现在每一帧里,默认帮你把人、手、背包遮掉。关于 360 相机的深入机制(帧布局、视图拆分)可阅读 docs/datasets.md。
预设三:in-the-wild —— 网络图片与"脏"数据集
in-the-wild面向最难的一类数据:从网上收集的照片、光照差异极端、有没遮掉的杂物、长焦拍摄。它的参数策略(见 src/config/TrainConfig.h):
- 以焦点为中心(
center_method = "focus"):长焦照片的光轴往往汇聚于被摄主体,用它定心比用相机位置更准; - 开启离群点过滤(
outlier_threshold = 10):网络照片里混入的错位/无关帧不再拖累重建; - 加载深度与法线监督(
load_depths/load_normals):用单目几何先验约束场景结构,弥补照片覆盖不完整; - 更稳的学习率与噪声调度:更低的位置学习率配合噪声退火,抵抗光照跳变带来的抖动;
- 更强的 ERank 正则:压住混杂素材里最容易泛滥的浮点伪影。
什么时候用它:
- 🌐 爬取/下载的网络照片重建场景
- 多设备、多光照条件混合拍摄
- 长焦相机素材,或画面里有行人等未遮罩干扰物
三步挑选法:30 秒选出对的预设
- 看画面形状:图像里有圆形鱼眼边界?→
360-camera;普通矩形照片 → 继续下一步; - 看来源与质量:网络收集、光照乱、有杂物、长焦?→
in-the-wild;自己规范拍摄?→ 继续下一步; - 默认兜底:以上都不是 → 用
3dgs,跑完对比损失曲线和视图效果再决定是否切换。
💡 小建议:同一数据集先用
3dgs建立基线,再用目标预设各跑一次,在 GUI 的对比视图(Compare View)里并排看,差异往往一目了然。
如何启用预设:GUI 与命令行
GUI 方式:打开训练页面后,在预设下拉框中选择即可。所有被预设覆盖的字段会以"已修改"高亮显示,右键可单项重置回预设值,方便你精细微调。
命令行方式(预设名即子命令):
spirula train in-the-wild --data <你的数据集目录>完整的预设与命令行约定说明见 src/app/cli/main.cpp 和 src/app/README.md。
小结
| 你的素材 | 选这个预设 |
|---|---|
| 常规自拍场景、首次使用 | 3dgs |
| 360 相机 / 双鱼眼 / 全景 | 360-camera |
| 网络照片、光照极端、长焦、有杂物 | in-the-wild |
| 环绕拍摄的单个小物体 | centered-object |
预设不是玄学,它只是把专家参数组合打包成一行选择。理解"3dgs 是通用底座、360-camera 解决畸变、in-the-wild 抗脏数据"这三句话,再结合本文的三步挑选法,就能为绝大多数数据集选出合适的 3DGS 预设。
【免费下载链接】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),仅供参考