《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
Sign in to add a comment