天天看點

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

作者:測繪學報

本篇文章為大家介紹RSPrompter: Learning to Prompt for Remote Sensing Instance Segmentation based on Visual Foundation Model (基于視覺基礎模型的遙感執行個體分割提示學習),代碼已開源。

1. 背景

借助大量的訓練資料(SA-1B),Meta AI Research 提出的基礎 "Segment Anything Model"(SAM)表現出了顯著的泛化和零樣本能力。盡管如此,SAM 表現為一種類别無關的執行個體分割方法,嚴重依賴于先驗的手動指導,包括點、框和粗略掩模。此外,SAM 在遙感圖像分割任務上的性能尚未得到充分探索和證明。

本文考慮基于 SAM 基礎模型設計一種自動化執行個體分割方法,該方法将語義類别資訊納入其中,用于遙感圖像。受prompt learning啟發,本文通過學習生成合适的Prompt來作為 SAM 的輸入。這使得 SAM 能夠為遙感圖像生成語義可辨識的分割結果,該方法稱之為 RSPrompter。本文還根據 SAM 社群的最新發展提出了幾個基于SAM的執行個體分割衍生方法,并将它們的性能與 RSPrompter 進行了比較。在 WHU Building、NWPU VHR-10 和 SSDD 資料集上進行的廣泛實驗結果驗證了所提出的方法的有效性。

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割
  • 論文:

    https://arxiv.org/abs/2306.16269

  • 代碼:

    https://github.com/KyanChen/RSPrompter

由于在超過十億個掩模上進行訓練,SAM 可以在不需要額外訓練的情況下分割任何圖像中的任何對象,展示了其在處理各種圖像和對象時顯著的泛化能力。這為智能圖像分析和了解建立了新的可能性和途徑。然而,由于其互動式架構,SAM 需要提供先驗的Prompt,例如點、框或掩模來表現為一種類别無關分割方法, 如下圖(a)所示。顯然,這些限制使 SAM 不适用于遙感圖像的全自動解譯。

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

(a)顯示了基于點、基于框、SAM 的“全圖”模式(對圖像中的所有對象進行分割)以及 RSPrompter 的執行個體分割結果。SAM 執行類别無關的執行個體分割,依賴于手動提供的先驗prompt。(b)展示了來自不同位置的點prompt、基于兩個點的prompt和基于框的prompt的分割結果。prompt的類型、位置和數量嚴重影響 SAM 的結果。

此外,我們觀察到遙感圖像場景中的複雜背景幹擾和缺乏明确定義的物體邊緣對 SAM 的分割能力構成重大挑戰。SAM 很難實作對遙感圖像目标的完整分割,其結果嚴重依賴于prompt類型、位置和數量。在大多數情況下,精細的手動prompt對于實作所需效果至關重要,如上圖(b)所示。這表明 SAM 在應用于遙感圖像的執行個體分割時存在相當大的限制。

為了增強基礎模型的遙感圖像執行個體分割能力,本文提出了RSPrompter,用于學習如何生成可以增強 SAM 架構能力的prompt。本文的動機在于 SAM 架構,其中每個prompt組可以通過掩碼解碼器擷取執行個體化掩碼。想象一下,如果我們能夠自動生成多個與類别相關的prompt,SAM 的解碼器就能夠産生帶有類别标簽的多個執行個體級掩碼。然而,這個過程存在兩個主要挑戰:(i)類别相關的prompt從哪裡來?(ii)應選擇哪種類型的prompt作為掩膜解碼器的輸入?

由于 SAM 是一種類别無關的分割模型,其編碼器的深度特征圖無法包含豐富的語義類别資訊。為了克服這一障礙,我們提取編碼器的中間層特征以形成Prompter的輸入,該輸入生成包含語義類别資訊的prompt。其次,SAM 的prompt包括點(前景/背景點)、框或掩膜。考慮到生成點坐标需要在原始 SAM prompt的流形中搜尋,這嚴重限制了prompt器的優化空間,我們進一步放寬了prompt的表示,并直接生成prompt嵌入,可以了解為點或框的嵌入,而不是原始坐标。這種設計還避免了從高維到低維再傳回到高維特征的梯度流的障礙,即從高維圖像特征到點坐标,然後再到位置編碼。

本文還對 SAM 模型社群中目前進展和衍生方法進行了全面的調查和總結。這些主要包括基于 SAM 骨幹網絡的方法、将 SAM 與分類器內建的方法和将 SAM 與檢測器結合的技術。

2. 方法

2.1 SAM模型

SAM 是一個互動式分割架構,它根據給定的prompt(如前景/背景點、邊界框或掩碼)生成分割結果。它包含三個主要元件:圖像編碼器、prompt編碼器和掩膜解碼器。SAM 使用基于 Vision Transformer (ViT)的預訓練掩碼自編碼器将圖像處理成中間特征,并将先前的prompt編碼為嵌入Tokens。随後,掩膜解碼器中的交叉注意力機制促進了圖像特征和prompt嵌入之間的互動,最終産生掩膜輸出。該過程可以表達為:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

2.2 SAM 的執行個體分割擴充

除了本文中提出的 RSPrompter 之外,還介紹了其他三種基于 SAM 的執行個體分割方法進行比較,如下圖(a)、(b) 和 (c) 所示。本文評估了它們在遙感圖像執行個體分割任務中的有效性并啟發未來的研究。這些方法包括:外部執行個體分割頭、分類掩碼類别和使用外部檢測器,分别稱為SAM-seg、SAM-cls 和 SAM-det。

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

2.2.1 SAM-seg

