Slide 1

Slide 1 text

Spatial AI 勉強会 DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル Preferred Networks, Inc. 加藤 ⼤晴

Slide 2

Slide 2 text

2 - 以下の3本の論⽂の紹介資料です - DUSt3R [Wang+ 2024] - MASt3R [Leroy+ 2024] - MASt3R-SfM [Duisterhof+ 2024] - 特に断りのない場合は,図は上記論⽂からの引⽤となります - Speaker Deck へのアップロードにあたって - リンク類はすべて説明欄に記載しています はじめに

Slide 3

Slide 3 text

3 ⾃⼰紹介 ― 加藤⼤晴(かとうひろはる) - Preferred Networks, Inc. リサーチャー / エンジニアリングマネージャー - 博⼠(情報理⼯学) 『2D画像からの3Dメッシュ再構成の学習』 - 過去の講演資料など - 微分可能レンダリング (CVIM研究会 チュートリアル 2022) - ニューラル3D表現の最新動向 (SSII 2022) - 三次元構造を考慮した画像⽣成 (情報処理学会 連続セミナー2023) - 三次元再構成 (東京⼤学⼤学院『知能情報論』 2024) [Web] [Google Scholar] [Twitter] [E-Mail]

Slide 4

Slide 4 text

4 基盤モデル? ※1 https://bookplus.nikkei.com/atc l/catalog/23/02/09/00670/ ※2 https://www.mizuho-rt.co.jp/bu siness/consulting/articles/2023- k0040/index.html ※3 https://www.watch.impress.co.j p/docs/news/1565857.html ※1 ※2 ※3

Slide 5

Slide 5 text

5 基盤モデルとは,巨⼤なデータセットを⽤いて学習され,多様な タスクに応⽤できる汎⽤的な⼈⼯知能モデルのことを指します 基盤モデル? 実社会では「典型的なベンチマークとはビミョーに性質 が違うタスク」がたくさんあるため,これは嬉しい 問題数に対するスケーラビリティがある

Slide 6

Slide 6 text

6 ⾃然⾔語処理: GPT, LLaMA, PLaMO (宣伝) 画像-⾔語理解: CLIP 画像特徴抽出: ViT, DINO 画像⽣成: DALL-E, Stable Diffusion ⾳声認識: Whisper 蛋⽩質構造予測: AlphaFold 分⼦動⼒学: Matlantis/PFP (宣伝) 画像分類,物体検出,セグメンテーション,深度推定,… ○○基盤モデル 3Dビジョンの基盤モデルは?

Slide 7

Slide 7 text

7 DUSt3R: 2枚の画像を受け取り,各画像の点マップを出⼒する基盤モデル - カメラ推定と深度推定を合わせたものを解いているとみなせる - ⼤規模データでの学習で,画像間の直感的なマッチングに優れる - 出⼒を使った簡単な計算で,カメラパラメータ推定,深度マップ推定, 対応点検出などの多くの3Dタスクを実⾏可能 MASt3R: DUSt3R に対応点検出を追加学習して性能を強化 MASt3R-SfM: MASt3R を使い,追加学習ゼロで SOTA 並の SfM を実現 DUSt3R & MASt3R ≒点群

Slide 8

Slide 8 text

8 MASt3R によるマッチング 局所特徴によるマッチングは ほぼ不可能

Slide 9

Slide 9 text

9 DUSt3R: Geometric 3D Vision Made Easy Wang et al. CVPR 2024

Slide 10

Slide 10 text

10 DUSt3R のアーキテクチャ ごく⼀般的な transformer self/cross attention 予測ヘッドだけ 2枚で別々 各ピクセルが 3D空間のどこにあるか 1枚⽬の視点を 中⼼とする3D空間 ⼊⼒: 2枚の画像 出⼒: 点マップと⾃信度 つまり pixel-aligned な点群 2枚の画像で 同じ重み

Slide 11

Slide 11 text

11 なぜ点マップか? 3D再構成(複数画像の点群化)では これらの内のいくつかを経由 逆に,いきなり3D再構成(点群推定)を解けば, これらのサブタスクを後処理で全部解けるのでは? ⾼い汎⽤性 この発想が最⼤の特徴

Slide 12

Slide 12 text

