作者:Jianyuan Wang, Minghao Chen, Shangzhan Zhang, Nikita Karaev, Johannes Schönberger, Patrick Labatut, Piotr Bojanowski, David Novotny, Andrea Vedaldi, Christian Rupprecht

单位:Visual Geometry Group, University of Oxford; Meta AI

会议:CVPR 2026 Oral / 2026 Arxiv

链接:https://arxiv.org/abs/2605.15195, Project Page

研究动机

VGGT-Ω 这篇文章关心的不是“能不能再把 VGGT 做强一点”,而是一个更底层的问题:前馈式三维重建模型是否也像语言模型、2D 视觉基础模型一样,具有可预期的 scaling law。原始 VGGT 已经证明了 feed-forward reconstruction 可以在很多场景中接近甚至超过传统 SfM/优化式方法,但它仍然有几个限制:

  1. 全局 attention 让多帧之间可以交换信息,但 token 数随帧数增长,训练和长序列推理都会变贵。
  2. DPT 式多头 dense decoder 很吃显存,尤其是高分辨率卷积特征的 activation。
  3. 只靠公开重建数据很难覆盖动态视频和真实互联网视频的复杂分布。
  4. 如果想让三维重建模型成为 3D/4D 基础表征,模型不应只输出深度和相机,还应该产生能被 VLA、语言对齐等任务复用的 scene-level token。

VGGTOmega-0

论文的核心问题可以概括为:

能不能把 VGGT 这类前馈式重建模型系统性地放大到更多数据、更大模型、更长视频,同时保持训练效率,并让学到的三维表征能服务于重建之外的空间理解任务?

Fig.1 给出的答案很直接:模型从 1B 扩到 10B、数据从 2K 扩到 2M sequences 时,3D point error 持续下降。这是本文最重要的信号,因为它把三维重建从“工程管线调参”推进到了“可规模化基础模型”的叙事里。

核心方法

VGGT-Ω 仍然是一个前馈 Transformer:输入 N 张图像,输出每张图的相机参数和深度图。相机参数包含旋转四元数、平移和 field of view;主点默认在图像中心。与原始 VGGT 的关键差异是,它不再直接预测 point map 和 tracking feature,而是只保留 depth head 与 camera head,同时把 point/matching 作为训练时的辅助 loss。

VGGTOmega-1

1. Register attention:把跨帧通信压缩到 scene tokens

VGGT 使用 alternating attention:一类是 frame-wise attention,在每帧内部做 self-attention;另一类是 global attention,让所有帧的所有 token 互相通信。Global attention 是多帧几何信息形成的地方,但也是最贵的地方。

VGGT-Ω 在每帧中加入 1 个 camera token 和 16 个 register,也称 scene tokens。它把 25% 的 global attention layer 替换为 register attention:跨帧时只让各帧的 registers 互相 attend,图像 patch token 不直接参与跨帧全局 attention。更新后的 registers 再通过后续 frame-wise attention 把全局场景信息分发回局部图像 token。

VGGTOmega-2

这个设计背后的观察是:原始 VGGT 的 global attention 矩阵本身很稀疏,说明真正需要跨帧交换的信息可能只集中在少量 token 上。论文实验显示,只替换 25% global attention 基本不损失精度,point error 从纯 global attention 的 0.071 到 0.073,但训练时 backbone FLOPs 下降约 23%,显存下降约 16%。如果全部替换成 register attention,FLOPs 可以降到原来的 6%,但精度退回到接近原始 VGGT 的水平,所以本文选择了更稳的折中。

2. 单 dense head,多任务 loss

原始 VGGT 会显式预测 depth、point map、track 等多个 dense head。VGGT-Ω 的判断是:多任务监督确实有用,但多 dense head 不一定必要。它只保留一个 depth head,同时用 camera loss、depth loss、point loss 和 matching loss 共同训练:

