SAM2(Segment Anything Model 2)技術解説
ちょっと動画解析の依頼があって、特徴物のトラッキングが必要だったため対応できそうなSAM2について記述した。SAM2 は Meta が公開した「セグメンテーションとマスク追跡の基盤モデル」であり、動画全体に対して 高精度・高安定にマスクを伝播(Mask Propagation) できる点が最大の特徴である。
SAM1 が「静止画の万能セグメンテーション」であったのに対し、SAM2 は 動画処理を前提として内部構造が大きく再設計されている。特に、構造物の微小変位計測のような 「フレーム間の一貫性」(temporal consistency)が重要な用途において、従来モデルを圧倒する安定性を示す。
1. SAM2 の全体アーキテクチャ概要
SAM2 は以下の 3 つの主要モジュールで構成される:
- Video Image Encoder(動画特徴抽出)
- Memory Mechanism(長期短期メモリ)
- Mask Decoder(マスク復号/生成)
これらは動画全体を逐次処理するためのストリーム型アーキテクチャを取っており、各フレームの処理結果が 「メモリバンク」に登録され、次のフレームの推論に活用される。この構造により、隠れや遮蔽(occlusion)、 照明変動、物体の部分変形に強くなる。
2. Video Image Encoder の役割
Video Encoder は SAM1 の Image Encoder を拡張したもので、高解像度画像を特徴マップに変換する。 SAM2 の特徴は 動画フレーム間の類似性を利用する設計 を採用している点である。
- 高空間解像度の特徴(詳細形状)
- 低空間解像度の特徴(大域的コンテキスト)
これらの特徴が Encoder 出力として Memory に渡され、時間的整合性を保つための基盤となる。
3. Memory Mechanism(SAM2 最大の革新)
SAM2 の核は メモリバンク(Memory Bank) にある。これは動画の各フレーム処理後に マスクと特徴ベクトルを保存し、後続フレームで参照するという仕組みで、従来の OpticalFlow ベースの追跡とは 全く違うアプローチを取る。
3.1 メモリの構造
- Key Memory: Encoder の埋め込み特徴そのもの
- Value Memory: マスク情報を埋め込んだ特徴
- Temporal Index: 時間的距離に基づく参照重み
これにより SAM2 は 「過去のどのフレームが今のフレームに類似しているか」 を内部で学習しつつ、必要に応じて遠い過去のフレームを参照してマスクを復元できる。
3.2 オクルージョン耐性の獲得
対象が一時的に隠れた場合でも、メモリが過去の対象の特徴を保持しているため、 遮蔽 → 復帰 が容易になる。これは構造物揺れの計測のような微小変位タスクで極めて有効である。
4. Mask Decoder の仕組み
Decoder は Encoder と Memory から特徴を取り込み、現在フレームのマスクを生成する。 SAM1 の Mask Decoder を大幅に動画向けに再設計しており、特徴的な点は以下:
- Memory Attention(過去フレームとの相関型注意機構)
- Prompt Attention(初期マスク・クリック・枠の情報を統合)
- Dynamic Convolution を使った精緻なマスク生成
その結果、SAM2 はフレーム単位の独立した予測ではなく、時系列として滑らかなマスク を出力できる。
5. SAM2 が「微小変位計測」と相性が良い理由
- マスク境界の安定性 SAM2 は動画全体を文脈として扱うため、隣接フレームでマスク形状が微妙に揺らぐことが少ない。
- 重心の時間的連続性が高い マスクの境界が安定すれば、重心計算の誤差も小さくなる。
- 明暗変動・影・ノイズに頑強 動画の文脈情報があり、単一フレーム依存ではない。
- 遮蔽に強い 一時的に隠れても元の位置を復元できる。
- 光学フローのように高周波ノイズが混じらない Pixel-level の乱流よりも、形状情報に基づく追跡が中心。
これにより、構造物の変位抽出で重要な 1~3px 程度の微小揺れ をブレなく扱える。
6. SAM2 の限界(正直な評価)
- 極端に細い部材(幅1~2px)の追跡は苦手
- 動画が高速で揺れると Memory が破綻することがある
- 精密測定に使う前にはノイズ除去(平滑化)が必須
- Decoder の性質上、局所的なマスクの揺らぎはゼロにはできない
移動平均 + バンドパス によって最終的に補正される。
7. まとめ
SAM2 は動画処理のために最適化された強力なセグメンテーション・マスク伝播モデルであり、 従来のトラッキング手法よりも圧倒的に安定したマスクを生成する。特に、構造物の ミリメートル級の微小変位 を動画から抽出する際には、 「形状の一貫した追跡」という点で極めて相性が良い。
内部では Video Encoder → Memory → Mask Decoder の三段構造が連動し、 過去フレームの文脈を最大限利用して、揺れ・陰影・遮蔽にも耐性あるマスクを出力する。
8. 課題
SAM2 の有利なポイントだけ上げたが、困った点がいくつかある。 大量のメモリ喰い である点と、GPU依存である。後者に関しては処理フローを見直せば対応ができることが分かったが、前者の課題で正確性を求める追跡(FHD、4K)動画の際、マスク領域が大きいと通常のPCでは処理ができない。この点もいくつかのアプローチで一部解決できたが、まだまだ考える必要がありそうだ。
