MapAnything: Universal Feed-Forward Metric 3D Reconstruction

1.3K Views

November 20, 25

スライド概要

社内勉強会で使用した資料です。
「MapAnything: Universal Feed-Forward Metric 3D Reconstruction」という論文を紹介しています。

profile-image

Computer Vision Engineer

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

論文紹介 MapAnything Universal Feed-Forward Metric 3D Reconstruction 2025.10.17 小林 茂樹 GOドライブ株式会社 ※特に断りがない場合、資料内の図は紹介する論文からの引用となります AI Community

2.

01 導入 2

3.

MapAnythingの概要 プロジェクトページ:https://map-anything.github.io/ 2つのモデルが別々のライセンスで公開されている ▪ Apache 2.0: 6データセットで学習したモデル ▪ CC BY-NC 4.0: 13データセットで学習したモデル 3

4.

モチベーション 従来の3D基盤モデルは画像のみを入力とすることが多かった その他の情報を参照できない ▪ カメラの内部パラメータ ▪ カメラの位置姿勢 ▪ 相対 or 絶対深度 これらはタスクによって利用可能だったりそうでなかったりする ➡ 任意の追加情報とした 4

5.

MapAnythingができること 多様な入力の組み合わせから絶対スケールで三次元復元ができる ➡ 様々なタスクに対応可能 5

6.

MapAnythingができること ▪ ▪ 上図:任意の幾何情報を入力することでスケールを補正できる 下図:疎な点群(LiDARなど)を入力として、密な点群を出力することができる 6

7.

MapAnythingができること 多様な環境で絶対スケールで三次元復元できる 7

8.

MapAnythingがやったこと 入出力を分解(因子化)した これにより ▪ ▪ ▪ ▪ 多様な入力構成に対応可能 ➡ 様々なタスクに対応可能 一部の幾何情報しかないデータセットも利用可能 絶対スケール係数を分離するモデル構成・損失とすることで性能向上 それぞれの結果を得るのに後処理が必要ない ▪ 3D基盤モデルの従来手法はポイントマップに後処理をすることで必要な 情報を得ることができた(カメラの位置姿勢・内部パラメータなど) 8

9.

MapAnything 9

10.

MapAnything(入出力) 入力 ▪ 任意の幾何入力 RGB画像 ▪ ▪ ▪ rayの方向のマップ(内部パラメータ) カメラの位置姿勢(スケール未知 or 既知) (相対 or 絶対)深度マップ 出力 ▪ ▪ ▪ ▪ ▪ ▪ 全体の絶対スケール rayの方向のマップ(内部パラメータ) 相対深度マップ 相対深度の有効領域を示すマスク ポイントマップの自信度 カメラの位置姿勢(スケール不定) 10

11.

MapAnything(入出力) これらの出力から絶対スケールのポイントマップを得ることができる 11

12.

02 Encoder 12

13.

エンコーダーの役割 多様な入力を1つの潜在空間へエンコードする 13

14.

画像のエンコード 画像はDiNOv2 (ViT-L) でエンコード ▪ 出力の形状は1024xH/14xW/14 14

15.

幾何入力からのスケール分離 任意の幾何入力をネットワークに与える前に入力からスケールを分離する ▪ ▪ ▪ ▪ Normalized Translation: 各フレームのカメラ位置を平均で割った値 Pose Scale: 全フレームのカメラ位置の平均 Ray Depth: 各フレームの絶対深度を平均で割った値 Local Ray Depth Scale: 各フレームの絶対深度の平均 スケールの値はシーンによって大きく異なるのでエンコード前に対数変換する 15

16.

レイ方向のマップと深度マップのエンコード レイ方向のマップと深度マップを畳み込みエンコーダーでエンコード ▪ ▪ ▪ T2I-Adaptorを使用 リサイズは1回だけ行う 出力の形状はDiNOv2に合わせる(1024xH/14xW/14) C. Mou et al., “T2i-adapter: Learning adapters to dig out more controllable ability for text-to-image diffusion models”, AAAI’24. 16

17.

カメラ位置姿勢とスケールのエンコード カメラ位置姿勢とスケールは4層のMLPでエンコード ▪ 出力はそれぞれ1024次元 17

18.

トークン化 ▪ ▪ ▪ フラットにしてトークンとする 学習可能な絶対スケール推定用のトークンを追加 参照フレーム(最初のフレーム)のトークンにのみ定数の埋め込みを与える ▪ 参照フレームを識別するため ▪ 参照フレーム座標上でポイントマップやカメラ位置姿勢が予測される 18

