帮助中心/最新通知

质量为本、客户为根、勇于拼搏、务实创新

< 返回文章列表

【开发相关】视觉几何嵌入Transformer(VGGT):前馈神经网络直接估算多输入视图三维场景属性,多任务领先且适用于实时应用 !

发表时间:2025-01-16 01:32:56 小编:主机乐-Yutio

1. Introduction

作者提出了一种名为VGGT的前馈神经网络,该网络能够直接从场景的一张、几张或多张视图中推理出所有关键的三维属性,包括相机参数、点图、深度图和三维点轨迹。这种方法在三维计算机视觉领域向前迈进了一步,因为以往的模型通常局限于并专门针对单一任务。VGGT结构简单且高效,能够在不到一秒的时间内重建图像,并且仍然优于需要使用视觉几何优化技术进行后期处理的替代方法。网络在多个三维任务中达到了最先进的效果,包括相机参数估计、多视图深度估计、密集点云重建和三维点跟踪。此外,作者还展示了使用预训练的VGGT作为特征 Backbone 显著提升了下游任务的效果,例如非刚性点跟踪和前馈新型视角合成。代码和模型已在https://github.com/facebookresearch/vggt公开发布。

作者考虑利用前向神经网络估计一组图像中场景的三维属性的问题。传统上,三维重建主要采用视觉几何方法,并利用像Bundle Adjustment(BA)之类的迭代优化技术[45]。机器学习常常在其中扮演重要的补充角色,解决仅凭几何学无法解决的任务,例如特征匹配和单目深度预测。这种整合越来越紧密,现在最先进的Structure-from-Motion(SfM)方法,如VGGSfM[125],通过可微分的Bundle Adjustment将机器学习和视觉几何端到端地结合在一起。即便如此,视觉几何在三维重建中仍然发挥着重要作用,这增加了复杂性并提高了计算成本。

随着网络变得越来越强大,作者不禁质疑,最终,三维任务是否可以直接由神经网络解决,几乎完全摒弃几何后处理。最近的研究成果如DUSt3R [129]及其演化版evolutionMASt3R [62]展示了这一方向上的令人鼓舞的结果,但这些网络一次只能处理两张图像,并依赖于后处理来重建更多的图像,将成对的重构结果融合起来。

在本文中,作者朝着去除后处理中优化3D几何的需要迈出了进一步的步骤。作者通过引入视觉几何约束Transformer(VGGT),这是一种前馈神经网络,能够在单个前向传播过程中从场景的一张、几张甚至数百张输入视图中进行3D重建。VGGT 预测了完整的3D属性集,包括相机参数、深度图、点云图和3D点轨迹。这一过程仅需几秒钟。令人惊讶的是,在无需进一步处理的情况下,VGGT 经常能够超越基于优化的方法,甚至在性能上更胜一筹。这与DUSt3R、MASt3R或VGGSfM有所不同,后者仍然需要昂贵的迭代后优化才能获得可用的结果。

作者还展示了设计专门用于三维重建的网络是不必要的。相反,VGGT 是基于一个相当标准的大规模 Transformer [119]构建的,并没有特别的三维或其他归纳偏差(除了在帧内关注和全局关注之间交替),而是通过对大量具有三维标注的公开数据集进行训练。因此,VGGT 在模式上与自然语言处理和计算机视觉领域的大型模型一致,例如 GPTs [1, 29, 148]、CLIP [86]、DINO [10, 78] 和 Stable Diffusion [34]。这些模型已经证明是非常灵活的基础架构,可以微调以解决新的具体任务。同样,作者展示了由 VGGT 计算出的特征能够显著提升诸如动态视频中的点跟踪和新颖视角合成之类的下游任务。

近年来,出现了几种大型3D神经网络,包括DepthAnything [142]、MoGe [128]和LRM [49]。然而,这些模型仅专注于单一的3D任务,例如单目深度估计或新颖视图合成。相比之下,VGGT使用共享 Backbone 网共同预测所有感兴趣的3D量。作者证明,学习预测这些相互关联的3D属性可以在一定程度上冗余的情况下提高整体准确性。同时,作者在推理过程中展示了,可以从分别预测的深度和摄像机参数中推导出点图,与直接使用专用的点图头相比,可以获得更高的准确性。

