[論文筆記] CANet: Class-Agnostic Segmentation Networks with Iterative Refinement and Attentive Few-Shot Learning
說在前面
歡迎大傢關註我的專欄,順便點個贊~~~
個人觀點:
- DCM + IOM + Attention
- 用候選框的來做效果也很好,輸入性能上不如分割蒙版的,但是註釋成本低
CVPR 2019,原文鏈接:https://arxiv.org/abs/1903.02351v1
官方開源代碼:https://github.com/icoz69/CaNet
本文作於2020年8月17日。
摘要
quad 深度卷積神經網絡和大規模標簽圖像數據集推動瞭語義分割的最新進展。然而,用於按像素分割的數據標記是乏味且昂貴的。此外,訓練有素的模型隻能在一組預定義的類中進行預測。
quad 在本文中,我們介紹瞭CANet,這是一個與類無關的分割網絡,該網絡在隻有少量帶註釋的圖像的情況下對新類執行瞭幾次few-shot分割。我們的網絡包含一個兩分支密集比較模塊,該模塊在support圖像和query圖像之間執行多級特征比較,以及一個迭代優化模塊,該迭代優化模塊迭代地優化預測結果。此外,我們引入瞭一種註意力機制,可以在k-shot學習設置下有效融合來自多個支持示例的信息。
quad 在PASCAL VOC 2012上進行的實驗表明,我們的方法在1-shot分割中的IoU為55.4%,在5-shot分割中的IoU為57.1%,比最新方法高出14.6%和13.2%。
1. 引言
quad 深度卷積神經網絡在許多視覺理解任務中取得瞭重大突破,包括圖像分類、對象檢測和語義分割。一個關鍵的原因是大規模圖像數據集(如ImageNet)的可用性,這些數據集可以訓練深度模型。但是,數據標記是昂貴的,特別是對於密集的預測任務,例如語義分割和實例分割。除此之外,訓練模型後,很難將模型應用於預測新類別。與機器學習算法相比,人類僅需看幾個例子就可以輕松地從圖像中分割出一個新概念。人與機器學習算法之間的鴻溝激發瞭一次few-shot學習的研究,該學習旨在學習一種模型,該模型可以很好地推廣到帶有稀缺標簽訓練數據的新類別。
quad 在本文中,我們承擔瞭few-shot語義分割的任務,該語義分割僅使用一些帶註釋的訓練圖像對新類進行分割。關於此任務的先前工作遵循兩分支結構的設計,該結構包括一個support分支和一個query分支。Support分支旨在從Support set中提取信息,以指導Query分支中的分割。我們還在框架中采用瞭兩分支設計,以解決few-shot分割問題。
quad 我們的網絡包括一個兩分支的密集比較模塊,其中一個共享的特征提取器從query集和support集中提取表示形式以進行比較。密集比較模塊的設計從圖像分類任務的度量學習中獲得啟發,其中距離函數評估圖像之間的相似性。但是,與每個圖像都有標簽的圖像分類不同,圖像分割需要對具有結構化表示的數據進行預測。很難直接將度量學習應用於密集的預測問題。為瞭解決這個問題,一種簡單的方法是在所有像素對之間進行比較。但是,圖像中有數百萬個像素,所有像素對的比較需要大量的計算成本。相反,我們旨在從支持圖像中獲取全局表示以進行比較。事實證明,全局圖像功能在分割任務中很有用,可以通過全局平均池輕松實現。在這裡,為瞭隻關註已分配的類別,我們在前景區域上使用全局平均池化來過濾掉不相關的信息。然後將全局特征與query分支中的每個位置進行比較,這可以看作是度量學習方法的一種密集形式。
quad 在few-shot設置下,網絡應該能夠處理訓練期間從未見過的新類別。因此,我們旨在從CNN中挖掘可轉移的表示形式以進行比較。如在特征可視化工作的相關資料中所觀察到的,較低層中的特征與低級提示有關,例如,邊緣和顏色,而較高層中的特征與對象級概念(如類別)有關。我們專註於可能構成看不見的類共享的對象部分的中級功能。例如,如果CNN在模型車上訓練模型時學習瞭與車輪相關的特征,則該特征對於在新的汽車類(例如卡車和公共汽車)上進行特征比較也可能有用。我們在CNN中提取多個表示形式,以進行比較。
quad 由於同一類別中的外觀存在差異,因此來自同一類別的對象隻能共享一些相似的特征。但是,這給出瞭對象在哪裡的重要線索。在半自動分割文獻中,為與類無關的分割提供瞭弱註釋,例如,具有單擊或隨意註釋的交互式分割以及具有邊界框或極點先驗的實例分割。在訓練過程中學習瞭用於定位對象區域的可轉讓知識。受半自動分割任務的啟發,鑒於先驗的密集比較結果,我們希望逐步將對象與背景區分開。我們提出瞭一個迭代優化模塊(IOM),該模塊學習迭代優化預測結果。修正以循環形式執行,將密集的比較結果和預測的蒙版發送到IOM以進行優化,然後將輸出循環發送到下一個IOM。經過幾次修正的迭代,我們的密集比較模塊能夠生成細粒度的分割圖。在每個IOM內部,我們采用殘差連接以在最後的迭代步驟中有效地合並預測的蒙版。下圖顯示瞭我們用於one-shot分割的網絡的概述。
quad 上圖是我們所提出的用於one-shot分割的網絡概述。我們的框架由一個密集比較模塊(DCM)和一個迭代優化模塊(IOM)組成。隻要給出一張帶註釋的訓練圖像,我們的網絡就可以用新的類別分割測試圖像並迭代地優化結果。
quad K-shot分割的先前方法基於1-shot模型。他們使用不可學習的融合方法來融合單個1-shot 的結果,例如對1-shot預測或中間特征取平均值。取而代之的是,我們采用一種註意力機制來有效融合來自多個support樣本的信息。
quad 為瞭進一步減少針對few-shot分割的標記工作,我們探索瞭一個新的測試設置:我們的模型使用帶邊界框的support集在query圖像中執行分割。我們對PASCAL VOC 2012數據集和COCO數據集進行瞭全面的實驗,以驗證我們網絡的有效性。 本文的主要貢獻概述如下:
- 我們開發瞭一種新穎的兩分支密集比較模塊,該模塊可以有效利用CNN的多個級別的特征表示來進行密集特征比較;
- 我們提出瞭一個迭代優化模塊,以迭代方式優化預測結果。迭代修正的能力可以推廣到不可見的類,隻需少量學習即可生成細粒度的分割圖;
- 我們采用一種註意力機制,以在k-shot設置中有效融合來自多個support示例的信息,其性能優於1-shot結果的不可學習的融合方法;
- 我們證明瞭給定的支持集帶有弱註解(即邊界框),我們的模型仍然可以達到與昂貴的像素級帶註釋的支持集相比可比的性能,這進一步減少瞭新類別對few-shot分割的標記工作量;
- 在PASCAL VOC 2012數據集上進行的實驗表明,我們的方法在1-shot分割中的mIoU得分達到55.4%,在5-shot分割中的mIoU得分達到57.1%,分別比最新結果高出14.6%和13.2%。
2. 相關工作
語義分割:語義分割是將圖像中的每個像素分類為一組預定義類別的任務。最先進的方法基於完全卷積網絡(FCN),該網絡通常采用經過預訓練以進行分類的卷積神經網絡(CNN)作為主幹架構。為瞭適應密集預測的任務,將全連接層替換為可預測每個像素標簽的卷積層。為瞭捕獲抽象的特征表示,CNN采用連續的池化操作或大步卷積以降低特征圖的空間分辨率。但是,這與輸出應該是高分辨率的密集預測任務沖突。為瞭平衡網絡的輸出分辨率和感受野,經常在密集的預測任務中使用空洞卷積。空洞卷積消除瞭最後幾層的下采樣操作,並在卷積濾波器中插入瞭孔,以擴大感受野。在我們的模型中,我們采用瞭空洞卷積來維持空間分辨率。在完全監督的分割中,訓練FCN模型需要大量昂貴的像素級帶註釋的圖像,並且一旦訓練瞭模型,就無法對新類別執行分割。另一方面,我們的模型可以推廣到任何新類別,僅需幾個註釋示例即可。
Few-shot Learning:Few-shot Learning旨在學習可轉移的知識,這些知識可以普遍地用於帶有稀缺標簽訓練數據的新類別。關於Few-shot分類,存在許多表述,包括帶有記憶的遞歸神經網絡、學習以微調模型、網絡參數預測和度量學習。基於度量學習的方法可以在Few-shot分類任務中實現最先進的性能,並且具有快速且以前饋方式進行預測的特點。我們的工作與Relation Network最相關。Relation Network元學習深度距離度量標準以比較圖像並計算相似度得分以進行分類。該網絡由生成圖像表示的嵌入模塊和比較嵌入並輸出相似度得分的關聯模塊組成。這兩個模塊都是卷積運算的形式。我們網絡中的密集比較模塊可以看作是關系網絡的擴展,以密集的形式處理分割任務。
Few-shot語義分割:以前關於Few-shot語義分割的工作采用兩分支結構。Shaban等人首先在語義分割上采用瞭few-shot學習,support分支直接預測query分支中最後一層的權重以進行分割。在一些工作中,support分支生成嵌入,該嵌入與query分支融合為附加特征。我們的網絡還遵循兩分支設計。但是,與先前的工作不同(兩個分支具有不同的結構),我們網絡中的兩個分支共享相同的骨幹網絡。先前方法中的模型著重於1-shot設置,並且將1-shot擴展為k-shot時,它們將1-shot方法獨立地應用於每個support示例,並使用不可學習的融合方法在圖像上融合各個特征級別的預測結果。例如,Shaban等人建議使用邏輯OR運算來融合各個預測的蒙版,而Rakelly等人則對由不同support示例生成的support分支中的嵌入進行平均。相反,我們通過註意力機制采用瞭一種可學習的方法,可以有效地融合來自多個support示例的信息。
3. 任務表述
quad 假設我們的模型是在具有類集 C_{train} 的數據集上進行訓練的,我們的目標是使用經過訓練的模型對具有新的類 C_{test} 的不同數據集進行預測,其中隻有幾個帶註釋的示例可用。直觀地,我們訓練模型具有以下能力:對於新的類 cnotin C_{train} ,我們的模型能夠在僅看到該類的幾張圖片時從圖像中分割出該類。 訓練模型後,參數將被固定,並且在新數據集上進行測試時無需優化。
我們將訓練和測試與范式保持一致,以應對少數情況。具體來說,給定k-shot學習任務,每次都這樣構建樣本集合的:
- Support (training)集合 S= {(x^i_s, y^i_s(c))}^k_{i=1} ,其中RGB圖像為 x^i_s in R^{H_i×W_i×3} , c 類別的二分類mask為 y^i_s(c)in R^{H_i×W_i} ;
- Query (test)集合 Q = {x_q, y_q(c)} ,其中 x_q 是被查詢的圖片, y_q(c) 是對於被查詢的圖片中類別 c 的GT mask。
quad 模型的輸入是Support集S和Query圖像 x_q ,輸出是查詢圖像中 c 類的預測mask hat{y}_q(c) 。由於一個查詢圖像 x_q 中可能有多個類別,因此當分配瞭不同的標簽c時,GT查詢mask將有所不同。
4. 方法
quad 我們提出瞭一個新的框架,解決瞭few-shot語義分割問題。我們首先在不影響一般性的情況下以1-shot的模式說明模型。我們的網絡由兩個模塊組成:密集比較模塊(DCM)和迭代優化模塊(IOM)。DCM在support示例和query示例之間執行密集特征比較,而IOM執行對預測結果的迭代優化。下圖(a)顯示瞭我們框架的概述。為瞭將我們的網絡從1-shot學習擴展到k-shot學習,我們采用一種註意力機制來融合來自不同support示例的信息。此外,我們提出瞭一種新的測試設置,該設置使用帶有邊界框註釋的支持圖像進行k-shot分割,下面將對此進行描述。
4.1 Dense Comparison Module
quad 我們開發瞭一個兩分支密集比較模塊,該模塊將查詢圖像中的每個位置與supoort示例進行密集比較,如(b)所示。該模塊由兩個子模塊組成:提取特征的特征提取器和執行特征比較的比較模塊。
特征提取器:特征提取器旨在從CNN中獲取不同級別的表示,以進行特征匹配。我們使用ResNet-50作為特征提取器的主幹。就像之前的幾次分割工作一樣,骨幹模型已在Imagenet上進行瞭預訓練。正如在CNN特征可視化工作中所觀察到的那樣,較低層中的特征通常與低級提示有關,例如邊緣和顏色,而較高層中的特征則與對象級概念(如對象類別)有關。在few-shot情況下,我們的模型應適應任何看不見的類。因此,我們不能假設在訓練期間學習瞭與看不見的類別相對應的特征。相反,我們專註於可能構成看不見的類共享的對象部分的中級特征。ResNet中的圖層根據空間分辨率分為4個塊,這些分辨率自然對應於4個不同的表示級別。我們選擇由block2和block3生成的特征進行特征比較和在block3之後放棄圖層。我們在block2之後的各層中使用空洞卷積來維持特征圖的空間分辨率。block2之後的所有特征圖的固定大小為輸入圖像的1/8。將block2和block3之後的特征進行級聯,並通過3×3卷積將其編碼為256維。我們將在第5.1.3節中研究用於比較的特征選擇。Support分支和Query分支都使用相同的特征提取器。在訓練期間,我們保持ResNet中的權重固定不變。
密集比較:由於支持圖像中可能有多個對象類別和混亂的背景,因此我們希望獲取僅與目標類別相對應的嵌入內容以進行比較。在這裡,我們使用前景區域上的全局平均池化將特征圖壓縮為特征向量。事實證明,全局圖像特征在分割任務中很有用,可以通過全局平均池化輕松實現。在我們的網絡中,我們僅對前景區域上的特征進行平均以濾除不相關的區域。 從Support集獲得全局特征向量後,我們將向量與query分支生成的特征圖中的所有空間位置連接起來。此操作旨在將query分支中的所有空間位置與來自support分支的全局特征向量進行比較。然後,級聯特征圖經過另一個具有256 3×3卷積濾波器的卷積塊進行比較。
quad 為瞭有效實現,我們首先將二進制support的mask雙線性降采樣到特征圖的相同空間大小,然後對特征圖應用逐元素乘法。結果,屬於背景區域的特征變為零。然後,我們采用全局求和池,並將結果向量除以前景區域,以獲得平均特征向量。我們將向量上采樣到查詢特征的相同空間大小,並將它們串聯起來進行密集比較。
4.2 Iterative Optimization Module
quad 由於同一類別中的外觀存在差異,因此密集比較隻能匹配對象的一部分,這可能不足以在圖像中準確分割整個對象。我們觀察到,初始預測是有關對象粗略位置的重要線索。 我們提出瞭一個迭代優化模塊來迭代地優化預測結果。 結構在(c)中示出。
quad 該模塊的輸入是由密集比較模塊生成的特征圖和上次迭代的預測蒙版。將特征映射圖與預測的蒙版直接連接為額外的通道會導致特征分佈不匹配,因為第一次正向通過沒有預測的蒙版。相反,我們建議以殘差形式整合預測的蒙版: M_t = x +F(x, y_{t−1})\ quad 其中 x 是密集比較模塊的輸出特征; y_ {t-1} 是最後一個迭代步驟的預測蒙版,而 M_t 是殘差塊的輸出。函數 F(·) 是特征 x 和預測蒙版 y_{t-1} 的拼接,後跟兩個具有256個濾波器的3×3卷積塊。然後,我們添加兩個具有相同數量卷積濾波器的原始殘差塊。 最重要的是,我們使用Deeplab V3中提出的ASPP來捕獲多尺度信息。該模塊由四個並行分支組成,這些分支包括三個3×3卷積,分別具有6、12和18的膨脹系數以及1×1卷積。1×1卷積是通過全局平均池化實現的圖像級特征。然後,將生成的張量雙線性上采樣至原始空間大小。來自4個分支的輸出特征被級聯並通過具有256個濾波器的另一個1×1卷積進行融合。最後,我們使用1×1卷積來生成最終的蒙版,其中包括背景蒙版和前景蒙版。我們使用softmax函數對每個位置的分數進行歸一化,以輸出前景和背景的置信度圖。然後將置信度圖饋送到下一個IOM以進行優化。 通過將置信度圖雙線性上采樣到查詢圖像的相同空間大小並根據置信度圖對每個位置進行分類,可以實現最終結果。
quad 在訓練時,為避免迭代優化模塊過度擬合預測蒙版,我們可以選擇在最後一個時期使用預測蒙版和空蒙版作為IOM的輸入。預測蒙版 y_{t-1} 重置為空蒙版,概率為 p_r 。 這可以看作是整個蒙版的缺失,是標準缺失的擴展。這可以看作是整個蒙版的dropout,是標準dropout的擴展。與分割文獻中先前的迭代細化方法相比,我們的方法將細化方案集成到具有殘差連接的模型中,以便整個模型可以以前饋方式運行並接受端到端訓練。
4.3 Attention Mechanism for k-shot Segmentation
quad 為瞭在k-shot設置中有效地合並信息,我們使用一種註意力機制來融合由不同support示例生成的比較結果。具體來說,我們添加瞭一個與DCM中的密集比較卷積並行的註意力模塊。
quad 註意力分支由兩個卷積塊組成。第一個具有256個3×3過濾器,然後是3×3的最大池化。第二個有一個3×3卷積,然後是全局平均池化。註意力分支的結果用作權重 lambda 。然後,通過softmax函數對所有support示例的權重進行歸一化: hat{lambda_i}=frac{e^{lambda_i}}{sum^k_{j=1}e^{lambda_j}}tag{1} quad 最終輸出是由不同support樣本生成的特征的加權總和。
4.4 Bounding Box Annotations
quad 由於我們密集比較模塊的本質是將query圖像中的每個位置與support示例提供的全局表示進行密集比較,因此,我們探索瞭一種使用邊界框的support集註釋的新形式。與逐像素註釋相比,邊界框註釋使用矩形框來表示對象區域,該對象區域經常在對象檢測任務中使用。 標記邊界框註釋比按像素標記便宜得多。我們通過將整個邊界框區域視為前景來放寬support集。我們在此設置下測試我們的模型,以評估我們框架的功能。
5. 實驗
quad 為瞭評估我們提出的方法的性能,我們在PASCAL VOC 2012數據集和COCO數據集上進行瞭廣泛的實驗。 我們的網絡經過端到端的訓練。損失函數是輸出映射中所有空間位置上的交叉熵損失的平均值。Nvidia Tesla P100 GPU上的PyTorch庫使用SGD對200個epoch進行瞭網絡訓練。我們將學習率設置為0.0025,並將概率pr設置為0.7。我們使用batch_size=4在PASCAL-5i上進行訓練,在COCO上進行8次訓練。在推理時,我們會在初始預測後進行4次迭代優化預測結果。
評估指標:以前的工作中評估指標存在細微差異。Shaban等人測量每個類別的前景IoU,並使用所有類別的meanIoU報告結果。在另外一些工作中,他們忽略圖像類別,並計算所有測試圖像(FB-IoU)上的前景IoU和背景IoU的平均值。由於以下原因,我們為分析實驗選擇瞭meanIoU評估指標:
- 不同類別的測試樣本數量不平衡(例如,綿羊類為49,而人為378)。忽略圖像類別可能導致偏向具有更多圖像的類。同樣,我們可以使用meanIoU評估指標來觀察模型在不同類別中的有效性;
- 由於大多數對象相對於整個圖像較小,即使模型無法分割任何對象,背景IoU仍然可能很高,從而無法反映模型的功能;
- 前景IoU在二分類分割文獻(例如,視頻分割和交互式分割)中更常用。
quad 盡管如此,我們仍將我們的結果與兩種評估指標下的先前工作進行瞭比較。
5.1 PASCAL-5i
quad PASCAL-5i是用於few-shot語義分割的數據集。它建立在PASCAL VOC 2012的圖像和SDS的附加註釋的基礎上。PASCAL VOC的20個對象類別平均分為4個部分,其中3個部分用於訓練,1個部分用於測試。在測試時,在測試分組中隨機抽取瞭1000對support查詢。
5.1.1 Comparison with the State-of-the-art Methods
quad 在兩種評估指標下,我們的模型均明顯優於最新方法。特別是,我們的meanIoU分數在1-shot任務中提升為14.6%,在5=shot任務中提升為13.2%,優於最新結果。
5.1.2 Experiments on Bounding Box Annotations
5.2 COCO
quad COCO 2014是一個具有挑戰性的大規模數據集,其中包含80個對象類別。原始數據集分別包含82783和40504幅圖像,用於訓練和驗證。直接在原始數據集上進行實驗對時間和計算的要求很高。相反,我們選擇原始數據集的一個子集來評估我們的模型並對該主題進行進一步研究。我們選擇40個訓練類別,20個驗證類別和20個測試類別,分別包含39107(訓練),5895(驗證)和9673(測試)樣本。訓練圖像是從COCO訓練集中選擇的,而驗證和測試圖像是從COCO驗證集中選擇的。
6. 總結
quad 我們介紹瞭CANet,這是一種新穎的與類別無關的分割網絡,使用瞭few-shot learning。密集比較模塊利用CNN中的多個級別的特征來執行密集特征比較,而迭代優化模塊則學習迭代地修正預測結果。事實證明,我們解決k-shot問題的註意力機制比不可學習的方法更有效。全面的實驗證明瞭我們框架的有效性,並且其性能明顯優於之前的所有工作。
-
扫码下载安卓APP
-
微信扫一扫关注我们微信扫一扫打开小程序手Q扫一扫打开小程序
-
返回顶部