尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Spirula Studio 单目几何指南:MoGe-2 如何从单张照片预测度量深度与法线

发布时间:2026/9/28 21:03:09

资讯中心
01
ARTICLE

Spirula Studio 单目几何指南:MoGe-2 如何从单张照片预测度量深度与法线

Spirula Studio 单目几何指南:MoGe-2 如何从单张照片预测度量深度与法线
Spirula Studio 单目几何指南MoGe-2 如何从单张照片预测度量深度与法线【免费下载链接】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 Gaussian Splatting 训练器其内置的MoGe-2 单目几何模型只需一张普通照片就能在本地 GPU 上直接预测出度量深度图单位米与表面法线图无需 PyTorch、无需 onnxruntime一次推理同时输出几何有效区域掩码。本文带你完整看懂这套单目几何是如何工作的以及如何用它为 3DGS 数据集批量生成深度与法线监督。为什么需要单目几何3D Gaussian Splatting 训练最怕「空中楼阁」——没有真实几何约束时高斯点会在背景与悬空处乱长。给它加上深度图和法线图两张监督模型就被迫贴合真实世界的形状与朝向。传统做法要跑好几个模型深度估计 天空分割各一个。而 Spirula Studio 里的 MoGe-2 把三件事装进了同一个网络输出含义度量深度depth每个像素的真实距离单位米无效区域为 0表面法线normal相机坐标系下的单位法向量无效区域为黑色有效性掩码mask网络自己判断「这里几何无意义」典型如天空低于 0.5 的像素直接丢弃这就是它对旧版 reference/scripts/predict_geometry.py 天空模式的替代过去需要两个额外模型才能实现的天空剔除现在只是网络里的一个输出头。MoGe-2 的推理层不依赖任何 Python 生态MoGe-2 的推理层位于 src/moge/公开接口只有三样东西Predictor、PredictOptions和Prediction定义在 src/moge/Moge.h。三个值得新手记住的设计纯 Vulkan 推理检查点是官方的 ONNX 导出文件进程内解析后直接在 GPU 上跑不经过任何运行时库权重自动下载模型按 ID 引用如moge2-vitb首次使用时从网上拉取并校验 SHA-256源码见 src/moge/model/Fetch.cpp️输入尺寸不设限MoGe 按「ViT token 预算」而非图片分辨率计算开销预测结果精确返回输入尺寸的深度图对比 Metric3D 需要 28 的整数倍对齐。点图到深度图一次一维最小二乘MoGe-2 网络输出的是仿射点图相机系下的点是(X, Y, Z shift)其中shift是唯一的未知量。把它变成深度图只需解一个一维问题min over shift of sum | focal * xy / (z shift) - uv |²Spirula Studio 在 src/moge/model/Recover.cpp 中实现了这个求解对应 src/moge/model/Recover.h。相比 MoGe 官方 CLI 用两步猜测这里有个关键优势焦长是已知的——调用方把针孔面的焦长直接传进来见 src/app/GeometryWarp.h它负责把鱼眼/全景重采样成针孔面于是「两参数猜测」退化成「一参数拟合」。最后一步depth (z shift) × metric_scale尺度头给出「每单位多少米」结果直接就是米所以--depth-units mm只需乘 1000。四步上手为数据集批量生成深度与法线编译并运行spirula geometry子命令实现位于 src/app/cli/geometry_main.cpp指定数据集例如spirula geometry dataset默认模型就是moge2-vitb按需调整选项--depth同时输出深度图默认只输出法线--num-tokens nMoGe 的 ViT token 预算1200–3600它而非图片分辨率决定耗时--depth-units mm深度以毫米写出--max-size n单面最长边上限默认 1064收集结果输出写到数据集内的normals/与depths/目录两个训练数据读取器都会按文件名自动探测无需改动transforms.json。模型选择经过 src/app/GeometryModel.h 这条「接缝」——它屏蔽了 MoGe-2 与 Metric3D v2 的全部差异调用方只看到深度和法线。--model参数同时接受两家模型自动识别。三个模型尺寸怎么选三个变体的结构差异全部写在检查点里加载器按文件自适应一条代码路径通吃详见 src/moge/README.md模型 IDGPU 占用下载体积单帧耗时*moge2-vits66 MiB141 MB~166 msmoge2-vitb默认198 MiB419 MB~199 msmoge2-vitl629 MiB1.3 GB~338 ms* RTX 5070 Laptop1800 tokens1064×598 画面第二次调用起。 新手建议直接默认moge2-vitb速度约为 Metric3D vit-large 的 2 倍显存占用不到 vit-large 的三分之一显存宽裕再上moge2-vitl。精度如何验证由于权重是官方导出、不属于本仓库项目用「同字节对比法」保证正确性让自研 Vulkan 前向与 onnxruntime 跑同一份 ONNX 字节逐阶段比对。工具是 tools/moge/compare_ort.py全链路最坏相对 L2 误差约 3.8e-6剩下的只是 fp32 累加顺序差异。关键源码地图模型总览与设计说明src/moge/README.md公共接口Predictor / PredictOptionssrc/moge/Moge.h仿射恢复shift 求解src/moge/model/Recover.h模型接缝MoGe 与 Metric3D 的开关src/app/GeometryModel.hCLI 入口spirula geometrysrc/app/cli/geometry_main.cpp精度校验脚本tools/moge/compare_ort.py架构总文档docs/architecture.md小结Spirula Studio 把 MoGe-2 单目几何做成了「零依赖、本地化、度量级」的三件套一张照片进深度、法线、有效掩码出。天空自剔除、米制深度、ViT token 预算控制让单张消费级 GPU 也能以约 0.4 秒/帧的速度为 3D Gaussian Splatting 训练提供几何监督——这正是「从视频到 splat 到 mesh」整条流水线的几何基石。【免费下载链接】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),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。