paper-reading7

paper-reading7

DUSt3R: Geometric 3D Vision Made Easy

如下,完成的任务是从无约束的图像集合中重建3D场景,这个方法的特点是不需要标定相机。
获得的pointmap可以用来执行多种下游任务。

graph TD;
    A[Unconstrained image collections] --> B[DUS3R]
    B --> C[Corresponding pointmaps]
    C --> D[Camera calibration]
    C --> E[Depth estimation]
    C --> F[Pixel correspondences]
    C --> G[Camera pose estimation]
    C --> H[Dense 3D reconstruction]
    H --> I[Pairwise]
    H --> J[Multi-View]
    E --> K[Monocular]
    E --> L[Multi-View]
    H --> M[Visual Localization]
DUSt3R

Pointmap

是一种对应关系,将像素映射到相机空间的三维坐标。

对一张图像,对应的pointmap

算法流程

流程如图,输入两张图像,经过特征提取得到F之后进行解码,最终输入两张图像的pointmap和confidence map。

在解码时,利用交叉注意力共享两张图像的特征。

输出的代表图像2的像素到图像1相机空间的对应关系。

作者提出,这个框架没有显式添加几何约束,网络完全从数据中习得相关的先验。

loss

pointmap

对于pointmap的训练使用L1loss,groundtruth可以通过相机外参计算。

上式代表在视角下,第i个像素的重建误差。,是为了消除尺度差异。

confidence map

较大的地方,说明重建误差较大,此时需要降低confidence的值,在较小的地方,confidence的值对loss影响不大。
为了防止模型把所有的confidence都设置为0,需要进行一下正则化。

下游任务

给定pointmap和confidence map,可以进行多种下游任务。

相机内参估计

迭代执行以下步骤,使得重投影误差最小

这里可以看出confidence map的作用,对于confidence较低的点,重投影误差对loss的影响较小。

相对姿态估计

类似的,降低重投影误差

Global Alignment

给定n张图像,想把pointmap融合到一个全局坐标系中,得到一个全局的pointmap

首先,以图为节点建构一个图,两张图共享一些视觉内容,则两个节点之间有一条边。为了构建这张图,可以先对每两张图过一下前面的流程得到confidence map,根据confidence的值判断是否有边。

构建完图之后,以边为单位执行下面的优化:

其中,是第v张图像的第i个像素的3D坐标,是尺度因子,是旋转矩阵。因为在同一个坐标系中,所以经过同一个矩阵变换之后,应该与对应的3D坐标接近。

Grounding Image Matching in 3D with MASt3R

DUST3R的扩展,用于对应点匹配问题。

在输出时增加了一组Head,输出每张图像的local features

这一输入的训练loss如下,使用infoBCE loss

其中

代表了两个点的相似度,是温度参数。

为groundtruth的匹配对。

输出feature map之后,提出Fast reciprocal matching方法用于匹配。

ViewCrafter: Taming Video Diffusion Models for High-fidelity Novel View Synthesis

ViewCrafter

完成的任务是新视图的生成。

给定一组输入图像,先利用DUSt3R生成pointmap,据此获得相机参数以及初始的点云表示。
但是初始的点云会有缺失区域、遮挡和伪影,导致低质量的渲染结果,不能直接用于生成。
文章的想法是,找到点云中的缺失区域,设计一个朝向那里的相机轨迹,渲染出一组效果不那么好的图像,但是这些图像携带了相机位姿信息。用视频生成模型进行一个优化得到质量较好的视频,可以用于补全点云。
进行数次这样的迭代后,就得到了高质量的点云。

关键是相机轨迹的设计,要能找到点云中的缺失区域,同时也不能缺失太多影响视频的生成质量。
定义一个评价函数

这里是点云中的缺失区域,是阈值。
给定初始位姿,先采样出n个备选点,选择评价函数最高的作为下一个位置,利用插值得到相机轨迹。