MONST3R论文阅读

关键词:: #monocular #video #RGBD

0 论文总概述

0.1 问题的背景

1.从动态场景恢复几何结构是一个具有挑战的任务,原来的工作是将其分开进行深度、光流、轨迹估计子任务,最后进行全局优化,但是会导致一些系统误差,同时速度很慢。
2.端到端的方法缺少有效表达相机位姿 多物体运动 和几何形变化的几何表示,同时缺少足够多的数据集进行监督
3.包含位姿,深度标签的动态数据集很少

intro

本文关键是,利用dust3R每一时间步都可以估计出点图,并且在同一摄像机坐标系中表示它们对于动态场景仍然具有概念意义。动态场景的估计根据它们的移动方式点图显示为动态物体在多个位置出现的点云,同时利用静态实现多帧对齐
Dust3R目前的问题有:
1.首先,由于DUSt3R的训练数据只包含静态场景,因此DUSt3R不能正确地将场景的点图与运动物体对齐;它往往依赖于移动的前景对象进行对齐,从而导致对静态背景元素的错误对齐。
2.其次,由于其训练数据大多由建筑物和背景组成,DUSt3R有时无法正确估计前景物体的几何形状,而不考虑它们的运动,并将它们放置在背景中。
image.png
原则上,这两个问题都源于训练和测试时间之间的域不匹配,可以通过重新训练网络来解决。

0.2 创新点

1.基于dusT3R修改(定义为微调任务),提出几何优先方法(使用Pointmap直接表示几何形状),直接从动态场景估计每一步的几何形状(关键点在于每一时间建立点云图,可以扩展DUSt3R从静态到动态)
2.总体不修改DUST3R(DUST3R只输出点云图和置信度),只是增加了一个优化模块

知识点

DUst3R:对于静态场景,DUSt3R引入了一种直接回归场景几何的新范式。给定一对图像,DUSt3R产生一个点图表示- -将每张图像中的每个像素与估计的三维位置(即xyz)相关联,并将这些点图对齐到第一帧的相机坐标系中。对于多帧图像,DUSt3R将成对估计累积成一个全局点云,并将其用于解决许多标准的三维任务,如单帧深度、多帧深度或相机内外参数。该模型隐式地推断相机内参、相机相对位姿和两视图几何

2 related work

1.Structure from motion and visual SLAM
these methods struggle with dynamic scenes with moving objects, which violate the epipolar constraint.

2.Representation for static 3D reconstruction
Learning-based approaches reconstruct static 3D geometry of objects or scenes by learning strong 3D priors from training datasets.(从训练数据集学习到强的3D几何先验)
DUSt3R

3.Learning-based visual odometr
Learning-based visual odometry replaces hand-designed parts of geometry-based methods and enables large-scale training for better generalization even with moving objects.
Trajectory-based approaches estimate long-term trajectories along a video sequence, classify their dynamic and static motion, and then localize camera via bundle adjustment.

4.Monocular and video depth estimation.
Recent deep learning works target zero-shot performance and with large-scale training combined with synthetic datasets. 但是这些方法是对于图像中同一个物体,不适用于变化的视频(发生时间戳闪烁的问题)
现有的基于视频推断深度的方法,大多数也是基于单个物体,同时也没有解决闪烁的问题

5.4D reconstruction
在给定单目视频和预估值(例如,二维运动轨迹、深度、摄像机内参数和姿态等。)的情况下,该方法通过对带有形变场的3D高斯进行测试时间优化,在4D空间重构输入视频,从而在空间和时间上实现新的视点合成。我们的方法与方法是正交的,并且以前馈的方式从视频中估计几何。我们的估计可以作为这些方法的初始化或中间信号

3 论文理论内容

image.png

3.1 BACKGROUND AND BASELINES

模型框架:DUSt3R(基于VIT的跨视图补全的自监督框架),输入两帧图片,输出以第一帧为坐标系,第一二帧点的坐标
掩膜:用黑色像素和掩码代替动态物体和动态物体对应的标签(可能会导致相机位姿计算性能下降,在后文得到解决)
Pasted image 20241030212945

3.2 TRAINING FOR DYNAMICS