总结来说,本文的主要贡献如下:

(1)作者提出了VGGT,这是一种大规模前馈Transformer,在给定一幅、几张甚至数百张场景图像的情况下,可以在几秒钟内预测其所有关键的三维属性,包括相机内参和外参、点图、深度图和三维点轨迹。

(2)作者展示了VGGT的预测可以直接使用,其性能与那些采用慢速后处理优化技术的最先进的方法相比具有高度竞争力,通常表现更佳。

(3)此外,当作者进一步结合BA后处理时,VGGT在各方面都取得了最先进的结果,甚至与专门针对某些三维任务的方法相比,质量也有了显著的提升。

作者在https://github.com/facebookresearch/vggt上公开了作者的代码和模型。作者相信这将促进该领域的进一步研究,并通过提供一种快速、可靠且多功能的3D重建基础,惠及计算机视觉社区。

2. Related Work

结构从运动是一个经典的计算机视觉问题[45, 77, 80],涉及从不同视角拍摄的静态场景的一组图像中估计相机参数并重构稀疏点云。传统的结构从运动(SfM)流水线[2, 36, 70, 94, 103, 134]包含多个阶段,包括图像配对、三角化和束调整。COLMAP[94]是最流行的基于传统流水线的框架。近年来,深度学习已经改善了SfM流水线中的许多组件,关键点检测[21, 31, 116, 149]和图像配对[11, 67, 92, 99]是两个主要的研究领域。最近的方法[5, 102, 109, 112, 113, 118, 122, 125, 131, 160]探索了一种端到端可微分的结构从运动方法,其中VGGSfM[125]已经开始在具有挑战性的光旅场景中超越传统的算法。

多视图立体视觉的目标是从多个重叠图像中密集地重建场景的几何结构,通常假设已知相机参数,这些参数通常通过结构从运动中(SfM)估计。多视图立体视觉(MVS)方法可以分为三大类:传统的手工设计方法[38, 39, 96, 130]、全局优化方法[37, 74, 133, 147]和基于学习的方法[42, 72, 84, 145, 157]。如同SfM一样,基于学习的MVS方法最近取得了很大的进展。在这里,DUSt3R [129] 和 MASt3R [62] 直接从一个视图对中估算出对齐的密集点云,类似于MVS,但不需要相机参数。一些并行工作[111, 127, 141, 156]探索用神经网络替换DUSt3R的测试时优化,尽管这些尝试只能达到与DUSt3R相当或较差的性能。相反,VGGT在性能上明显优于DUSt3R和MASt3R。

Tracking-Any-Point 首次在 Particle Video [91] 中提出,并在深度学习时代由 PIPs [44] 重新振兴,其目的是跨视频序列跟踪兴趣点,包括动态运动。给定一个视频和一些 2D Query 点,任务是在所有其他帧中预测这些点的 2D 对应点。TAP-Vid [23] 提出了三个基准并稍后在 TAPIR [24] 中提出了一种简单的 Baseline 方法。CoTracker [55, 56] 利用不同点之间的相关性通过遮挡进行跟踪,而 DOT [60] 通过遮挡实现了密集跟踪。最近,TAPTR [63] 提出了一种端到端的 Transformer 用于此任务,LocoTrack [13] 将常用的空间局部特征扩展到了邻近区域。所有这些方法都是专门针对点的跟踪器。在这里,作者证明了 VGGT 的特征与现有点跟踪器结合时能够达到最先进的跟踪性能。

3. Method

作者引入了VGGT,这是一种大型Transformer,它以一组图像作为输入,并产生多种3D量作为输出。作者在第3.1节中介绍了问题,随后在第3.2节中介绍了作者的架构及其预测头,最后在第3.3节中介绍了训练设置。

3.1. Problem definition and notation

输入是一序列长度为 (N) 的 (N) 张RGB图像 ((I_i)_{i=1}^{N}),其中每张图像 (I_i \in \mathbb{R}^{3 \times H \times W}) 观察同一个3D场景。VGGT的Transformer是一种函数,将此序列映射到对应的每帧一组3D标注:

