169 Views
September 25, 26
スライド概要
社内勉強会で使用した資料です。
「VGGT-Ω」という論文を紹介しています。
Computer Vision Engineer
論文紹介 VGGT-Ω 小林 茂樹 GOドライブ株式会社 特に断りがない場合、資料内の図は紹介する論文からの引⽤となります ※ AI Community
01 導入 2
概要 プロジェクトページ:https://vggt-omega.github.io デモがすごいので見て欲しいです VGGT(CVPR’25 Best Paper) 筆頭著者の後続研究 論文選定理由 他手法と比較して頭⼀つ抜けて性能が高い 3D基盤モデルを開発するにあたっての知見・考察・ディスカッションが多数含まれている 3
リサーチクエスチョン 3D 基盤モデルでもスケーリング則は有効か? 4
この研究でやったこと 大きいモデル・大量のデータで学習を行うために (スケーリング則が有効かを確かめ るために) VGGTにモデル・データ両側面から改良を加えた モデル面 モデル学習に必要な計算量、メモリを削減 データ面 自動アノテーションパイプラインを構築し⼤量の学習データを追加 自⼰教師学習を取り入れ、ラベルなし画像に対しても学習 5
02 モデル面の改良 6
VGGT からの改良点 (モデル⾯) VGGT VGGT-Ω の Point map, Track decoder を削除 内のconvをMLPに 置き換え DPT Register Attention の導入 7
Register Attention VGGT VGGT-Ω の Point map, Track decoder を削除 内のconvをMLPに 置き換え DPT Register Attention の導入 8
Register Attention では入力の全画像に対して画像内・画像間のSelf-Attentionをしていた を確認してみると反応しているのは一部分だけでかなり疎であることが判明 (右図) ➡︎ より少ないtokenでも同様のことができるはず 画像毎に情報を集約するScene Tokenを導入 画像間で集約した情報を画像毎のattentionに伝達 VGGT attention の画像間のSelf Attentionをscene token間でのみ行うようにした 25% 9
Depth Decoder VGGT VGGT-Ω の Point map, Track decoder を削除 内のconvをMLPに 置き換え DPT Register Attention の導入 10
Depth Decoder 内の高解像度画像に対するconvのメモリ消費量が高い ➡︎ 入⼒画像の1/4以上の解像度の特徴マップに対するconvをMLPとPixel Shuffleに置き換え 全てのconvをMLPに置き換えるのも試したがブロックノイズが出たため不採用 DPT は入力の テンソルを並べ替えて高解像な出力にする方法(右図) Pixel Shuffle (sub-pixel convolution layer) によって以下のように変形される 最終的な出力はdepthとconfidenceの2チャンネルを持つ Pixel Shuffle W. Shi et al., “Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network”, CVPR’16 11
Training Losses VGGT VGGT-Ω の Point map, Track decoder を削除 内のconvをMLPに 置き換え DPT Register Attention の導入 12
Training Losses の は削除したが、これらに対する損失は学習に取り入れる :出力のカメラパラメータと深度マップからPoint mapを復元し、GTとの損失を算出 : の出力に対して3D空間上で同一位置となるトークンのペアをpostive、 それ以外を として対照学習 空間上で同一位置となるトークンのペアは正解データのPoint mapとカメラposeから算出 カメラパラメータ、深度マップの損失も加えて最終的な損失となる Point map, Track decoder Point loss Matching loss backbone negative 3D 13
Training Losses VGGT VGGT-Ω Register Attention の導入 の Point map, Track decoder を削除 内のconvをMLPに 置き換え DPT これら3つの改善で 学習時のGPUメモリ 使用量を70%削減 14
自⼰教師学習 ラベルなし動画を活用するため、Teacher-Student形式の⾃⼰教師学習を導入 TeacherモデルとStudentモデルをラベル付きデータで学習したVGGT-Ωのモデルで初期化 Teacher、Studentに同じフレーム集合を与え、別々の色変換・回転・マスク・フレーム順序の入替を適用 フレームの対応を戻して、複数層の特徴とカメラ・深度の予測をTeacher-Student間で⼀致させる Studentは勾配で更新し、TeacherはStudentの指数移動平均(EMA)で更新 予測の崩壊を防ぐためカメラ・深度のdecoderは固定する 複数層の特徴 カメラ・深度の予測 Student ( 勾配で更新) 色変換・回転・マスク・フレーム順序の入替 複数層の特徴・ カメラ・深度の予測を 一致させるよう学習 EMA で更新 同じフレーム集合 複数層の特徴 カメラ・深度の予測 stop-gradient Teacher 色変換・回転・マスク・フレーム順序の入替 15
03 データ面の改良 16
データセット 使用した30の公開データセット Aria series BEDLAM BEHAVIOR-1K Co3Dv2 uCo3D DL3DV Dynamic Replica EDEN EFM3D HOT3D Habitat Hypersim MapFree Mapillary Metropolis MPSD MegaDepth MegaSynth Mid-Air MVS-Synth TartanAirV2 TartanGround Taskonomy UnrealStereo4K Virtual KITTI Waymo WildRGBD ParallelDomain-4D Replica SAIL-VOS ScanNet series 追加で内部向けの非公開データセットも使用 SAM 3D関連のデータ?(予想) 3Dアーティストが作成したオブジェクトを含む 動物体のいる環境が含まれた合成データセットを使用 ARグラス (Project Aria) 関連のデータ?(予想) 実世界で使われているデバイスのデータを含む 公開・非公開データセット合わせて約300万動画のデータを使用 次ページで紹介するパイプラインでアノテーションした80万動画を追加 最終的には約400万のラベル付き動画を使用 (これはVGGTと比較して15倍のデータ量) 17
データアノテーションパイプライン アノテーションパイプラインを構築 データ量よりアノテーションの質を重視し、積極的にデータをフィルタリングした 入力:4000万の内部向け非公開動画 1 VLM で事前選別 以下のような3D再構成が難しい動画を排除 10%の動画のみを次の段階へ ・複数シーンが含まれる ・強いブラー ・字幕などの被りが大きい動画 ・視差が⼩さい 6 学習した分類器で最終選別 軌跡の滑らかさ・視差・カメラ上方向の⼀貫性などを 特徴量として学習した分類器で最終選別 学習データは動的・静的シーン動画を500動画ずつ 用いた⼿法はXBoost, Random Forest, CatBoost 2 動的領域のマスク抽出 で人・車などの動物体を検出 これらの領域を対応点推定や幾何検証では無視する Grounding DINO 5 多視点での整合性を検証 深度を3Dへ逆投影 → 他視点へ再投影 他視点の深度と⼀致する画素を有効化 有効な深度画素が5%未満の系列は除外 3 対応点推定 複数手法を⽤いて対応点推定を⾏う 動的領域の対応点は破棄。以下は⽤いた⼿法 ・SIFT ・SuperPoint&SuperGlue ・ALIKED&LightGlue ・VGGSfM Tracker 4 再構成・幾何条件で選別 対応点からE行列を推定できない場合のみVGGTで 相対Poseを推定 COLMAPで3D再構成。画像登録率などを検証 MVSでdenseな深度マップ⽣成 出力:約80万のラベル付き動画(静的シーン60万+動的シーン20万) 18
04 実験 19
実験環境詳細 の4種類の大きさのモデルを⽤意 200M, 500M, 1B, 10B 128 H100 個の を使用 学習時間は不明 DiNOv3でViTは初期化。freezeはせず学習する OptimizerはAdamWを使用 学習は以下の順序で24万step行った 16万:教師あり学習 5万:自⼰教師学習 3万:教師あり学習 学習率 教師あり学習:2x10-4 教師なし学習:1x10-4 最初の5%でWarmupを行い、残りでCosine Decay アスペクト比、色変換、マスキングのaugmentationをランダムに適用 20
定量評価 カメラPoseの定量評価結果 深度推定の定量評価結果 カメラpose、深度推定の定量評価において頭⼀つ抜けてSOTAを達成 21
定性評価 番号はフレーム数 静的な領域に加えて動物体 (テニス選⼿や⾃動⾞) も3次元復元できる 波や水中などの難しいシーンも3次元復元できる 22
定性評価 (MegaSaMとの比較) MegaSaM (CVPR’25 Best Paper Honorable Mention) 3 動的なシーンをより正確に 次元復元できている との定性比較 Z. Li et al., “MegaSaM: Accurate, Fast, and Robust Structure and Motion from Casual Dynamic Videos”, CVPR’25 23
Ablation Studies ( モデルとデータのスケーリング) モデルとデータのサイズを大きくすればするほど3D再構成の精度が上がった 今回の実験では限界が見えず、モデルとデータをさらに⼤きくすることで性能が上がりそう 24
Ablation Studies ( その他) の1/4をRegister attentionに置き換えると学習時の計算量・メモリ量削減 性能がほぼ変わらない backbone内で23%のFLOPsを節約できて16%のメモリの削減が可能になる Point lossとMatching lossを削除すると性能が下がる Point mapとTracksのdecoderを追加するとさらに精度が上がるがメモリ使⽤量が増加 10%分の学習を前述の自⼰教師学習に置き換えると精度向上 データの多様性が上がるためと思われる アノテーションパイプラインの品質を確認するためにMegaSaMと比較 かなり良い性能で3D再構成のラベル付けができていることを確認 Global attention 25
の への応用 Scene Token VLA 3D 基盤モデルを用いることでVLAの性能向上が確認されている GeoAware-VLA, Spatial Forcing, Geometric Action Model VGGT-Ω でもVLAの性能向上ができるか確認 など を固定しScene Tokenを の入力tokenに追加 ➡︎ 平均成功率が97.1%から98.5%へ改善 VGGT-Ω OpenVLA-OFT J. Kim et al., “Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success”, RSS’25 A. Ali et al., “GeoAware-VLA: Implicit Geometry Aware Vision-Language-Action Model”, arxiv’25 F. Li et al., “Spatial Forcing: Implicit Spatial Representation Alignment For Vision-Language-Action Model”, ICLR’26 J. Han et al., “Geometric Action Model for Robot Policy Learning”, ECCVW’26 26
の Scene Token VLM への応用 が言語特徴と対応づけられるかを検証 1. 固定したVLMから動画の言語特徴を抽出 2. VGGT-ΩのScene Token列にLanguage Tokenを追加 3. VLM側の言語特徴とVGGT-Ω側のLanguage Tokenが 対応付くように対照学習 Scene Token と 側のLanguage Tokenが類似した言語特徴を出力できることを評価で⽰した これはわずかなfine tuningで達成できる Language Tokenが参照できるのはScene Tokenのみ ➡︎ scene tokenに既に言語特徴と対応付くシーン全体の意味的な情報が含まれていると主張 VLM VGGT-Ω 27
Limitation ブラーが強いシーン 画角が⼤きく変わるシーン(例:数秒で10度から160に変わる) レンズ歪みが強い場合 モニターが多いオフィスなどのシーン ScanNet++などのノイズの多いデータを学習に用いているため 人や企業ロゴに対して予測不能なアーティファクトを出すことがある プライバシーの観点から学習データ内の人や企業ロゴに対してモザイクをかけたり マスキングしたりしているため これらは全てデータ面の改良で解決できると考えられる 28
05 基盤モデルのどこに何が保存されているか? 他論文の結果や考察を含みます) 3D ( 29
基盤モデルのどこに深度の情報が保存されているのか? 3D モデル重みを平均するModel Soupsを用いて、3D基盤モデルのどこにどのような情報 が保管されているのかを調査 部位毎にVGGT-Ωのモデル重みをVGGTと平均して挙動の変化を観察 画像毎のSelf-Attentionを行うAttention Block内のFFNの重みのみ平均をとる ➡︎ 学習データのノイズによって起こる深度のアーティファクトが解消した ➡︎ 主に画像毎のSelf-Attentionを行うAttention Block内のFFNが深度の情報を保持 画像間のSelf-Attentionを行うAttention Block内のFFNも多少保持している Q/K/Vの重みのみ平均をとっても変化はなかった M. Wortsman et al., “Model soups: averaging weights of multiple fine-tuned models improves accuracy without increasing inference time”, PMLR’22 30
基盤モデルのどこにカメラposeの情報が保存されているのか? 3D の著者は) FFNの重み単体ではなくよりハイレ ベルなところにカメラposeの情報はあると考えている MapAnythingの著者もXでpose推定の方が深度推定より 難しいのでは?と言っている 深度推定は単一の画像のみでもある程度できるが、 カメラpose推定は多視点を考慮する必要がある DepthAnything 3ではモデルサイズを小さくすると カメラposeの性能がかなり落ちている MapAnythingでもFP32からFP16にするとカメラ poseの性能がかなり落ちた (VGGT-Ω https://x.com/Nik__V__/status/1979361092808663471?s=20 N. Keetha et al., “MapAnything: Universal Feed-Forward Metric 3D Reconstruction”, 3DV’26 H. Lin et al., “Depth Anything 3: recovering the visual space from any views”, ICLR’26 31
3D 基盤モデルのどこにエピポーラ幾何の情報が保存されているのか? 基盤モデルの各layerの特徴からMLPでF行列を推定 VGGTやDepth Anything 3 中間層 (14層付近) で誤差が一気に減り、そこから徐々に減少を続ける ➡︎ エピポーラ幾何に関する情報は中間層にある DUSt3R 浅い層 (1層付近) で誤差が一気に減る ➡︎ エピポーラ幾何に関する情報は浅い層にある 上記2つの手法の違い:カメラの外部パラメータを明⽰的に持つtokenがあるかどうか 3D J. Bratulić et al., “On Geometric Understanding and Learned Priors in Feed-forward 3D Reconstruction Models”, ECCV’26 32
基盤モデルのどこに特徴点マッチングの情報が保存されているのか? 3D 基盤モデルのどの の が特徴点マッチングの役割を担っているか検証 が正解の対応点と同じ となる精度を測定 や 中間層 層付近 で対応点推定をしていそう 前ページの結果を踏まえると、 層あたりから対応点を推定して13, 14層あたりでF行列を用いて 対応点推定の精緻化をしていそう DUSt3R 浅い層 (1~5層付近) で対応点推定をしていそう 3D leyer query-key attention query-key attention patch pair VGGT Depth Anything 3 (10~16 ) 10 J. Bratulić et al., “On Geometric Understanding and Learned Priors in Feed-forward 3D Reconstruction Models”, ECCV’26 33
基盤モデルのどこに動的物体検出の情報が保存されているのか? 3D のどこで動的物体の検出を行なっているのか調査 中間の を で次元削減してK-Meansでクラスタリングするだけで動的物体に 対するマスクが得られた 動物体に対する損失は与えていない VGGT-Ωの入力画像群は、学習時・評価時ともに時間順に並んでいるわけではない Optical Flowなどの動的物体に対するラベルは学習時に一切与えられていない 具体的には最初の方の層 (4層目) で以下のマスクが実現できた VGGT-Ω Image Token PCA 34
06 基盤モデル開発における知見・考察・ ディスカッション 3D 35
基盤モデルとルールベースのSfMの比較 3D 基盤モデルの良いところ latencyが小さい ルールベースのSfMと比較して10~1000倍速い(GPUは必要) ロバスト 視差がなかったり小さいシーンにも強い 三角測量をせずとも深度を直接推定できるため 動的シーンにも強い 3D理解への汎用的な特徴を獲得できる VLAなどその他のタスクでも3D基盤モデルの特徴は有効 ルールベースのSfM (e.g., COLMAP) の良いところ GPUが必要ない カメラパラメータをより正確に推定できる 特にrotationの誤差がかなり小さい 3D J. Schonberger et al., “Structure-from-Motion Revisited”, CVPR’16 36
大規模基盤モデル時代の3D基盤モデルの役割 世界モデルなどで空間把握 (Spatial Uderstanding) が盛んになってきている これらは3Dの物理空間で動作するため自然な流れ 3D基盤モデルはこれらにどう役立てられるか? 明示的な3D空間の情報を得るためのツールとなれる 深度やカメラパラメーターなど 暗黙的に空間情報を含んだtokenを提供できる VLA, 将来的には3D再構成のタスクは大規模基盤モデルに統合されると考えている これは3D再構成向けのデータセットを追加するだけで達成できると考えている モデルアーキテクチャや学習方法の大きな変更は必要ないと考えている Omniなど実際にそのような研究事例も出てきている Y. Ceyuan et al., “Context Unrolling in Omni Models”, arxiv’26 37
知覚モデルから統一モデルへ 知覚モデル (Perception Model) はこれから生成モデルと合流して統⼀モデルなると考えている 理由は以下 最も大きな性能向上は大規模なデータから得られる。現在の知覚モデルの課題はデータが限られ ていること 生成モデルは⼤規模なテキストや動画データを使える ほとんどの知覚モデルは単体で捉えると制約が不足しているが、統⼀モデルを⽤いて解決できる 例:テクスチャ領域の深度推定は幾何モデル単体では難しいが、別の領域から得られる知識 (意味的コンテキストなど)で解決できると考える 生成モデルの方が知覚モデルよりスケールしやすく、かつ知覚タスクを解くことができる Vision Bananaで生成モデルでも知覚タスクを解けることが⽰された V. Gabeur et al., “Image Generators are Generalist Vision Learners”, arxiv’26 38
の のおすすめ方法 VGGT/CGGT-Ω fine tune は がいい ピークの は低くした方がいい 学習 数は多くしなくていい が不安定なため、 の際のデータセットが小さい場合は は省く を したい場合は個別にfine tuneする lr scheduler Warm-up + Cosine Decay lr step Uncertainty Loss fine tune Uncertainty Loss Uncertainty fine tune 39
まとめ 基盤モデルにおいてもモデルとデータのサイズを増やすと性能向上が可能かを検証 モデルとデータのサイズを増やすために モデルを改良して学習時のメモリ削減 アノテーションパイプラインを整備し大量の高品質データを⽣成 自⼰教師学習を取り入れラベルなしデータも活⽤ 3D再構成のタスクで他の3D基盤モデルと比較して頭一つ抜けた性能を達成 VGGT-Ωのscene tokenはVLA, VLMへの応用にも有効そう 3D基盤モデルに関する考察、開発の知見、今後の方向性のディスカッションの共有 全体を通してAIで要約して読むのが勿体無いと思えるような内容だった 3D 40