《VGGT》与《SwiftVGGT》深度解读:视觉几何基础模型的统一多任务范式

《VGGT: Visual Geometry Grounded Transformer》深度解读

论文信息
- 作者:Jianyuan Wang, Minghao Chen, Nikita Karaev, Andrea Vedaldi, Christian Rupprecht, David Novotny
- 机构:University of Oxford(VGG 组)+ Meta AI
- 发表时间:2025年3月14日投稿,CVPR 2025 Best Paper Award
- arxiv:https://arxiv.org/abs/2503.11651
- 项目主页:https://vgg-t.github.io/
- 代码:https://github.com/facebookresearch/vggt


一句话总结

VGGT 是一个前馈(feed-forward)大 Transformer,在单次前向传播中直接从一张、几张或数百张图像同时推断出场景的相机参数、深度图、点云图和三维点跟踪等全部关键三维属性,无需任何几何优化后处理,且精度超越需要数秒优化的传统方法。


背景与动机

传统的三维重建长期依赖视觉几何优化方法,如 Bundle Adjustment(BA),通过迭代优化求解相机位姿和三维结构【原文 §1 Introduction】。近年来,DUSt3R、MASt3R 等学习方法展示了端到端重建的潜力,但它们一次只能处理两张图像,需要复杂的后处理来融合多对结果。VGGSfM 虽然将机器学习与 BA 端到端结合,但仍离不开耗时的迭代优化。

作者提出的核心问题是:当网络足够强大时,三维任务是否可以直接由神经网络解决,而几乎完全抛弃几何后处理?【原文 §1 Introduction】

VGGT 正是这一思路的集大成者——它基于一个标准的、几乎没有三维归纳偏置的大 Transformer,通过在海量三维标注数据上训练,学会了直接预测所有三维属性。


核心方法

3.1 问题定义与输出

输入为 N 张 RGB 图像 $I_i \in \mathbb{R}^{3\times H\times W}$,VGGT 的 Transformer 将其映射为一组三维标注,每张图像对应一个四元组:
$$f\big((I_i)_{i=1}^N\big) = (g_i, D_i, P_i, T_i)_{i=1}^N$$
其中 $g_i$ 为相机参数(内参+外参,共9维),$D_i$ 为深度图,$P_i$ 为点云图,$T_i$ 为点跟踪特征网格【原文 §3.1】。

3.2 特征骨干:Alternating-Attention Transformer

VGGT 的核心架构是一个大 Transformer,设计上刻意保持简洁,几乎没有专门的三维归纳偏置(除了一种注意力交替模式)【原文 §3.2】。

图像 Token 化:每张输入图像通过 DINO 被 patchify 为一组 token $t^I \in \mathbb{R}^{K \times C}$。

Alternating-Attention (AA):所有帧的图像 token 被送入主网络,交替使用帧内自注意力(frame-wise self-attention)和全局自注意力(global self-attention)
- 帧内自注意力:仅在单张图像的 token 之间计算注意力,用于图像内部特征归一化;
- 全局自注意力:在所有帧的 token 之间联合计算注意力,用于跨图像信息融合。

默认使用 L=24 层 的交替注意力。这种设计在跨帧信息整合与单帧特征稳定性之间取得了平衡【原文 §3.2】。

3.3 预测头

在图像 token 之外,每张图像还附加:
- 一个相机 token $t^{g_i}$:用于预测相机内外参;
- 四个 register token $t^{R_i}$:借鉴 DINOv2 的寄存器机制,帮助稳定训练。

所有 token 经过 AA Transformer 后,由专门的预测头输出:
- 相机头:从相机 token 预测内外参;
- DPT 头:从图像 token 预测深度图、点云图和点跟踪特征网格。

3.4 训练

VGGT 采用多任务联合训练,总损失为:
$$\mathcal{L} = \mathcal{L}_{\text{camera}} + \mathcal{L}_{\text{depth}} + \mathcal{L}_{\text{pmap}} + \lambda\mathcal{L}_{\text{track}}$$
其中相机、深度、点云三项损失的数值范围相近,无需额外加权;点跟踪损失被降权 $\lambda=0.05$【原文 §3.4】。

关键发现:同时学习多个相互关联的三维属性能够互相促进。实验表明,去掉相机参数估计会导致点云精度明显下降,而深度估计的辅助作用相对有限【原文 §4.5 Ablation】。

另一个关键发现:推理时,点云图可以从深度图和相机参数推导出来(Depth + Cam),其精度反而优于直接用点云头输出的结果【原文 §4.3】。


实验与结果

4.1 相机位姿估计(Camera Pose Estimation)

在 CO3Dv2 和 RealEstate10K 数据集上评估相机位姿估计:

方法 Re10K (unseen) ↑ CO3Dv2 ↑ 耗时
Colmap+SPSG 45.2 25.3 ~15s
DUSt3R 67.7 76.7 ~7s
MASt3R 76.4 81.8 ~9s
VGGSfM v2 78.9 83.4 ~10s
Ours (Feed-Forward) 85.3 88.2 ~0.2s
Ours (with BA) 93.5 91.8 ~1.8s

【原文 Table 1 / §4.1】

VGGT 的前馈版本仅耗时 0.2 秒,即远超需要 7-15 秒优化的 DUSt3R、MASt3R、VGGSfM。即使不加 BA,精度也全面领先;加 BA 后精度进一步提升到 93.5(Re10K)和 91.8(CO3Dv2)。

4.2 多视角深度估计(Multi-view Depth)

在 DTU 数据集上,VGGT 的 Overall 误差为 0.382,相比 DUSt3R 的 1.741 大幅降低,且与已知 ground-truth 相机的方法相当【原文 §4.2】。

4.3 点云估计(Point Map Estimation)

在 ETH3D 数据集上:

方法 Acc.↓ Comp.↓ Overall↓ 耗时
DUSt3R 1.167 0.842 1.005 ~7s
MASt3R 0.968 0.684 0.826 ~9s
Ours (Point) 0.901 0.518 0.709 ~0.2s
Ours (Depth + Cam) 0.873 0.482 0.677 ~0.2s

【原文 Table 2 / §4.3】

VGGT 的前馈输出在精度和速度上均显著优于经过昂贵优化的 DUSt3R 和 MASt3R。值得注意的是,从深度+相机推导出的点云(0.677)比直接点云头输出(0.709)更精确

4.4 图像匹配(Image Matching)

在两视图图像匹配任务上,尽管 VGGT 并非专门为匹配训练,仍取得了所有基线中最高的精度【原文 §4.4】。

4.5 下游任务微调

新视角合成(Novel View Synthesis):简单修改 VGGT 并微调后,在 GSO 数据集上取得了与 LVSM 相当的结果,且无需输入相机参数、使用更少训练数据【原文 §4.6】。

动态点跟踪(Dynamic Point Tracking):将 CoTracker2 的骨干网络替换为预训练的 VGGT 特征,在 TAP-Vid 基准上显著提升了性能【原文 §4.6】。


亮点与局限

亮点:
- 统一的多任务三维基础模型:一个网络同时输出相机、深度、点云、跟踪,打破了传统\"一任务一模型\"的范式;
- 前馈即 SOTA:无需任何优化后处理,0.2 秒内完成重建,精度全面超越需要数秒优化的方法;
- 通用特征骨干:预训练的 VGGT 特征可显著提升下游任务(点跟踪、新视角合成),具备 GPT/CLIP 式的泛化潜力;
- 极简架构:基于标准大 Transformer + DINO patchify,几乎没有三维专属设计,证明了\"数据+规模\"路线的有效性。

局限(原文承认的):
- 不支持鱼眼或全景图像【原文 §5 Limitations】;
- 极端旋转输入下性能下降【原文 §5 Limitations】;
- 无法处理大形变非刚性场景,仅能应对轻微非刚性运动【原文 §5 Limitations】。

局限(解读者补充):
- 长序列显存瓶颈:虽然 VGGT 能处理\"数百张\"图像,但对于自动驾驶级别的数千帧长序列,直接前向仍面临显存限制——这正是 VGGT-Long / SwiftVGGT 等后续工作要解决的;
- 训练数据依赖:模型高度依赖大规模三维标注数据训练,在缺乏标注的新域(如医疗、水下)泛化能力存疑。


延伸阅读

  • DUSt3R / MASt3R:VGGT 的直接前身,但一次只能处理两张图,依赖后处理融合
  • VGGSfM:将机器学习与可微 BA 结合,但仍需迭代优化
  • VGGT-Long:将 VGGT 扩展到大规模场景的分块策略版本
  • SwiftVGGT:在 VGGT-Long 基础上进一步优化效率(见本文档下半部分)
  • DepthAnything / MoGe / LRM:同期的单任务三维大模型,与 VGGT 的统一多任务路线形成对比
  • DINOv2:VGGT 使用的图像 patchify 和 register token 机制来源

《SwiftVGGT: A Scalable Visual Geometry Grounded Transformer for Large-Scale Scenes》深度解读

论文信息
- 作者:Jungho Lee, Minhyeok Lee, Sunghun Yang, Minseok Kang, Sangyoun Lee
- 机构:Yonsei University(延世大学)
- 发表时间:2025年11月23日投稿,CVPR 2026 Findings 接收
- arxiv:https://arxiv.org/abs/2511.18290
- 项目主页:https://Jho-Yonsei.github.io/SwiftVGGT/


