深度聚類之Superpixel Sampling Networks

Superpixel Sampling Networks


image.png

原始文檔:https://www.yuque.com/lart/papers/ssn

本文的思想很簡單,傳統的超像素算法是一種有效的低/中級的圖像數據的表達,極大地降低了後續圖像任務的基元(image primitives)數量。但是現存的超像素算法由於使用的是最鄰近算法,一般都是不可微的,這就導致很難將它們集成到端到端的深度網絡中,所以文章就改進提出了一種可微分的超像素算法,也就是文章提出的超像素採樣網絡(Superpixel Sampling Network),這可以學習任務特定的有着靈活的損失函數的超像素,並且具有快速運行時間(runtime)。

工作介紹

超像素是通過基於低級圖像屬性對圖像像素進行分組而形成的圖像的過分割。它們提供了圖像內容感知上有意義的細分,從而減少了後續圖像處理的圖像基元的數量。由於它們的代表性和計算效率,超像素已經成爲一種既定的低/中級圖像表示,並廣泛應用於計算機視覺算法,如物體檢測,語義分割,顯着性估計,光流估計,深度估計,跟蹤等等。超像素尤其廣泛用於傳統的能量最小化框架,其中少量圖像基元極大地降低了優化複雜度。

近年來,廣泛的計算機視覺問題都開始採用深度學習。除了一些方法(例如,[Superpixel convolutional networks using bilateral inceptions,SuperCNN: A superpixelwise convolutional neural network for salient object detection,Recursive context propagation network for semantic scene labeling]),超像素幾乎不與現代深度網絡結合使用。這有兩個主要原因。

  1. 形成大多數深層結構基礎的標準卷積運算通常在規則網格上定義,並且當在不規則超像素晶格上操作時變得低效。
  2. 現有的超像素算法是不可微分的,因此在深度網絡中使用超像素使得在端到端的可訓練網絡架構中引入了不可微分的模塊。

這項工作通過提出一種新的深度可擴展的超像素分割算法來緩解第二個問題。

首先重新討論廣泛使用的簡單線性迭代聚類(SLIC)超像素算法,並通過放鬆SLIC中存在的最近鄰居約束將其轉換爲可微分算法。這種新的可微分算法允許端到端訓練,使得能夠利用強大的深度網絡來學習超像素,而不是使用傳統的手工設計特徵。這種深度網絡與可微分SLIC的結合形成了超像素採樣網絡(SSN) 的端到端可訓練超像素算法。

image.png

圖1顯示了所提出的SSN的概述。

  1. 給定的輸入圖像首先通過深度網絡產生更爲有效的特徵。
  2. 然後將這些深度特徵傳遞到可微分SLIC上
  3. SLIC執行迭代聚類
  4. 從而產生所需的超像素

整個網絡是端到端的可訓練的。SSN的可微分性允許使用靈活的損失函數來學習特定於任務的超像素。圖1顯示了一些SSN生成的超像素樣本。

與現有的超像素算法相比,所提出的SSN具有以下有利特性:

  1. 可端到端訓練
  2. 靈活且任務特定: SSN允許學習靈活的損失函數,從而學習特定於任務的超像素
  3. 當前最佳的超像素算法
  4. 有利的運行時間:SSN在運行時方面也優於當前優異的超像素算法,使其適合在大型數據集上學習,並且對實際應用也有效

相關工作

超像素算法

