Direction-aware Spatial Context Features for Shadow Detection and Removal

Direction-aware Spatial Context Features for Shadow Detection and Removal

零、論文信息

  1. 2018 CVPR
  2. https://arxiv.org/abs/1805.04635
  3. http://tongtianta.site/paper/37507
  4. https://github.com/xw-hu/DSC

一、論文貢獻

  1. 首先,我們在空間RNN中設計一種新穎的注意機制,並構建DSC模塊,以方向感知的方式學習空間背景。
  2. 其次,我們開發了一個新的陰影檢測網絡,採用多個DSC模塊來學習不同層中的方向感知空間背景,並設計加權交叉熵損失以平衡陰影和非陰影區域的檢測精度。
  3. 第三,我們通過制定歐幾里德損失並使用顏色補償無陰影圖像訓練網絡進一步採用網絡去除陰影,這些圖像是通過顏色傳遞函數產生的。
  4. 最後,我們在陰影檢測和陰影去除的幾個基準數據集上評估我們的方法,並將其與最先進的方法進行比較。實驗結果表明,我們的網絡對於這兩項任務都有利於以前的方法;有關定量和定性比較結果,請參見第4節和第5節。

二、論文方法

  1. 網絡結構

    整個陰影檢測網絡的示意圖:(i)我們從輸入圖像中提取CNN層上不同尺度的特徵; (ii)我們嵌入了DSC模塊(見上圖),爲每一層生成方向感知空間背景(DSC)特徵; (iii)我們將DSC特徵與每層的卷積特徵相結合,並將連接的特徵映射上採樣到輸入圖像的大小; (iv)我們將上採樣特徵映射組合成多級集成特徵(MLIF),使用[30]中的深度監督機制基於每個層的特徵預測陰影掩模,並融合生成的陰影掩模; (v)在測試過程中,我們計算MLIF層和融合層上的平均陰影掩模,並使用條件隨機場[31]進一步重新確定檢測結果。

  2. DSC模塊

    在這裏插入圖片描述

    將來自CNN的2D特徵圖作爲輸入,我們首先執行卷積來模擬RNN中的輸入到隱藏數據轉換。然後,我們應用四個獨立的數據轉換來沿着每個主方向(左,右,上和下)聚合局部空間上下文,並將結果融合到中間特徵圖中;見圖4(b)。最後,我們重複整個過程,以進一步傳播每個主要方向的聚合空間背景,並生成整體空間背景;見圖4(c)。
    與圖4(c)相比,圖4(a)中的每個像素僅知道其局部空間上下文,而圖4(b)中的每個像素在第一輪數據轉換之後進一步知道四個主要方向上的空間上下文。因此,在兩輪數據轉換之後,每個像素可以獲得相關的方向感知全局空間上下文,用於學習特徵以增強陰影的檢測和去除。

    在這裏插入圖片描述

    爲了在空間RNN中執行數據轉換,我們遵循IRNN模型[50],因爲它快速,易於訓練,並且具有良好的遠程數據依賴性[49]。將hi,j表示爲像素(i,j)中的特徵,我們通過重複以下操作n次向右執行一輪數據轉換(類似地,對於其他三個方向中的每一個執行同樣的操作)。

    hi,j=max(αrighthi,j1+hi,j,0)(1) h_{i, j} = \max(\alpha_{right} h_{i, j-1} + h_{i,j}, 0) \tag{1}

    其中n是特徵映射的寬度,而αright是右方向的循環轉換層中的權重參數。請注意,αright以及其他方向的權重被初始化爲單位矩陣,並通過訓練過程自動學習。
    爲了以方向感知的方式有效地學習空間上下文,我們進一步在空間RNN中形成方向感知注意機制以學習注意權重並生成方向感知空間上下文(DSC)特徵。該設計形成了我們在圖3中呈現的DSC模塊。
    方向感知注意機制。該機制的目的是使空間RNN能夠通過學習選擇性地利用在不同方向上聚合的空間上下文。請參見圖3中所示的DSC模塊中的左上方塊。首先,我們使用兩個連續的卷積層(使用3*3內核),然後是ReLU [51]非線性操作,然後使用第三個卷積層(使用1*1內核)生成四個通道的W.然後我們將W分成四個注意權重圖,表示爲Wleft,Wdown,Wright和Wup,每個都是一個通道。在數學上,如果我們將上面的運算符表示爲fatt並且輸特徵映射爲X,我們有:

    W=fatt(X;θ),(2) W = f_{att}(X; \theta), \tag{2}

    其中θ表示fatt(也稱爲關注估計器網絡)要學習的卷積運算中的參數。再次參見圖3中所示的DSC模塊。四個權重圖以元素方式在相應方向上與空間上下文特徵(來自循環數據轉換)相乘。因此,在我們訓練網絡之後,網絡應該學習θ以產生合適的注意權重以選擇性地利用空間RNN中的空間上下文。
    接下來,我們提供有關DSC模塊的詳細信息。如圖3所示,在我們將空間上下文特徵與注意權重相乘後,我們將結果連接起來並使用1*1卷積來模擬RNN中的隱藏數據轉換,並將特徵維度減少四分之一。然後,我們執行第二輪循環轉換並使用相同的一組注意力來選擇空間背景,我們根據經驗發現,共享注意權重而不是使用兩組不同的權重會帶來更高的性能;有關實驗,請參閱第5節。還要注意,這些注意力是基於從輸入圖像中提取的深度特徵自動學習的,因此它們可能因圖像而異。最後,我們使用1*1卷積,然後在級聯特徵映射上使用ReLU [51]非線性運算來模擬隱藏到輸出的轉換並生成輸出DSC功能。

