VGGT 論文報告
CVPR 2025 · Best Paper
VGGT
Visual Geometry Grounded Transformer
視覺幾何基礎 Transformer
REPORTER
蔡書毅 410415032
arXiv 2503.11651 · VGG, Oxford · Meta AI
01/16
目次

目 次

I VGGT 在做什麼 03
II Transformer 基礎 07
III Transformer 元件拆解 09
IV Transformer 回顧 36
V ViT — 影像也能當 token 37
VI VGGT 架構 38
VII 實驗結果 45
VIII 互動 Demo 49
IX 感謝聆聽 · Q&A 50
02/16
SECTION I · 問題 (1/4)

VGGT 在做甚麼

scene view 1 scene view 2 scene view 3 scene view 4
同一場景的多張視角影像
VGGT single feed-forward · ~1 sec
Cameras
相機參數
Depth Maps
深度圖
Point Maps
點雲圖
Tracks
點追蹤
03/16
SECTION I · 問題 (2/4)

四個輸出的作用例子: Figure 1

VGGT Figure 1 — 4 outputs example 1 2 3 4
1Cameras
2Point Maps
3Depth Maps
4Tracks
03/16
SECTION I · 問題 (3/4)

VGGT 整體架構

VGGT Figure 2 — overall architecture
03/16
SECTION I · 問題 (4/4)

VGGT 整體架構

VGGT Figure 2 — overall architecture
Transformer
decoder + CNN
03/16
SECTION II · TRANSFORMER (1/2)

GPT

G
Generative
逐字「產生」新內容
P
Pretrained
先用海量資料預先學好,再用
T
Transformer
背後的網路架構
04/16
SECTION II · TRANSFORMER (2/2)

Transformer 在做什麼? (文字接龍)

Once upon a
Input Embedding Positional Encoding Block 1 Masked Multi-Head Attention Add & Norm Feed Forward Add & Norm Block 2 ... N Linear Softmax Output Probability (next token)
下一個 token 的機率分布——從中 sampling:機率越高越可能被選
04/16
SECTION III · INPUT EMBEDDING (1/4)

Input Embedding

Input Embedding Positional Encoding Block 1 Masked Multi-Head Attention Add & Norm Feed Forward Add & Norm Block 2 ... N Linear Softmax Output Probability (next token)
05/16
SECTION III · INPUT EMBEDDING (2/4)

Tokenization + Input Embedding:從文字到向量

Once upon a time tokenization fun
Tokenizer
Input Embedding
05/16
SECTION III · INPUT EMBEDDING (3/4)

Input Embedding 怎麼運作?

Once upon a time king cat
+0.23 −0.12 +0.55 −0.31 +0.49 +0.71 −0.41 +0.34 +0.09 +0.62 −0.22 +0.14 +0.05 −0.67 −0.18 +0.14 +0.31 −0.05 +0.78 +0.21 +0.42 −0.55 +0.66 +0.18
Embedding Matrix W ∈ ℝd × V
每個 token 對應矩陣的一個直立 column = 該 token 的 d 維向量(這裡顯示前 4 維;實際 d ≈ 768 或 1024)
05/16
SECTION III · INPUT EMBEDDING (4/4)

詞意 ≈ 向量空間裡的位置

man woman boy girl 性別 年齡 其他維度 圖例 性別差 年齡差
man
−0.30 +0.40 +0.12 −0.05 +0.28
woman
+0.30 +0.40 +0.11 −0.04 +0.31
boy
−0.30 −0.40 +0.13 −0.07 +0.26
girl
+0.30 −0.40 +0.10 −0.06 +0.30
05/16
SECTION IV · POSITIONAL ENCODING (1/6)

Positional Encoding

Input Embedding Positional Encoding Block 1 Masked Multi-Head Attention Add & Norm Feed Forward Add & Norm Block 2 ... N Linear Softmax Output Probability (next token)
06/16
SECTION IV · POSITIONAL ENCODING (2/6)

為什麼需要 Positional Encoding?

句子 A: The cat ate the fish
句子 B: fish the ate cat The
06/16
SECTION IV · POSITIONAL ENCODING (3/6)

+1, +2, +3?