Transformer因此将每张图像映射到其相机参数(内参和外参),其深度图,其点图,以及一个包含维特征的网格,用于点跟踪。接下来作者将解释这些定义。

对于相机参数,作者采用[125]中的参数化方式,并设置,其中是旋转四元数,是平移向量,是fov。假设相机的主点位于图像中心,这是结构从运动框架(SfM)中常见的设定[95, 125]。

作者将图像的领域记作,即像素位置的集合。深度图将每个像素位置与它在第个相机视角下的相应深度值相关联。类似地,点图将每个像素与它的相应三维场景点相关联。重要的是,像DUSt3R[129]一样,点图是视角不变的,这意味着三维点是在第一个相机的坐标系统中定义的,作者将其作为世界参考框架。

最后,对于关键点跟踪,作者遵循多角度跟踪方法,例如[25, 57]的方法。具体而言,给定 Query 图像 (I_q) 中的一个固定 Query 图像点 ({\bf y}{q}),网络输出由所有图像 (I_i) 中相应二维点 (\mathbf{y}{i}\in\mathbb{R}^{2}) 组成的轨迹 (\mathcal{T}^{\star}(\mathbf{y}{q})^{\star}=(\mathbf{y}{i}){i=1}^{N})。需要注意的是,上述的Transformer (f) 并没有直接输出轨迹,而是输出特征 (T{i}\in\mathbb{R}^{C\times H\times W}),这些特征用于实现跟踪功能。跟踪功能被委托给一个单独的模块,描述在第3.3节中,该模块实现了一个函数 (\mathcal{T}((\mathbf{y}{j}){j=1}^{M},(T_{i}){i=1}^{N})=((\hat{\mathbf{y}}{j,i}){i=1}^{N}){j=1}^{M})。该函数接收 Query 点 ({\bf y}{q}) 以及Transformer (f) 输出的密集跟踪特征 (T{i}),并计算出相应的轨迹。两个网络 (f) 和 (\tau) 是端到端联合训练的。

预测顺序。输入序列中图像的顺序是任意的,唯一的要求是第一个图像被选作参考帧。网络架构设计为除了第一帧之外,对所有帧都是置换不变的。

过完备预测。值得注意的是,并非 VGGT 预测的所有量都是独立的。例如,如 DUSt3R [129] 所示,摄像机参数 可以从不变点图 推理出来,例如,通过求解透视 点问题 [35, 61]。

此外,可以从点云图和相机参数中推导出深度图。然而,如第4.5节所示,在训练过程中让VGGT显式预测所有上述量可以带来显著的性能提升,即使这些量之间存在闭形式的关系。同时,在推理时,将独立估计的深度图和相机参数结合起来生成的三维点比直接使用专门的点云分支更为准确。

3.2. Feature Backbone

受近期三维深度学习相关工作的启发[53, 129, 132],作者设计了一个简单的架构,其中包含最少的三维归纳偏置,使模型能够从大量的三维标注数据中学习。具体而言,作者将模型实现为一个大型Transformer[119]。为此,每张输入图像首先通过DINO[78]分割成一个由个token组成的集合。然后,来自所有帧的图像token的组合集,即,经过主网络结构处理,交替地进行帧间和全局自我注意层。

交替注意力机制。作者略微调整了标准Transformer的设计,引入了交替注意力机制(Alternating-Attention,简称AA),使Transformer在每一帧内和全局上以交替的方式进行关注。具体来说,帧内自注意力机制分别关注每个帧内的tokens ,而全局自注意力机制则联合关注所有帧中的tokens 。这种方法在整合来自不同图像的信息与对每个图像内部tokens激活值进行归一化之间找到了一个平衡点。默认情况下,作者采用了24层的全局和帧内注意力层。在第4节中,作者将证明作者的AA架构能够带来显著的性能提升。需要注意的是,作者的架构并未采用任何交叉注意力层,仅有自注意力层。

3.3. Prediction heads

