天天看點

SEC [ECCV16]

SEC

paper: Seed, Expand and Constrain: Three Principles for Weakly-Supervised Image Segmentation

本文是發表在16年的ECCV上,本篇文章使用到了CAM的思路,算是拉開了後面基于CAM進行改進的序幕。

文章提出的網絡的損失函數由三個部分的loss組成: L s e e d L_{seed} Lseed​, L e x p a n d L_{expand} Lexpand​和 L c o n s t r a i n L_{constrain} Lconstrain​。

L s e e d L_{seed} Lseed​ component

這部分損失函數的作用是為了鼓勵神經網絡預測出物體的基本定位位置,即最具辨識度的區域一定要預測出來。而這部分的監督資訊通過CAM得到,即

  1. 使用CAM結合弱監督标簽獲得各個前景的score map/heat map。
  2. 由于CAM隻預測出了前景,是以還需要預測出背景(這一步很多算法不一樣,比如AffinityNet中直接将所有類别置信度都很低的點視為背景),在本文中作者是結合顯著性檢測以提取出背景的中心點(最具辨識度的區域/最像背景的區域)。
  3. 這樣我們得到了最終的輸出,圖像中包含了:預測的前景最顯著區域(置信度設為1)+背景最顯著區域(置信度設為1)+待定區域。這部分就是seed的監督資訊。
  4. 計算DCNN的輸出與生成的預測區域計算交叉熵(由于生成的label置信度設為1了,是以此處隻需要最小化log對數就行了)

    L s e e d ( f ( X ) , T , S c ) = − 1 ∑ c ∈ T ∣ S c ∣ ∑ c ∈ T ∑ u ∈ S c log ⁡ f u , c ( X ) L_{\mathrm{seed}}\left(f(X), T, S_{c}\right)=-\frac{1}{\sum_{c \in T}\left|S_{c}\right|} \sum_{c \in T} \sum_{u \in S_{c}} \log f_{u, c}(X) Lseed​(f(X),T,Sc​)=−∑c∈T​∣Sc​∣1​c∈T∑​u∈Sc​∑​logfu,c​(X)

    tip:注意這裡是直接将每個像素點的對數相加,這有個問題:圖像的背景區域往往比前景區域大。在之後文章(DSRG等)的改進中,會歸一化前景類别和背景以平衡影響。

L e x p e n d L_{expend} Lexpend​ component

這部分loss的作用是為了使得預測的各個類的feature map盡可能的接近真實值,但是由于隻有圖像級别的loss,是以作者此處設計了一個算法将feature map映射到一個點,在與label計算交叉熵。我認為作者這裡借鑒了MIL-seg模型的思想,這裡提出的GWRP類似MIL-seg中的LSE,都是為了将feature map映射到點,且都是取了平均池化和極大池化的折衷,要說不同,可能就是:

  1. LSE和GWRP設計不同。
  2. 作者針對(背景,圖像中存在的前景,圖像中不存在的前景)分别設定了不同的GWRP參數。LSE作者對所有的類别都設定了同樣的參數 r = 5 r=5 r=5。

GWRP算法,先将feature map上各個點的值按照從高到低的值排序。 j j j為索引。GWRP的思路就是為索引越小的點賦上更大的權重,索引越大的點賦上更小的權重。參數 d c d_c dc​用于調整權重傾斜力度。

G c ( f ( X ) , d c ) = 1 ∑ j = 1 n ( d c ) j − 1 ∑ j = 1 n ( d c ) j − 1 f i j , c ( X ) G_c(f(X),d_c)=\frac{1}{\sum_{j=1}^n(d_c)^{j-1}}\sum_{j=1}^n(d_c)^{j-1}f_{i_j,c}(X) Gc​(f(X),dc​)=∑j=1n​(dc​)j−11​j=1∑n​(dc​)j−1fij​,c​(X)

正如上面提到的,對于從feature map到點,根據該類别設定不同的參數,設定規如下:

