VPR 2024 滿分論文!Meta提出EfficientSAM:快速分割一切!
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
EfficientSAM 這篇工作以5/5/5滿分收錄于CVPR 2024!作者在某社交媒體上分享了該結果,如下圖所示:
LeCun 圖靈獎得主也強烈推薦了該工作!
在最近的一項研究中,Meta 研究者提出了另外一種改進思路 —— 利用 SAM 的掩碼圖像預訓練 (SAMI)。這是通過利用 MAE 預訓練方法和 SAM 模型實現的,以獲得高質量的預訓練 ViT 編碼器。
- 論文鏈接:https://arxiv.org/pdf/2312.00863
- 代碼:github.com/yformer/EfficientSAM
- 主頁:https://yformer.github.io/efficient-sam/
這一方法降低了 SAM 的復雜性,同時能夠保持良好的性能。具體來說,SAMI 利用 SAM 編碼器 ViT-H 生成特征嵌入,并用輕量級編碼器訓練掩碼圖像模型,從而從 SAM 的 ViT-H 而不是圖像補丁重建特征,產生的通用 ViT 骨干可用于下游任務,如圖像分類、物體檢測和分割等。然后,研究者利用 SAM 解碼器對預訓練的輕量級編碼器進行微調,以完成任何分割任務。
為了評估該方法,研究者采用了掩碼圖像預訓練的遷移學習設置,即首先在圖像分辨率為 224 × 224 的 ImageNet 上使用重構損失對模型進行預訓練,然后使用監督數據在目標任務上對模型進行微調。
通過 SAMI 預訓練,可以在 ImageNet-1K 上訓練 ViT-Tiny/-Small/-Base 等模型,并提高泛化性能。對于 ViT-Small 模型,研究者在 ImageNet-1K 上進行 100 次微調后,其 Top-1 準確率達到 82.7%,優于其他最先進的圖像預訓練基線。
研究者在目標檢測、實例分割和語義分割上對預訓練模型進行了微調。在所有這些任務中,本文方法都取得了比其他預訓練基線更好的結果,更重要的是在小模型上獲得了顯著收益。
論文作者 Yunyang Xiong 表示:本文提出的 EfficientSAM 參數減少了 20 倍,但運行時間快了 20 倍,只與原始 SAM 模型的差距在 2 個百分點以內,大大優于 MobileSAM/FastSAM。
在 demo 演示中,點擊圖片中的動物,EfficientSAM 就能快速將物體進行分割:
EfficientSAM 還能準確標定出圖片中的人:
試玩地址:https://ab348ea7942fe2af48.gradio.live/
方法
EfficientSAM 包含兩個階段:1)在 ImageNet 上對 SAMI 進行預訓練(上);2)在 SA-1B 上微調 SAM(下)。
EfficientSAM 主要包含以下組件:
交叉注意力解碼器:在 SAM 特征的監督下,本文觀察到只有掩碼 token 需要通過解碼器重建,而編碼器的輸出可以在重建過程中充當錨點(anchors)。在交叉注意力解碼器中,查詢來自于掩碼 token,鍵和值源自編碼器的未掩碼特征和掩碼特征。本文將來自交叉注意力解碼器掩碼 token 的輸出特征和來自編碼器的未掩碼 token 的輸出特征進行合并,以進行 MAE 輸出嵌入。然后,這些組合特征將被重新排序到最終 MAE 輸出的輸入圖像 token 的原始位置。
線性投影頭。研究者通過編碼器和交叉注意力解碼器獲得的圖像輸出,接下來將這些特征輸入到一個小型項目頭(project head)中,以對齊 SAM 圖像編碼器中的特征。為簡單起見,本文僅使用線性投影頭來解決 SAM 圖像編碼器和 MAE 輸出之間的特征維度不匹配問題。
重建損失。在每次訓練迭代中,SAMI 包括來自 SAM 圖像編碼器的前向特征提取以及 MAE 的前向和反向傳播過程。來自 SAM 圖像編碼器和 MAE 線性投影頭的輸出會進行比較,從而計算重建損失。
經過預訓練,編碼器可以對各種視覺任務的特征表示進行提取,而且解碼器也會被廢棄。特別是,為了構建用于分割任何任務的高效 SAM 模型,本文采用 SAMI 預訓練的輕量級編碼器(例如 ViT-Tiny 和 ViT-Small)作為 EfficientSAM 的圖像編碼器和 SAM 的默認掩碼解碼器,如圖所示 2(底部)。本文在 SA-1B 數據集上對 EfficientSAM 模型進行微調,以實現分割任何任務。
實驗
圖像分類。為了評估本文方法在圖像分類任務上的有效性,研究者將 SAMI 思想應用于 ViT 模型,并比較它們在 ImageNet-1K 上的性能。
如表 1 將 SAMI 與 MAE、iBOT、CAE 和 BEiT 等預訓練方法以及 DeiT 和 SSTA 等蒸餾方法進行了比較。
SAMI-B 的 top1 準確率達到 84.8%,比預訓練基線、MAE、DMAE、iBOT、CAE 和 BEiT 都高。與 DeiT 和 SSTA 等蒸餾方法相比,SAMI 也顯示出較大的改進。對于 ViT-Tiny 和 ViT-Small 等輕量級模型,SAMI 結果與 DeiT、SSTA、DMAE 和 MAE 相比有顯著的增益。
目標檢測和實例分割。本文還將經過 SAMI 預訓練的 ViT 主干擴展到下游目標檢測和實例分割任務上,并將其與在 COCO 數據集上經過預訓練的基線進行比較。如表 2 所示, SAMI 始終優于其他基線的性能。
這些實驗結果表明,SAMI 在目標檢測和實例分割任務中所提供的預訓練檢測器主干非常有效。
語義分割。本文進一步將預訓練主干擴展到語義分割任務,以評估其有效性。結果如表 3 所示,使用 SAMI 預訓練主干網的 Mask2former 在 ImageNet-1K 上比使用 MAE 預訓練的主干網實現了更好的 mIoU。這些實驗結果驗證了本文提出的技術可以很好地泛化到各種下游任務。
表 4 將 EfficientSAMs 與 SAM、MobileSAM 和 SAM-MAE-Ti 進行比較。在 COCO 上,EfficientSAM-Ti 的性能優于 MobileSAM。EfficientSAM-Ti 具有 SAMI 預訓練權重,也比 MAE 預訓練權重表現更好。
此外, EfficientSAM-S 在 COCO box 僅比 SAM 低 1.5 mIoU,在 LVIS box 上比 SAM 低 3.5 mIoU,參數減少了 20 倍。本文還發現,與 MobileSAM 和 SAM-MAE-Ti 相比,EfficientSAM 在多次點擊(multiple click)方面也表現出了良好的性能。
表 5 展示了零樣本實例分割的 AP、APS、APM 和 APL。研究者將 EfficientSAM 與 MobileSAM 和 FastSAM 進行了比較,可以看到,與 FastSAM 相比,EfficientSAM-S 在 COCO 上獲得了超過 6.5 個 AP,在 LVIS 上獲得了 7.8 個 AP。就 EffidientSAM-Ti 而言,仍然遠遠優于 FastSAM,在 COCO 上為 4.1 個 AP,在 LVIS 上為 5.3 個 AP,而 MobileSAM 在 COCO 上為 3.6 個 AP,在 LVIS 上為 5.5 個 AP。
而且,EfficientSAM 比 FastSAM 輕得多,efficientSAM-Ti 的參數為 9.8M,而 FastSAM 的參數為 68M。
圖 3、4、5 提供了一些定性結果,以便讀者對 EfficientSAMs 的實例分割能力有一個補充性了解。
更多研究細節,可參考原論文。