资讯详情

资讯详情

深度与法线监督:Spirula Studio的spirula geometry命令详解

深度与法线监督Spirula Studio的spirula geometry命令详解【免费下载链接】spirula-studioCross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA.项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studioSpirula Studio 是一个跨厂商的 3D 高斯泼溅3D Gaussian Splatting训练器而spirula geometry是它内置的深度与法线监督工具一条命令即可为你的数据集批量生成深度图depths/和法线图normals/让训练过程拥有更强的几何约束。无需 PyTorch、无需 onnxruntime直接在 GPU 上完成推理。什么是深度与法线监督3DGS 训练默认只靠渲染出来的像素和原图像素要一致这一条 L1/SSIM 损失容易在缺乏纹理的区域产生浮块和几何漂移。加入深度图和法线图作为额外监督后模型必须长得像单目网络估计出的三维结构重建结果会更扎实、更接近真实几何。Spirula Studio 的spirula geometry命令把这件事做成了一个独立步骤输入一个已重建好的数据集COLMAP / Nerfstudio / Metashape 任一格式输出depths/和normals/两个目录与images/并排按文件名一一对应零侵入transforms.json等数据集描述文件原封不动不会破坏你的数据集数据集读取器天生就会按名字探测这两个目录所以生成完之后直接开训什么都不用配置。详细规则见 docs/datasets.md。一键运行最快上手方法命令形式非常简单指定数据集目录即可spirula geometry my_dataset --depth默认会生成法线图PNG加上--depth后同时生成深度图。命令会按数据集分组复用相机计划逐帧推理进度条实时显示剩余时间全部图片处理完约每帧 1 秒左右取决于模型。几个最常用的开关选项作用默认值--depth同时生成深度图关默认只生成法线--model id\|file选择推理模型或指向本地 ONNX 文件moge2-vitb--max-size n单张面片的长边上限控制精度与速度1064--num-tokens nMoGe 的 ViT token 预算决定其成本3600--depth-units relative\|mm深度单位相对值0~65535或毫米relative--normal-format png\|jpg法线图输出格式png--split auto\|yes\|no广角/全景是否切分为多个针孔面片auto--overwrite已存在的输出文件也重新生成关--device index\|name\|uuid指定 GPU自动完整说明直接运行spirula geometry --help即可看到且支持多语言--lang zh。模型选择MoGe-2 与 Metric3D v2命令背后是两套单目几何网络由 src/app/GeometryModel.h 统一封装你只看到深度 法线这一种输出MoGe-2默认Metric3D v2默认型号moge2-vitbmetric3d-vitb等深度含义直接是米--depth-units mm只需乘 1000规范化深度需乘焦距换单位天空处理自带有效性掩码天空像素自动写成无真值哨兵无速度约 0.4 s/帧约 0.8 s/帧vit-large精度对标与 onnxruntime 相对 L2 误差 3.8e-6相对 L2 误差 1.5e-3对新手建议保持默认moge2-vitb即可——它自带天空掩码不会把天空当成一面墙来监督速度也更快。想换更大/更小的模型用--model指定 id 或本地 ONNX 文件即可参数细节分别见 src/moge/README.md 和 src/metric3d/README.md。鱼眼与 360° 相机自动面片切分单目网络只在针孔图像上训练过所以宽幅画面需要拆成几块针孔面片再拼回来。spirula geometry用 src/app/GeometryWarp.h 处理这一切--split auto默认会根据镜头实际视野自动决策普通透视镜头走单面片去畸变的快路径150°、220° 的鱼眼或 360° 全景则切成正面片 环绕面片全景切成 6 面体素图面片之间刻意重叠约 15~20%跨距离对齐尺度后做交叉淡化避免在画面中央出现接缝线--ray-depth控制深度语义单面片用 z 深度切分后默认用光线距离普通场景无需关心也就是说360° 相机拍的数据集不用先去畸变直接跑这一条命令就行。输出文件的格式与哨兵约定生成文件的编码方式是与训练器严格对齐的法线图PNG/JPG每个通道编码为127.5 127.5 × 分量。纯黑表示此像素无真值训练时会被损失函数自动屏蔽深度图16 位灰度 PNG相对模式下按 99.9 分位归一化到 0~65535避免地平线上几个极远像素压缩掉整个室内范围0表示无真值。用 16 位是因为 8 位在 log 空间损失下会明显色带天空或无效区域的像素同样写成哨兵值不会被拿来监督写盘逻辑见 src/app/geometry_main.cpp16 位 PNG 写入器在 src/app/DepthPng.h。不下载模型也能跑自检--checkspirula geometry --check这个选项不加载任何网络而是把解析平面放进各种相机模型针孔畸变、鱼眼棱镜、等立体、等距柱状全景做相机往返测试验证面片旋转、深度换算、切分规划的正确性。适合改过相机相关代码后做回归验证也适合想确认安装环境正常的新手。在 GUI 中同样可用不想碰命令行GUI 的数据集处理流程把几何估计作为最后一步先用单帧试跑预览效果确认后对整组数据集运行。对应实现是 src/app/gui/GeometryRunner.h批量与 src/app/gui/GeometryPanel.h单帧试跑。总结与延伸阅读spirula geometry的价值在于一条命令、零依赖、零破坏地把深度与法线监督接入你的 3DGS 训练流程并且对鱼眼/全景这类网络没见过的相机原生友好。新手只需记住三步spirula geometry my_dataset --depth生成监督数据直接开始训练depths/和normals/会被自动读取广角数据无需额外处理--split auto已就绪延伸阅读数据集格式与depths/、normals/约定docs/datasets.mdMoGe-2 推理层含速度/token 预算表src/moge/README.mdMetric3D v2 推理层含相机切分与交叉淡化细节src/metric3d/README.md网络与命令之间的统一接缝src/app/GeometryModel.h【免费下载链接】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),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →