第一個針對「Segment Anything」大模型的域適應策略來了!相關論文已被CVPR 2024 接收。
##大語言模型(LLMs)的成功激發了電腦視覺領域探索分割基礎模型的興趣。這些基礎分割模型通常透過 Prompt Engineer 來進行 zero/few 影像分割。其中,Segment Anything Model(SAM)是最先進的影像分割基礎模型。
但是最近的研究表明,SAM 在多種下游任務中並非具有很強的穩健性與泛化性,例如在醫學影像、偽裝物體、添加干擾的自然影像等領域表現較差。這可能是由於訓練資料集與下游的測試資料集之間存在較大的域差異(Domain Shift)所致。因此,一個非常重要的問題是,如何設計領域自適應方案,使 SAM 在面對現實世界和多樣化的下游任務中更加穩健? 將預先訓練好的SAM 適應到下游任務主要面臨三個挑戰:
- 首先,傳統的無監督域自適應範式需要來源資料集和目標資料集,由於隱私和運算成本較為不可行。
- 其次,對於域適應,更新所有權重通常性能更好,同時也受到了昂貴的記憶體成本的限制。
- 最後,SAM 可以針對不同種類、不同顆粒度的提示Prompt,展現出多樣化的分割能力,因此當缺乏下游任務的提示訊息時 ,無監督適應將非常具有挑戰性。
圖 1 SAM 在大規模資料中中進行預先訓練,但有一般性問題。我們使用弱監督的方式在各種下游任務上對SAM 進行自適應#為了應對上述挑戰,我們提出了一種具有錨點正規化和低秩微調的弱監督自訓練架構,以提高自適應的穩健性和運算效率。 具體而言,我們首先採用無源域的自訓練策略,從而避免對來源資料的依賴。自訓練產生偽標籤,用於監督模型的更新,但容易受到錯誤偽標籤的影響,我們引入凍結的 source model 作為錨定網路,以規範模型的更新。 為了進一步減少更新完整模型權重的高計算成本,我們對編碼器應用低秩權重分解,並透過低秩快捷路徑進行反向傳播。 最後,為了進一步提高被動域自適應的效果,我們在目標域引入了弱監督(weak supervise),例如稀疏的點註釋,以提供更強的域適應訊息,同時這種弱監督與SAM 中的提示編碼器自然相容。 借助弱監督作為 Prompt,我們獲得了更局部、更明確的自訓練偽標籤。經過調整的模型在多個下游任務上表現出了更強的泛化能力。 #1. 我們受到SAM 在下游任務中泛化問題的啟發,提出了一種與任務無關且無需來源資料的解決方案,透過自訓練來適應SAM。 2. 我們利用弱監督,包括 box、point 等標籤,以提高自適應效果。這些弱監督標籤與 SAM 的提示編碼器完全相容。 3. 我們對 5 種類型的下游實例分割任務進行了大量實驗,證明了所提出的弱監督自適應方法的有效性。
- 論文網址:https://arxiv.org/pdf/2312.03502.pdf
- 計畫網址:https://github.com/Zhang- Haojie/WeSAM
- 論文標題:Improving the Generalization of Segmentation Foundation Model under Distribution Shift via Weakly Supervised Adaptation
#1.Segment Anything ModelSAM 主要由三個元件構成:影像編碼器(ImageEncoder)、提示編碼器(PromptEncoder)、和解碼器(MaskDecoder)。 影像編碼器使用MAE 進行預訓練,整個SAM 在擁有11 億標註的訓練集SA-1B 上進一步進行微調,訓練時使用了Focal loss 和Dice loss 的組合。推理時,測試圖片 x 首先由影像編碼器編碼,然後給定提示 Prompt,輕量級的解碼器將進行三個等級的預測。
圖2 所提出的具有錨定網絡正則化和對比損失正則化的自訓練架構針對未提供標記的目標數據集DT={xi} 和預訓練的分割模型。我們採用了 student-teacher 架構進行自我訓練。如圖 2 所示,我們維護三個編碼器網絡,即 anchor model、student model、teacher model,其中 student 和 teacher model 共享權重。 具體來說,對於每個樣本xi,應用一個隨機的弱資料增強作為anchor 和teacher model 的輸入,應用一個隨機的強資料增強作為student model的輸入,三個編碼器網路編碼產生三個特徵圖。 在解碼器網路中,給定一定數量 Np 的提示 prompt,例如 box、point 或 coarse mask,將推理出一組實例分割的 masks。 基於上述知識,我們以下將詳細闡述用於自訓練的三組最佳化目標。 我們先使用與訓練SAM 時相同的損失函數作為自訓練優化目標來更新student/teacher model。自訓練廣泛應用於半監督學習,最近也被證明了對被動域自適應非常有效。具體而言,我們使用 teacher model 產生的預測結果,作為偽標籤(Pseudo label),並使用 Focal loss 和 Dice loss 來監督 student 的輸出。
僅使用自訓練損失進行網路訓練容易受到teacher 網路預測的錯誤偽標籤累積的影響,即所謂的確認偏誤。觀察也表明,僅使用自訓練長時間迭代後表現會下降。現有的被動域自適應方法通常會採用額外的約束來防止自訓練的負面影響,例如對預測進行均勻分佈。 我們透過anchor 損失來進行正規化,如公式3 所示,分別最小化了anchor model 與student/teacher model 之間的Dice loss。凍結的 anchor model 作為從源域(source domain)繼承的知識,不鼓勵源模型和自訓練更新模型之間出現過大的偏差,可以防止模型崩潰。
以上兩個訓練目標是在解碼器的輸出空間中執行的。實驗部分揭示出,更新編碼器網路是適應 SAM 最有效的方法,因此有必要直接對從編碼器網路輸出的特徵應用正規化。具體如圖 3 所示,我們根據 anchor 和 teacher 分支中預測 mask 從特徵圖中裁剪出每個實例的特徵。
我們進一步定義對比損失中的正負樣本對,正樣本對是由兩個分支中使用相同的prompt 對應的實例特徵構建,而負樣本對是由不同prompt 對應的實例特徵來建構的。最終的對比損失如下所示,其中 是溫度係數。
#我們將上述三個損失函數組合成最終的Source-Free 自適應損失。
#SAM 分割需要Prompt 輸入來指示出待分割的目標對象,但可能會存在顆粒度模糊的問題。 Prompt 工程可以以完全自動化的方式實現,也可以透過人工互動實現。 #我們先使用網格密集取樣點作為prompt 輸入,透過Anchor model 產生初始階段分割的masks,剔除IoU 和穩定性分數低的mask,然後進行非極大值抑制以獲得分割結果。接下來從最終的 masks 產生一組固定的 prompts,作為所有三個分支的 prompt 輸入。因此,三個網路分割輸出的 mask 長度相同,並且具有精確的一對一對應關係。 #儘管可以透過在圖像上使用網格採樣來獲得prompts,並過濾掉品質低和重複的mask 來進行自動分割。但這些分割品質相對較差,可能包含許多誤報預測,且顆粒度不明確。由此產生的 prompt 品質參差不齊,使得自訓練效果較差。 因此,借鏡先前的弱監督域自適應工作,我們提出使用三種弱監督方式,包括邊界框box、稀疏點標註point 和粗分割多邊形coarse mask。在 SAM 中,這些弱監督方式與 prompt 輸入完美匹配,可無縫整合弱監督以適應 SAM。 #基礎模型龐大的編碼器網路使得更新所有模型的權重變得異常困難。然而,許多現有研究表明,更新編碼器網路權重是調整預訓練模型的有效方法。 為了能夠更有效且低成本地更新編碼器網絡,我們選擇了一種計算友好的低秩更新方法。對於編碼器網路中的每個權重 θ,我們使用低秩近似 ω = AB,並設定一個壓縮率 r。只有 A 和 B 透過反向傳播進行更新以減少記憶體佔用。在推理階段,透過將低秩近似和原始權重組合來重構權重,即 θ = θ AB。 #在實驗中,我們提供了與最先進方法的詳細比較和定性結果。最後,我們分析了各個部分的有效性以及網路的具體設計。 #在這項工作中,我們對五種不同類型的下游分割任務進行評估,其中一些與SA-1B 有明顯的分佈偏移。資料集涵蓋了清晰的自然影像、添加干擾的自然影像、醫學影像、偽裝物體和機器人影像,總共 10 種。 資料分割:每個下游資料集被分割為互不重疊的訓練集和測試集。 表 1 中列出了每種類型下游任務所評估的資料集,以及訓練和測試資料集的分割。
#Segment-Anything 模型:由於記憶體限制,我們採用ViT-B 作為編碼器網路。採用標準提示編碼器和 mask 解碼器。 Prompt 產生:訓練與評估階段的 Prompt 輸入皆由從實例分割 GT mask 計算而來,模擬人類互動作為弱監督。 具體來說,我們從整個 GT mask 的最小邊界框中提取 box。 Point 是透過在 GT mask 內隨機選擇 5 個正樣本點和 5 個 mask 外的負樣本點來建立的。 Coarse mask 是透過將多邊形擬合到 GT mask 來模擬的。 #表2、3、4、5 分別是在添加干擾的自然圖像、清晰的自然圖像、醫學圖像、偽裝物體數據集上的測試結果,完整的實驗結果可以在論文中找到。實驗證明了我們的方案在幾乎所有的下游分割資料集上都優於預訓練的 SAM 和最先進的域適應方案。
部分視覺化結果如圖4 所示,更多的視覺化結果可以在論文中找到。
我們在COCO 資料集上分析了三個自訓練最佳化目標各自的有效性,如表7 所示。表 7 中,我們也分析了所提出方法在不使用任何弱監督資訊時進行自適應的效果。
我們分析了訓練和測試使用不同類別的 prompt 的效能差異,如表 8 所示。實驗顯示我們的方案在 cross-prompt 條件下依然表現良好。
此外,我們也分析了最佳化不同模組,包括解碼器、LayerNorm 和不同的finetune 方案以及他們的組合的實驗結果,實驗證明了finetune 編碼器的LoRA 方案效果最佳。 ##################總結###################儘管視覺基礎模型可以在分割任務上表現出色,但其在下游任務中仍會存在性能不佳的情況。我們研究了 Segment-Anything 模型在多個下游影像分割任務中的泛化能力,並提出了一種基於錨點正規化和低秩微調的自訓練方法。此方法無需存取來源資料集、記憶體成本低、與弱監督自然相容,可顯著提升自適應效果。經過廣泛的實驗驗證,結果顯示我們提出的域適應方法可以顯著改善 SAM 在各種分佈遷移下的泛化能力。 ###
以上是CVPR 2024 | 分割一切模型SAM泛化能力差?域適應策略給解決了的詳細內容。更多資訊請關注PHP中文網其他相關文章!