a feed-forward neural network that directly infers all key 3D attributes of a scene, including camera parameters, point maps, depth maps, and 3D point tracks, from one, a few, or hundreds of its views.
- https://vgg-t.github.io/ 看一下better than MASt3R, DUSt3R
1. 处理视角的维度:双视角(Pairwise) VS 任意视角(Multi-view)
- MASt3R(受限于两两对比):它的底层逻辑依然是“双视图(Two-view)”。虽然它能完美解决两张图片之间的匹配和3D点图回归,但如果你给它 100 张照片,它必须先组合出成百上千个“图像对”,分别跑完网络后,再在后处理阶段进行极其昂贵的全局对齐(Global Alignment)。
- VGGT(真正的上帝视角):它是真正的 1 到 N 视图模型。你可以只喂给它 1 张图,也可以同时喂给它 100 张图。VGGT 能够在一个前向传播(Feed-forward)过程中,同时处理所有图像,直接输出全局一致的 3D 结构。
2. 网络输出目标的本质差异:隐式几何 VS 显式参数
- MASt3R(隐式几何):完全继承了 DUSt3R 的衣钵,网络拒绝直接输出相机参数。它的输出只有 3D点图(Point maps)、置信度(Confidence)和用于匹配的 密集特征图(Dense Features)。相机的内外参被隐式地藏在了 3D 坐标系的变化中。
- VGGT(全面显式回归):VGGT 极其硬核,它不仅输出点图和深度图,它还包含专门的 Camera Head(相机头),直接显式回归所有图片的相机内参(Intrinsics)和外参(Extrinsics),以及多视图的 3D 点轨迹(3D point tracks)。这意味着 VGGT 的输出可以直接无缝对接到任何传统的渲染引擎或 SLAM 系统中。
3. 架构与注意力机制的升级
- MASt3R 架构:使用的是跨注意力机制(Cross-attention),让图 A 和图 B 的 token 互相融合,再通过特征头(Feature Head)输出描述子。
- VGGT 架构:由于要处理几百张图,算力不允许两两做 Cross-attention。VGGT 采用了 “交替注意力(Alternating Attention)”:
-
先做 Frame-wise Self-attention(帧内自注意力),让每张图自己理解自己的局部细节。
-
再做 Global Self-attention(全局自注意力),让几百张图的特征在全局空间交换信息。
最后通过 DPT 解码器生成深度图和特征图。
Alternating-Attention

- Global Self-attention + Frame-wise self-attention
- ⇒ significant performance gains.
- Note: no cross-attention layers
- 如果硬算,需要多少显存?N张图片,每张L个token=》O(N^2L^2)
- 自注意力机制(Self-Attention)的计算复杂度是O(N2), N 是特征 Token 的总数量。假设我们要处理100张图,每张图经过切割后变成32×32=1024个 Token。总 Token 数 = 100×1024=102,400 = 100k。
- one Attention Matrix ⇒
102,400×102,400=1.05×10^10, i.e.
- float16(2 bytes)= > 21 GB
- float32(4 bytes)= > 42 GB
- Transformer 有几十个注意力头(Heads),还要堆叠十几层(Layers)。此外还需要保存前向传播的激活值来算反向梯度的梯度。如果硬算,处理这 100 张图至少需要几 TB 的显存
- Solution: 完全依赖 FlashAttention 算子。
- Llama-3原生支持 128k 甚至更长的上下文窗口。
- 100 张图切片后加起来正好是 100k 级别的 Token 长度。
- FlashAttention 运用底层的 C++ CUDA 内存切块(Tiling)和重计算技术,强制要求大注意力矩阵绝不写入显存(HBM),而是在 GPU 的 SRAM 缓存中即算即毁
- ⇒ AVGGT: Rethinking Global Attention for Accelerating VGGT

References