MoGe---最新单目3D几何估计方法

目录

一、概述

二、相关工作

1、单目深度估计

2、单目几何估计

3、相机内参估计

4、单目几何的大规模数据训练

三、前置知识

1、仿射不变和尺度不变指标

2、FOV和shift

3、ROE对齐求解器

四、MoGe

1、为什么设计仿射不变?

2、恢复相机焦距和移位

3、MoGe框架

五、实验

1、点映射比较

2、单目深度估计比较

3、FOV比较

4、消融实验

5、可视化


一、概述

该论文提出了一个从单张单目图像中直接预测场景三维点云表示的模型MoGe。利用仿射不变性,不受真实尺度和位移的影响,从而消除了相机焦距产生的歧义。另外提出一种新颖的全局和局部几何监督技术,使模型学习到高质量的几何信息。该模型在包括3D点图,深度图,FoV(相机视场)单目估计中都显著优于最先进的方法。

MGE:Monocular geometry estimation

MDE:Monocular depth estimation

(1)提出了一种新的仿射不变点映射的开放域图像的直接MGE方法。

(2)建立了新的有效的全局和局部监督的鲁棒和精确的几何恢复。

(3)不同数据集下,MGE,MDE,FOV估计均达到SOTA,(可以替代DUSt3R来提供3D prior)
Head fig.

二、相关工作

1、单目深度估计

早期的单目估计严重依赖特定传感器的数据,比如RGBD相机,LiDAR,校准立体相机,但是存在特定领域的适用性。

另外在单目估计近期仿射不变预测或者直接回归或生成模型的方式,但恢复三维几何需要相机内参。

2、单目几何估计

单目点图估计恢复的是每个像素的自由三维点。

LeReS引入仿射不变预测的两阶段pipeline,然后通过点云模块恢复位移和相机焦距。

UniDepth通过自我提示的相机模块,预测摄像机表示来调整后续深度估计。

DUSt3R通过端到端双视图映射点图,但依据尺度不变性,会导致受到焦距模糊影响。

3、相机内参估计

早期工作依据已知三维形状或vanishing points。最近依赖基于学习的方式,但效果并不满意。

4、单目几何的大规模数据训练

MiDaS混合不同领域数据集训练。

Depth Anything使用有标记的和未标记的数据来提高泛化,v2工作进一步强调高质量合成数据也可以提供更多丰富的几何形状信息。

三、前置知识

1、仿射不变和尺度不变指标

首先定义分别为预测点和GT点,分别表示预测深度和GT深度,对应着点的z坐标,表示GT的mask,分别表示将预测和GT对齐的尺度和位移,表示预测视差和GT视差,定义为

尺度不变点映射

仿射不变点映射

尺度不变深度映射

仿射不变深度映射

仿射不变视差映射

其中为防止对齐视差过小或负值,则利用进行反向截断,对齐深度表示为:

2、FOV和shift

FOV:视场角 (标准镜头45度,近景镜头:40度,广角镜头:60度)(FOV越大,看的范围越宽)

EFL: 焦距(焦距越大,看的越远)

FOV与EFL关系:,其中W为传感器宽度,由垂直fov和水平fov限制。
FOV和W的图示

单目几何估计输出场景三维模型,一般利用SfM,以往的MGE都是估计一个depth map,并且以未知的scale来结合相机内参,通过非投影方式恢复三维形状。

相较于DUSt3R,使用多视图深度估计,使用尺度不变点映射,MoGe可以单目估计,而且使用仿射不变点映射。

z轴方向的shift:就是相机在z轴方向的前后偏移。

3、ROE对齐求解器

ROE 对齐求解器是一种高效的并行搜索算法,用于求解全局损失中的最优对齐参数 s∗ 和 t∗。它将原优化问题分解成一系列并行的一维子问题,将时间复杂度从降低到 ,大大提高了训练效率。同时,它还引入了截断绝对残差的策略,进一步提高了鲁棒性。

MoGe中的全局损失和局部损失中的都来自于ROE算法。
ROE alignment algorithm

四、MoGe

1、为什么设计仿射不变?