傳統的超像素算法可以被大致分爲基於圖的和基於聚類的方法。

  • 基於圖的方法將超像素分割問題表達爲圖劃分問題。圖的節點爲像素,圖的邊表示鄰接像素之間的連接強度。通常,通過解決離散優化問題來進行圖劃分。一些廣泛使用的算法包括下面幾種,但由於離散優化涉及離散變量,優化目標通常是不可微分的,因此難以在基於圖的方法中利用深度網絡。
    • 歸一化切割[Normalized-Cuts]
    • Felzenszwalb和Huttenlocher(FH)
    • 熵率超像素(ERS)
  • 基於聚類的方法利用傳統的聚類技術,例如用於超像素分割的k均值。廣泛使用的算法包括下面幾種,這些方法主要進行k均值聚類,但其特徵表示不同。雖然這些聚類算法需要迭代更新,但在SNIC方法[2]中提出了一種用於超像素分割的非迭代聚類方案
    • SLIC:SLIC將每個像素表示爲5維特徵(位置和Lab顏色 XY Lab特徵)
    • LSC:LSC方法將這些5維特徵投影到10維空間並在投影空間中執行聚類
    • Manifold-SLIC:使用二維流形特徵空間進行超像素聚類

本文提出的方法也是基於聚類的方法。但是,與現有技術不同,這裏利用深度網絡通過端到端的訓練框架來學習超像素聚類的功能。

正如最近的一篇調查論文[36]所詳述的,其他技術被用於超像素分割,包括分水嶺變換,幾何流,圖形切割,均值漂移和爬山算法(watershed transform, geometric flows, graph-cuts, mean-shift, and hill-climbing)。然而,這些方法都依賴於手工設計的特徵,將深度網絡融入這些技術並非易事。最新的SEAL技術[Learning superpixels with segmentation-aware affinity loss]提出了一種不可微的超像素算法通過繞過梯度來爲超像素分割學習深度特徵的方法。與我們的SSN框架不同,SEAL不是端到端可微分的。

深度聚類

受到監督任務深度學習成功的啓發,有幾種方法研究了深度網絡在無監督數據聚類中的應用。

  • 最近,Greff等人提出神經期望最大化框架,他們使用深度網絡模擬聚類標籤的後驗分佈,並展開EM程序中的迭代步驟以進行端到端訓練
  • 在另一項工作中,梯形網絡用於建模用於聚類的分層潛變量模型
  • Hershey等人提出了一種基於深度學習的聚類框架,用於分離和分割音頻信號
  • Xie等人提出了一個深度嵌入式聚類框架,用於同時學習特徵表示和聚類分配
  • 在最近的一份調查報告中,Aljalbout等人給出了基於深度學習的聚類方法的分類

在本文提出了一種基於深度學習的聚類算法。與以前的工作不同,本文的算法是針對超像素分割任務而定製的,其中使用特定於圖像的約束。此外,該框架可以輕鬆地結合其他視覺目標函數來學習任務特定的超像素表示。

基礎知識

SSN方法核心是一種可微分的聚類方法,受SLIC超像素算法啓發。這裏簡單介紹下SLIC算法。SLIC算法是最簡單最廣泛使用的超像素算法之一,它很容易實現,有着較高的運行時(runtime),並且可以生成較爲緊湊和均勻的超像素。儘管已經有數種SLIC算法的變體,在SLIC的原始形式中,SLIC是一種K均值聚類算法,針對圖像像素的五維特徵空間(XY LAB)進行聚類。

對於超像素計算的任務而言,其最終目的是要對每個像素分配一個超像素標號,假設要分成m個超像素,且給定一個圖像I,它是一個nx5的集合,有n個像素,每個像素是5維(XY LAB)向量,SLIC算法的主要操作流程如下所述。

採樣初始的m個聚類中心(超像素中心)S0,其是mx5的集合。該採樣通常在像素網格上均勻地進行,並且基於圖像梯度進行一些局部擾動。給定這些初始的超像素中心後,SLIC算法可以開始反覆迭代下面的兩步:

image.pngimage.png

  1. 像素-超像素關聯上一次迭代確定的超像素中心Hp=Si**,如上1式,這裏的D計算的是歐式距離的平方image.png。實際上就是一個聚成簇的過程。
  2. 超像素中心更新:對每個超像素簇中所有的像素的特徵進行平均,獲得簇中心,進而得到這次迭代後的聚類中心。如上式2,表示的就是這個過程。其中Zi表示第i個簇中包含的像素數量。