Point map 并不是模型直接输出,而是由预测的 depth 和 camera 反投影得到,再和 GT point map 对齐。Matching loss 则作用在最后一层 attention token 上,把对应同一 3D 位置的 token 拉近,把负样本推远。这个做法保留了多任务学习带来的几何约束,但避免了多个 dense prediction head 的显存负担。

3. 轻量 dense decoder:MLP + pixel shuffle,但保留低分辨率卷积

高分辨率 DPT 卷积块的参数量不一定大,但训练时 activation 很贵。VGGT-Ω 把 1/4 分辨率以上的重型卷积层替换成单个 MLP 加 pixel shuffle。MLP 输出 $2u^2$ 个通道,pixel shuffle 还原到更高空间分辨率,两个输出通道分别对应 depth 与 confidence。

论文也试过完全去掉卷积,用纯 MLP 做 dense decoding。定量上可以工作,但深度图会出现块状 artifact,尤其是天空、远山这类深度无界的户外区域。因此最终保留了低分辨率的浅层卷积,用很小的计算代价换取更平滑的几何输出。

4. 动态场景:只预测 depth 和 camera,而不显式预测 motion

动态重建的难点是相机运动和物体运动容易纠缠。一些方法用 point map 或 ray map 表示动态几何,但这会引入额外 dense output,也可能把像素外观变化和相机信息混在一起。VGGT-Ω 选择更克制的输出:只预测 depth map 和 camera 参数,不直接预测 motion mask 或 dynamic point map。

这听起来更少,但好处是模型必须从大规模数据中学习动态先验,而不是在输出形式里强行引入复杂结构。后面的 motion-aware 可视化也表明,即使没有显式运动监督,模型中间层 token 仍然能自动分离运动主体。

5. Teacher-student 自监督:用无标注视频扩展分布

VGGT-Ω 的自监督不是从零开始,而是从 supervised checkpoint 初始化 teacher 和 student。两者看同一组视频帧,但接受不同增强,包括颜色扰动、模糊、90 度旋转、patch masking 和帧顺序重排。恢复到同一顺序后,student 需要匹配 teacher 的多层 token、camera 和 depth 预测;teacher 通过 EMA 更新。为了防止 collapse,自监督阶段冻结 camera/depth heads。

这部分很像 DINO 系列在 2D 视觉中的 teacher-student 思路,但论文也很坦诚:自监督主要改善泛化,benchmark 上提升有限。它不是本文最“漂亮”的结果,却是非常重要的经验,因为三维自监督在动态场景下仍然不稳定。

数据集

训练数据分两部分。

第一部分是约 3M sequences 的公开和内部标注数据,覆盖 Aria、Co3Dv2、uCo3D、DL3DV、Dynamic Replica、HOT3D、Hypersim、MegaDepth、ScanNet 系列、TartanAirV2、Virtual KITTI、Waymo、WildRGBD 等。作者明确排除了 VGGT 使用过的 Kubric 和 PointOdyssey,因为它们的背景几何是假背景,会产生无效深度。

第二部分是约 40M 条内部互联网风格视频。VLM 先过滤掉不适合多视图重建的视频,例如多段剪辑拼接、严重水印、运动模糊或 parallax 不足的视频。通过初筛的视频可用于自监督;其中一小部分进入伪标注管线。标注管线包含:

  1. VLM 预过滤并判断动态/静态属性。
  2. Grounding DINO 检测人、车等可能运动物体,并在匹配与验证阶段排除这些区域。
  3. SIFT、SuperPoint+SuperGlue、ALIKED+LightGlue、VGGSfM Tracker 组成匹配和 tracking ensemble。
  4. 用 VGGT 初始化困难场景的相机,再用 COLMAP 做 bundle adjustment。
  5. 用 field of view、畸变比例、注册率、多视图深度一致性等规则过滤失败样本。
  6. 人工标注 500 个静态和 500 个动态 sequence,训练 XGBoost、Random Forest、CatBoost ensemble 做最终几何质量过滤。

最终得到约 600K 静态场景和 200K 动态场景的高质量 camera/depth 标注。作者反复强调目标不是最大化 yield,而是宁可丢掉模糊样本,也不要把噪声伪标签灌进大模型训练。

算力

论文给出的训练设置很具体:

  1. 模型规模包含 200M、500M、1B、10B 四档,alternating-attention blocks 分别为 12/12/24/16,hidden size 分别为 384/768/1024/4096。
  2. Backbone 从 DINOv3 初始化,训练时不冻结。
  3. 总训练 240K iterations:160K supervised,50K self-supervised,最后 30K supervised。
  4. 每个 batch 随机采样 1 到 24 帧,图像面积约为 512 × 512,并使用颜色扰动、灰度化、随机 patch masking 等增强。
  5. 训练使用 128 张 96GB H100 GPU,bfloat16 mixed precision,gradient checkpointing 和 FSDP。
  6. 推理速度/显存测试使用单张 80GB A100,PyTorch scaled_dot_product_attention 与 flash attention v2 backend。

一个值得记住的数字是:VGGT-Ω 训练时只使用原始 VGGT 约 30% 的 GPU memory,这使得它可以使用 15× 更多监督数据,并进一步吃进 18M 无标注视频。

实验结果

1. 定量结果:静态和动态都明显提升

论文在三个静态数据集和三个动态数据集上评估:静态包括 7 Scenes、NRGBD、ETH3D;动态包括 DyCheck、Sintel、TUM-Dynamic。每个 scene/sequence 随机采样 10 帧。

VGGTOmega-3

Fig.4 展示了交通、网球、自然景观、水下珊瑚等场景。关键点不是图漂亮,而是模型能同时处理静态结构和非相机运动。对于一个不显式输出 motion mask 的模型,这说明动态先验确实被吸收到表示里。

VGGTOmega-4

Table 1 是相机位姿估计。VGGT-Ω 在所有静态/动态 benchmark 上都优于 MonST3R、MapAnything、MegaSaM、VGGT、PI3、DA3 等基线。最醒目的结果是 Sintel:AUC@3° 从 MegaSaM 的 22.5 提升到 40.0,相对提升 77%;AUC@30° 从 58.3 提升到 79.1。

VGGTOmega-5

Table 2 是深度估计。VGGT-Ω-10B 在 Sintel 上把 $\delta{1.25}$ 从 DA3 的 86.1 提升到 93.5,AbsRel 从 0.118 降到 0.081。在 TUM-Dynamic 上也达到 98.3 的 $\delta{1.25}$ 和 0.035 的 AbsRel。更大的 10B 模型几乎总是优于 1B,说明 scaling 对 camera 和 depth 都有效。

2. 定性结果:动态、稀疏、航拍、重复纹理都更稳定

VGGTOmega-6

Fig.5 对比 MegaSaM。MegaSaM 依赖优化,在稀疏室内、航拍、大 roll 角或纹理不足场景里容易出现几何漂移、平面错位或结构断裂。VGGT-Ω 的点云整体更连贯,尤其是航拍场景里没有那么明显的 repeated pattern 和全局形变。

VGGTOmega-7

Fig.6 对比 Depth Anything 3。DA3 在雪地缆车这种重复纹理场景里几乎估不出正确相机运动,在无人机绕塔场景中还会出现 ghosting 和重复塔结构。VGGT-Ω 更像一个“场景级重建模型”,而不是逐帧深度模型,因此对 camera trajectory 的约束更强。

3. 速度和显存:长视频推理友好

VGGTOmega-8

推理上,VGGT-Ω 和修正缓存策略后的 VGGT 都能在单张 80GB A100 上处理约 1250 帧,DA3 在约 750 帧附近 OOM。VGGT-Ω 的速度优势主要来自两个点:DINOv3 patch size 为 16,比 DINOv2/VGGT 的 14 减少约 25% 图像 token;默认替换 25% global attention 为 register attention,带来约 20%-25% 的速度提升。若全部使用 register attention,1000 帧 runtime 可从 240.2s 降到 11.7s,但精度明显下降。

4. Scene tokens 的下游价值:VLA 与语言对齐

VGGTOmega-9