在这里,作者描述了如何预测摄像头参数、深度图、点图和点跟踪。首先,对于每个输入图像,作者在对应的图像tokens中增加一个额外的摄像头token和四个注册tokens。然后,将的拼接结果传递给AA Transformer,从而得到输出tokens。其中,第一帧的摄像头token和注册tokens被设置为不同于其他所有帧的可学习tokens,而其他所有帧的这些tokens也是可学习的。这使得模型能够区分第一帧与其他帧,并以第一摄像头的坐标系来表示三维预测。请注意,经过细化的摄像头和注册tokens现在变得具有帧特异性——这是因为作者的AA Transformer包含跨帧的自注意力层,允许Transformer匹配摄像头和注册tokens与其同一图像中的相应tokens。正如惯例所示,弃用输出注册tokens,而使用进行预测。

坐标系。如前所述,作者预测相机、点云图和深度图的坐标系为第一个相机的坐标系。因此,第一个相机的相机外参输出设为单位矩阵,即第一旋转四元数为,第一个平移向量为。请注意,特殊相机 Token 和注册 Token 、使Transformer能够识别第一个相机。

相机预测。相机参数从输出的相机Token中预测得出,使用四个额外的自注意力层后接一个线性层。这构成了预测相机内参和外参的相机头。

密集预测。输出图像 Token 用于预测密集输出,即深度图 、点图 和跟踪特征 。具体而言, 首先通过一个 DPT 层 [87] 转换为密集特征图 。然后,每个 通过一个 卷积层映射到相应的深度图 和点图 。此外,DPT 头还输出密集特征 ,这些特征作为跟踪头的输入。作者还预测了随机不确定性 [58, 76] 和 ,分别对应每个深度图和点图。正如第 3.4 节所述,不确定性图在损失中使用,并且经过训练后与模型对预测的信心成比例。

跟踪。为了实现跟踪模块 ,作者使用了 CoTracker2 架构 [57],该架构将密集跟踪特征 作为输入。具体而言,在训练过程中,作者总是设 ,但任何其他图像也可以作为 Query 图像潜在地使用。给定 Query 图像 中的一个 Query 点 ,跟踪 Head 预测所有图像 中与 对应的同一3D点的所有2D点集 。为此,首先在 Query 点 处通过双线性采样 Query 图像的特征图 ,以获得其特征。然后将此特征与其他特征图 进行相关,得到一组相关图。这些图随后由自注意力层处理,以预测最终的2D点 ,它们都与 对应。值得注意的是,类似 VGGSfM [125],作者的跟踪器不假设输入帧的任何时间顺序,因此可以应用于任何输入图像集,而不仅仅是视频。

3.4. Training

训练损失。作者使用多任务损失对 VGGT 模型 ( f ) 进行端到端训练:

作者发现相机损失 、深度损失 和点图损失 的范围相似,因此不需要相互加权。跟踪损失 使用因子 下权重化。作者将依次描述每一项损失项。

相机损失 监督预测的相机 ,其形式为 ,使用 Huber 损失 来对比预测的相机 和真实值 。深度损失 参考了 DUSt3R [129] 的实现,并使用了 aleatoric 不确定性损失 [59, 75],通过预测的不确定性图 对预测的深度 和真实深度 之间的差异进行加权。不同于 DUSt3R,作者还应用了一个基于梯度的项,这在单目深度估计中被广泛使用。因此,深度损失为 ,其中 表示通道广播逐元素乘法。点图损失定义类似,但是使用了点图不确定性的形式 ,其形式为 。

最后,跟踪损失由下式给出: [ \mathcal{L}{\text{track}} = \sum{j} \text{lyaal He, } \text{其中外层求和} , \sum , \text{遍历 Query 图像} , I_{q} , \text{中的所有 GT Query 点} , \mathbf{y}{j}。} , \mathbf{y}{j,i} , \text{是} , \mathbf{y}{j} , \text{在图像} , I{i} , \text{中的 GT 对应点,而} , \hat{\mathbf{y}}{j,i} , \text{是通过应用跟踪模块} , \mathcal{T}((\mathbf{y}{j}){j=1}^{M}, \bar{(T{i})}_{i=1}^{N}) , \text{获得的相应预测。} , \text{此外,作者遵循 CoTracker2 [57] 的做法,在给定帧中估计一个点是否可见,并应用了可见性损失(二元交叉熵)。}

GT 坐标归一化。如果作者缩放场景或改变其全局参考框架,场景图像不会受到影响,这意味着任何这样的变化都是三维重建的合法结果。作者通过归一化数据来消除这种不确定性,从而做出一个标准选择,并使Transformer输出特定的变化。作者遵循[129]的做法,首先将所有量表达在第一个相机的坐标系中。然后,作者计算点图中所有3D点到原点的平均欧几里得距离,并使用此比例尺来归一化相机平移向量、点图和深度图。重要的是,与[129]不同,作者不对Transformer输出的预测应用这种归一化;相反,作者强制它从训练数据中学习作者选择的归一化方式。

实施细节。默认情况下,模型包含24层全局和帧内注意力机制。该模型总共拥有约12亿个参数。作者使用AdamW优化器优化训练损失(公式2),共进行了16万次迭代。学习率调度器采用余弦退火方式,峰值学习率为0.0002,并在前8000次迭代中进行学习率预热。对于每个批次,作者从随机选择的训练场景中随机采样2到24帧。输入帧、深度图和点云图的最大尺寸调整为518像素。纵横比在0.33到1.0之间随机变化。作者还随机对帧应用颜色抖动、高斯模糊和灰度变换。训练过程在9天内使用64块A10o GPU进行。作者使用梯度范数剪裁,阈值设为1.0,以确保训练稳定性。作者采用了bfloat16精度和梯度预训练权重技术,以提高GPU内存利用效率和计算效率。

训练数据。该模型使用了一个大规模且多样化的数据集集合进行训练,包括:Co3Dv2 [88]、BlendMVS [146]、DL3DV [69]、MegaDepth [64]、Kubric [41]、WildRGB [135]、ScanNet [18]、HyperSim [89]、Mapillary [71]、Habitat [107]、Replica [104]、MVS-Synth [50]、PointOdyssey [159]、Virtual KITTI [7]、Aria Synthetic Environments [82]、Aria Digital Twin [82] 以及与Objaverse [20] 类似的艺术家创作的合成资产的合成数据集。这些数据集覆盖了多个领域,包括室内和室外环境,并包含了合成和现实世界的场景。这些数据集的3D标注来源于多种来源,如直接传感器捕获、合成引擎或SfM技术 [95]。作者数据集的组合在规模和多样性上与MASt3R [30] 相当。

4. Experiments

本节将作者的方法与当前最先进的方法在多个任务上进行比较,以展示其有效性。

4.1. Camera Pose Estimation

作者首先在CO3Dv2 [88] 和RealEstate10K [161] 数据集上评估作者的方法用于相机姿态估计的情况,如表1所示。按照[124]的研究,作者随机选取每个场景中的10张图像,并使用标准的AUC 计量方法进行评估,该方法结合了RRA和RTA。RRA(相对旋转准确性)和RTA(相对平移准确性)分别计算每对图像在旋转和平移上的相对角度误差。然后通过对这些角度误差进行阈值化来确定精度分数。AUC是指RRA和RTA的最小值随阈值变化时的准确性-阈值曲线下的面积。表1中列出的方法已经在CO3Dv2上进行了训练,而未在RealEstate10K上进行训练。作者在两个数据集上的前馈模型在所有指标上均优于其他竞争方法,包括需要昂贵后优化步骤的方法,例如DUSt3R/MASt3R中的全局对齐和VGGSfM中的束调整,通常需要超过10秒的时间。相比之下,VGGT不仅以前馈方式运行,而且在相同硬件上仅需0.2秒就能实现更佳的表现。与同时期的工作[111, 127, 141, 156]( Token 为)相比,作者的方法在性能上有显著优势,速度甚至接近最快版本Fast3R [141]。此外,VGGT在RealEstate10K数据集上的性能优势更为明显,而表1中列出的方法均未在该数据集上进行过训练。这证明了VGGT具有更强的泛化能力。

