小模型也可以「分割一切」,Meta改進SAM,參數(shù)僅為原版5%
對于 2023 年的計算機視覺領(lǐng)域來說,「分割一切」(Segment Anything Model)是備受關(guān)注的一項研究進展。
Meta四月份發(fā)布的「分割一切模型(SAM)」效果,它能很好地自動分割圖像中的所有內(nèi)容
Segment Anything 的關(guān)鍵特征是基于提示的視覺 Transformer(ViT)模型,該模型是在一個包含來自 1100 萬張圖像的超過 10 億個掩碼的視覺數(shù)據(jù)集 SA-1B 上訓(xùn)練的,可以分割給定圖像上的任何目標。這種能力使得 SAM 成為視覺領(lǐng)域的基礎(chǔ)模型,并在超出視覺之外的領(lǐng)域也能產(chǎn)生應(yīng)用價值。
盡管有上述優(yōu)點,但由于 SAM 中的 ViT-H 圖像編碼器有 632M 個參數(shù)(基于提示的解碼器只需要 387M 個參數(shù)),因此實際使用 SAM 執(zhí)行任何分割任務(wù)的計算和內(nèi)存成本都很高,這對實時應(yīng)用來說具有挑戰(zhàn)性。后續(xù),研究者們也提出了一些改進策略:將默認 ViT-H 圖像編碼器中的知識提煉到一個微小的 ViT 圖像編碼器中,或者使用基于 CNN 的實時架構(gòu)降低用于 Segment Anything 任務(wù)的計算成本。
在最近的一項研究中,Meta 研究者提出了另外一種改進思路 —— 利用 SAM 的掩碼圖像預(yù)訓(xùn)練 (SAMI)。這是通過利用 MAE 預(yù)訓(xùn)練方法和 SAM 模型實現(xiàn)的,以獲得高質(zhì)量的預(yù)訓(xùn)練 ViT 編碼器。
- 論文鏈接:https://arxiv.org/pdf/2312.00863.pdf
- 論文主頁:https://yformer.github.io/efficient-sam/
這一方法降低了 SAM 的復(fù)雜性,同時能夠保持良好的性能。具體來說,SAMI 利用 SAM 編碼器 ViT-H 生成特征嵌入,并用輕量級編碼器訓(xùn)練掩碼圖像模型,從而從 SAM 的 ViT-H 而不是圖像補丁重建特征,產(chǎn)生的通用 ViT 骨干可用于下游任務(wù),如圖像分類、物體檢測和分割等。然后,研究者利用 SAM 解碼器對預(yù)訓(xùn)練的輕量級編碼器進行微調(diào),以完成任何分割任務(wù)。
為了評估該方法,研究者采用了掩碼圖像預(yù)訓(xùn)練的遷移學(xué)習(xí)設(shè)置,即首先在圖像分辨率為 224 × 224 的 ImageNet 上使用重構(gòu)損失對模型進行預(yù)訓(xùn)練,然后使用監(jiān)督數(shù)據(jù)在目標任務(wù)上對模型進行微調(diào)。
通過 SAMI 預(yù)訓(xùn)練,可以在 ImageNet-1K 上訓(xùn)練 ViT-Tiny/-Small/-Base 等模型,并提高泛化性能。對于 ViT-Small 模型,研究者在 ImageNet-1K 上進行 100 次微調(diào)后,其 Top-1 準確率達到 82.7%,優(yōu)于其他最先進的圖像預(yù)訓(xùn)練基線。
研究者在目標檢測、實例分割和語義分割上對預(yù)訓(xùn)練模型進行了微調(diào)。在所有這些任務(wù)中,本文方法都取得了比其他預(yù)訓(xùn)練基線更好的結(jié)果,更重要的是在小模型上獲得了顯著收益。
論文作者 Yunyang Xiong 表示:本文提出的 EfficientSAM 參數(shù)減少了 20 倍,但運行時間快了 20 倍,只與原始 SAM 模型的差距在 2 個百分點以內(nèi),大大優(yōu)于 MobileSAM/FastSAM。
在 demo 演示中,點擊圖片中的動物,EfficientSAM 就能快速將物體進行分割:
EfficientSAM 還能準確標定出圖片中的人:
試玩地址:https://ab348ea7942fe2af48.gradio.live/
方法
EfficientSAM 包含兩個階段:1)在 ImageNet 上對 SAMI 進行預(yù)訓(xùn)練(上);2)在 SA-1B 上微調(diào) SAM(下)。
EfficientSAM 主要包含以下組件:
交叉注意力解碼器:在 SAM 特征的監(jiān)督下,本文觀察到只有掩碼 token 需要通過解碼器重建,而編碼器的輸出可以在重建過程中充當錨點(anchors)。在交叉注意力解碼器中,查詢來自于掩碼 token,鍵和值源自編碼器的未掩碼特征和掩碼特征。本文將來自交叉注意力解碼器掩碼 token 的輸出特征和來自編碼器的未掩碼 token 的輸出特征進行合并,以進行 MAE 輸出嵌入。然后,這些組合特征將被重新排序到最終 MAE 輸出的輸入圖像 token 的原始位置。
線性投影頭。研究者通過編碼器和交叉注意力解碼器獲得的圖像輸出,接下來將這些特征輸入到一個小型項目頭(project head)中,以對齊 SAM 圖像編碼器中的特征。為簡單起見,本文僅使用線性投影頭來解決 SAM 圖像編碼器和 MAE 輸出之間的特征維度不匹配問題。
重建損失。在每次訓(xùn)練迭代中,SAMI 包括來自 SAM 圖像編碼器的前向特征提取以及 MAE 的前向和反向傳播過程。來自 SAM 圖像編碼器和 MAE 線性投影頭的輸出會進行比較,從而計算重建損失。
經(jīng)過預(yù)訓(xùn)練,編碼器可以對各種視覺任務(wù)的特征表示進行提取,而且解碼器也會被廢棄。特別是,為了構(gòu)建用于分割任何任務(wù)的高效 SAM 模型,本文采用 SAMI 預(yù)訓(xùn)練的輕量級編碼器(例如 ViT-Tiny 和 ViT-Small)作為 EfficientSAM 的圖像編碼器和 SAM 的默認掩碼解碼器,如圖所示 2(底部)。本文在 SA-1B 數(shù)據(jù)集上對 EfficientSAM 模型進行微調(diào),以實現(xiàn)分割任何任務(wù)。
實驗
圖像分類。為了評估本文方法在圖像分類任務(wù)上的有效性,研究者將 SAMI 思想應(yīng)用于 ViT 模型,并比較它們在 ImageNet-1K 上的性能。
如表 1 將 SAMI 與 MAE、iBOT、CAE 和 BEiT 等預(yù)訓(xùn)練方法以及 DeiT 和 SSTA 等蒸餾方法進行了比較。
SAMI-B 的 top1 準確率達到 84.8%,比預(yù)訓(xùn)練基線、MAE、DMAE、iBOT、CAE 和 BEiT 都高。與 DeiT 和 SSTA 等蒸餾方法相比,SAMI 也顯示出較大的改進。對于 ViT-Tiny 和 ViT-Small 等輕量級模型,SAMI 結(jié)果與 DeiT、SSTA、DMAE 和 MAE 相比有顯著的增益。
目標檢測和實例分割。本文還將經(jīng)過 SAMI 預(yù)訓(xùn)練的 ViT 主干擴展到下游目標檢測和實例分割任務(wù)上,并將其與在 COCO 數(shù)據(jù)集上經(jīng)過預(yù)訓(xùn)練的基線進行比較。如表 2 所示, SAMI 始終優(yōu)于其他基線的性能。
這些實驗結(jié)果表明,SAMI 在目標檢測和實例分割任務(wù)中所提供的預(yù)訓(xùn)練檢測器主干非常有效。
語義分割。本文進一步將預(yù)訓(xùn)練主干擴展到語義分割任務(wù),以評估其有效性。結(jié)果如表 3 所示,使用 SAMI 預(yù)訓(xùn)練主干網(wǎng)的 Mask2former 在 ImageNet-1K 上比使用 MAE 預(yù)訓(xùn)練的主干網(wǎng)實現(xiàn)了更好的 mIoU。這些實驗結(jié)果驗證了本文提出的技術(shù)可以很好地泛化到各種下游任務(wù)。
表 4 將 EfficientSAMs 與 SAM、MobileSAM 和 SAM-MAE-Ti 進行比較。在 COCO 上,EfficientSAM-Ti 的性能優(yōu)于 MobileSAM。EfficientSAM-Ti 具有 SAMI 預(yù)訓(xùn)練權(quán)重,也比 MAE 預(yù)訓(xùn)練權(quán)重表現(xiàn)更好。
此外, EfficientSAM-S 在 COCO box 僅比 SAM 低 1.5 mIoU,在 LVIS box 上比 SAM 低 3.5 mIoU,參數(shù)減少了 20 倍。本文還發(fā)現(xiàn),與 MobileSAM 和 SAM-MAE-Ti 相比,EfficientSAM 在多次點擊(multiple click)方面也表現(xiàn)出了良好的性能。
表 5 展示了零樣本實例分割的 AP、APS、APM 和 APL。研究者將 EfficientSAM 與 MobileSAM 和 FastSAM 進行了比較,可以看到,與 FastSAM 相比,EfficientSAM-S 在 COCO 上獲得了超過 6.5 個 AP,在 LVIS 上獲得了 7.8 個 AP。就 EffidientSAM-Ti 而言,仍然遠遠優(yōu)于 FastSAM,在 COCO 上為 4.1 個 AP,在 LVIS 上為 5.3 個 AP,而 MobileSAM 在 COCO 上為 3.6 個 AP,在 LVIS 上為 5.5 個 AP。
而且,EfficientSAM 比 FastSAM 輕得多,efficientSAM-Ti 的參數(shù)為 9.8M,而 FastSAM 的參數(shù)為 68M。
圖 3、4、5 提供了一些定性結(jié)果,以便讀者對 EfficientSAMs 的實例分割能力有一個補充性了解。
更多研究細節(jié),可參考原論文。