這兩個步驟構成了SLIC算法的核心,並且一直重複直到收斂或者達到固定次數的迭代。因爲在所有像素和超像素之間計算公式1中的距離D是耗時的,該計算通常被約束到每個超像素中心周圍的固定鄰域。最後,根據應用,有一個可選步驟,強制每個超像素簇中的像素之間的空間連接。[SLIC superpixels compared to state-of-the-art superpixel methods]

SSN(Superpixel Sampling Networks)

網絡結構

途中的箭頭是雙線性插值上採樣,多個輸入會被拼接起來送入卷積。卷積使用的都是3x3卷積,每一層輸出爲64通道,除了最後一層的輸出爲k-5,因爲要和原圖像的XYLab特徵向量進行拼接,一起生成一個k維的特徵張量集合。
k微特徵被送入兩個可微的SLIC模塊,迭代更新關聯與聚類中心v步,整個網絡端到端訓練。

可微分的SLIC

首先分析爲什麼SLIC不可以微分。仔細觀察SLIC中的所有計算,_像素-超像素關聯_的計算產生不可微分性,其涉及不可微分的最近鄰操作。這個最近鄰計算也構成了SLIC超像素聚類的核心,因此無法避免這種操作。

可微分的SLIC的關鍵在於轉換這種不可微分的最近鄰操作爲可微分的計算。由於前面的SLIC算法中的這種硬性關聯H存在不可微的特性,那麼就將其軟化,這裏有點類似於階躍函數和Sigmoid函數的關係。後者也可以看做是前者的一個軟化

這裏提出一種計算soft-associations Q(nxm)的方法。對於迭代過程中第t步的像素p和超像素i,這裏替換最近鄰操作用以下的關於距離的鐘型函數權重的形式來表達:

image.png

因爲這裏對於超像素與像素的關聯實際上就是一中距離上的關係,原本是直接限定了最近的,相當於直接截斷了整圖像素與超像素中心的距離關聯。這裏不用截斷操作。

image.png

式子4通過1加權的形式計算了新的超像素中心。這裏的image.png是一個歸一化約束,實際上就是對於Q的列歸一化,表示爲image.png,於是式子4可以寫作image.png((mxn)x(nx5))。因爲對於計算所有的像素和超像素之間的距離仍然是一件計算昂貴的事情,所以這裏進行了約束,只計算像素和9個周圍的像素,如下圖中的紅色和綠色框所示。

image.png

對於綠色框中的像素,在計算關聯的時候只考慮紅色框裏周圍的超像素。這將Q從nxm變爲了nx9,一定程度上降低了計算和存儲的消耗。在Q計算中的近似有些相似於SLIC中的最近鄰搜索。

現在,每個SLIC迭代中的計算都是完全可微分的,將這種修改後的算法稱爲可微分SLIC(_ differentiable SLIC_)。根據經驗,觀察到用可微分SLIC中的軟關聯替換SLIC中的硬關聯不會導致任何性能下降。由於這種新的超像素算法是可微分的,因此可以輕鬆地集成到任何深度網絡架構中。

Superpixel Sampling Network

可以利用深度特徵提取器而不是手工設計的超像素特徵Ip,並且端到端的對整個網絡進行訓練。換句話說,將上面的式3和4中的圖像特徵Ip替換爲深度網絡得到的k維像素特徵Fp(nxk)。將深度網絡與可微分SLIC的耦合稱爲超像素採樣網絡(SSN)。


算法1概述了SSN中的所有計算步驟。

  1. 從使用CNN的深度圖像特徵提取開始(第1行)
  2. 使用初始常規超像素網格中的平均像素特徵來初始化超像素中心(第2行)(圖2)
  3. 對於v次迭代,使用上述計算(第3-6行)迭代地更新像素-超像素關聯超像素中心**。
  4. 雖然可以直接使用軟關聯Q來執行多個下游任務,但根據應用需求,可以選擇將軟關聯轉換爲硬關聯(第7行)。
  5. 此外,與原始SLIC算法一樣,可以選擇強制跨每個超像素集羣內的像素進行空間連接。這是通過將小於特定閾值的超像素與周圍的超像素合併,然後爲每個空間連接的組件分配唯一的簇ID來實現的。
  6. 請注意,這兩個可選步驟(第7,8行)不可微分