SAM-seg利用了 SAM 圖像編碼器存在的知識,同時保持編碼器不變。它從編碼器中提取中間層特征,使用卷積塊進行特征融合,然後使用現有的執行個體分割(Mask R-CNN和 Mask2Former)執行執行個體分割任務。這個過程可以表示為:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

2.2.2 SAM-cls

在 SAM-cls 中,首先利用 SAM 的“全圖像”模式來分割圖像中的所有潛在執行個體目标。其實作方法是在整個圖像中均勻分布點并将每個點視為執行個體的prompt輸入。在獲得圖像中所有執行個體掩碼後,可以使用分類器為每個掩碼配置設定标簽。這個過程可以描述如下:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

為了便捷,本文直接使用輕量級的 ResNet18 來标記掩碼。其次,可以利用預訓練的 CLIP 模型,使 SAM-cls 能夠在不進行額外訓練的情況下運作以達到零樣本的效果。

2.2.3 SAM-det

SAM-det 方法更加簡單直接,已經被社群廣泛采用。首先訓練一個目标檢測器來識别圖像中所需的目标,然後将檢測到的邊界框作為prompt輸入到 SAM 中。整個過程可以描述為:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

2.3 RSPrompter

2.3.1 概述

上圖(d)展示了所提出的RSPrompter的結構,我們的目标是訓練一個面向SAM的prompter,可以處理測試集中的任何圖像,同時定位對象,推斷它們的語義類别和執行個體掩碼,可以表示為以下公式:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

圖像通過當機的SAM圖像編碼器處理,生成Fimg和多個中間特征圖Fi。Fimg用于SAM解碼器獲得prompt-guided掩碼,而Fi則被一個高效的特征聚合和prompt生成器逐漸處理,以擷取多組prompt和相應的語義類别。為設計prompt生成器,本文采用兩種不同的結構,即錨點式和查詢式。

2.3.2 特征聚合器

SAM是基于prompt的類别無關的分割模型,為了在不增加prompter計算複雜度的情況下獲得語義相關且具有區分性的特征,本文引入了一個輕量級的特征聚合子產品。如下圖所示,該子產品學習從SAM ViT骨幹網絡的各種中間特征層中表示語義特征,可以遞歸地描述為:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割
RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

2.3.3 錨點式Prompter

架構:首先使用基于錨點的區域提議網絡(RPN)生成候選目标框。接下來,通過RoI池化擷取來自位置編碼過的特征圖的單個對象的視覺特征表示。從視覺特征中派生出三個感覺頭:語義頭、定位頭和prompt頭。語義頭确定特定目标類别,而定位頭在生成的prompt表示和目标執行個體掩碼之間建立比對準則,即基于定位的貪心比對。prompt頭生成SAM掩碼解碼器所需的prompt嵌入。整個過程如下圖所示,可以用以下公式表示:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割
RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

損失:該模型的損失包括RPN網絡的二進制分類損失和定位損失,語義頭的分類損失,定位頭的回歸損失以及當機的SAM掩碼解碼器的分割損失。總損失可以表示為:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

2.3.4 查詢式Prompter

架構:錨點式Prompter相對複雜,涉及到利用邊界框資訊進行掩碼比對和監督訓練。為了簡化這個過程,提出了一個基于查詢的Prompter,它以最優傳輸為基礎。查詢式Prompter主要由輕型Transformer編碼器和解碼器組成。編碼器用于從圖像中提取進階語義特征,而解碼器則通過與圖像特征進行attention互動,将預設的可學習查詢轉換為SAM所需的prompt嵌入。整個過程如下圖所示,可以表示為:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割
RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

損失:查詢式Prompter的訓練過程主要涉及兩個關鍵步驟:(i)将由SAM掩碼解碼器解碼的掩碼與真實執行個體掩碼進行比對;(ii)随後使用比對标簽進行監督訓練。在執行最優傳輸比對時,我們定義考慮預測的類别和掩碼的比對成本,如下所示:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

一旦每個預測執行個體與其相應的真實值配對,就可以應用監督項。這主要包括多類分類和二進制掩碼分類,如下所述:

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

3. 實驗

在本文中使用了三個公共的遙感執行個體分割資料集:WHU建築提取資料集,NWPU VHR-10資料集和SSDD資料集。WHU資料集是單類建築物目标提取分割,NWPU VHR-10是多類目标檢測分割,SSDD是SAR船隻目标檢測分割。使用 mAP 進行模型性能評價。

3.1 在WHU上的結果

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割
RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

3.2 在NWPU上的結果

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割
RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

3.3 在SSDD上的結果

RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割
RSPrompter:遙感圖像執行個體分割利器,基于SAM實作自動分割

4. 總結

在本文中,我們介紹了RSPrompter,這是一種用于遙感圖像執行個體分割的prompt learning方法,利用了SAM基礎模型。RSPrompter的目标是學習如何為SAM生成prompt輸入,使其能夠自動擷取語義執行個體級掩碼。相比之下,原始的SAM需要額外手動制作prompt,并且是一種類别無關的分割方法。RSPrompter的設計理念不局限于SAM模型,也可以應用于其他基礎模型。基于這一理念,我們設計了兩種具體的實作方案:基于預設錨點的RSPrompter-anchor和基于查詢和最優傳輸比對的RSPrompter-query。此外,我們還調查并提出了SAM社群中針對此任務的各種方法和變體,并将它們與我們的prompt learning方法進行了比較。通過消融實驗驗證了RSPrompter中每個元件的有效性。同時,三個公共遙感資料集的實驗結果表明,我們的方法優于其他最先進的執行個體分割技術,以及一些基于SAM的方法。

關注我們

如果有其他問題,請背景留言!

繼續閱讀