作者的研究结果还表明,通过结合视觉几何优化中的优化方法(如BA),VGGT 还可以进一步改进。具体而言,使用 BA 方法进一步细化预测的相机姿态和轨迹,可以提高准确性。请注意,作者的方法直接预测接近准确的点/深度图,这些图可以作为 BA 的良好初始化。这消除了在 BA 中进行三角化和迭代细化的需求,从而大大加快了作者的方法的速度(即使使用 BA,也只有大约 2 秒钟)。因此,虽然 VGGT 的前向模式优于所有先前的方法(无论是前向模式还是其他模式),但仍然有改进的空间,因为后优化仍然有益。

4.2. Multi-view Depth Estimation

在 MASt3R [62] 的基础上,作者进一步在 DTU [51] 数据集上评估了作者的多视图深度估计结果。作者报告了标准的 DTU 评价指标,包括准确性(预测到 GT 最小欧氏距离)、完备性(GT 到预测最小欧氏距离),以及它们的平均值(即,平均 chamfer 距离)。在表2 中,DUSt3R 和作者的 VGGT 是唯一两种不依赖于 GT 相机知识的方法。MASt3R 通过使用 GT 相机进行三角化匹配来生成深度图。与此同时,像 GeoMVSNet 这样的深度多视图立体方法则利用 GT 相机构建成本体积。

作者的方法在性能上大幅超过了DUSt3R,总体得分从1.741降低到0.382。更为重要的是,它在测试时达到了与知道GT相机位置的方法相媲美的结果。性能显著提升可能归因于作者模型的多图像训练方案,该方案能够使模型本征地进行多视图三角化推理,而不是依赖于DUSt3R那种仅对多组双目相机三角化结果进行平均的手工校准步骤。

4.3. Point Map Estimation

作者还将作者的预测点云精度与DUSt3R和MASt3R在ETH3D [97] 数据集上的结果进行了比较。对于每个场景,作者随机抽取了10帧。预测的点云通过Umeyama [117] 算法与真实值对齐。使用官方的 Mask 过滤掉无效点后报告结果。作者报告了点图估计中的准确率、完备度以及总体性能(基于均方根点距)。如表3所示,尽管DUSt3R和MASt3R执行了昂贵的优化(全局对齐——每场景约10秒),但在简单的前馈过程中,作者的方法在重建仅需0.2秒的情况下仍然显著优于它们。

与此同时,与直接使用作者估计的点云图相比,作者发现通过作者的深度预测头和相机预测头(即利用预测的相机参数将预测的深度图重新投影到3D空间)得到的预测结果更准确。作者认为这是由于将复杂任务(点云图估计)分解为更简单的子问题(深度图预测和相机预测)带来的好处,即使在训练过程中深度图、相机参数和点云图是联合监督的。

作者在图3和图4中提供了与DUSt3R的定性比较,展示的是野外场景。VGGT输出高质量的预测,并且泛化能力很强,尤其在油画、不重叠帧以及沙漠等重复或均质纹理的场景等具有挑战性的离域示例中表现优异。

4.4. Image Matching

双视图图像匹配是一个在计算机视觉中广泛研究的主题[68, 93, 105]。它代表了刚性点跟踪的一个特例,仅限于两个视角,因此是一个适合衡量跟踪精度的良好评估基准,尽管作者的模型并不专门针对这一任务进行训练。作者在ScanNet数据集[18]上遵循标准协议[33, 93],并在表4中报告结果。对于每对图像,作者提取匹配并使用它们来估计一个本质矩阵,该矩阵随后被分解为相对摄像机姿态。最终的度量标准是通过AUC测量的相对姿态准确性。为了评估,作者使用ALIKED[158]检测关键点,并将其视为 Query 点。然后将这些点传递给作者的跟踪分支,以在第二个帧中找到对应关系。作者采用来自Roma[33]的评估超参数(例如匹配数、RANSAC阈值)。尽管VGGT未明确针对双视图匹配进行训练,表4显示它在所有基准模型中达到了最高的准确性。

4.5. Ablation Studies