像素和超像素表示之間的映射

對於使用超像素的一些下游應用程序,像素表示被映射到超像素表示,以及反過來。

  1. 利用提供硬聚類的傳統超像素算法,這種從像素到超像素表示的映射是通過在每個聚類內部進行平均來完成的(方程2)。
  2. 從超像素到像素表示的逆映射是通過將相同的超像素特徵分配給屬於該超像素的所有像素來完成的。我們可以使用與SSN超像素相同的像素-超像素映射,這使用了從SSN獲得的硬聚類(算法1中的第7行)。然而,由於這種硬關聯的計算是_不可微分_的,因此在集成到端到端可訓練系統時可能不希望使用硬聚類。

值得注意的是,由SSN生成的軟像素-超像素關聯也可以容易地用於像素和超像素表示之間的映射。

  1. 式4描述了從像素到超像素表示的映射。
  2. 從超像素到像素的逆映射通過乘以行歸一化的Q來計算,表示爲:image.png

因此像素-超像素特徵映射關係可以使用簡單的矩陣乘法來進行描述,並且這是可微的。

學習任務特定的超像素

端到端可訓練SSN的主要優點之一是損失函數的靈活性,可以使用它來學習任務特定的超像素表示。

與任何CNN一樣,可以將SSN與任何特定於任務的損失函數相結合,從而學習針對下游計算機視覺任務進行優化的超像素。

在這裏,專注於優化超像素的表現效率,即學習可以有效地表示場景特徵的超像素,例如語義標籤,光流,深度等。例如,如果想要學習超像素用於下游語義分割任務,期望產生遵循語義邊界的超像素。爲了優化表示效率,作者發現任務特定的重建損失和緊湊性損失的組合表現良好。

任務特定的重建損失

用超像素表示我們想要有效表示的像素屬性爲R(n×l)。例如,R可以是語義標籤(獨熱編碼後的)或光流圖。重要的是要注意,我們在測試時是不能無法獲取R,即SSN僅使用圖像數據來預測超像素。只用R來訓練,以便SSN可以學習預測適合的表示R的超像素。可以使用列標準化關聯矩陣Q,image.png將像素屬性映射到超像素上。然後使用行標準化關聯矩陣Q,image.png將得到的超像素表示映射回像素表示R*(n×1)。可以得到重建損失爲:

image.png

而這裏的L表示的是任務特定的損失函數,針對分割任務使用交叉熵函數來作爲L,使用L1範數損失來應對光流任務。這裏的Q表示的是可微分SLIC的最終迭代之後關聯矩陣Qv。爲了方便,忽略了v。

緊湊性損失

除了上面的損失,也使用了一個緊湊性損失來鼓勵超像素實現空間上的緊湊性。也就是在超像素簇內部有着更低的空間方差。

  1. 使用Ixy表示位置像素特徵。
  2. 首先將這些位置特徵使用Q映射到超像素表示。
  3. 然後使用硬關聯H替代軟關聯Q來逆映射到像素表示。
  4. 這裏通過將相同超像素位置的特徵賦給屬於該超像素的像素。

緊湊損失可以使用如下的L2損失表示:

image.png

這個損失鼓勵超像素有着更低的空間方差。

SSN的靈活性允許使用許多其他的損失函數。這份工作中使用了前面的重建損失與這裏的緊湊性損失的組合損失:

image.png

其中的係數lambda爲1e-5。