Main idea
原始DUSt3R主要是基于静态场景
图像 I t I^t It在时间t,DUSt3R预测出点云地图 X t ∈ R H × W × 3 X^t \in R^{H \times W \times 3} XtRH×W×3
对于一对图, I t , I t ′ I^t, I^{t'} It,It 得到点云地图 X t ; t ← t ′ , X t ′ ; t ← t ′ X^{t; t \gets t'}, X^{t'; t \gets t'} Xt;tt,Xt;tt 置信度为 C t ; t ← t ′ , C t ′ ; t ← t ′ C^{t; t \gets t'}, C^{t'; t \gets t'} Ct;tt,Ct;tt
将两帧转到到第一帧所在的相机坐标系
与DUSt3R不同的是,MonST3R地图每个点都与时间上单个点有关
Training datasets
本文使用3个合成数据集和一个真实数据集(已经提前标注好)用作训练数据集
Pasted image 20241030214212
在训练过程中,我们对数据集进行非对称采样,在PointOdyssey (更多动态的、铰接的物体)上增加权重,在TartanAir (良好的场景多样性但静态性差)和Waymo (一个高度专业化的领域)上减少权重。对图像进行降采样,使其最大维数为512。
Training strategies
因为数据集很少,因此需要采用一些训练策略
1.在对网络的预测头和解码器进行微调时,固定编码器 该策略保留了Cro Co数据集特征中的几何知识,应减少微调所需的数据量。
2.采样两个时间步长从1到9不等的帧来为每个视频创建训练对。采样概率随步长线性增加,选择步长9的概率是步长1的2倍。这样可以带来了更大的相机和场景运动的多样性,也更重了更大的运动。
3.使用具有不同图像尺度的中心作物的视场增强技术。提高模型在不同相机内参之间进行泛化,尽管这种变化在训练视频中相对较少

3.3 DOWNSTREAM APPLICATIONS

Instrinsics and relative pose estimation
相机内参:在DUSt3R,相机内参是基于当前帧进行估计,因此各种假设和限制仍然可用。仅需要解决focal length f 的估计
相对位姿:动态物体的存在,违反了许多基于静态物体的假设。使用RANSAC和PNP对相对位姿进行估计。对于大多数场景,静态点数量更多,因此更侧重于在静态区域进行采样,然后计算相对位姿
Confident static regions
通过相机从t到t’的运动变化和光流法的结果对比,来找到置信度高的静态区域
对于给定两帧 I t , I t ′ I^t,I^{t'} It,It ,先计算对应的点云地图 X t ; t ← t ′ , X t ′ ; t ← t ′ X^{t; t \gets t'}, X^{t'; t \gets t'} Xt;tt,Xt;tt X t ; t ′ ← t , X t ′ ; t ′ ← t X^{t; t' \gets t}, X^{t'; t' \gets t} Xt;tt,Xt;tt .利用这些点云地图分别计算相机内参 K t K^t Kt K t ′ K^{t'} Kt ,同时计算相机的相位姿 P t ← t ′ P^{t \gets t'} Ptt,然后计算相机运动变化(最后投影到像素坐标系)
Pasted image 20241030222103
π ( ∗ ) \pi(*) π()代表 ( x , y , z ) → ( x / z , y / z ) (x,y,z) \to (x/z,y/z) (x,y,z)(x/z,y/z) , D t ; t ← t ′ D^{t;t\gets t'} Dt;tt是估计深度从 X t ; t ← t ′ X^{t;t\gets t'} Xt;tt
再用光流法计算得到: F e s t t → t ′ F^{t \to t'}_{est} Festtt, 计算静态掩码
Pasted image 20241030222830
合适的静态区域会用于后端的全局优化

3.4 DYNAMIC GLOBAL POINT CLOUDS AND CAMERA POSE

video graph
为了减少计算,使用滑窗,对于每个(t,t’)帧都计算点云地图
Dynamic global point cloud and pose optimization
将点转移到世界坐标系,并计算累计误差。为了实现这一点,使用DUSt3R来对齐误差,同时添加两个误差项:相机轨迹平滑和光流投影
Pasted image 20241030230357
通过这个式子,可以将X 和 P K D联系在一起(和像素坐标系有关的因素),h是变为齐次坐标系。好处是可以在相机参数上定义损失
首先,我们使用DUSt3R中的对齐项,目的是找到一个单一的刚性变换Pt;E,它将每个成对估计与世界坐标点图对齐,因为这两个Xt;T T′和Xt′;t′在同一摄像机坐标系中:
Pasted image 20241030231104
Pasted image 20241030231439

为了防止相机快速运动,定义了一个平滑项
Pasted image 20241030231506
为了保证全部和局部变化的一致性,使用如下残差:
Pasted image 20241031155202
其中Fglobal是通过全局点云地图Xt计算的
静态掩码S是通过3,3中的内容计算的。

全局动态点和相机位姿优化方程:
Pasted image 20241031155424
其中参数 X ^ \hat{X} X^同时包含了深度D,相机位姿P和内参K

视频深度
就是参数D(代表每一帧深度)

4 实验部分

4.1 实验细节

训练:We fine-tune the DUSt3R’s ViT-Base decoder and DPT heads for 25 epochs, using 20,000 sampled image pairs per epoch;AdamW optimizer with a learning rate of 5 × 10−5 and a mini-batch size of 4 per GPU;
在2块RTX 6000 48GB GPUSs训练一天;对滑窗为9,步长为2(大约600对)的60帧视频推理大概需要30s
全局优化: 只在位姿对齐,且flow loss平均值小于20时才启用flow loss。 在像素误差大于50时更新运动掩膜。 在单张RTX 6000 GPU训练60帧大概需要1min

4.2 SINGLE-FRAME AND VIDEO DEPTH ESTIMATION

Pasted image 20241031160838
Pasted image 20241031160858
值得注意的是,CasualSAM依赖于重量级的优化,而我们的算法是以前馈的方式运行的,只有轻量级的优化。
Our evaluation metrics include absolute relative error (Abs Rel) and percentage of inlier points δ < 1.25, following the convention

4.3 CAMERA POSE ESTIMATION

Pasted image 20241031161316

4.4 JOINT DENSE RECONSTRUCTION AND POSE ESTIMATION

Pasted image 20241031161812
将地图点进行对齐和相机位姿可视化,展示出两个角度
DUSt3R无法估计正确几何形状,导致重建和深度估计都失败
CasualSAM有时无法正确估计几何形状,但是有可靠的相机位姿

4.5 ABLATION STUDY

展示了一个消融研究,分析了我们方法中设计选择的影响,包括训练数据集的选择,微调策略,以及用于动态点云优化的新型损失函数。我们的分析表明:( 1 )所有数据集都有助于提高相机位姿估计性能;( 2 )仅对解码器和头进行微调优于其他策略;( 3 )提出的损失函数在对视频深度精度影响最小的情况下增强了姿态估计
Pasted image 20241031162316
Discussion
虽然MonST3R可以处理相机动态内参问题,但是同样面临着需要仔细调整各个参数以应对不同情况

MonST3R使用每时间步点图作为动态场景的强大表示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lhy_6668

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值