三、收穫

  1. 損失函數

    在自然圖像中,陰影通常比非陰影區域在圖像空間中佔據的區域較小。 因此,如果損失函數僅針對整體精度,它將傾向於匹配像素更多的非陰影區域。 因此,我們在訓練過程中使用加權的交叉熵損失來優化陰影檢測網絡。
    假設y爲像素的地面真實值(如果在陰影中,則y = 1,否則爲y = 0),而p爲像素的預測標籤(其中p ∈ [0,1])。 第i個CNN層的加權交叉熵損失LiL_i是按類別分佈LidL_i^d加權的交叉熵損失和按每類精度LiaL_i^a加權的交叉熵損失的和: Li=Lid+LiaL_i = L_i^d + L_i^a

    Lid=(NnNp+Nn)ylog(p)(NpNp+Nn)(1y)log(1p)(3) L_i^d = -(\frac{N_n}{N_p+N_n})y\log(p) - (\frac{N_p}{N_p+N_n})(1 - y)\log(1 - p) \tag{3}
    Lia=(1TPNp)ylog(p)(1TNNn)(1y)log(1p)(4) L_i^a = -(1 - \frac{TP}{N_p})y\log(p) - (1 - \frac{TN}{N_n})(1-y)\log(1 - p) \tag{4}
    其中TP和TN是true positives和 true negatives像素的個數,Np和Nn分別是每個圖像的陰影和非陰影像素數,因此Np + Nn是第i層像素的總數。實際上,LidL_i^d有助於平衡陰影和非陰影的檢測。如果陰影的面積小於非陰影區域的面積,則對錯誤分類的陰影像素的懲罰要大於對錯誤分類的非陰影像素的懲罰。另一方面,受[53]的啓發,[53]傾向於選擇分類錯誤的示例來訓練深度網絡,因此我們擴大了難以分類的類別(陰影或非陰影)的權重。爲此,我們使用LiaL^a_i,當正確分類的陰影(或非陰影)像素的數量較小時,陰影(或非陰影)類的權重較大,反之亦然。

  2. 訓練集

    文中用的訓練集是SBU,然後使用SBU-test和UCF來計算BER和accuracy。

  3. 使用了遷移學習

    文中的第一層,也就是特徵提取層,使用了在ImageNet上預訓練VGG-net的第一層。

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