一句话总结

SwiftVGGT 是一种无需训练(training-free)的大规模场景稠密三维重建方法,在保持 VGGT-Long 级别重建精度的同时,将推理时间压缩到后者的 33%,核心创新是用单步 Sim(3) SVD 替代迭代 IRLS 优化,并用 VGGT 自身的 DINO patch token 替代外部 VPR 模型完成回环检测。


背景与动机

大规模场景的稠密三维重建是三维感知的基础任务,但精度与计算效率的权衡始终是一个核心挑战【原文 Abstract】。现有方法大致分为两类:
- 追求速度:输出质量较低;
- 追求质量:推理极慢,难以实用。

近年来,3D 视觉基础模型(如 DUSt3R、MASt3R、VGGT 等)在局部重建上表现优异,但受限于显存,无法直接处理长序列或大场景【原文 §2.1】。为此,VGGT-Long 提出了分块(chunk-based)策略:将长图像序列切分为有重叠的短片段,分别用 VGGT 处理后再对齐合并。然而,VGGT-Long 存在两个明显的计算瓶颈:
1. 块间对齐依赖 Iteratively Reweighted Least Squares(IRLS)优化,迭代过程耗时;
2. 回环检测依赖外部 Visual Place Recognition(VPR)模型,引入额外计算和冗余依赖【原文 §1 Introduction】【官方博客】。

SwiftVGGT 的动机正是消除这两个瓶颈,在完全不训练的前提下实现更快、更轻量的大规模重建。


核心方法

3.1 整体流程

SwiftVGGT 采用滑动窗口分块策略,整体流程分为三步【原文 §3.1】:
1. 局部分块重建:每个 chunk 独立通过 VGGT 输出深度图和相机位姿;
2. 块间对齐:使用可靠性引导的点采样(reliability-guided point sampling)计算相邻 chunk 的 Sim(3) 变换;
3. 全局回环与优化:利用 VGGT 编码器自身的 DINO patch token 检测回环,再通过全局 Sim(3) 图优化统一所有 chunk。

3.2 可靠性引导的点采样 —— 替代 IRLS

块间对齐需要估计两个相邻 chunk 之间的 Sim(3) 变换(含尺度)。VGGT-Long 使用 IRLS 迭代优化,SwiftVGGT 将其替换为单步 Umeyama SVD 算法,关键是如何选取高质量对应点。

深度归一化:由于不同 chunk 可能使用不同相机内参,深度图先归一化到统一参考内参:
$$D_{\text{reg}} = \frac{1}{2} \left( \frac{f_{x,\text{ref}}}{f_{x,\text{src}}} + \frac{f_{y,\text{ref}}}{f_{y,\text{src}}} \right) D_{\text{src}}$$

可靠性掩码:作者设计了一个三重条件筛选可靠 3D 点:
$$\text{mask} = \big(|D_{\text{reg},t} - D_{\text{reg},t+1}| < \lambda_D\big) \land \big(\gamma_t > \lambda_\gamma \cdot \mu_{\gamma t}\big) \land \big(\gamma_{t+1} > \lambda_\gamma \cdot \mu_{\gamma t+1}\big)$$
其中 $\gamma$ 是 VGGT 输出的置信度(confidence),$\mu_\gamma$ 是 chunk 内置信度的均值。只有同时满足深度一致性、高置信度的点才会被采样用于 SVD【原文 §3.2】。

这一设计将迭代优化简化为闭式单步计算,显著减少了块间对齐的耗时。

3.3 基于 VGGT 编码器特征的回环检测 —— 替代外部 VPR

VGGT-Long 使用独立的 VPR 模型(如 CosPlace)进行回环检测,这不仅增加了额外计算,还需要维护一个额外的网络前向过程。

SwiftVGGT 的核心观察是:VGGT 内部的 DINO transformer 已经提取了丰富的语义-几何特征,可以直接复用。作者将 patch token 通过以下三步转化为全局图像描述符【原文 §3.3】:
1. l2 归一化
2. Signed Power Normalization:$g_i^{(1)} = \text{sign}(g_i^{(0)}) \cdot |g_i^{(0)}|^\beta$(取 $\beta=0.5$),再 l2 归一化;
3. PCA Whitening:$z_i = (g_i^{(1)} - \mu) W$,移除第一主成分($r=1$),再 l2 归一化到 512 维。

回环候选通过余弦相似度检索,满足阈值即触发回环闭合。回环变换直接由 chunk 的 Sim(3) 位姿推导:
$$S_{i \to j} = S_{j,\text{loop}} \cdot S_{i,\text{loop}}^{-1}$$

3.4 全局 Sim(3) 优化