特征 Backbone 网络。作者首先通过将其与两种替代注意力架构进行比较来验证作者提出的交替注意力设计的有效性:(a) 仅全局自注意力,以及(b) 交叉注意力。为了确保公平比较,所有模型变体都保持相同的参数数量,共计使用了 层注意力层。对于交叉注意力变体,每个帧独立地对所有其他帧的 Token 进行注意力关注,尽管这极大地增加了运行时间,特别是在输入帧数增加时。超参数,如隐藏维度和头的数量都保持一致。点图估计准确性被选作作者的消融研究中的评估指标,因为它反映了模型对场景几何结构和相机参数的联合理解能力。表5 的结果表明,作者的交替注意力架构在两个 Baseline 变体上取得了明显的优势。此外,作者其他的初步探索性实验始终显示,使用交叉注意力的架构通常在性能上逊色于仅使用自注意力的架构。

多任务学习。作者还验证了训练单个网络以同时学习多个3D量的好处,即使这些输出之间可能存在重叠(例如,同时估计深度图和相机参数可以生成点云)。如表6所示,如果不进行相机、深度或跟踪估计的训练,点云估计的准确性会出现显著下降。值得注意的是,整合相机参数估计明显提升了点云的准确性,而深度估计仅带来微小的改进。

4.6. Finetuning for Downstream Tasks

作者现在展示了预训练的 VGGT 特征提取器可以在下游任务中复用。作者分别在前向新型视图合成和动态点追踪任务中进行了展示。

Feed-forward 新颖的视图合成正快速发展[8, 43, 49, 53, 108, 126, 140, 155]。大多数现有方法以具有已知相机参数的图像作为输入,并预测对应于新相机视角的目标图像。不同于依赖显式的三维表示,作者遵循LVSM [53],并修改VGGT直接输出目标图像。然而,作者不假设输入帧具有已知的相机参数。

作者紧密遵循LVSM的训练和评估协议,例如,使用4个输入视图,并采用Plicker光线来表示目标视角。作者对VGGT进行了一个简单的修改。如同以前的做法,输入图像通过DINO转换为Token。然后,对于目标视图,作者使用一个卷积层将其Plicker光线图像编码为Token。这些Token既代表输入图像又代表目标视图,随后通过AA Transformer进行处理。之后,使用DPT头来回归目标视图的RGB颜色。需要注意的是,作者没有输入源图像的Plicker光线。因此,模型并未得到这些输入帧的相机参数。

LVSM 在 Objaverse 数据集 [20] 上进行了训练。作者使用了一个内部数据集,大约为 Objaverse 数据集规模的 20%。有关训练和评估的更多细节请参阅 [53]。如表7 所示,尽管作者的模型不需要输入相机参数,并且使用的训练数据量少于 LVSM,但作者在 GSO 数据集 [28] 上仍取得了具有竞争力的结果。作者预计使用更大的训练数据集可以获得更好的结果。定性结果如图6 所示。

动态点追踪近年来已成为一项极具竞争力的任务[25, 44, 57, 136],并且作为作者学习特征的另一个下游应用。遵循标准做法,作者报告了这些点追踪指标:遮挡准确率(OA),它包含遮挡预测的二元准确率;,它是准确追踪在特定像素阈值内的可见点的比例均值;以及平均交并比(AJ),用于测量追踪和遮挡预测的准确性。

作者通过将 CoTracker2 模型 [57] 的 Backbone 网络替换为作者预先训练的功能 Backbone 网络来适应该模型。这一步是必要的,因为 VGGT 是在无序图像集合上进行训练,而不是在顺序视频上。作者的 Backbone 网络预测跟踪特征 ,这些特征取代了特征提取器的输出并随后进入 CoTracker2 的其余架构,最终预测出轨迹。作者对整个修改后的跟踪器在 Kubric [41] 上进行了微调。如表8 所示,预先训练的 VGGT 的集成显著提升了 CoTracker 在 TAPVid 基准 [23] 上的表现。例如,在 TAPVid RGB-S 数据集上,VGGT 的跟踪特征将 指标从 78.9 提升到了 84.0。尽管 TAP-Vid 基准包含来自多种数据源且包含快速动态运动的视频,但作者的模型表现出色,证明了其功能的泛化能力,即使在它未明确设计的应用场景中也能胜任。

5. Discussions

局限性。尽管作者的方法在多种自然场景中表现出较强的泛化能力,但仍存在一些限制。首先,当前模型不支持鱼眼或全景图像。此外,在输入旋转极端的情况下,重建性能会下降。此外,虽然作者的模型可以处理涉及轻微非刚性运动的场景,但在涉及显著非刚性变形的场景中却表现不佳。

