Skip to main content

VGGT Limitations and Open Issues

VGGT は強力な geometry foundation model ですが、万能ではありません。実用上の注意点と、まだ open な問題を整理します。

Domain shift と prior 依存

VGGT は、training data に含まれる scene 分布から強い prior を学んでいます。そのため、

  • Training distribution と大きく異なる scene (例: 医療画像、特殊な工業 scene、宇宙、極端な domain)
  • 物理法則上 ambiguous な配置 (透明、鏡面、平面のみ)
  • 学習時に見たことがない camera 構成 (極端な広角、fisheye、計測用 stereo)

では、prior に引っ張られて系統的な誤りを出すことがあります。

Metric scale

Single image だけでは、scene の絶対的な大きさは原理的に決まりません。VGGT も single view では metric scale を保証しません。

Metric scale が必要な場合は、次のいずれかを併用します。

  • Calibrated stereo
  • Depth sensor (RGB-D, LiDAR)
  • 既知サイズの object
  • IMU や GPS
  • Multi-view + 既知 baseline

Difficult surface

古典的に難しい surface は、VGGT でも依然として難しいです。

  • Transparent surface (ガラス、水)
  • Reflective surface (鏡、研磨金属)
  • Specular highlight が強い surface
  • Thin structure (ワイヤ、葉脈)
  • Repetitive pattern (タイル、繰り返し模様)

これは VGGT 固有の問題ではなく、image だけからの geometry 推定の本質的な難しさです。

解釈性とデバッグ

古典 SfM では、各段階の中間結果を見ることで失敗原因を追えました。VGGT は black-box になりやすいため、

  • 出力が悪いとき、どこに原因があるかわかりにくい
  • 特定の view だけ取り除く、特定の matching だけ修正する、といった介入がしにくい

という難点があります。実用では、

のように、最後に古典最適化を入れて検証可能性を確保することがよく行われます。

まだ open な問題

  • 非常に大規模な scene (数千 view、街区規模) への scalability
  • Dynamic scene、可動 object の扱い
  • Long-term consistency
  • Sensor fusion (IMU、LiDAR、event camera との結合)
  • Online / streaming 動作
  • 高速かつ low-memory な inference

数式で見る VGGT の限界と検証指標

VGGT は学習された写像なので、training 分布から外れる scene では予測が劣化します。Hold-out validation では、camera pose 誤差、depth 誤差、reprojection 誤差を一緒に見ると失敗 mode を切り分けやすくなります。

Camera pose の誤差は SE(3) 距離で測れます。

eR=arccos(tr(RR^)12),et=tt^e_R=\arccos\left(\frac{\mathrm{tr}(\mathbf{R}^*\hat{\mathbf{R}}^\top)-1}{2}\right), \qquad e_t=\|\mathbf{t}^*-\hat{\mathbf{t}}\|

Scale 不変の depth 誤差は次の通りです。

eD=mina,b1Ni(ad^i+b)die_D=\min_{a,b}\frac{1}{N}\sum_i\left|(a\hat{d}_i+b)-d_i^*\right|

Reprojection 誤差は VGGT 内部の整合性 check に使えます。

erep=1O(i,j)uijπ(K^i(R^iX^j+t^i))e_{\mathrm{rep}}=\frac{1}{|\mathcal{O}|}\sum_{(i,j)} \left\|\mathbf{u}_{ij}-\pi(\hat{\mathbf{K}}_i(\hat{\mathbf{R}}_i\hat{\mathbf{X}}_j+\hat{\mathbf{t}}_i))\right\|

この式の気持ちは、「single metric では失敗の原因が camera か depth か correspondence か分からないので、複数の指標を分けて測ることで failure mode を診断する」というものです。

関連ページ

主なソース