pos 1
+0.23−0.41+0.05+0.78
+
+1+1+1+1
=
+1.23+0.59+1.05+1.78
pos 2
+0.23−0.41+0.05+0.78
+
+2+2+2+2
=
+2.23+1.59+2.05+2.78
pos 3
+0.23−0.41+0.05+0.78
+
+3+3+3+3
=
+3.23+2.59+3.05+3.78
需要一種編碼: 數值有限(不爆炸)、能表達相對位置可以推到任意長度
06/16
SECTION IV · POSITIONAL ENCODING (4/6)

解法:Sinusoidal Positional Encoding

公式
PE(pos, 2i) = sin ( pos / 100002i/d )
PE(pos, 2i+1) = cos ( pos / 100002i/d )
偶數維用 sin、奇數維用 cos
波形(隨 pos 變化)
pos dim 0 dim 2 dim 6 +1 −1
不同頻率的 sin/cos → 每個 pos 都有獨一的「指紋」,範圍永遠 [−1, +1],可推到任意長度
06/16
SECTION IV · POSITIONAL ENCODING (5/6)

整體視覺化:Sinusoidal PE 矩陣

49 0 pos 0 63 dim →
pos = 49
該 pos 的 64 維 PE 向量
−1
+1
06/16
SECTION IV · POSITIONAL ENCODING (6/6)

實際使用:embedding ⊕ sin/cos PE

pos 1
+0.23−0.41+0.05+0.78
+
+0.84+0.54+0.01+1.00
=
+1.07+0.13+0.06+1.78
pos 2
+0.23−0.41+0.05+0.78
+
+0.91−0.42+0.02+1.00
=
+1.14−0.83+0.07+1.78
pos 3
+0.23−0.41+0.05+0.78
+
+0.14−0.99+0.03+1.00
=
+0.37−1.40+0.08+1.78
06/16
SECTION V · ATTENTION (1/10)

Q, K, V 與 Attention

Input Embedding Positional Encoding Block 1 Masked Multi-Head Attention Add & Norm Feed Forward Add & Norm Block 2 ... N Linear Softmax Output Probability (next token)
07/16
SECTION V · ATTENTION (2/10)

為什麼需要 Attention?

the river bank
河岸
VS
the bank account
銀行帳戶
07/16
SECTION V · ATTENTION (3/10)

Q, K, V 三個角色

Q = x · WQ
Query — 我在找什麼?
K = x · WK
Key — 我能怎麼被找到?
V = x · WV
Value — 我實際提供什麼?
· = x (1 × 4) W (4 × 3) q (1 × 3)
07/16
SECTION V · ATTENTION (4/10)

softmax — 把分數變成機率

softmax(x)i = exi Σj exj
輸入分數 (任意實數) 0 2.0 1.0 0.5 −1.0 x1 x2 x3 x4 ✗ 有正有負、加總 ≠ 1 softmax 輸出機率 1.0 0 0.61 0.22 0.14 0.03 p1 p2 p3 p4 ✓ 全部 > 0、Σ pi = 1.00
先取 ex全部變正
除以總和 → 加總 = 1
指數放大 → 突顯最大者
07/16
SECTION V · ATTENTION (5/10)

Attention 怎麼算?

Attention ( Q , K , V ) = softmax ( Q K T d k ) V
07/16
SECTION V · ATTENTION (6/10)

Attention 怎麼算?

Attention ( Q , K , V ) = softmax ( Q K T d k ) V
Q · KT 看誰跟誰像
07/16
SECTION V · ATTENTION (7/10)

Attention 怎麼算?

Attention ( Q , K , V ) = softmax ( Q K T d k ) V
÷ √dk 標準化分數
07/16
SECTION V · ATTENTION (8/10)

Attention 怎麼算?

Attention ( Q , K , V ) = softmax ( Q K T d k ) V
softmax 機率向量
07/16
SECTION V · ATTENTION (9/10)

Attention 怎麼算?

Attention ( Q , K , V ) = softmax ( Q K T d k ) V
× V 加權合併出新的 value 向量
Multi-Head:h 組不同的 (WQ, WK, WV) 同時跑(Vaswani 2017 用 h = 8),把結果拼起來 — 模型在不同子空間關注不同的關係。
07/16
SECTION V · ATTENTION (10/10)

Self-Attention 全流程

Konce Ka Kwise Kking Kruled Qonce Qa Qwise Qking Qruled softmax(QK/√dk) 1.0 1.0 × Vonce softmax(QK/√dk) 0.4 0.4 × Vonce softmax(QK/√dk) 0.6 0.6 × Va softmax(QK/√dk) 0.2 0.2 × Vonce softmax(QK/√dk) 0.3 0.3 × Va softmax(QK/√dk) 0.5 0.5 × Vwise softmax(QK/√dk) 0.1 0.1 × Vonce softmax(QK/√dk) 0.2 0.2 × Va softmax(QK/√dk) 0.3 0.3 × Vwise softmax(QK/√dk) 0.4 0.4 × Vking softmax(QK/√dk) 0.1 0.1 × Vonce softmax(QK/√dk) 0.1 0.1 × Va softmax(QK/√dk) 0.2 0.2 × Vwise softmax(QK/√dk) 0.2 0.2 × Vking softmax(QK/√dk) 0.4 0.4 × Vruled yonce +0.62 −0.18 +0.34 +0.91 −0.27
例:句子 「once a wise king ruled」 · 5×5 causal mask · 每 row 加總 = 該 token 的 output 向量
07/16
SECTION VI · ADD & NORM (1/3)

Add & Norm

Input Embedding Positional Encoding Block 1 Masked Multi-HeadAttention Add & Norm Feed Forward Add & Norm Block 2 ... N Linear Softmax Output Probability (next token)
08/16
SECTION VI · ADD & NORM (2/3)

Add: 殘差連線

x 分支 Masked Multi-Head Attention Attn(x) skip / residual(把原始 x 直接送過去) Add & Norm y 經過 MHA 處理
x
+0.23−0.41+0.05+0.78
+
Attn(x)
+0.45+0.13−0.34+0.22
=
y = x + Attn(x)
+0.68−0.28−0.29+1.00
08/16
SECTION VI · ADD & NORM (3/3)

Norm: Layer Normalization

Add 之後
+0.68−0.28−0.29+1.00
μ ≈ 0.30 · σ ≈ 0.55
LayerNorm
(xμ) / σ
Norm 之後
+0.70−0.97−0.99+1.26
μ ≈ 0 · σ ≈ 1
08/16
SECTION VII · FEED FORWARD (1/2)

Feed-Forward Network

Input Embedding Positional Encoding Block 1 Masked Multi-HeadAttention Add & Norm Feed Forward Add & Norm Block 2 ... N Linear Softmax Output Probability (next token)
09/16
SECTION VII · FEED FORWARD (2/2)

Feed-Forward Network (MLP)

輸入 d = 4 隱藏層 (ReLU) 4d = 16 輸出 d = 4 W1 W2 來自 Add & Norm y +0.70 −0.97 −0.99 +1.26 送入下一個 Add & Norm FFN(y) +0.51 +0.34 −0.18 +0.79
FFN 在做什麼 memorization & interpretation — 把 attention 收集到的上下文「記住」並「重新理解」
09/16
SECTION VIII · LINEAR + SOFTMAX (1/2)

Linear + Softmax 輸出層 — 投影 + 機率

Input Embedding Positional Encoding Block 1 Masked Multi-HeadAttention Add & Norm Feed Forward Add & Norm Block 2 ... N Linear Softmax Output Probability (next token)
10/16
SECTION VIII · LINEAR + SOFTMAX (2/2)

Linear + Softmax 預測下一個詞

 
其實就是 linear regression:y = Wx + b,再 softmax 轉成機率
10/16
SECTION IX · 回顧

Transformer 回顧

Once upon a
Input Embedding Positional Encoding Block 1 Masked Multi-Head Attention Add & Norm Feed Forward Add & Norm Block 2 Block 3 Block 4 Linear Softmax Output Probability (next token)
下一個 token 的機率分布——從中 sampling:機率越高越可能被選
11/16
SECTION X · ViT

ViT (Vision Transformer)