{ d c = d − = 0 c = 圖 像 中 不 存 在 的 前 景 , 希 望 輸 出 盡 可 能 少 的 點 , 設 置 為 0 等 效 于 G M P d c = d + = 0.996 c = 圖 像 中 存 在 的 前 景 , 由 于 前 景 的 區 域 不 大 不 小 , 所 以 傾 向 于 G A P , 但 比 背 景 稍 傾 向 G M P d c = d b g = 0.999 c = 背 景 , 由 于 背 景 區 域 一 般 占 比 較 大 , 所 以 傾 向 于 G A P \begin{cases}d_c=d_-=0& c=圖像中不存在的前景,希望輸出盡可能少的點,設定為0等效于GMP\\ d_c=d_+=0.996 & c=圖像中存在的前景,由于前景的區域不大不小,是以傾向于GAP,但比背景稍傾向GMP \\ dc=d_{bg}=0.999& c=背景,由于背景區域一般占比較大,是以傾向于GAP\end{cases} ⎩⎪⎨⎪⎧​dc​=d−​=0dc​=d+​=0.996dc=dbg​=0.999​c=圖像中不存在的前景,希望輸出盡可能少的點,設定為0等效于GMPc=圖像中存在的前景,由于前景的區域不大不小,是以傾向于GAP,但比背景稍傾向GMPc=背景,由于背景區域一般占比較大,是以傾向于GAP​

是以最終的loss就是中規中矩的loss, T T T是圖像 X X X的label,表明了哪些類存在于 X X X中:

L e x p a n d ( f ( X ) , T ) = − 1 ∣ T ∣ ∑ c ∈ T log ⁡ G c ( f ( X ) , d + ) − 1 ∣ C ′ ∖ T ∣ ∑ c ∈ C ′ ∖ T log ⁡ ( 1 − G c ( f ( X ) , d − ) ) − log ⁡ G c b g ( f ( X ) , d b g ) L_{expand}(f(X),T)=-\frac{1}{\vert T\vert}\sum_{c\in T}\log G_c(f(X),d_+)-\frac{1}{\vert C' \setminus T\vert}\sum_{c\in C'\setminus T}\log (1-G_c(f(X),d_-))-\log G_{c^{bg}}(f(X),d_{bg}) Lexpand​(f(X),T)=−∣T∣1​c∈T∑​logGc​(f(X),d+​)−∣C′∖T∣1​c∈C′∖T∑​log(1−Gc​(f(X),d−​))−logGcbg​(f(X),dbg​)

L c o n s t r a i n L_{constrain} Lconstrain​ component

這部分的loss是為了優化邊界,在之前比如MIL-seg中是結合MCG進行優化,到了16年,可能受強監督模型Deeplab之類的啟發,此處也使用了CRF進行邊界優化。

CRF算法我們标記為 Q ( X , f ( X ) ) Q(X,f(X)) Q(X,f(X)),表示輸入為原圖 X X X和DCNN的輸出 f ( X ) f(X) f(X),輸出優化過後的語義分割圖。

在一般情況下,一般拿CRF做語義分割的後場處理,即two-stage的做法。而作者這裡把CRF的輸出作為監督資訊制成損失函數也監督DCNN的訓練。是以此處 L c o n s t r a i n L_{constrain} Lconstrain​是計算 f ( x ) f(x) f(x)與 Q ( X , f ( X ) ) Q(X,f(X)) Q(X,f(X))的交叉熵,使得DCNN的輸出就直接傾向于CRF處理後的效果。

L c o n s t r a i n ( X , f ( X ) ) = 1 n ∑ u = 1 n ∑ c ∈ C Q u , c ( X , f ( X ) ) log ⁡ Q u , c ( X , f ( X ) ) f u , c ( X ) L_{constrain}(X,f(X))=\frac{1}{n}\sum_{u=1}^n\sum_{c \in C}Q_{u,c}(X,f(X))\log \frac{Q_{u,c}(X,f(X))}{f_{u,c(X)}} Lconstrain​(X,f(X))=n1​u=1∑n​c∈C∑​Qu,c​(X,f(X))logfu,c(X)​Qu,c​(X,f(X))​

final loss

最終的loss就是直接将着三部分組合起來(甚至沒有進行權重?)。

min ⁡ θ ∑ ( X , T ) ∈ D [ L  seed  ( f ( X ; θ ) , T ) + L  expand  ( f ( X ; θ ) , T ) + L  constrain  ( X , f ( X ; θ ) ) ] \min _{\theta} \sum_{(X, T) \in \mathcal{D}}\left[L_{\text { seed }}(f(X ; \theta), T)+L_{\text { expand }}(f(X ; \theta), T)+L_{\text { constrain }}(X, f(X ; \theta))\right] θmin​(X,T)∈D∑​[L seed ​(f(X;θ),T)+L expand ​(f(X;θ),T)+L constrain ​(X,f(X;θ))]

回顧一下

  1. L s e e d L_{seed} Lseed​是由CAM+Saliency獲得前景和背景的顯著區域制成label。以監督DCNN至少學習到最具顯著性的區域。
  2. L e x p a n d L_{expand} Lexpand​是使用了類似MIL-seg文章中的思想,将DCNN生成的feature maps使用GWRP映射到點,以友善和image-level進行監督計算。
  3. L c o n s t r a i n L_{ constrain} Lconstrain​是由CRF+DCNN的輸出獲得改良後的分割圖制成label,以監督DCNN直接學習到較好的邊界識别。

performance

VOC12 val VOC12 test
SEC w/o CRF 44.8 45.4
SEC w/ CRF 50.7 51.7

繼續閱讀