MoGe 输出结果详解:一张照片跑一次,5 类几何信息怎么读、能干什么

MoGe 输出结果详解:一张照片跑一次,5 类几何信息怎么读、能干什么

【免费下载链接】MoGe[CVPR'25 Oral] MoGe: Unlocking Accurate Monocular Geometry Estimation for Open-Domain Images with Optimal Training Supervision项目地址: https://gitcode.com/GitHub_Trending/mo/MoGe

拍一张普通照片,几秒钟后你能拿到这张图的点云、深度图和法线图——这就是 MoGe 这个单目几何估计模型(CVPR'25 Oral)做的事情:从单张开放域图像里恢复出精确的 3D 几何信息。很多新手第一次跑完moge infer,面对输出目录里那一堆exr、png、glb文件会一脸懵。这篇文章就把 MoGe 的输出结果完整拆开讲:每个文件代表什么、坐标系是什么、落盘成什么格式、以及你能拿它们去干哪些事。

🧺 总览:一次前向传播,你能拿到什么?

MoGe 模型在一次前向传播中并不是只吐出一个结果,而是一组与输入图像等大的「地图」(map),外加相机参数。把清单先摆出来,后面逐个拆:

输出形状一句话解释
点图 points(H, W, 3)每个像素对应的 3D 空间坐标
深度图 depth(H, W)每个像素到相机的距离
法线图 normal(H, W, 3)每个像素的表面朝向(MoGe-2 的 normal 模型才有)
掩码 mask(H, W)二值标记,哪些像素是有效的
相机内参 intrinsics(3, 3)归一化的相机内参矩阵

图:MoGe 从单张图像到各类几何输出的整体流程(单目几何估计管线概览)

先抓住一个关键概念:所谓「图」,其实是一整张数值矩阵,尺寸和输入照片一模一样。照片里有多少个像素,这些地图里就有多少个对应的数值点。理解了这一点,后面所有输出都好读。

📐 空间与距离:点云和深度图,本质是一回事

点图和深度图看起来是两种东西,但本质是同一份「空间位置」信息的两种表达:

  • 深度图只回答一个问题:这个像素离相机多远。它是单通道数值,MoGe-2 下单位就是米,可以直接用来做距离测量。
  • 点图把深度再结合相机参数反投影回去,给每个像素算出完整的 (x, y, z) 三维坐标。你可以把它理解成「逐像素的点云」——把有效像素的三维坐标全捞出来,就是一张标准点云。

图:一张普通室内照片——MoGe 的输入只需这种日常开放域图像,无需任何标定

对新手来说,读法很简单:深度图上每个像素就是一个浮点数,数值越大代表越远;点图上每个像素是一组坐标,代表场景中某一点在相机坐标系下的位置。精度方面,MoGe-2 的点图是度量尺度的(metric scale),也就是说 1.0 就是 1 米,而不是像一些纯学习式方法那样只给你一个「差一个未知缩放」的结果,拿来直接量距离是可以的。

🧭 表面方向:法线图告诉你每个点「朝哪」

点图和深度图给的是位置和距离,而法线图给的是朝向:每个像素位置上一个单位法向量 (x, y, z),表示该处表面垂直方向指哪儿。

它来自 MoGe-2 的 normal 版本模型(加载 normal 权重时输出里才会带normal键)。落盘时会做颜色编码存成normal.png,红/绿/蓝通道分别对应法向量的三个分量,这样肉眼看颜色就能判断表面朝向——比如大面积同色说明是一块平整表面,颜色渐变处往往是曲面或边缘。

典型用法:表面重建时给网格提供平滑的法向、光照计算与渲染、以及基于法向的语义分割辅助等。配合 docs/normal.md 可以看到官方的法线效果对比说明。

📏 坐标系与尺度:这一节不读,后面全白干

三个容易踩的坑,集中说清楚:

  1. OpenCV 坐标系。MoGe 输出的点图和法线图都采用 OpenCV 相机坐标系:X 向右、Y 向下、Z 向前(指向场景)。这和很多 3D 软件里默认的「Y 向上、Z 向后」是反的。如果你把points.exr里的坐标直接喂进 Blender 之类的工具发现场景倒立、前后颠倒,先来这里找原因。
  2. GLB/PLY 已自动转坐标。导出mesh.glb/pointcloud.ply时,脚本会把顶点从 OpenCV 约定转换到 OpenGL 世界系(x 右、y 上、z 向后),贴图 UV 也做了相应调整——所以 3D 文件里拿到的是「正着」的模型,但原始地图文件仍是 OpenCV 坐标系。两条数据链的坐标系不同,混用时别搞串。
  3. EXR 是 32 位浮点。深度和点图以 EXR 格式保存,每个通道是 float32,动态范围大、无损保存,适合做后续数值处理;PNG 可视化图只适合肉眼看,不要拿它当数据用。

另外记住尺度这件事:MoGe-2 默认就是米制度量尺度,深度 1.5 就是离相机 1.5 米;相机视场角若已知可以通过--fov_x指定,否则模型会自动估计。

💾 文件落盘:--maps、--glb、--ply各产出什么

用命令行跑一次推理(脚本源码在这里):

  • 加--maps,每张图目录下会存一组像素级地图:
    • image.jpg— 输入图副本,方便对照
    • depth.exr— 原始深度图(32 位浮点,数据用)
    • depth_vis.png— 颜色编码的深度可视化,肉眼看用
    • points.exr— 逐像素 3D 坐标(点图)
    • normal.png— 法线可视化(仅 normal 模型有)
    • mask.png— 有效像素二值掩码,白为有效、黑为无效,做点云/网格前先过一遍它能滤掉无效区域
    • fov.json— 估计出的水平/垂直视场角(单位:度)
  • 加--glb,得到mesh.glb:由点图重建的网格模型,原图颜色作为贴图,可直接拖进主流 3D 软件或 Web 查看器。
  • 加--ply,得到pointcloud.ply:纯点云,颜色存在顶点色里,适合做点云配准、扫描式重建流程。

图:街景交通照片这类开放域图像是 MoGe 单目几何估计的典型输入,输出可直接用于 3D 重建

三个开关互不冲突,可以同时加;都不加时脚本会默认全存。每张输入图会按自己的文件名建子目录存放,批量处理一个文件夹也照样工作。

🎯 从输出到应用:这些东西拿来干嘛

  • 3D 重建与 AR:mesh.glb/pointcloud.ply直接进 Blender、Web 3D 场景,单张照片变可交互的立体内容。
  • 机器人导航:度量深度的深度图天然适合做障碍物距离判断与避障规划。
  • 表面分析:法线图支撑表面平整度检测、光照估计、基于几何的特征提取。
  • 下游几何任务的输入:EXR 原始地图精度高、格式通用,可以直接作为其他 3D 工作流的输入数据。
  • 全景图扩展:仓库还提供了一个实验性的 360° 全景流程moge infer_panorama,把等距柱状全景切分成多个视角分别估计再拼回,得到全景深度与点图,感兴趣的可以看 moge/scripts/infer_panorama.py。

想深入用法可以看 moge/scripts/infer.py 的参数说明,评估相关细节见 docs/eval.md,ONNX 部署参考 docs/onnx.md,各种真实输入照片在 example_images/ 里可以随便挑来试。

写在最后

读懂 MoGe 的输出其实就记三件事:像素级地图给你「哪里、多远、朝哪」,EXR 保精度、PNG 供人看,导出文件自动转好坐标系。把这些搞明白了,从一张照片到可用 3D 内容之间,只差一条命令的距离。

【免费下载链接】MoGe[CVPR'25 Oral] MoGe: Unlocking Accurate Monocular Geometry Estimation for Open-Domain Images with Optimal Training Supervision项目地址: https://gitcode.com/GitHub_Trending/mo/MoGe

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Fort Firewall 实战:按进程封网,一篇就够

Fort Firewall 实战:按进程封网,一篇就够

Fort Firewall 实战:按进程封网,一篇就够 【免费下载链接】fort Fort Firewall for Windows 项目地址: https://gitcode.com/GitHub_Trending/fo/fort 凌晨两点,一个你从没听过的程序在后台往某个陌生 IP 发数据,Windows 防…

2026/10/20 1:57:12 阅读更多 →
MAS 激活指南:免费激活 Windows 与 Office,永久去水印只需 3 步

MAS 激活指南:免费激活 Windows 与 Office,永久去水印只需 3 步

MAS 激活指南:免费激活 Windows 与 Office,永久去水印只需 3 步 【免费下载链接】Microsoft-Activation-Scripts Open-source Windows and Office activator featuring HWID, Ohook, TSforge, and Online KMS activation methods, along with advanced t…

2026/10/20 1:57:12 阅读更多 →
浏览器里的语音识别:Whisper Web 如何用3步在你电脑上跑起来

浏览器里的语音识别:Whisper Web 如何用3步在你电脑上跑起来

浏览器里的语音识别:Whisper Web 如何用3步在你电脑上跑起来 【免费下载链接】whisper-web ML-powered speech recognition directly in your browser 项目地址: https://gitcode.com/GitHub_Trending/wh/whisper-web whisper-web 是一个纯前端实现的浏览器端…

2026/10/20 1:57:12 阅读更多 →

最新新闻

博途1500PLC字符串包含判断:FOR+MID滑动窗口实现详解

博途1500PLC字符串包含判断:FOR+MID滑动窗口实现详解

用博途1500PLC判断源字符串中是否含有子字符串,这个需求听起来简单,我第一次在现场做的时候也以为一条指令就完事了。那是条包装线的扫码工位,读码器通过Profinet把条码送进PLC,我需要在ABC240315001XYZ这样的字符串里判断有没有2…

2026/10/20 2:37:36 阅读更多 →
大模型Token计费全解析:从分词原理到成本优化实战

大模型Token计费全解析:从分词原理到成本优化实战

记得我刚接触大模型开发那会儿,最让我头疼的还真不是提示词怎么写,而是后台账单上的那一串token数字。明明感觉没聊几句,钱就悄悄没了,看计费详情时又一头雾水。后来自己跑接口做应用,才彻底搞明白Token到底是什么&…

2026/10/20 2:37:36 阅读更多 →
剪纸主题网页制作指南:HTML+CSS+JavaScript实现传统美学与交互设计

剪纸主题网页制作指南:HTML+CSS+JavaScript实现传统美学与交互设计

前两天有个同学跑过来问我,说期末作业想做“Web剪纸”主题的网页,不知道怎么把剪纸这种传统手艺和网页制作结合起来。我当时一听就觉得这个选题选得挺聪明的——剪纸是最有辨识度的中国民间视觉符号之一,红色、镂空、对称,任何一个…

2026/10/20 2:37:36 阅读更多 →
Ubuntu循环登录自救指南:从tty命令行到图形会话修复全流程

Ubuntu循环登录自救指南:从tty命令行到图形会话修复全流程

1. 循环登录的典型症状与背后机制1.1 症状什么样,怎么判断是不是它作为常年折腾桌面Linux的人,Ubuntu循环登录这五个字几乎每年都要见上几次。它不是某个品牌的独家问题,也不是Ubuntu 22.04才有的新毛病。我经手的案例里,从18.04到…

2026/10/20 2:37:36 阅读更多 →
文科生AI提效指南:从认知到实操的工作流全拆解

文科生AI提效指南:从认知到实操的工作流全拆解

“文科生的逆袭时代”,这句话这两年我听得太多了。每次和文科背景的同行、朋友聊起来,大家的核心焦虑其实特别一致:AI这么猛,是不是要把我们这些靠笔杆子、靠理解力、靠沟通吃饭的人给替代了?但我在实际接触和带团队的…

2026/10/20 2:37:36 阅读更多 →
Godot 2D游戏开发第5期:打通场景切换、敌人AI与UI音效的可玩闭环

Godot 2D游戏开发第5期:打通场景切换、敌人AI与UI音效的可玩闭环

做2D游戏做到第五期,最容易遇上的状态就是:玩家已经能跑能跳了,但游戏还不像游戏。前四期我们一路把角色动画、基础TileMap关卡、金币收集勉强拼了出来,可一旦想打通从"进入关卡"到"死亡重来"再到"结算展…

2026/10/20 2:36:35 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →