文章目錄[隱藏]
Segment Anything 介紹
https://segment-anything.com/
Segment Anything旨在構建用於(yu) 圖像分割的基礎模型。該項目提出了一個(ge) 可提示的分割任務,使用這個(ge) 任務作為(wei) 預訓練目標,並通過提示工程解決(jue) 各種下遊分割任務。
論文作者還設計了一個(ge) 模型架構,稱為(wei) Segment Anything Model (SAM),用於(yu) 執行分割任務。為(wei) 了訓練這個(ge) 模型,作者構建了一個(ge) 數據引擎,通過迭代使用模型來輔助數據收集,並利用新收集的數據來改進模型。最終創建了一個(ge) 規模龐大的分割數據集,稱為(wei) SA-1B,其中包含了超過10億(yi) 個(ge) 掩碼和1100萬(wan) 張圖像。
- 數據集鏈接:https://segment-anything.com/dataset/index.html
- 開源代碼:https://github.com/facebookresearch/segment-anything
論文出發點
論文的出發點是建立一個(ge) 適用於(yu) 圖像分割的基礎模型,通過預訓練和提示工程的方式實現模型在新的數據分布和任務上的強大泛化能力。
作者希望通過這項工作,構建一個(ge) 適用於(yu) 圖像分割的基礎模型,並探索基於(yu) 提示工程的方法來解決(jue) 計算機視覺領域的各種問題。
任務抽象
論文中所抽象的主要問題是如何訓練一個(ge) 模型,能夠具備強大的零樣本泛化能力,用於(yu) 執行圖像分割任務。作者試圖解決(jue) 三個(ge) 關(guan) 鍵組成部分:任務定義(yi) 、模型架構和數據收集過程。
預訓練階段采用了模擬一係列提示(如點集、框或掩模)的方法,並將模型的掩模預測與(yu) 真實標注進行比較。這種方法從(cong) 交互式分割中借鑒而來,但與(yu) 交互式分割的目標不同,交互式分割的目標是在足夠的用戶輸入後最終預測出有效的掩模,而論文的目標是在任何提示情況下始終預測出有效的掩模,即使提示存在歧義(yi) 。
模型組成
Segment Anything Model(SAM)是一種用於(yu) 可提示分割的模型。它由三個(ge) 主要組件組成:圖像編碼器、提示編碼器和掩碼解碼器。這些組件共同工作,根據不同類型的提示生成分割掩碼。
圖像編碼器
SAM利用經過調整以處理高分辨率輸入的MAE(Masked Autoencoder)預訓練的Vision Transformer(ViT)作為(wei) 圖像編碼器。這個(ge) 圖像編碼器能夠高效地對輸入圖像進行編碼。它在每張圖像上運行一次,在對模型進行提示之前可以應用該編碼器。
提示編碼器
SAM考慮兩(liang) 種類型的提示:稀疏提示(如點、框和文本)和密集提示(掩碼)。稀疏提示(如點和框)使用位置編碼與(yu) 每種提示類型的學習(xi) 嵌入相結合進行表示。自由文本提示使用CLIP(Contrastive Language-Image Pre-training)中的文本編碼器進行編碼。密集提示(即掩碼)使用卷積進行嵌入,並與(yu) 圖像嵌入逐元素求和。
掩碼解碼器
掩碼解碼器將圖像嵌入、提示嵌入和輸出令牌作為(wei) 輸入,高效地將它們(men) 映射到分割掩碼。SAM受先前工作的啟發,采用修改過的Transformer解碼器塊,其中包含提示自注意力和雙向交叉注意力:提示到圖像嵌入以及反之。運行兩(liang) 個(ge) 解碼器塊後,圖像嵌入進行上采樣,然後通過多層感知機(MLP)將輸出令牌映射到動態線性分類器。該分類器計算圖像中每個(ge) 位置的掩碼前景概率。
解決歧義
SAM通過為(wei) 單個(ge) 提示預測多個(ge) 輸出掩碼來解決(jue) 提示中的歧義(yi) 問題。在訓練過程中,模型僅(jin) 反向傳(chuan) 播對預測掩碼的最小損失。為(wei) 了對掩碼進行排序,模型為(wei) 每個(ge) 掩碼預測一個(ge) 置信度分數(即估計的交並比IoU)。
效率
SAM的整體(ti) 設計注重效率。在預先計算的圖像嵌入的基礎上,提示編碼器和掩碼解碼器可以在Web瀏覽器上的CPU上運行,約需50毫秒完成。這種運行時性能使得可以實時交互地對模型進行提示。
數據引擎
輔助手動階段
在第一個(ge) 階段中,模仿傳(chuan) 統的交互式分割,由專(zhuan) 業(ye) 的注釋員使用基於(yu) SAM的基於(yu) 瀏覽器的交互式分割工具點擊前景/背景對象點來標記掩碼。注釋員可以使用像素精確的"刷子"和"橡皮擦"工具對掩碼進行精細調整。
半自動階段
在這個(ge) 階段,我們(men) 旨在增加掩碼的多樣性,以提高模型對任何物體(ti) 的分割能力。為(wei) 了讓注釋員專(zhuan) 注於(yu) 不太顯著的對象,我們(men) 首先自動檢測出置信的掩碼。然後,我們(men) 向注釋員呈現已填充這些掩碼的圖像,並要求他們(men) 標注任何其他未標注的對象。
完全自動階段
在最後一個(ge) 階段,標注完全自動進行。這得益於(yu) 我們(men) 模型的兩(liang) 個(ge) 重要改進。首先,在這個(ge) 階段開始時,我們(men) 已經收集了足夠的掩碼來大大改進模型,包括上一階段的多樣化掩碼。
SA-1B 數據集
SA-1B包含了1100萬(wan) 個(ge) 多樣化、高分辨率、經過許可並保護隱私的圖像,以及由我們(men) 的數據引擎收集的11億(yi) 個(ge) 高質量分割掩碼。
圖像
我們(men) 從(cong) 與(yu) 攝影師直接合作的供應商處獲得了一組新的1100萬(wan) 張圖像的許可。這些圖像具有高分辨率(平均為(wei) 3300×4950像素),由此產(chan) 生的數據大小可能帶來訪問和存儲(chu) 方麵的挑戰。
因此,我們(men) 將縮小樣本圖像的尺寸,使其最短邊為(wei) 1500像素。即使在縮小尺寸後,我們(men) 的圖像仍然比許多現有的視覺數據集(例如,COCO的圖像約為(wei) 480×640像素)具有顯著更高的分辨率。
掩碼
我們(men) 的數據引擎生成了11億(yi) 個(ge) 掩碼,其中99.1%是完全自動生成的。因此,自動掩碼的質量至關(guan) 重要。我們(men) 直接將其與(yu) 專(zhuan) 業(ye) 標注進行比較,並研究各種掩碼屬性與(yu) 主要分割數據集的比較情況。
掩碼質量
為(wei) 了評估掩碼質量,我們(men) 隨機抽取了500個(ge) 圖像(約50,000個(ge) 掩碼),並要求我們(men) 的專(zhuan) 業(ye) 標注員改進這些圖像中所有掩碼的質量。標注員使用我們(men) 的模型和像素精確的"刷子"和"橡皮擦"編輯工具進行改進。
這個(ge) 過程生成了自動預測的掩碼和經過專(zhuan) 業(ye) 修正的掩碼的一對對。我們(men) 計算了每對掩碼之間的IoU,並發現94%的對之間的IoU大於(yu) 90%(97%的對之間的IoU大於(yu) 75%)。
掩碼屬性
我們(men) 繪製了SA-1B中物體(ti) 中心的空間分布,與(yu) 最大的現有分割數據集進行了比較。所有數據集中都存在常見的攝影師偏差。SA-1B更好地覆蓋了圖像的角落,而COCO和Open Images V5則更加偏重中心。
實驗分析
Zero-Shot Edge Detection
在Zero-Shot Edge Detection實驗中,我們(men) 使用BSDS500數據集評估SAM在經典的低層任務——邊緣檢測上的表現。我們(men) 使用簡化版的自動掩碼生成流程。
具體(ti) 來說,我們(men) 使用一個(ge) 16×16的前景點規則網格作為(wei) SAM的提示,從(cong) 而產(chan) 生768個(ge) 預測掩碼(每個(ge) 點3個(ge) 掩碼)。通過非極大值抑製(NMS)去除多餘(yu) 的掩碼。然後,使用Sobel濾波對未閾值化的掩碼概率圖計算邊緣圖,並進行標準的輕量級後處理,包括邊緣非極大值抑製(具體(ti) 詳見§D.2)。
即使SAM並沒有針對邊緣檢測進行訓練,它也能生成合理的邊緣圖。與(yu) 地麵真值相比,SAM預測出更多的邊緣,包括在BSDS500中未標注的合理邊緣。
Zero-Shot Object Proposals
在Zero-Shot Object Proposals實驗中,我們(men) 評估SAM在中層任務——目標候選生成(object proposal generation)上的表現。該任務在目標檢測研究中起著重要作用,是先驅係統中的一個(ge) 中間步驟。
選擇LVIS數據集是因為(wei) 它具有大量的目標類別,提供了一個(ge) 具有挑戰性的測試。我們(men) 將SAM與(yu) 一個(ge) 強基線模型進行比較,該模型使用ViTDet檢測器(采用級聯Mask R-CNN ViT-H)實現。
Zero-Shot Instance Segmentation
在Zero-Shot Instance Segmentation實驗中,我們(men) 將SAM作為(wei) 實例分割器的分割模塊。具體(ti) 實現很簡單:我們(men) 運行一個(ge) 目標檢測器(之前使用的ViTDet),然後用它的輸出邊界框來提示SAM生成分割結果。
我們(men) 可以觀察到兩(liang) 個(ge) 數據集上存在差距,SAM的表現相對接近,但明顯落後於(yu) ViTDet。通過可視化輸出,我們(men) 觀察到SAM生成的分割結果在質量上往往優(you) 於(yu) ViTDet,邊界更清晰。
Zero-Shot Text-to-Mask
對SAM處理文本提示能力的概念驗證。雖然在之前的所有實驗中我們(men) 使用了完全相同的SAM,但對於(yu) 這個(ge) 實驗,SAM的訓練過程進行了修改,使其能夠理解文本提示,但並不需要新的文本注釋。
方法總結
我們(men) 的目標是通過要求SAM在廣泛的分割提示下預測有效的掩碼來實現這種組合性。這樣做的效果是在SAM和其他組件之間創建一個(ge) 可靠的接口。
SAM可以根據可穿戴設備檢測到的凝視點進行提示,實現新的應用。由於(yu) SAM能夠在新的領域(如自我中心圖像)進行泛化,這些係統可以在不需要額外訓練的情況下工作。
盡管SAM的整體(ti) 表現良好,但它並非完美。它可能會(hui) 錯過細微的結構,在某些情況下產(chan) 生小的不連續組件,並且其生成的邊界不如“放大”的計算密集型方法。SAM注重的是廣泛適用性和多樣性,而不是高IoU的交互式分割。
評論已經被關(guan) 閉。