實驗細節

  1. 使用放縮過的XYLab特徵作爲SSN的輸入,其中位置和色彩特徵尺寸表示爲ypos和ycolor。
    1. ycolor的值獨立於超像素的數量,被設置爲0.26,顏色值被放縮到0~255。
    2. ypos的值依賴於超像素數量,image.png,這裏的m和n分別表示超像素和像素沿着圖像的寬和高的數量。實際中設置eta爲2.5。
  2. 訓練中使用201x201大小的圖像patch和100個超像素。
  3. 數據增強使用了左右反轉,對於小的BSDS500數據集,使用了額外的圖像patch隨機放縮的增強方式。
  4. 所有實驗都是用Adam優化器,batch爲8,學習率爲0.0001
  5. 除非特別提及,訓練模型500K次迭代,並基於驗證集準確率來選擇最終的訓練模型。
  6. 消融研究中,訓練改變了參數的模型200K次迭代。
  7. 需要注意的是,使用一個訓練好的SSN模型,通過縮放上面描述的輸入位置特徵來估計不同數量的超像素。
  8. 在訓練的時候,可微分的SLIC使用五次迭代,也就是v=5,而測試的時候,v=10。因爲觀察到,隨着迭代次數的提升,性能增益不大(only marginal performance gains with more iterations)。

超像素

BSDS500數據集:BSDS500 consists of 200 train, 100 validation, and 200 test images. Each image is annotated with ground-truth (GT) segments from multiple annotators. We treat each annotation as as a separate sample resulting in 1633 training/validation pairs and 1063 testing pairs.

爲了學習附着到真值分割的超像素,在重建損失(式子5)中使用真值分割標籤,也就是將真值分割標籤表達爲one-hot編碼向量,並且使用其作爲像素屬性R,用在重建損失中。在式子5中使用交叉熵損失作爲L,注意這裏與真值標籤具有意義的語義分割任務不同,這個數據集裏的真值標籤並不帶有什麼語義信息。這對網絡的學習設置沒有任何問題,因爲SSN和重建損失都與像素屬性R的含義無關(agnostic)。重建損失使用給定輸入信號R及其重建版本R*生成損失值,並不考慮是否在圖像中保留了R的含義。

評估指標

超像素在各種視覺任務中都很有用,並且存在用於評估超像素的若干度量。

在這項工作中,將可實現的分割準確度(Achievable Segmentation Accuracy,ASA)視爲主要指標,同時還報告邊界指標,如邊界召回(BR)和邊界精度(BP)指標。

  • ASA得分表示通過在超像素上執行的任何分割步驟可實現的準確度的上限。
  • 另一方面,邊界精度和召回率測量超像素邊界與GT邊界的對齊程度。

在補充材料中更詳細地解釋了這些指標。這些得分越高,分割結果越好。通過改變生成的超像素的平均數量來報告平均ASA和邊界度量。對邊界精度和召回的公平評估期望超像素在空間上連接。因此,爲了進行無偏比較,遵循計算硬聚類的可選後處理,並在SSN超像素上實施空間連通性(算法1中的第7-8行)。

消融實驗

  • 參考圖3所示的主模型,在深網絡中有7個卷積層,作爲SSNdeep。
  • 作爲基線模型,評估使用可微分SLIC生成的超像素,該像素採用像素XYLab特徵作爲輸入。這與標準SLIC算法類似,將其稱爲SSNpix,並且沒有可訓練的參數。
  • 作爲另一個基線模型,替換深度網絡用一個簡單的卷積層來學習輸入XYLab特徵的線性變換,這個表示爲SSNlinear。

image.png

圖4中可以看出來,SSNlinear就已經實現了遠高於基線的ASA和BR得分,這顯示了損失函數和通過超像素算法反向傳播損失信號的重要性。SSNdeep進一步提升了ASA和BR得分。可以看到,k越高,往往也就有着更高的得分,v也是這樣。

出於計算的考慮,這裏之後的SSNdeep都指代k=20和v=10。

比較

圖上可以看到,SSNpix效果接近於SLIC算法,這也反映出來當放鬆最近鄰約束的時候SLIC的性能並不會損失。

image.png

請注意,SSNdeep超像素平滑地跟隨對象邊界,並且也更集中在對象邊界附近。

語義分割

