ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

四步从照片到带纹理网格:3D 高斯泼溅工具 Spirula Studio 零依赖上手教程

四步从照片到带纹理网格:3D 高斯泼溅工具 Spirula Studio 零依赖上手教程

四步从照片到带纹理网格: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 是一款跨厂商 GPU 运行的 3D 高斯泼溅训练工具:单个二进制spirula跑通从照片视频采集、稀疏位姿重建、splat 训练到带纹理网格导出的全流程,Vulkan 与 CUDA 双后端,全程不依赖 Python 环境。

三分钟上手

最快的路是预编译版:从项目 Releases 页选对应平台(Windows / Linux / macOS)的版本包,解压后双击,图形界面直接打开,零配置。

如果坚持源码构建,一条命令就够(Windows 下对应build_develop.bat):

bash build_develop.bash -DSS_BACKEND=vulkan

SS_BACKEND有两个取值:Vulkan 跑在 NVIDIA、AMD、Intel、Apple 显卡上,是通用选择;CUDA 面向 NVIDIA。构建完成后,双击spirula进 GUI,或在终端敲./build_vulkan/spirula --help看全部子命令——训练、SfM 重建、AI 遮罩、网格化都挂在这一个可执行文件下。得益于量化训练,8GB 显存也装得下 1000 万个 SH3 高斯。

先准备好什么数据

数据能不能被打开,取决于你的目录长什么样。程序按 Nerfstudio → COLMAP → Metashape 的顺序探测布局,命中谁就用谁,你只需在数据集根目录放好这些内容:

  • 图片放在images/,遮罩、深度、法线分别放masks/、depths/、normals/,按文件名对应
  • COLMAP 稀疏模型自动在sparse/0、colmap/sparse/0、sparse等位置探测,多个模型时取注册图片最多的
  • 种子点云可选:没有点云时解析只得到相机位姿,训练器会自动随机播种,不报错
  • 鱼眼、360° 等距圆柱、完整畸变模型原生支持,直接加载训练,无需去畸变
  • Metashape 的.psx工程在 Align Photos 之后保存即可直接打开;目录里有多个.xml/.psx时用--metashape-xml指名

拿不准就逐项对照 docs/datasets.md,遮罩规则、相机模型和 360° 约定都写在那里。

跑通第一次训练

GUI 与 CLI 两个入口指向同一个训练会话,第一次训练两条路都通顺。

GUI 路线:主界面点Open a Dataset(或Create Dataset from Photos/Video从照片视频直接建数据集),选预设、勾几个基础选项,按Start Training,原生视口里实时看结果,产物默认写入<数据集>/outputs。

CLI 路线:

./build_vulkan/spirula train 3dgs --data my_dataset

3dgs是默认预设,另有几个内置预设:360-camera(环拍相机)、hdr(高动态范围场景)、synthetic(合成数据)、meshing(为后续网格化调优)。显存吃紧就加train_resolution_divisor缩小训练分辨率,和 GUI 的 Image resolution 选项是同一个开关。

远程或长时间训练还有三个习惯值得养成:Spirula Studio 默认在 7007 端口起一个 Web 查看器,云端 GPU 用 SSH 端口转发就能在浏览器里盯进度;中断后接上一次的运行目录用--resume,Ctrl-C 中断也会存下可续训的 checkpoint;手头有一份不错的 PLY 时用--init-ply暖启动。每个标志的含义由spirula train --help逐条列出,帮助文本含简体中文在内的多语言版本。

黑盒里装了什么

仓库目录结构不必全背,分三组看就够了。

  • 动手前必看:src/config/TrainConfig.h 是全部训练标志的单一事实来源;docs/datasets.md 是数据契约
  • 用到再看:src/engine/(训练引擎,纯 C++ 驱动层)、src/kernels/(投影、光栅化、密度优化、损失等 GPU 核)、src/data/(数据集管理器与三种格式解析器)、src/app/(唯一的spirula可执行文件:CLI、原生 GUI、Web 查看器)、src/sfm/(内置运动恢复结构)、src/mesh/(网格化管线)
  • 可先忽略:src/sam/与src/nn/(AI 遮罩与 GPU 推理层)、viewer/(独立 WebGL2/WASM 查看器)、reference/scripts/(独立 Python 预处理脚本)、src/instantiations/(构建期生成代码,已提交入库)

配置单一来源这一点值得单独说。所有标志只在 TrainConfig.h 的一张 X-macro 表里定义一次,CLI 参数、--help文本、GUI 选项编辑器、运行时的config.json全部从这张表展开。相当于系统里的一张配置总表,每个开关都指向同一页,四处入口天然不会互相漂移。

卡住了先看这里

训练卡住时,先排除环境问题吗?多数情况不用,先对照这张表:

现象处理
显存爆掉 / OOM加train_resolution_divisor降训练分辨率,或减小预设的 max splats
提示目录不是受支持的数据集对照 docs/datasets.md 核对布局;Metashape 用--metashape-xml指定
训练中断不想重来--resume <运行目录>;Ctrl-C 中断本身已保存可续训 checkpoint
远程机器没有显示器转发 7007 端口用浏览器看;GUI 的基础选项里也能额外挂起 Web 查看器
某个标志含义不清spirula train --help列出全部标志的含义与默认值

涉及两个后端的能力差异(比如内置 SfM 只在 Vulkan 构建里),查 docs/backends.md。

跑通之后还能做什么

第一个 splat 出来后,剩下的工具链都在手边。视频抽帧自动挑每段里最清晰的帧,支持按运动自适应的抽帧率——静止片段少抽、快速移动片段多抽;spirula sfm输出 COLMAP 兼容的sparse/稀疏模型;内置 SAM 遮罩能去掉手部、背景这类干扰物;然后训练;最后spirula mesh输出 PLY、OBJ、GLB 或 STL,全程支持顶点色与烘焙纹理贴图。

两处长期用得上的地方:viewer/目录是一个独立于训练的 WebGL2/WASM 在线查看器;reference/scripts/里的抽帧、降采样、去畸变等 Python 脚本是手工跑的预处理,不进主流程。想再深入,src/app/README.md 记录了 CLI 与 GUI 的预设和配置表,docs/下还有架构、数据集、测试等文档。

结尾

一个二进制、零 Python 依赖、跨厂商 GPU,Spirula Studio 把 3D 高斯泼溅的门槛压到了"数据放好、按下开始"。

今天就能做的动作:挑一组你熟悉物体的照片放进images/,用 GUI 的Create Dataset from Photos/Video建数据集,选3dgs预设开始训练——等这段文字读完,第一个 splat 应该已经在屏幕上。

【免费下载链接】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),仅供参考

返回列表