Segment Anything in 3D Reconstruction Pipelines
SAM family は、3D Reconstruction の各段階で役立つ場面が多くあります。ここでは代表的な組み合わせを整理します。
Dynamic object 除去
通常の SfM / SLAM は static world を仮定します。歩行者や車のような moving object は outlier となり、camera pose 推定や map に悪影響を与えます。
SAM 2 / SAM 3 で moving object を mask し、それらを matching や reconstruction から除外することで、static scene の reconstruction が安定化します。
Object-level reconstruction
特定の object だけを 3D 化したい場合、まず SAM で object mask を取り、そこに reconstruction を絞ります。
これによって、背景の影響を受けずに object 単位の clean な 3D model を得られます。
NeRF / 3DGS の編集
NeRF や 3D Gaussian Splatting で reconstruct した scene を編集するときも、SAM が便利です。
- 2D mask を多 view で取得
- それを 3D primitive (Gaussian、voxel、ray) に lift
- 該当領域を削除、移動、置換、recolor
特に SAM 3 の concept prompt と組み合わせれば、「全部の car を消す」「すべての椅子を 1m 上に移動」のような意味的編集が現実的になります。
Semantic 3D map
SLAM や SfM の map に、semantic label を付加する pipeline は古くから存在します。SAM 3 のような concept prompt 対応 model を使うと、
のように、open vocabulary な semantic 3D map を構築できます。
他 foundation model との連携
SAM は、他 vision foundation model と一緒に使うとさらに効果的です。
- VGGT: camera と粗い 3D
- Depth Anything: dense depth prior
- SAM: object boundary
これらを統合することで、geometry の精度と semantic な編集性の両方を得られます。
数式で見る dynamic mask による reconstruction の安定化
Dynamic object を含む scene で SfM / MVS / NeRF / 3DGS を安定化させるとき、SAM 由来の mask で動的領域の loss を抑えると有効です。Photometric loss は、static pixel だけに対して定義できます。
ここで、 は rendering 結果、 は L1 や Huber loss です。この式の気持ちは、「動く物体の pixel は static scene の仮定を破るので、reconstruction の loss に入れない」というものです。
NeRF / 3DGS の training では、さらに mask を sample 確率の補正にも使えます。
この式は、「学習で見る pixel そのものから動的領域を除く」ことで、reconstruction の geometry が dynamic object に引っ張られないようにします。
関連ページ
- Segment Anything Overview
- SAM 3
- SAM 3D
- Segmentation for 3D Reconstruction
- VGGT in 3D Reconstruction Pipelines
- Neural 3D Reconstruction
主なソース
- Segment Anything paper: https://arxiv.org/abs/2304.02643
- SAM 2 official page: https://ai.meta.com/sam2/
- SAM 3 publication: https://ai.meta.com/research/publications/sam-3-segment-anything-with-concepts/