Table 3 把 VGGT-Ω 的 frozen scene tokens 接到 OpenVLA-OFT 输入中,在 LIBERO benchmark 上平均成功率从 97.1 提升到 98.5。增幅不大但方向清晰:registers 不只是为了省 attention,它们真的承载了对机器人任务有用的空间信息。

VGGTOmega-10

Fig.8 做语言对齐:VLM 为视频序列生成描述,VGGT-Ω 端只允许一个 learnable language token 读取 registers,而不能直接看 image patch tokens。对齐后,在 100 个手工整理的互联网视频检索 benchmark 上,使用 VLM embedding 时 top-1 为 76.8%、top-3 为 97.0%;换成 text-only LLM embedding 且不再训练时,仍有 47.5% top-1 和 77.8% top-3。这说明 registers 包含可对齐到自然语言的 scene-level 信息。

VGGTOmega-11

Fig.9 则展示了一个很有趣的 emergent property:对中间层 image tokens 做 PCA 降维和 k-means 聚类,不用 optical flow、不用标签、不用 probe,某个 cluster 仍然可以跟踪跳舞的人。早层的运动分割最干净,中间层仍保留运动信号,深层则更偏全局和语义。这是本文关于“重建作为空间理解 proxy task”的一个强证据。

优势与不足

优势

  1. 这篇文章不是单纯堆参数,而是同时解决了架构、数据、训练和表示复用四个层面的 scale bottleneck。
  2. Register attention 的设计很干净:它既是效率手段,也是表示学习手段。省下的计算不是来自粗暴删 token,而是把跨帧信息压缩到 scene tokens。
  3. “只输出 depth/camera,多任务只作为 loss”这个选择很有启发。它把推理接口做简单,同时保留 point/matching 监督带来的几何约束。
  4. 数据管线强调质量优先,尤其是动态区域 masking、多视图一致性和 supervised geometric filtering,比较符合大规模伪标注训练的现实。
  5. 论文没有只停留在 benchmark,而是用 VLA、语言对齐、motion clustering 证明 registers 有下游表征价值。

不足

  1. 成本极高。128 张 96GB H100 和 10B 模型规模意味着这条路线目前不是普通实验室可完整复现的。
  2. 关键数据包含内部互联网视频和内部数据,论文报告了流程和规模,但外部研究者很难验证数据分布、过滤策略与最终性能之间的因果关系。
  3. 自监督部分更像有效经验而不是成熟范式。作者也承认 teacher-student 方法主要改善泛化,benchmark 收益有限,且仍依赖 supervised pretrained checkpoint。
  4. 对动态场景的能力仍然依赖训练分布。论文没有显式输出 motion,因此遇到极端非刚体、遮挡复杂、运动主体占比很高的场景时,失败模式可能不容易诊断。
  5. MLP-only dense head 的 artifact、天空/无效区域深度粘连、噪声数据记忆等问题说明几何输出仍然不像 2D 表征那样“自然可解码”。

VGGTOmega-12

Fig.10 的附录数据问题很值得看:ScanNet++、Hypersim 以及 doming effect 都会产生不理想监督。这里暴露出一个现实问题:三维重建模型的 scaling 不是只靠更多视频,几何标签质量可能比样本数更硬。

记忆点

  1. Feed-forward reconstruction 也出现了清晰的 scaling 信号:更大模型和更多数据都能稳定降低 point error。
  2. Registers 可以同时是效率瓶颈的解决方案和 scene-level 表征的承载体。
  3. 多任务监督不等于多任务输出。把 point/matching 放在训练 loss 里,把推理输出收缩为 depth/camera,是一个很好的系统设计。
  4. 动态重建未必需要显式 motion output;足够强的数据先验可以让 motion-aware representation 从重建目标中自然浮现。
  5. 三维基础模型的真正瓶颈可能是高质量几何数据和可规模化自监督,而不只是网络结构。
  6. 对下游任务而言,重建模型的 registers 可能会成为一种“结构化空间 token”,连接 3D perception、VLA 和语言模型。