VGGT Outputs
VGGT は一度の forward で複数種類の geometric attribute を返します。それぞれの出力が何を表し、互いにどう関係するかを整理します。
Camera parameters
各 view に対する camera parameter として、intrinsics と extrinsics を出力します。
- Intrinsics: 焦点距離、principal point など、camera 内部の特性です。
- Extrinsics: World 座標系から camera 座標系への rotation と translation です。
通常の SfM では、これらを feature matching と bundle adjustment から推定しますが、VGGT は image から直接推論します。これは特に、SfM が失敗しやすい sparse view や弱 texture の scene で価値があります。
Depth maps
各 view に対する dense depth map を出力します。すべての pixel に depth が割り当てられ、scene 表面の camera からの距離を表します。
VGGT の depth は、view 間で一貫することが期待されます。つまり、view A の depth から復元した 3D point は、view B の depth と整合する位置にあるはずです。これが multi-view consistency です。
Point maps
Point map は、各 pixel に対応する 3D 座標を直接出力したものです。Depth map と camera parameter があれば 3D point は計算できますが、point map ではそれを一つの map として直接予測します。
point_map[u, v] = (X, Y, Z) in some coordinate
Point map の利点は、camera と depth の整合性を陽に持つ表現になっていることです。Reconstruction pipeline では、point map を結合するだけで multi-view point cloud が得られます。
3D point tracks
3D point track は、複数 view にわたる同じ scene point の対応を、3D 空間内で表したものです。これは feature matching と triangulation の結果に相当しますが、VGGT では transformer の attention によって直接学習されます。
| 出力 | image plane の motion | 3D 空間の位置 |
|---|---|---|
| 2D point track | あり | なし |
| 3D point track | あり | あり |
3D point track は、tracking、dense matching、scene flow、SLAM の loop closure などに使えます。
出力同士の整合性
VGGT の重要な特徴は、これらの出力が同じ shared representation から派生することです。そのため、
- depth と point map は基本的に整合する
- camera と point map から再投影しても、image 上の点に近い場所に落ちる
- 3D point track と point map は、scene 上の同じ点を指す
という性質が(学習がうまく行っていれば)成り立ちます。これは、別々の network で推定した attribute を後から組み合わせる場合との大きな違いです。
数式で見る出力同士の整合性
VGGT は、camera、depth、point track を同時に出すため、それらの出力同士は幾何的に整合しているべきです。Camera の predicted pose を 、depth を 、3D track の点を とすると、整合性は次の reprojection で評価できます。
また、depth と 3D track の関係も使えます。
この式の気持ちは、「同じ 3D 点を、camera と depth と track の三つの経路から作り出したとき、それらが一致するべきだ」ということです。学習中にこの整合性が崩れていれば、何らかの head の予測が信頼できないと判断できます。実運用では、この再投影誤差を per-track confidence に使うと、後段 BA の重み設計に役立ちます。
関連ページ
主なソース
- VGGT paper: https://arxiv.org/abs/2503.11651
- VGGT GitHub repository: https://github.com/facebookresearch/vggt