12 DUSt3R の学習 深度付き多視点画像データセット8個, 約850万画像ペアを使って学習 各ピクセルについて,予測した3D座標と正解と の距離を最⼩化 - スケールの曖昧性については,予測‧正解 ともに画像の平均深度値を使ってスケール を合わせてから損失値を計算する - 実際には,予測の⾃信度も含めたもう少し 複雑な式を使う - 損失関数はこの1項のみ わりと素直 室内,屋外,運転シーン 物体,CGをカバー

Slide 13

Slide 13 text

13 DUSt3R の⼊出⼒例 ⼊⼒画像 ⾃信度 点マップをマージして 点群にしたもの 撮影地点が遠く離れていて,かつ隠れて いる箇所があっても3D再構成できる

Slide 14

Slide 14 text

14 DUSt3R の⼊出⼒例 ほとんど真逆の位置から撮影されて いても3D再構成できる

Slide 15

Slide 15 text

15 DUSt3R の⼊出⼒例 たった4枚でこれくらい3D再構成できる

Slide 16

Slide 16 text

16 それぞれの画像から作った点群を⾒⽐べて検出 DUSt3R を使う: 対応点検出 各⾚点に⼀番近い⻘点と, 各⻘点に⼀番近い⾚点を算出 両想いならマッチング成⽴

Slide 17

Slide 17 text

17 1枚⽬の画像の点マップは1枚⽬のカメラを中⼼とする3D空間にある → 全点を画⾯空間に投影,投影誤差を最⼩化する焦点距離を算出 - Weiszfeld 法で⾼速に求められる - ピンホールカメラ,主点は画像の中⼼と仮定 ⾚点を画⾯に投影 DUSt3R を使う: 焦点距離推定 画⾯上の 投影誤差 予測⾃信度

Slide 18

Slide 18 text

18 2枚の相対カメラ姿勢推定: 対応点検出(前述)と焦点距離推定(前述)から PnP-RANSAC 複数枚の相対カメラ姿勢推定: 画⾯上での再投影誤差最⼩化ではなく,点群を使い3D空間で誤差最⼩化 - 画像ごとに相対カメラ姿勢とスケールパラメータを持たせ,勾配法で最適化 - 通常の BA より単純で⾼速,GPU で数秒で計算完了とのこと DUSt3R を使う: カメラ姿勢推定

Slide 19

Slide 19 text

19 - 2枚の画像の相対カメラ姿勢推定 (Visual Localization) (各クエリ画像について,データベース内の最類似画像との相対カメラ姿勢を計算) - SOTA に匹敵というほどでもないが,Visual Localization タスクに特化した訓練をしていな いことを踏まえると悪くない成績とのこと カメラ姿勢推定 ベンチマーク Feature Matching End-to-End

Slide 20

Slide 20 text

20 - 10枚の画像の相対カメラ姿勢推定 (枚数が少なく,おそらく学習ベースの直感⼒に優れる⼿法が有利なタスク) - COLMAP や PixSfM などの強⼒な SfM ⼿法や,学習ベースで SOTA の⼿法たちを上回る カメラ姿勢推定 ベンチマーク 対応点検出して PnP-RANSAC 3D空間で Global Alignment SuperPoint & SuperGlue

Slide 21

Slide 21 text

21 単眼深度推定: 画像1枚について,各ピクセルの深度を推定するタスク (対応点検出等によるステレオ推定はできず,事前学習で得た「常識」が問われるタスク) 1枚⽬と2枚⽬に同じ画像を⼊れると,画像1枚から深度推定できる (単純に,出⼒された点マップのうち z の値だけ取り出せばよい) DUSt3R を使う: 単眼深度推定 1枚⽬と同じ画像を⼊れる

Slide 22

Slide 22 text

22 性能がすごく良いわけではないが,まあまあ深度推定できる 単眼深度推定: ベンチマーク 同じドメインで 教師付き学習 同じドメインで 自己教師付き学習 違うドメインで 教師付き学習

Slide 23

Slide 23 text

23 多視点深度推定: 画像複数枚⼊⼒から,各ピクセルの深度を推定するタスク (対応点検出等によるステレオ推定と,事前学習で得た「常識」の合わせ技が必要) まあまあ性能が良かったよという話だが,詳細は省略 (このタスクを真⾯⽬にやっている論⽂はそんなにない気もする…?) DUSt3R を使う: 多視点深度推定