19.

03 Decoder 19

20.

デコーダーの役割 1つの潜在空間から複数のモーダルの結果を個別のheadで出力 20

21.

絶対スケールのデコード ▪ 2層MLPで絶対スケールを出力 21

22.

密な結果のデコード ▪ DPT (Dense Prediction Transformer) を用いて以下を出力 ▪ レイの方向のマップ ▪ 相対深度マップ ▪ 相対深度の有効領域を示すマスク ▪ ポイントマップに対する信頼度マップ R. Ranftl et al., “Vision Transformers for Dense Prediction”, ICCV’21. 22

23.

カメラ位置姿勢のデコード ▪ 畳み込みデコーダーでカメラ位置姿勢を出力 ▪ res block (1x1conv+ReLU) -> 3層のMLPで位置姿勢を出力 ▪ 回転はクォータニオンとして表現 ▪ 出力されるカメラ位置姿勢は参照フレーム(最初のフレーム)に対しての相対姿勢 S. Chen et al., “Map-Relative Pose Regression for Visual Re-Localization”, CVPR’24. 23

24.

04 損失・学習の工夫 24

25.

カメラ位置の損失 GTのカメラ位置 GTのポイントマップの平均 ▪ 予測のカメラ位置 予測のポイントマップの平均 予測とGTのポイントマップの平均をスケーリング係数として使用する 25

26.

深度マップと絶対スケールの損失 GTのポイントマップの平均 GTのポイントマップの平均 ▪ ▪ ▪ 予測のポイントマップの平均 予測のポイントマップの平均に 予測の絶対スケール係数をかけた値 予測とGTのポイントマップの平均をスケーリング係数として使用する 深度、ポイントマップ、スケール係数に関しては対数空間で損失を計算 学習データに含まれる外れ値の影響を抑えるため、画素ごとの損失の上位5%は除外する 26

27.

ポイントマップの損失 各フレームのGTの ポイントマップ GTのポイントマップの平均 ▪ ▪ ▪ ▪ 各フレームの予測の ポイントマップ 予測のポイントマップの平均 フレーム間で連結したGTの ポイントマップ フレーム間で連結した予測の ポイントマップ GTのポイントマップ の平均 ポイントマップの 予測のポイントマップの平均 信頼度 予測とGTのポイントマップの平均をスケーリング係数として使用する 深度、ポイントマップ、スケール係数に関しては対数空間で損失を計算 学習データに含まれる外れ値の影響を抑えるため、画素ごとの損失の上位5%は除外する 各フレームのポイントマップ、フレーム間で結合したポイントマップそれぞれに対して損失を計算 27

28.

レイ方向のマップとカメラ姿勢の損失 ▪ ▪ レイの方向とカメラの回転はスケールに影響を受けないためそのまま損失関数を計算 クォータニオンは全要素を負にすると同値になることを考慮 28

29.

最終的な損失 ▪ ▪ 以下の損失を追加し、最終的な損失は上記の式で表される ▪ L_normal:ポイントマップに対する法線損失 ▪ L_GM:深度に対するマルチスケール勾配整合損失 ▪ L_mask:深度の有効領域を算出するマスクに対する損失 フレーム間で結合したポイントマップの損失を強めて、マスク損失を弱めるのが有効だった R. Wang et al., “MoGe: Unlocking accurate monocular geometry estimation for open-domain images with optimal training supervision”, CVPR’25. R. Rantftl et al., “Towards robust monocular depth estimation: Mixing datasets for zero-shot cross-dataset transfer”, TPAMI’20. L. Yang et al., “Depth anythingV2”, NeurIPS’24. 29

30.

学習時のモデル入力の確率的選択 様々な入力構成に対応できるように幾何入力を確率的に選択してモデルに与える ▪ ▪ ▪ ▪ ▪ 幾何入力が与えられる確率:0.9 各フレームが幾何入力を持つ確率:0.95 それぞれの幾何入力の個別の入力確率:0.5 深度が入力に選ばれた場合 ▪ 密な深度:0.5 ▪ 90%を間引いた疎な深度:0.5 絶対スケールが分かるデータセットの場合 ▪ スケール係数をモデルに与えない:0.05 30

31.

学習データセット ライセンス毎に2つのモデルを用意 ▪ ▪ Apache 2.0のモデル:6のデータセットで学習 CC BY-NC 4.0のモデル:13のデータセットで学習 MPSDデータセットは本来、絶対深度のデータセットだ が、カメラ位置姿勢とカメラ情報を追加した ▪ このMPSDのメタデータは公開予定 31