根据下图,相似的一前一后两张单目图像,受到相机焦距和与物体的距离影响,导致在尺度不变性下存在不一致的观察效果,而仿射不变性下一致。这是不是也揭示了一些基于DUSt3R进行3D prior的生成模型,在不同视角下,与GT视角只保持了尺度一致,并不能保持仿射一致,不同视角下就会想着相机方向扭曲。
仿射不变和尺度不变产生不一致性

2、恢复相机焦距和移位

仿射不变点映射可以恢复相机位移和焦距,给定预测点以及二维像素,可以求解相机焦距预测和z轴偏移。全局尺度s,

看到附录里还有一部分直接简化掉焦距的计算,只最小化

3、MoGe框架

MoGe Framework

流程:

输入一张单目图像,经过DINOV2 预训练的ViT+轻量级的基于CNN的上采样器预测一个仿射不变点图和一个掩码用于排除无法定义几何的区域(如天空),直接给定为无穷远。

之后从中通过ROE确定全局尺度因子s和平移t,并通过损失来优化参数,在推理过程直接就通过ROE求解得到最优的s和t。

最后有了s和t,通过仿射不变点图恢复出相机空间下的点云,进一步通过点云P提取出深度图,就是提取所有点的z坐标。

而这个模型最优的点 在于开创了一系列创新的全局和局部几何监督损失函数

(1)全局损失 :相较于以往的只考虑尺度不变,引入了偏移t。

​​​​​​​ ​​​​​​​

训练时应用全局损失来优化s和t,但是首先应该确定s和t,论文中提出了一种并行搜索方法ROE将问题分解为一系列平行一维子问题,降低复杂度到

(2)局部损失 :保证在不同尺度下,独立预测和GT点云进行仿射对齐,计算局部几何差异。

计算过程如下,首先给定一个GT 3D点作为锚点,选择以为中心,半径为的球形区域内的点集

,其中深度(z坐标),为焦距,为图像宽和高,,代表近似表示投影球体直径占图像对角线的比例,

然后对这个局部点集应用ROE对齐求解器,得到对齐参数

局部损失计算:论文给定,就是求一个局部球内的深度损失。

下图表达单目几何估计下不同物体之间的相对距离可能模糊,所以考虑对于不同尺度进行分别估计。

(3)法线损失:计算预测法线和GT法线的向量角度差,保证预测点云法线和真实法线一致,预测点云法线通过与图像网格相邻边叉积得到。

(4)掩码损失:对于合成数据集,可以提前知道天空的mask,对于真实数据集使用SegFormer获得天空的mask,并且二值化,目的是监督模型预测正确的无效区域掩码,相当于直接给天空无穷远的z轴值。

五、实验

1、点映射比较

2、单目深度估计比较

3、FOV比较

4、消融实验

truncation是视差做截断的部分,是局部损失。

5、可视化

论文参考:https://arxiv.org/abs/2410.19115

相关推荐
Channing Lewis13 分钟前
ChatGPT 是通用人工智能吗
人工智能·chatgpt
跟德姆(dom)一起学AI31 分钟前
0基础跟德姆(dom)一起学AI 自然语言处理08-认识RNN模型
人工智能·python·rnn·深度学习·神经网络·自然语言处理
人总该做点什么39 分钟前
【机器学习】梯度下降
人工智能·机器学习
唯创知音1 小时前
4G报警器WT2003H-16S低功耗语音芯片方案开发-实时音频上传
人工智能·单片机·物联网·音视频·智能家居·语音识别
johnny_hhh1 小时前
【音频伴奏分离】UVR5软件介绍
人工智能·音视频·uv
曼城周杰伦1 小时前
自然语言处理:第八十三章 Prompt格式到底多重要?
人工智能·gpt·自然语言处理·langchain·nlp·prompt·easyui
bylander1 小时前
【AI学习】2024年末一些AI总结的摘录
人工智能·gpt·学习
Java知识日历1 小时前
【内含代码】Spring Boot整合深度学习框架DJL
java·人工智能·spring boot·后端·深度学习
SmiledrinkCat1 小时前
深度学习模型概论
深度学习
火山引擎边缘云2 小时前
FORCE 大会开发者论坛演讲实录|吴一帆:边缘智能在 Agent 上的探索与实践
人工智能·aigc·边缘计算