所有 chunk 的 Sim(3) 位姿通过 Levenberg-Marquardt 进行全局优化,目标函数包含两项【原文 §3.4】:
- 时序约束:相邻 chunk 之间的相对变换一致性;
- 回环约束:检测到的回环对之间的变换一致性。


实验与结果

4.1 数据集与指标

  • KITTI Odometry:11 个序列,包含城市场景的长距离驾驶数据;
  • Waymo Open:9 个序列,更复杂的多相机、大规模场景;
  • Virtual KITTI:用于补充验证;
  • 指标:Absolute Trajectory Error(ATE)RMSE(米)、Chamfer Distance(CD)【原文 §4.1】。

4.2 相机跟踪精度(KITTI)

方法 需要标定 重建类型 KITTI 平均 ATE (m) FPS
DPV-SLAM 稀疏 53.03 31.37
DROID-SLAM 稠密 100.28 8.08
VGGT-Long 稠密 29.41 6.91
Ours 稠密 29.18 20.73

【原文 Table 2】

在 KITTI 上,SwiftVGGT 的平均 ATE 为 29.18m,略优于 VGGT-Long 的 29.41m,而运行速度达到 20.73 FPS,是 VGGT-Long(6.91 FPS)的 3 倍。值得注意的是,MASt3R-SLAM、CUT3R、Fast3R、FastVGGT 等方法在大规模 KITTI 序列上直接出现 Tracking Lost 或 Out of Memory,无法完成重建【原文 Table 2】。

4.3 相机跟踪精度(Waymo Open)

方法 平均 ATE (m) FPS
DROID-SLAM 4.310 7.21
MASt3R-SLAM 4.887 5.47
CUT3R 9.751 8.38
FastVGGT 6.272 11.38
VGGT-Long 3.085 1.97
Ours 2.854 8.41

【原文 Table 3】

在 Waymo 上,SwiftVGGT 的平均 ATE 进一步降低到 2.854m,超越 VGGT-Long 的 3.085m,同时速度达到 8.41 FPS(VGGT-Long 仅 1.97 FPS),快了约 4.3 倍

4.4 消融实验

块间对齐方式对比(KITTI 子集)【原文 Table 5】:

对齐方式 λ_D ATE RMSE (m) 耗时 (s)
IRLS 32.95 111.4
Ours 0.1 29.64 105.6
Ours 0.2 29.18 105.8
Ours 0.3 29.95 107.2

可靠性引导采样(λ_D=0.2)在精度(29.18m)和速度(105.8s)上均优于 IRLS(32.95m, 111.4s)。

回环检测方式对比【原文 Table 6】:

回环检测 ATE RMSE (m) 耗时 (s)
VPR(外部) 27.40 165.5
Ours(内部特征) 27.33 131.7

使用 VGGT 自身特征进行回环检测,精度与外部 VPR 相当(27.33m vs 27.40m),但耗时减少了约 20%(131.7s vs 165.5s)。


亮点与局限

亮点:
- 训练-free:完全依赖 VGGT 的预训练权重,无需任何微调或后训练,部署门槛低;
- 3× 加速:通过单步 SVD 和内置回环检测,将推理时间压缩到 VGGT-Long 的 33%,同时精度不降反升;
- 去除外部依赖:不再需要 VPR 模型,系统更轻量、更简洁;
- 稠密重建:在公里级大规模场景下输出稠密点云,而传统 SLAM 方法(如 DPV-SLAM、DROID-SLAM)在此类场景精度显著下降或失败。

局限(原文承认的):
- 无 Bundle Adjustment:SwiftVGGT 估计相机参数但不进行 BA 优化,因此累积漂移无法被完全校正【原文 §5 Limitations】。这意味着在极长序列或低纹理区域,误差仍可能逐渐累积。

局限(解读者补充):
- 对 VGGT 的强依赖:方法完全建立在 VGGT 之上,若 VGGT 在新域(如室内、水下)表现不佳,SwiftVGGT 也难以独善其身;
- 超参数敏感性:λ_D、λ_γ、β 等超参数在论文中通过网格搜索确定,对于新数据集可能需要重新调参。


延伸阅读

  • VGGT:Visual Geometry Grounded Transformer,本文的基础模型 [arxiv:2503.11651]
  • VGGT-Long:VGGT 的大规模场景扩展版本,SwiftVGGT 的直接对比基线
  • DUSt3R / MASt3R / Fast3R:基于 transformer 的稠密重建方法,但在长序列上存在显存或精度问题
  • DROID-SLAM:基于深度学习的 SLAM 方法,在 KITTI 上精度显著落后
  • CosPlace / AP-GeM:VGGT-Long 使用的外部 VPR 模型,本文将其替换掉

0 Comments