Slide 24

Slide 24 text

24 多視点ステレオ: 画像複数枚⼊⼒から,点群を推定するタスク (ステレオ推定,常識,さらに複数画像の点群の統合の性能が問われる) 定量評価は,全然よくない - 他⼿法は正確なカメラポーズが既知な前提 - 提案⼿法はカメラポーズが不要なので そういう意味では悪くない数値なのではとのこと DUSt3R を使う: 多視点ステレオ

Slide 25

Slide 25 text

25 - Transformer を CroCo モデルで初期化しないと性能悪化 - 低解像度予測モデル (224) より⾼解像度予測 (512) の⽅が性能がよい (Ablation study はこれ以外にないが,学習が⼤変そうなので仕⽅ないのかもしれない…) (同研究グループによる CroCo もおもしろ論⽂です。おすすめ) DUSt3R を使う: Ablation Study 深度推定

Slide 26

Slide 26 text

26 - 画像2枚 → 点群,を解く基盤モデルを提案 - 通常の3D再構成とは逆に,先に点群推定をしてから カメラ推定,対応点検出,深度推定 etc. を解く - 室内,屋外,運転シーン,物体,CGをカバーする850万ペアで学習 - 画像 {1枚/2枚/複数枚} からの {カメラ姿勢推定/深度推定/点群推定} で, 各タスクに特化した訓練⼀切せず,まあまあの性能を得た - 特に直感⼒が優れ,真⾯⽬に局所特徴を使って対応点検出すると解けな いようなケースに強いことが特徴 - ⼀⽅で,精緻な推定が問われるケース(e.g. MVS)ではさほど強くない DUSt3R まとめ

Slide 27

Slide 27 text

27 Grounding Image Matching in 3D with MASt3R Leroy et al. 2024

Slide 28

Slide 28 text

28 MASt3R の概要 - DUSt3R の後⽇談のような論⽂ - DUSt3R は,ピクセル間のマッチングは案外不正確 → マッチングを陽に学習して性能改善 - ⾼速で頑健な特徴マッチング⼿法を提案 (基盤モデルとあまり関係しないので省略)

Slide 29

Slide 29 text

29 MASt3R のアーキテクチャ 特徴マッチングに使う特徴量を 出⼒する MLP を追加 両想い法でマッチした ペアを出⼒

Slide 30

Slide 30 text

30 MASt3R の学習 - DUSt3R を元に fine-tuning - 対応点情報付きのデータセットを使⽤ - DUSt3R に⽐べて使⽤データセットが増えている - 「社内データ」という語も - 対応点検出の損失関数 + DUSt3R の損失関数 - DUSt3R と違い,データセットが実スケール (メートル) のとき, 点群のスケールを正規化せず,実スケールで出⼒するように学習

Slide 31

Slide 31 text

31 相対カメラ姿勢推定 あたらしく学習した特徴マッチングヘッドを使わなくても性能向上 (データセットが⼤きい,訓練時間が⻑い,マルチタスク学習の効果)

Slide 32

Slide 32 text

32 相対カメラ姿勢推定 マッチング⽤特徴量を使う⽅が姿勢推定性能がよい (が,改善幅はそれほど⼤きくない気も…?)

Slide 33

Slide 33 text

33 相対カメラ姿勢推定 対応点検出の損失関数だけで学習する (-M) よりも, DUSt3R の損失関数も加えた⽅がよい → モデルに3D空間について意識させた⽅がよい

Slide 34

Slide 34 text

34 相対カメラ姿勢推定 点群を実スケールで出⼒させることで⼤幅に性能向上 (実は対応点検出ではなくここが⼀番⼤事)

Slide 35

Slide 35 text

35 その他の実験 - 複数画像カメラ姿勢推定,多視点ステレオで性能向上を確認 (ただし,どの技術要素が貢献しているのか不明確なのでここでは省略) - 視覚的⾃⼰位置推定で SOTA 対応点検出⼿法に匹敵する性能を確認 - DUSt3R との定性的な⽐較はなし

Slide 36

Slide 36 text

36 MASt3R-SfM: a Fully-Integrated Solution for Unconstrained Structure-from-Motion Duisterhof et al. 2024

Slide 37