然而,作者方法的一个重要优势在于其灵活性和易于适应性。通过在目标数据集上进行微调并进行最少的架构修改,便可以轻松解决这些局限性。这种适应性明显区分了作者的方法与现有方法的不同之处,后者通常需要在测试时进行大量的重新设计,以适应这类专门化的场景。

运行时间和内存使用情况。如表9所示,作者评估了处理不同数量输入帧时特征主干网络的推理运行时间和峰值GPU内存使用量。测量使用的是单块NVIDIA H100 GPU,并结合了v3级闪存注意力机制[98]。图像分辨率为336×518像素。作者重点关注与特征主干网络相关的成本,因为用户可以根据自身具体需求和可用资源选择不同的分支组合。摄像机头相对轻量,通常占据运行时间的大约5%,以及特征主干网络所用GPU内存的大约2%。一个DPT头平均每帧使用0.03秒和0.2 GB的GPU内存。

当GPU内存充足时,多个帧可以在单次前向传播过程中高效处理。同时,在作者的模型中,帧间关系仅在特征 Backbone 中处理,而DPT头则针对每个帧独立进行预测。因此,受GPU资源限制的用户可以选择逐帧进行预测。作者把这种权衡留由用户自行决定。

作者认识到,直接实现全局自注意力机制在大量Token的情况下可能会非常耗内存。通过采用在大语言模型(LLM)部署中使用的技术,可以实现节省内存或加速计算。例如,Fast3R [141] 使用张量并行性在多块GPU上加速推理过程,这种方法可以直接应用到作者的模型中。

分块化处理。如第3.2节所述,作者探索了将图像分割成Token的方法,该方法利用了卷积层或预训练的DINOv2模型。实验证明,DINOv2模型在性能上更为优越,并且在初始阶段提供了更加稳定的训练效果。此外,DINOv2模型对于学习率或动量等超参数的变化也更为 robust。因此,作者选择了DINOv2作为模型中默认的分块化方法。

可微BA。作者还探讨了使用可微束调整的想法,类似于VGGSfM [125]。在小型初步实验中,可微BA展示了良好的性能。然而,在训练过程中其计算成本是一个 Bottleneck 。使用Theseus [85] 在PyTorch中实现可微BA通常会使每个训练步骤大约慢四倍,这在大规模训练中代价高昂。虽然定制一个框架以加速训练可能是潜在的解决方案,但这超出了本工作的范围。因此,作者在本工作中未包含可微BA,但认识到它是一个值得探索的方向,尤其是在大规模无监督训练场景中,它可以作为缺乏显式三维标注情况下的有效监督信号。

单视角重建。与DUSt3R和MASt3R等系统需要复制图像以创建图像对的做法不同,作者的模型架构本身支持单张图像作为输入。在这种情况下,全局注意力自然会转换为帧内注意力。尽管作者的模型并未专门针对单视角重建进行训练,但它表现出令人惊讶的好效果。一些示例可以在图3和图7中找到。作者强烈建议尝试作者的演示以获得更好的可视化效果。

预测归一化。如第3.4节所述,作者的方法使用3D点的平均欧几里得距离对 GT 值进行归一化。尽管一些方法,如DUSt3R,也会对网络预测进行类似的归一化处理,但作者的研究发现,这种归一化对于收敛既不是必需的,也没有提高最终模型性能的优势。此外,在训练过程中,它往往会引入额外的不稳定性。

6. Conclusions

作者提出了视觉几何嵌入Transformer(VGGT),这是一种前馈神经网络,可以直接估算数百个输入视图的所有关键三维场景属性。该方法在多个三维任务中实现了最先进的结果,包括相机参数估计、多视角深度估计、密集点云重建以及三维点跟踪。作者的简单且以神经网络为主的方法与依赖优化和后处理的传统视觉几何方法不同,后者用于获得精确且针对特定任务的结果。该方法的简洁性和高效性使其非常适合实时应用,这也是它相对于基于优化的方法的另一个优势。

参考

[0]. VGGT: Visual Geometry Grounded Transformer .


联系我们
返回顶部