Survey: SAM 2: Segment Anything in Images and Videos

2024-09-20
| arXiv 2024

Nikhila Ravi, Valentin Gabeur, Yuan-Ting Hu, Ronghang Hu, Chaitanya Ryali, Tamar Gershbain, Chloe Maayan, et al. (Meta AI)

📑 投影片連結:

當前挑戰

初代 SAM(Segment Anything Model)在靜態影像的互動式分割上建立了強大的基礎模型標竿。然而,當嘗試將 SAM 擴展到影片(Video)領域時,會立刻面臨動態時間序列上的嚴峻挑戰:

影片跨影格時間維度欠缺連貫的記憶機制

影片不是單純獨立圖片的拼貼。目標物體在運動過程中會經歷劇烈形變、姿態轉變與視角縮放。若每一幀都獨立呼叫影像分割模型,跨影格之間完全沒有特徵傳遞與時間關聯,輸出會產生嚴重的閃爍與 ID 錯亂。

目標出鏡與嚴重遮擋導致追蹤飄移

在真實影片中,物體經常被前景障礙物遮擋,甚至暫時離開鏡頭畫面。若模型缺乏明確的「遮擋與存在性判斷」,容易在物體被遮擋時把背景或其他相似物體誤認為目標,導致追蹤永遠飄移走樣。

傳統 ViT 編碼器在即時影片流中運算過於沉重

初代 SAM 採用標準的 Vision Transformer(如 ViT-H)作為 Image Encoder,處理單張高解析度圖片就相當耗時。若要對 30 FPS 以上的即時影片流進行逐幀特徵編碼,龐大的計算負擔根本無法滿足即時互動的需求。

小筆記:Promptable Video Segmentation (PVS)
SAM 2 將任務定義為可提示影片分割:使用者可以在影片的「任意影格」給予點、框或 Mask 提示,模型需即時在全片中傳播並維持目標的分割 Masklet,且允許使用者在後續影格隨時加入修正提示。


主要貢獻

Meta 提出了 SAM 2,構建了統整影像與影片分割的統一架構,核心在於引入了記憶注意力(Memory Attention)與時空記憶庫(Memory Bank)

解決: 影片跨影格時間維度欠缺連貫的記憶機制

SAM 2 設計了一套流暢的記憶模組:

  1. 時空記憶庫(Memory Bank):維護一個 FIFO 佇列,動態儲存近期影格的特徵表示。記憶庫同時保留了「使用者給予提示的影格(Prompted Frames)」、「模型自動追蹤的未提示影格(Unprompted Frames)」以及高階語義物件指標(Object Pointers)。
  2. 記憶注意力(Memory Attention):當處理當前影格時,利用 Cross-Attention 機制在 Memory Bank 中檢索過去的時間特徵與提示空間位置,將歷史時空脈絡無縫注入當前的 Mask 解碼過程中。

解決: 目標出鏡與嚴重遮擋導致追蹤飄移

在 Mask 解碼器中,SAM 2 新增了一個遮擋評分(Occlusion Score)預測頭:
– 模型除了預測當前幀的 Segmentation Mask 外,還會輸出一個置信度分數,判斷目標物件當前是否被完全遮擋或離開鏡頭。
– 當分數判定目標消失時,系統暫停輸出無效 Mask,避免追蹤漂移;一旦目標在後續影格重新出現,記憶庫中的歷史特徵能迅速輔助模型重新捕獲目標。

解決: 傳統 ViT 編碼器在即時影片流中運算過於沉重

SAM 2 採用了更現代且高效率的 Hiera 階層式影像編碼器
– Hiera 具備多尺度特徵金字塔結構,能原生輸出不同解析度的特徵圖,非常適合捕捉不同大小的物體邊界。
– 相比傳統純 ViT,Hiera 的推論速度大幅躍升,使得 SAM 2 能夠在單張 GPU 上達成流暢的即時影片推論。


延伸探討

SA-V 數據集與人機協作 Data Engine

基礎模型的強大來自於海量資料。Meta 團隊透過 SAM 2 建立了一套人機協同的資料引擎(Data Engine):
– 模型先進行自動分割,人類標註員在模型預測錯誤的影格快速給予修正點。
– 收集並釋出了 SA-V (Segment Anything Video) 數據集,包含 50,900 部真實世界影片與超過 64 萬條高品質 Masklet,資料量是既有影片分割資料集的數倍以上。

影像與影片的完全統一架構

在 SAM 2 的設計中,單張靜態圖片可以視為「長度為 1 幀的影片」。因此 SAM 2 完全相容初代 SAM 的所有互動式影像分割功能,且在靜態圖片分割上的準確率與邊緣精細度甚至超越初代 SAM。