影像分割

Segment Anything 模型

Segment Anything 模型(SAM),由 Meta AI 於 2023 年釋出,是分割領域的基礎模型(foundation model):它不是為某一組固定類別而訓練,而是學會「把我所指的東西描出輪廓」這項通用技能,因而能分割從未被明確教過的物體、且無需微調。你給它一個提示(prompt)——一次點擊、一個方框、一張粗略遮罩,或(在有限程度上)文字——它便回傳一張遮罩。這種可提示、零樣本(zero-shot)的行為,正是大型語言模型帶給文字、如今施用於像素的同一種典範轉移。

在架構上,SAM 有三個部分,圍繞一種速度的不對稱性設計。一個沉重的影像編碼器(以遮罩自編碼 masked autoencoding 預訓練的視覺 Transformer)每張影像只跑一次,產生豐富的嵌入——這是昂貴的步驟。一個輕量的提示編碼器把點擊、方框或遮罩轉成 token。接著一個快速的遮罩解碼器融合影像嵌入與提示,在數毫秒內輸出一張遮罩,因此在一次性的影像編碼後,使用者可即時互動式地到處點擊。由於單一點擊是模稜兩可的(點一件襯衫——你指的是襯衫、那個人、還是整群人?),SAM 被訓練成輸出三張不同粒度的遮罩,外加一個預測的 IoU 分數來排序它們。

讓 SAM 成為可能的是它的資料引擎:一個模型輔助的標註迴圈,自舉出 SA-1B 資料集,含約 1100 萬張影像與超過 10 億張遮罩,遠大於任何先前的分割資料集。SAM 2(2024)把同樣可提示的想法延伸到影片,加入串流記憶,使在某一幀上提示的遮罩能隨時間被追蹤。SAM 最好理解為一個通用的遮罩提議器與標註加速器;它產生與類別無關(class-agnostic)的遮罩(它描輪廓卻不命名),因此當需要類別標籤時,常將它與一個分類器或如 CLIP 這類開放詞彙模型搭配使用。

SAM 只描輪廓,不貼標籤。常見的誤解是期望它吐出類別名稱——要做到「分割出所有的狗」,你必須把 SAM 的遮罩與一個提供類別的辨識模型(例如 CLIP 或一個偵測器)結合。

又稱
SAMSAM 2