SAM 2
SAM 2 は、SAM の枠組みを image と video の両方に拡張した promptable segmentation model です。Frame ごとに mask を出すだけでなく、prompt された object を時間方向に追跡できます。
何が変わったのか
SAM は image を 1 枚ずつ独立に扱いました。SAM 2 では、
- Video を一連の frame として扱う
- どこかの frame で prompt を与えると、他の frame でも同じ object の mask を出す
- 時間方向の依存を memory attention で扱う
という拡張が加わっています。Image も video も同じ model で扱える、unified な設計です。
アーキテクチャの直感
- 各 frame は image encoder で embedding になります。
- Memory bank は、過去 frame の mask や embedding を保存します。
- Memory attention によって、現在 frame の予測が過去 frame の情報を参照します。
- 出力 mask は memory bank にフィードバックされ、次 frame で再利用されます。
これによって、object の見た目が時間とともに変わっても、tracking が継続しやすくなります。
Video Object Segmentation
SAM 2 が解いている task は、video object segmentation の汎用版とみなせます。
| 設定 | 説明 |
|---|---|
| Click prompt | ある frame で対象を click。Model は全 frame でその object の mask を返す。 |
| Box prompt | Bounding box で指定。 |
| Mask prompt | 既存 mask を prompt とする (refine 用)。 |
| Multi-object | 複数 object を別々に segment / track。 |
3D Reconstruction との関係
Video が入力になることで、SAM 2 は 3D Reconstruction と特に相性が良くなります。
- Multi-view image が時間 sequence で来る場合、SAM 2 で view 横断の object identity を保てる
- Dynamic scene reconstruction で、moving object を tracking しながら除外できる
- Video からの NeRF / 3DGS training で、object mask の time consistency を保てる
SAM との比較
| 観点 | SAM | SAM 2 |
|---|---|---|
| 対象 | Image | Image + Video |
| Tracking | なし | あり |
| Memory | なし | Memory attention |
| Prompt | Visual | Visual |
| 用途 | Interactive segmentation | Interactive segmentation + tracking |
数式で見る video segmentation の時間方向 propagation
SAM 2 は、video と任意フレームでの prompt を受け取り、各フレームの mask 系列を出力します。
時間方向の整合性は、memory bank に過去の mask 情報を蓄積することで保たれます。
ここで、 は frame の visual feature です。次フレームの予測は、現在フレームの feature と memory を attention で参照しながら行います。
この式の気持ちは、「object の見た目と過去の mask を memory に持ち、各フレームでそれを参照することで、occlusion や見え方の変化に対しても同じ object を追い続ける」というものです。
関連ページ
主なソース
- SAM 2 official page: https://ai.meta.com/sam2/
- SAM 2 announcement: https://about.fb.com/news/2024/07/our-new-ai-model-can-segment-video/