Skip to main content

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 promptBounding 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 との比較

観点SAMSAM 2
対象ImageImage + Video
Trackingなしあり
MemoryなしMemory attention
PromptVisualVisual
用途Interactive segmentationInteractive segmentation + tracking

数式で見る video segmentation の時間方向 propagation

SAM 2 は、video V=(I1,,IT)V=(I_1,\ldots,I_T) と任意フレームでの prompt pt0p_{t_0} を受け取り、各フレームの mask 系列を出力します。

{M^t}t=1T=fθ(V,pt0)\{\hat{M}_t\}_{t=1}^{T}=f_\theta(V,p_{t_0})

時間方向の整合性は、memory bank Mt\mathcal{M}_t に過去の mask 情報を蓄積することで保たれます。

Mt=Update(Mt1,M^t1,ft1)\mathcal{M}_t=\mathrm{Update}(\mathcal{M}_{t-1},\hat{M}_{t-1},\mathbf{f}_{t-1})

ここで、ft1\mathbf{f}_{t-1} は frame の visual feature です。次フレームの予測は、現在フレームの feature と memory を attention で参照しながら行います。

M^t=gθ(ft,Mt)\hat{M}_t=g_\theta(\mathbf{f}_t,\mathcal{M}_t)

この式の気持ちは、「object の見た目と過去の mask を memory に持ち、各フレームでそれを参照することで、occlusion や見え方の変化に対しても同じ object を追い続ける」というものです。

関連ページ

主なソース