Slide 37 text

37 MASt3R-SfM の概要 - MASt3R の後処理の global alignment を精緻にするだけで 既存⼿法を上回る Structure-from-Motion 性能を実現 - MASt3R の再学習等は⼀切不要 - 特に観測枚数が少ないときに頑健(省略) - MASt3R の特徴量を利⽤した⾼速な隣接グラフ構築(省略) - MASt3R の後⽇談のような論⽂

Slide 38

Slide 38 text

38 1. Coarse alignment (DUSt3R, MASt3R とほぼ同じ) 3次元空間内で位置のズレを合わせる MASt3R-SfM の global alignment 各画像のカメラ姿勢 P と スケール σ を最適化 全画像ペアの全対応点で マッチング⾃信度 3次元空間内での 位置のズレ ロバスト損失関数 (λ = 0.5) RANSAC は不要

Slide 39

Slide 39 text

39 2. Fine alignment 2次元空間内(スクリーン上)で位置のズレを合わせる MASt3R-SfM の global alignment 深度マップ Z と 内部パラメータ K も最適化 全画像ペアの全対応点で スクリーン空間内での 位置のズレ やはり RANSAC は不要

Slide 40

Slide 40 text

40 MASt3R-SfM: Alignement ⽅法の違い Tanks & Temples データセットの200枚のサブセットで評価 Ground-truth は全画像(300枚?)を使って COLMAP で作成 MASt3R とほぼ同等 + 画像空間で最適化 + ジオメトリも最適化 後処理を精緻にするだけで⼤幅に性能改善 お馴染みの多視点カメラ姿勢推定

Slide 41

Slide 41 text

41 MASt3R-SfM: 既存 SfM ⼿法との⽐較 ETH- 3Dデータセットでの評価 COLMAP や⼀気通貫学習 SfM より強⼒

Slide 42

Slide 42 text

42 DUSt3R, MASt3R, MASt3R-SfM まとめ

Slide 43

Slide 43 text

43 DUSt3R: 画像2枚→点群,の単純なモデルと単純な後処理で多くの3Dタスクを解ける MASt3R: さらに対応点検出タスクを解かせると性能が向上する MASt3R-SfM: 出⼒の後処理を精緻にやると⾼精度に SfM できる ⾔い換えると… DUSt3R: 単純な構造‧学習と単純な後処理による3D基盤モデル MASt3R: モデルと学習の単純さに拘り過ぎず,タスクに応じて追加学習した⽅がよい MASt3R-SfM: 後処理の単純さに拘り過ぎず,タスクに応じて精緻に作り込んだ⽅がよい DUSt3R, MASt3R, MASt3R-SfM 当初はシンプルさ推しだったが,徐々に逆⾏している…?

Slide 44

Slide 44 text

44 事前知識獲得の強化 - あらゆる3Dタスクでマルチタスク学習,複雑なアーキテクチャの巨⼤モデルに タスク特化能⼒の強化 - 特定のタスクで fine-tuning - 後処理もモデルに組み込んで⼀気通貫学習 (e.g. 微分可能 RANSAC,バンドル調整) カバー範囲の拡⼤ - デジタルヒューマン,⾃由視点画像,3Dモデル⽣成,SLAM,セグメンテーション,… そのための技術的課題は? - 学習データの不⾜,膨⼤な計算資源… 3D基盤モデル 今後の展開(妄想)

Slide 45

Slide 45 text

45 まとめ [Wang+ 2019]

Slide 46

Slide 46 text

46 Appendix

Slide 47

Slide 47 text

47 - DUSt3R の学習時間は? 論⽂には記載がないが,Github Issue によればA100を8枚使って1週間とのこと。 計算機費⽤はAWSを使うとざっくり80万円程度なので,基盤モデルとしては安め - MASt3R の学習時間は? 論⽂には記載がないが,Github Issue によればA100を8枚使って11⽇とのこと - ピンホールカメラでないカメラモデルは? 多少のレンズの歪み程度なら最適化で求められるのでは。⿂眼レンズなどは学習データに ないため難しそう - カメラパラメータが既知のときにそれを活⽤する⽅法は? なさそう - カメラモデルを仮定したモデルじゃダメなの? そういう制限をかけるのは良くないと書かれているが,実験的根拠は記載がない 想定質問