使用的數據集:Cityscapes和Pascal VOC。

  • Cityscpes:We train SSN with the 2975 train images and evaluate on the 500 validation images. For the ease of experimentation, we experiment with half-resolution(512 × 1024) images.
  • Pascal VOC:We train SSN with 1464 train images and validate on 1449 validation images.

Cityscapes

image.png

image.png

我們使用NVIDIA Tesla V100 GPU計算GPU運行時。SSNpix和SSNdeep之間的運行時比較表明SSN計算時間的很大一部分是由於可微分SLIC。運行時表明SSN比幾個超像素算法的實現快得多。

這裏與上一部分的差異主要在於語意標籤的使用和重建損失。鼓勵SSN學習附着於語義分割的超像素。

Pascal VOC

image.png

圖8中a的曲線顯示了不同技術的ASA得分,這裏沒有分析在這個數據集上的邊界得分,因爲真值語義邊界被用忽略標籤給擴展了。這裏同時評估了使用BSDS訓練的模型,也就是圖中的SSNdeep-BSDS模型,可以看出,相較於當前數據集訓練的模型,只有少量的得分損失。這也體現出了SSN在不同數據集上的泛化能力和魯棒性。

圖7中有些圖片示例。

額外實驗

進行了一個額外的實驗,將SSN插入到[Superpixel convolutional networks using bilateral inceptions]的下游語義分割網絡中,[Superpixel convolutional networks using bilateral inceptions]中的網絡具有雙邊inception層(bilateral inception layer),利用超像素進行遠程數據自適應信息傳播,跨過中間CNN表示。

image.png

表2顯示了在測試數據上評估的該聯合模型的IoU得分。與這篇論文中使用的原始SLIC超像素相比,IoU的改進表明SSN還可以爲使用超像素的下游任務網絡帶來性能改進

光流

使用的數據集是MPI-Sintel:The MPI-Sintel dataset consists of 23 video sequences, which we split intodisjoint sets of 18 (836 frames) training and 5 (205 frames) validation sequences.

To this end, we experiment on the MPI-Sintel dataset and use SSN to predict superpixels** given a pair of input frames**.

爲了證明SSN對迴歸任務的適用性,進行了概念驗證實驗,學習了遵循光流邊界的超像素。使用真值光流作爲像素屬性R,用在重建損失中,使用L1損失作爲L,鼓勵SSN來生成有效表示光流的超像素。

image.png

這裏使用相同的方法來計算ASA得分。對於每個超像素內部的像素,指定平均真值光流來產生一個分割光流,圖9中顯示了一些分割光流的結果。之後計算真值光流和分割光流的歐氏距離,這稱爲終點誤差(end-point error EPE)。該值越低,超像素越能更好的表示光流。

圖9中的結果表明,SSNdeep超像素相比其他超像素,對於真值光流的變化更好地對齊。圖8b顯示了現有超像素技術的平均EPE值,可以看出SSNdeep相較於現存的超像素技術表現出色。這顯示了SSN在學習任務特定的超像素中的有用性

總結

提出了一種新穎的超像素採樣網絡(SSN),它利用通過端到端訓練學到的深層特徵來估計任務特定的超像素。這是第一個端到端可訓練的深度超像素預測技術。

  • 實驗的幾個基準測試表明,SSN始終如一地在表現出色,同時也更快。
  • 將SSN集成到語義分割網絡中還可以提高性能,顯示SSN在下游計算機視覺任務中的實用性。
  • SSN快速,易於實施,可以輕鬆集成到其他深層網絡中,具有良好的實證性能。
  • SSN解決了將超像素納入深度網絡的主要障礙之一,這是現有超像素算法的不可微分性質。
  • 在深度網絡中使用超像素可以具有幾個優點。
    • 超像素可以降低計算複雜度,尤其是在處理高分辨率圖像時
    • 超像素也可用於加強區域常量假設(enforce piece-wise constant assumptions)
    • 也有助於遠程信息傳播

相信這項工作開闢了利用深層網絡中的超像素的新途徑,並激發了使用超像素的新深度學習技術。

相關連接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章