cat
輸入影像
flatten +
linear projection
patch1
0.21-0.050.840.13
patch2
-0.180.420.07-0.31
patch3
0.55-0.27-0.110.46
patch256
0.080.33-0.490.22
Input Embedding Positional Encoding Block 1 Masked Multi-Head Attention Add & Norm Feed Forward Add & Norm Block 2 Block 3 Block 4 Linear Softmax Output Probability (class label)
類別機率分布——選機率最高的當預測:
cat 0.82
tabby cat 0.09
dog 0.04
fox 0.03
rabbit 0.02
12/16
SECTION XI · 架構 (1/7)

VGGT 架構 — DINO

VGGT architecture — DINO
DINO = ViT,只取 features
Patch Embedding Positional Encoding Block 1 Multi-Head Attention Add & Norm Feed Forward Add & Norm Block 2 Block 3 Block N features → 餵給 VGGT 主體 Linear Softmax
13/16
SECTION XI · 架構 (2/7)

VGGT 架構 — Add Camera Token

VGGT architecture — Add Camera Token
13/16
SECTION XI · 架構 (3/7)

VGGT 架構 — Global + Frame Attention

VGGT architecture — Attention
Global Attention
view 1 view 2 view 3 view 4
Frame Attention
view 1 view 2 view 3 view 4
13/16
SECTION XI · 架構 (4/7)

VGGT 架構 — Camera Head

VGGT architecture — Camera Head
Why attention blocks?
camera token Block 1 Multi-Head Attention Add & Norm Feed Forward Add & Norm Block 2 Block 3 Block 4 Linear cameras
Component Numbers Type
Rotation (quaternion q) 4 Extrinsic
Translation (t) 3 Extrinsic
Field of view (f) 2 Intrinsic
Total 9
13/16
SECTION XI · 架構 (5/7)

VGGT 架構 — DPT Head (Decoder)

VGGT architecture — DPT
input image
input image
Encoder
壓縮成抽象 features
+0.42−0.18+0.71+0.05
features
Decoder
還原成具體輸出
reconstructed image
reconstructed image
13/16
SECTION XI · 架構 (6/7)

VGGT 架構 — DPT 在這裡做什麼?

VGGT architecture — DPT
Input
Patch tokens
來自 backbone(每張影像一組)
DPT Head
Decoder
Depth maps
Point maps
Tracking features
13/16
SECTION XI · 架構 (7/7)

VGGT 整體架構回顧

VGGT architecture — overview
13/16
SECTION XII · 結果 (1/4)

準確度 SOTA

4 個主要任務的標準 benchmark 上,VGGT 都超越過去 SOTA
Camera Pose
相機位姿
Multi-view Depth
多視角深度
Point Map
點雲估計
Image Matching
影像配對
舉例:RealEstate10K · Camera Pose
過去最高
78.9
VGGT
85.3
不是小幅進步,而是大幅領先
14/16
SECTION XII · 結果 (2/4)

速度 SOTA

處理 10 張影像,VGGT 比過去方法快 35 ~ 50 倍
DUSt3R · MASt3R · VGGSfM
7 ~ 10
過去的 SOTA 方法
35 ~ 50× 加速
VGGT
0.2
一次前向就完事
14/16
SECTION XII · 結果 (3/4)

通用性 SOTA

一個模型 · 一次前向 = 4 種任務全包,而且每項常常贏過該領域的專用模型
過去:每個任務一個專用模型
Depth Model
Matching Model
SfM Model
...
vs
VGGT:單一模型搞定全部
VGGT
Cameras Depth Maps Point Maps Tracks
14/16
SECTION XII · 結果 (4/4)

獎項 SOTA

CVPR 2025
Best Paper Award
電腦視覺領域的最高榮譽
CVPR:電腦視覺領域最頂尖的國際學術會議
Best Paper Award:該會議最高榮譽,每年只給 1~2 篇
學術社群對「年度最重要論文」的正式認可
14/16
SECTION XIII · DEMO

VGGT demonstration

下方為 Hugging Face 官方 Space,可直接上傳圖片做即時 3D 重建。 在新分頁開啟 ↗

載入 Hugging Face Space 中(Space 在睡眠時首次喚醒約需 30 秒)
15/16
SECTION XIV · 結語

感謝聆聽

Q and A
歡迎提問與討論
16/16