题目:VGGT:Visual Geometry Grounded Transformer
论文:[2503.11651] VGGT: Visual Geometry Grounded Transformer (arxiv.org)
会议:CVPR
年份:2025
本文精读的论文 “VGGT:Visual Geometry Grounded Transformer” 提出了一种前馈神经网络 VGGT;能够从单个、几个或数百个视图中直接推断场景的所有关键 3D 属性,包括相机参数、点地图、深度图和 3D 点轨迹。VGGT 还具有简单高效的特点,可在一秒内完成图像重建,并且仍然优于需要通过视觉几何优化技术进行后处理的其他方法。该网络在多个 3D 任务中取得了先进的结果,包括相机参数估计、多视图深度估计、密集点云重建和 3D 点跟踪。我们还表明,使用预训练的 VGGT 作为特征主干可以显著增强下游任务的性能,例如非刚性点跟踪和前馈新视图合成。
图1. VGGT是一个大型前馈Transformer,具有最小的3D感应偏差,在大量3D注释数据上进行训练。它接受多达数百张图像,并在不到一秒的时间内一次性预测所有图像的相机、点图、深度图和点轨迹,这通常优于基于优化的替代方案,无需进一步处理。
一、研究背景
在 VGGT 诞生之前,3D 计算机视觉中的诸多任务尝试将几何优化与机器学习技术相结合。像经典的 Structure - from - Motion(SfM)方法,例如 VGGSfM,虽通过可微分的 Bundle Adjustment 将机器学习和视觉几何端到端结合,但计算过程复杂,处理时间长。还有如 DUSt3R 及其演化版 MASt3R 这类方法,虽有一定成果,却存在明显局限,它们一次仅能处理两张图像,面对更多图像时需依赖后处理来融合成对的重构结果,这不仅增加了计算成本,还容易导致误差累积。在这样的背景下,研究者们迫切需要一种高效、准确且能直接从图像中推断 3D 场景属性的方法,VGGT 应运而生。该论文要解决的问题为:消除后处理中三维几何优化的需求。
二、VGGT 架构
图 2. 架构概述。我们的模型首先通过 DINO 将输入图像分块为标记(tokens),并附加相机标记以进行相机预测。然后,它在逐帧自注意力层和全局自注意力层之间交替进行。一个相机头(Camera Head)对相机外参和内参进行最终预测,一个 DPT 头用于任何密集输出的预测 。
1、输入与输出设计
VGGT 的输入为观察同一场景的幅 RGB 图像序列
,模型默认把第一帧图像作为参考帧,对非首帧图像,网络具备 “排列等变性”—— 不管怎么打乱非首帧的输入顺序,模型输出结果的逻辑一致性不受影响 ,增强了模型对输入灵活性的适配能力 。VGGT 模型要完成的任务,是把输入图像序列映射为场景对应的一系列 3D 属性标注,即
各部分含义如下:
相机参数
:
,其中
,是旋转四元数,
是平移向量,
是视场(关联图像成像的视角范围,默认相机主点在图像中心 ),用于精准刻画拍摄图像时相机的内、外参数 。
深度图
:尺寸为
,每个像素位置对应的值
,表示该像素在场景中对应的深度信息(即像素到相机的距离 ) 。
点云图
:尺寸为
,每个像素位置对应的值
,代表该像素对应的 3D 空间点坐标 ,且遵循 “以第一帧相机坐标系作为世界参考系” 的规则,保证不同视图下点云坐标的一致性,用于还原场景 3D 结构 。
跟踪特征
:尺寸为
(C是特征维度 ),是用于 3D 点跟踪任务的特征网格 。给定查询点
,后续可借助独立模块T处理这些特征,计算出该点在不同帧图像中的 2D 轨迹
,实跨帧点对应关系的预测 。
四元数是复数的扩展,包含一个实部和三个虚部,形式为:
,用于表示旋转的四元数需为单位四元数(模长为 1),可参数化为:
其中:
为绕旋转轴的旋转角度(弧度)。
为旋转轴的单位向量,表示旋转方向。旋转四元数表示将三维空间中的点绕轴
旋转
角度的变换。
旋转四元数
可转换为 3×3 的旋转矩阵
:
反之,旋转矩阵也可通过奇异值分解(SVD)等方法转换为四元数,避免数值误差。
输出的多个 3D 属性(相机参数、深度图、点云图等 )存在 “冗余性” 。比如,理论上相机参数可从点云图推导(结合点云的空间关系反推相机拍摄姿态 ),深度图也能通过点云图和相机参数计算(利用 3D 点坐标与相机投影关系换算 ) 。但实际训练中,联合学习这些冗余属性能提升模型整体性能 ;推理阶段,融合独立预测的深度和相机参数信息,还能进一步提高点云图的精度 ,体现了多任务学习在 3D 重建任务里的优势 。
2、特征主干(Feature Backbone)
(1)图像分块与初始特征提取(Patchify + DINO)
每个输入图像首先通过 DINOv2模型在初始化中被分割为一个包含K 个 token的集合。所有帧的图像 token 的集合
,随后通过主干网络结构进行处理,交替进行帧级和全局自注意力层。
(2)预测头(Prediction head)
这部分描述 f 如何预测相机参数、深度图、点图和点轨迹。
首先,对于每个输入图像,我们用一个额外的相机 token
和四个寄存器 token
来增强相应的图像 token
。
的连接随后被传递到 AA Transformer,产生输出 token
。这里,第一帧的相机 token 和寄存器 token
被设置为与所有其他帧
不同的可学习 token 集合
。
这允许模型区分第一帧和其他帧,并在第一帧相机的坐标系中表示 3D 预测。请注意,精炼的相机和寄存器 token 现在变得特定于帧 —— 这是因为 AA Transformer 包含帧级自注意力层,允许 Transformer 将相机和寄存器token 与同一图像的相应 token 匹配。按照惯例,输出寄存器token被丢弃,而
用于预测。
坐标系:如上所述,在第一帧相机的坐标系中预测相机、点云图和深度图。因此,为第一台相机输出的相机外参被设置为单位矩阵,即第一个旋转四元数是
,第一个平移向量是
。
相机预测:相机参数从输出相机 token
通过四个额外的自注意力层和一个线性层 预测。这形成了预测相机内参和外参的相机头。
稠密预测:输出图像 token用于预测稠密输出,即深度图
、点图
和跟踪特征
。更具体地说,
首先通过 DPT (Dense Prediction Transformer)层 转换为稠密特征图
。然后,每个
通过 3×3 卷积层映射到对应的深度图和点图
和
。此外,DPT 头也输出稠密特征
,作为跟踪头的输入。我们还预测每个深度图和点图的偶然不确定性
和
。不确定性图将在损失中使用,在训练完成后其与模型对预测的置信度成比例。
跟踪:为了实现跟踪模块 T,使用 CoTracker2 架构,该架构将稠密跟踪特征作为输入。给定查询图像
中的查询点
(在训练期间,设置
,但任何其他图像都可以潜在地用作查询),跟踪头
预测所有图像
中与
对应于同一 3D 点的 2D 点集合
。
表示第 j 个查询点在第 i 帧中的预测对应点(二维坐标)。
- 外层索引 j 遍历所有查询点(共 M 个),内层索引 i 遍历所有帧(共 N 帧)。
(3)交替注意力机制(Alternating-Attention, AA)
通过引入交替注意力(AA)对标准 Transformer 设计进行了轻微调整,使 Transformer 以交替的方式聚焦于每个帧内和全局。具体来说,帧级自注意力仅关注每个帧内的 token,而全局自注意力趋向于结合不同帧之间的 token
。这在跨不同图像集成信息和规范化每个图像内 token 的激活之间取得了平衡。默认情况下,使用L = 24层全局和帧级注意力。该架构不使用任何交叉注意力层,只使用自注意力层。
3、训练(Training)
损失:我们使用多任务损失端到端训练 VGGT 模型 f:
相机、深度
和点图
损失具有相似的范围,不需要相互加权。跟踪损失
用因子
进行下加权。我们依次描述每个损失项。
相机损失定义为:
对预测相机和真值
使用 Huber 损失。
深度损失定义为:
遵循 DUSt3R 并实现了偶然不确定性损失,用预测的不确定性图权衡预测深度
与真实深度
之间的差异。与 DUSt3R 不同,还应用了基于梯度的项。其中
是通道维度的广播逐元素乘积。
类似地,点图损失定义为:
跟踪损失定义为:
真实坐标归一化:为消除尺寸带来的歧义,强制要求模型输出归一化后的坐标。通过计算点图中所有点到坐标系原点的平均欧氏距离作为归一化因子,并对相机平移参数
、点图
和深度图
进行归一化。但是我们并不对模型的输出进行归一化,而是要求模型学习这一归一化过程。
实现细节:我们使用24层注意力层,模型共有1.2B的参数量。我们随后通过如式(2)所示的损失,使用AdamW优化器迭代160K次。我们使用一个余弦学习率策略,最高学习率为0.0002,伴有8K迭代的warmup环节。对于每个batch,我们从一个随机场景中随机采样2-24帧。所有输入的帧、深度图、点图都缩放到最大518像素。横纵臂在0.33到1.0之间随机变化。我们也随机应用了颜色抖动、高斯模糊和灰度增强。训练在64张A100上跑了9天。我们使用了梯度范数裁剪来保证训练稳定。我们也使用了16位浮点数精度和梯度检查点来提高计算效率。
训练数据:训练数据是一个由Co3Dv2, BlendMVS, DL3DV, MegaDepth, Kubric, WildRGB, ScanNet, HyperSim, Mapillary, Habitat, Replica, MVS-Synth, PointOdyssey, Virtual KITTI, Aria Synthetic Environments, Aria Digital Twin以及Objaverse组成的庞大数据集。
三、实验结果
1、相机位姿估计
我们首先在CO3Dv2 和 RealEstate10K 数据集上评估了方法在相机姿态估计任务中的性能,如表1所示。我们的前馈模型在两个数据集的所有指标上均一致优于其他竞争方法,包括那些依赖计算成本高昂的后优化步骤的方法(如DUSt3R/MASt3R的全局对齐、VGGSfM的集束调整,通常耗时超过10秒)。相比之下,VGGT仅以纯前馈方式运行(同硬件下仅需0.2秒)即可实现更优性能。
表1:RealEstate10K 和CO3Dv2上的相机姿态估计,具有10个随机帧。所有指标越高越好。没有一种方法在Re10K数据集上训练。使用一个H100 GPU来测量时间。标有时间的方法表示并发工作。
实验结果表明,VGGT与视觉几何优化方法(如集束调整BA)结合后可进一步提升性能。具体而言,通过BA对预测的相机姿态和轨迹进行优化可提高精度。需注意的是,我们的方法直接预测接近精确的点图/深度图,可作为BA的良好初始化,从而无需依赖三角测量和迭代优化,显著加速流程(即使结合BA也仅需约2秒)。因此,尽管VGGT的纯前馈模式已超越所有现有方法(无论其是否依赖后优化),后优化仍能带来额外性能增益,表明模型仍有改进空间。
2、多视角深度估计
遵循MASt3R的评估流程,我们在DTU数据集上进一步评估了多视角深度估计性能。报告指标包括标准DTU评估项:Accuracy(预测结果到真值的最小欧氏距离)、Completeness(真值到预测结果的最小欧氏距离)及其平均Overall分数(即倒角距离)。如表2所示,DUSt3R与我们的VGGT是仅有的两种不依赖真实相机参数的方法。
表2:DTU 数据集上的密集MVS估计。使用已知地面实况相机操作的方法位于表的顶部,而底部包含不知道地面实况相机的方法。
3、点图估计
我们还在ETH3D 数据集上将预测点云的精度与DUSt3R和MASt3R进行了对比。对于每个场景,我们随机采样10帧图像,并使用Umeyama算法将预测点云与真值对齐,同时通过官方掩码过滤无效点后报告结果。我们展示了点图估计的Accuracy、Completeness和Overall(倒角距离)。如表3所示,尽管DUSt3R和MASt3R进行了高代价优化(全局对齐——每场景约10秒),我们的方法在纯前馈模式下(每重建仅需0.2秒)仍显著优于它们。
表3:ETH3D上的点图估计。DUSt3R和MASt3R使用全局对齐,而我们的是前馈,因此速度更快。Ours(Point)表示直接使用点图头的结果,而Ours(Depth + Cam)表示从深度地图头与摄像头组合构建点云。
图3.我们预测的3D点与DUSt3R在野外图像上的定性比较。如上一行所示,我们的方法成功地预测了油画的几何结构,而DUSt3R预测了一个轻微扭曲的平面。在第二行,我们的方法正确地从两个没有重叠的图像中恢复了3D场景,而DUSt3R失败。第三行提供了一个具有挑战性的示例,其中包含重复的纹理,而我们的预测仍然是高质量的。我们不包括超过32帧的示例,因为DUSt3R超出此限制就会耗尽内存。
4、图像匹配
双视角图像匹配是计算机视觉中广泛研究的课题,属于刚性点跟踪的一种特例(仅限两个视角)。尽管我们的模型并非专为此任务设计,但其仍可作为评估跟踪精度的合适基准。尽管未针对双视角匹配进行显式训练,表4显示VGGT在所有基线方法中取得了最高精度。
表4:ScanNet-1500上的双视图匹配比较。虽然我们的跟踪头不是专门用于双视图设置的,但它优于最先进的双视图匹配方法Roma。以AUC测量(越高越好)。
图5.刚性和动态点跟踪的可视化。上图:VGGT的跟踪模块T为描绘静态场景的无序输入图像集输出关键点跟踪。下图:我们微调VGGT的主干以增强动态点跟踪器CoTracker ,该跟踪器处理顺序输入。
5、消融实验
通过对比两种替代注意力架构(a)仅全局自注意力,(b)交叉注意力,验证了提出的交替注意力设计的有效性。为确保公平比较,所有模型变体保持相同参数总量(共使用48个注意力层)。对于交叉注意力变体,每帧独立关注来自其他所有帧的标记,虽能最大化跨帧信息融合,但显著增加运行时间(尤其在输入帧数增加时)。隐藏维度、注意力头数等超参数保持一致。选择点图估计精度作为消融实验的评估指标(因其反映模型对场景几何与相机参数的联合理解)。表5结果表明,我们的交替注意力架构显著优于两种基线变体。此外,其他初步实验也表明,使用交叉注意力的架构普遍弱于仅采用自注意力的方案。
表5: ETH 3D上Transformer主干的消融研究。我们比较我们的交替注意力架构对两个变种:一个只使用全局自注意力,另一个采用交叉自注意力。
还验证了单网络联合学习多个三维量的优势(即使这些输出可能存在冗余,例如深度图与相机参数可联合生成点图)。如表6所示,当不训练相机参数、深度图或轨迹估计时,点图精度显著下降。值得注意的是:引入相机参数估计能明确提升点图精度;深度估计仅带来边际改进。该现象可解释为:相机参数提供了全局几何约束(如坐标系对齐与尺度归一化),而深度图更多编码局部几何细节,对点图优化的直接贡献有限。
表6:多任务学习的消融研究,该研究表明,同时使用相机、深度和轨迹估计进行训练,在ETH3D上获得了最高的点地图估计精度。
四、总结
该论文提出了VGGT,可直接从单个或者多个视角中估计所有关键三维场景属性。其在多项三维任务中取得了先进的成果,包括相机参数估计、多视角深度估计、密集点云重建与三维点跟踪。该方法以纯神经网络为核心,摒弃了传统基于视觉几何的流程(依赖优化与后处理来获取任务专用结果)。其简单性与高效性使其非常适用于实时应用场景,这也是相较于优化类方法的另一优势。