32.

05 実験 32

33.

実験設定 ▪ ▪ ▪ ▪ ▪ Optimizer: AdamW 学習率 ▪ DiNOv2: 5e-6 ▪ その他: 1e-4 入力の画像、レイ方向のマップ、深度マップは以下のように前処理 ▪ 長辺が518になるようにリサイズ ▪ アスペクト比が3:1 ~ 1:2になるようにランダムクロップ ▪ 内部パラメータ予測の性能を確かめるため 学習は2段階で実施 ▪ 6日間学習 ▪ その後に1/10のlrで4日間学習 学習は64個のH200を用いて実施 33

34.

多視点三次元再構成 ▪ ▪ ▪ 複数の評価指標において最先端のベースラインより良い性能を達成 画像のみの場合でも、幾何情報がある場合でもベースライン手法を上回った 絶対スケール推定は画像枚数が多いほど精度が高くなっている 34

35.

二視点三次元再構成 ▪ ▪ 入力が画像のみでも最先端の3D基盤モデルより 良い精度を達成 幾何入力がある場合、さらに大幅に精度を向上 ▪ それぞれのタスクの正解データが入力と して与えられる場合に大幅な精度向上 ▪ Poseのタスクに対してDepthが与えられ た時に大きく精度向上を達成している ▪ Poseが与えられてもDepthの性能に大き な変化はない 35

36.

単一画像からの内部パラメータのキャリブレーション ▪ 単一画像で学習していないにも関わらずベースライン手法より良い性能を達成 36

37.

絶対深度推定 ▪ 単視点絶対深度推定 ▪ 単一画像で学習していないにも関わらず SOTAに匹敵する性能を達成 ▪ 多視点絶対深度推定 ▪ 画像のみの場合でSOTAを達成 ▪ カメラの内部パラメータ、位置姿勢がある 場合さらに精度向上するがベースラインに は及ばず ▪ MVSAが強い ▪ グレーの結果:該当データセットの学習データ が学習に使われている(ゼロショットでない) S. Izquierdo et al., “MVSAnywhere: Zero-Shot Multi-View Stereo”, CVPR’25. 37

38.

相対深度推定 ▪ 単視点相対深度推定 ▪ 競争力のある性能がある ▪ UniDepthV2が強い ▪ 多視点相対深度推定 ▪ 画像のみの場合でも競争力のある性能が ある ▪ 内部パラメータを加えるとさらに性能向 上 ▪ グレーの結果:該当データセットの学習データ が学習に使われている(ゼロショットでない) L. Piccinelli et al., “UniDepthV2: Universal Monocular Metric Depth Estimation Made Simpler”, arxiv’25. 38

39.

定性結果 ▪ VGGTと比べた結果。より正確に三次元復元できている 39

40.

Ablation Study ▪ ▪ スケールを明示的に分離して入力した方が良い結果だった 出力のポイントマップをRay, Depth, Poseに分離した方が良い結果だった ▪ Local PM:Local Pointmap(各フレームのポイントマップ) ▪ RDP:Ray, Depth, Pose ▪ LPMP:Local Pointmap, Pose 40

41.

Ablation Study ▪ どの入力構成に対してもタスク特化のモデルよりマルチタスクのモデルの方が良い結果だった 41

42.

Limitation ▪ ▪ ▪ ▪ 幾何入力に含まれるノイズや不確実性を扱っていない すべての入力フレームで画像が得られる前提 動的シーン、動的物体の扱い 出力のシーンをピクセルで表現 ▪ 大きい環境になるとメモリが問題になる 42

43.

Limitationへの補足 Limitationにもある通り、今回の実験で用いられた幾何情報の入力は正確であるという前提がある ▪ ▪ ▪ 幾何情報に関してはデータセットのGTをモデルに入力している ノイズのある幾何情報を入力して、より洗練された結果を得るという使い方はできない ▪ 例:ノイズのあるカメラの位置姿勢を入力して、より高精度なカメラの位置姿勢を得る 正確な幾何情報を入力することで、別のモーダルの結果をより高精度にしたい時には有効 ▪ 例 ▪ カメラの位置姿勢を与えることで、より高精度な絶対スケールの三次元復元がしたい ▪ カメラの内部パラメータを与えることで、より高精度な深度推定がしたい ▪ 深度マップを与えることで、より高精度なカメラの位置姿勢推定がしたい 43