0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Map-anything:個人的なメモ(GPT要約)

0
Posted at

はじめに

こんにちは、しゅんです。
今回はMeta が出してきたのが MapAnything。についてGPTが解説した記事となります。
⚠️注意!あくまでもGPTが書いてた解説です

複数画像 +(任意で)カメラ内参・カメラ姿勢・Depth・部分再構成を入力として、カメラとシーン幾何を“メトリック(実スケール)”で直接回帰する、統一Transformerモデルです。(arXiv)

MapAnything が何を解決したいのか

従来のクラシックSfM/MVSは、特徴抽出→マッチング→2-view推定→BA→MVS…のように分解して高精度を出します。一方、最近のフィードフォワード系(DUSt3R / VGGT など)は強いけど、

  • 入力が画像だけ/ピンホール前提など制約が残る
  • “何でも解ける”ようにするほど、出力が冗長になったり、後処理が重くなりがち

という課題がありました。(arXiv)

MapAnything は「入力の自由度」と「メトリック化」を両立させるために、出力空間を“幾何的に筋の良い形”に作り直しています。(arXiv)

コアアイデア:Factored(分解された)シーン表現

MapAnything の要は、シーン表現を RDP + Scale みたいに **分解(factorize)**することです。

  • Ray directions(各ピクセルのレイ方向):内参やカメラモデルを“レイ”として表現
  • Depth along ray(レイ方向の深度):各ビューごとの深度
  • Pose(各ビューのカメラ姿勢):回転(クォータニオン)と並進(ただし up-to-scale)
  • Metric Scale(グローバルな実スケール係数):up-to-scale をメトリックに“昇格”させる 1 個のスカラー

この「局所(各ビュー)で推定しやすい量」と「グローバルで1個にまとめたい量(スケール)」の切り分けが、異種入力にも強く、学習も安定しやすい設計になっています。(arXiv)

入力:画像 +(任意で)幾何入力を“混ぜて”OK

論文で明示されている入力は大きく3系統です:(arXiv)

  1. 内参(汎用 central camera)を Ray directions として入力
  2. Pose(view1座標系)を quaternion + translation として入力
  3. Depth(各ピクセル)を入力

さらに Abstract では「partial reconstructions(部分再構成)」も入力に含められる、とされています。(arXiv)
実例として、疎な点群(=疎Depth)を与えて depth completion っぽく密にする例も示しています。(arXiv)

出力:最終的に“メトリック”な3D(カメラ + 幾何)

MapAnything は N-view に対して、各ビューの Ray / Depth と Pose、そして グローバルScale を出し、最終的なメトリック再構成にします。(arXiv)

アーキテクチャ(図2の流れを噛み砕く)

論文の Figure 2 の説明を、実装視点で分解します。(arXiv)

1) 画像エンコード:DINOv2(ViT-L)を採用

画像特徴は DINOv2 ViT-L のパッチ特徴を使用。収束や汎化が良かった、と述べています。(arXiv)

2) 幾何入力は “factorize” してから同じ潜在空間へ

Depth は「平均深度」+「正規化深度」へ分解するなど、メトリック/up-to-scale混在でも学習できるように前処理します。(arXiv)
Ray directions / 正規化Depth は浅いConvで、回転・並進方向・スケール等のグローバル量はMLPで埋め込みます。(arXiv)

3) scale token + 参照ビュー埋め込み + Alternating-attention Transformer

  • view1 を基準にする埋め込みを付与
  • learnable scale token を1個追加
  • それらを 24層の alternating-attention Transformerへ入力(12 heads, dim 768, MLP ratio 4)(arXiv)
  • RoPE は使わず、DINOv2の位置情報で十分だった、という判断も書かれています。(arXiv)

4) デコード:DPT 1つで密な出力、Pose head で姿勢、scale token で実スケール

  • DPT head:ray方向・up-to-scale depth・マスク・confidence などを各ビューで出す(arXiv)
  • Pose head:平均プーリング系のヘッドで quaternion + up-to-scale translation を出す(arXiv)
  • Scale token:MLPで metric scale factor を出し、指数スケーリングでレンジの広さに対応(arXiv)

ここが MapAnything の「メトリック化の肝」です。

何が“1つのモデル”でできる?

Abstract と Figure 1 で、少なくとも以下が射程に入ると述べています:(arXiv)

  • uncalibrated SfM
  • calibrated MVS
  • monocular depth
  • camera localization
  • depth completion
  • …など(12+タスク / 入力組み合わせ)(arXiv)

「入力が揃ってるほど強い」のがポイントで、例えば 内参・姿勢があるロボット用途はかなり相性が良い、という示唆もあります。(arXiv)

学習:複数データセット統一 + “入力確率”でマルチモーダルを鍛える

MapAnything が “何でも入力OK” になってる理由は、訓練時に入力モダリティを確率で出し分けるからです。(arXiv)

  • 幾何入力を入れる確率:0.9
  • ray / depth / pose 各要素はそれぞれ 0.5で選択
  • depth を入れるときは dense と 90% sparsify を半々
  • viewごとに幾何が欠ける状況も想定して per-view 0.95
  • メトリックGTがあっても scale を入れない確率 0.05(=推定も鍛える)(arXiv)

さらに、学習データは 13データセットを使い、モデルは **2種類(Apache 2.0 と CC BY-NC 4.0)**を公開、としています。(arXiv)

ベンチマークの見え方(ざっくり)

  • 2〜100 viewまでの dense multi-view で強い、という主張(図5の説明)(arXiv)
  • 追加の幾何入力(内参・姿勢など)があると、重複構造が減って整合が上がる(図3の説明)(arXiv)
  • 補足では **64通りの入力組み合わせ(2^6)**があり、代表12通りを表で示して「入力が増えるほど良くなる」ことを出しています。(arXiv)

限界(論文が正直に書いてるところ)

Limitations では、例えばこんな話が出ます:(arXiv)

  • 幾何入力のノイズ/不確実性を明示的に扱っていない
  • 画像が無いビュー(カメラだけのビュー)入力は未対応だが、拡張は可能そう
  • test-time compute を増やす反復推論は未検証
  • モダリティ融合を「Transformer前で足し込む」設計なので、より直接的な融合も今後の余地
  • ピクセル↔表現が1対1で、大規模シーンのスケールはまだ課題
  • 動的シーン(scene flow)は未対応

まとめ

MapAnything は「3D再構成をタスク別に分ける」流れに対して、“入力が揃っていれば揃っているほど強い”統一バックボーンを、かなり真面目に設計し直したモデルです。(arXiv)
特に factored表現(Rays/Depth/Pose + Scale token)でメトリック化する筋の良さが、マルチモーダル対応の核になっています。(arXiv)

参考リンク

Paper (arXiv PDF):

GitHub:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?