VGGT获得了CVPR2025 Best Paper奖。它的意义在于证明了大规模 Transformer 可以内化视觉几何的规律。

输入:任意多张图像(1张、2张、100张...)
输出:Point maps、相机位置、深度图
1. 问题定义#
我们有一个包含 张图像的无需集合,表示为。我们需要一个函数 将这些图像映射到它们对应的 3D 属性:
以下是模型为每一张图像 预测的内容:
(Cameras/相机): 内参 (焦距) 和外参 (旋转和位置) 参数。
(Depth Maps/深度图): 每个像素到相机的距离。
(Point Maps/点图): 世界空间中每个像素的 3D 坐标。
(Tracks/轨迹): 用于跨不同图像跟踪点的特征网格。
至关重要的是, 点图 () 是“视点不变”的。这意味着无论哪个相机在看桌子的特定角落,模型都会为该角落预测完全相同的 坐标。坐标系锚定在第一张图像 (相机 1) 上。
2. 架构:交替注意力机制(Alternating Attention, AA)#
图像经过DINOv2预训练模型处理得到 Token,并与camera token拼接。然后,Transformer 通过 层 (通常为 24 层) 处理这些 Token,这些层在两种模式之间交替:
1. 帧内自注意力 (Frame Attention): 模型关注单张图像内部的 Token。这建立了对图片内容的强大局部理解 (例如,“这是一条椅子腿”) 。#
2. 全局自注意力 (Global Attention): 模型允许来自所有图像的 Token 相互关注。图像 1 中代表椅子腿的 Token 可以与图像 5 中代表同一条椅子腿的 Token “对话”。这种交互允许网络推断出图像 5 必须位于图像 1 的左侧。#
这种交替设计取得了平衡。它整合了跨视图的信息以解决几何问题,同时也优化了每张特定图像的表示。
3. 预测头#
通过 Transformer 后的 Token 已经包含丰富的 3D 信息。VGGT 使用特定的“头”将这些信息解码为最终输出:
1. Camera Head: Transformer 处理后的相机 Token 被送入一个小型的 MLP,预测 9 个相机参数。#
2. 密集预测头 DPT: 对于深度图和点图这样的密集输出,图像 Token 被重塑回 2D 网格。一个深度先验 Transformer (DPT) 解码器将它们上采样到高分辨率,以预测像素级映射图。#
4. 损失函数定义与实验#
损失函数:
: 衡量预测的相机位置与真实位置的接近程度。
& : 衡量深度图和 3D 点云的误差。它还包括一个不确定性项——模型被允许对无纹理区域 (如蓝天) 保持“不确定”,以避免受到不公平的惩罚。
: 跟踪损失,确保模型知道图像 A 中的哪些像素对应于图像 B 中的哪些像素。
有趣的是,作者发现同时在所有这些任务上进行训练可以提高性能。虽然你可以从深度和相机参数在数学上推导出点图,但强制网络显式地预测两者,会使底层特征更加稳健。该模型在海量数据集集合 (CO3Dv2, ScanNet, MegaDepth 等) 上使用 64 个 A100 GPU 训练了 9 天。这种数据规模使得“无几何约束”的 Transformer 能够隐式地学习几何规则。
作者进行了一个有趣的消融实验是“Ours (Depth + Cam)”。作者发现,通过获取预测的深度图并使用预测的相机参数对其进行反投影,会比直接用模型预测点图获得更好的结果。这表明深度和相机的特定头在推理过程中比联合点图头稍微精确一些。