Contour Knowledge Transfer for Salient Object Detection
Contour Knowledge Transfer for Salient Object Detection
- 摘要
- 1 Introduction
- 2 Related Work
- 3 Approach
- 3.1 Overview
- 3.2 Contour-to-Saliency Network
- 3.3 Contour-to-Saliency Transfer
- 3.4 Alternating Training
- 4 Experiments
論文地址
code
摘要
本文是一篇無監(jiān)督顯著性監(jiān)測方法,C2S-Net。本文用訓(xùn)練好的輪廓監(jiān)測網(wǎng)絡(luò),嫁接一個(gè)顯著性監(jiān)測網(wǎng)絡(luò),這樣的C2S-Net有兩個(gè)分支,分別完成預(yù)測輪廓和預(yù)測顯著性區(qū)域的任務(wù)。為了連接這兩個(gè)任務(wù),作者設(shè)計(jì)了contour-to-saliency transferring方法,即通過輪廓生成顯著性mask,作為真值來監(jiān)督顯著性預(yù)測分支。同樣,作者也提出了新的交替訓(xùn)練方式來完成無監(jiān)督訓(xùn)練。
1 Introduction
SOD任務(wù)應(yīng)用廣泛,但其訓(xùn)練數(shù)據(jù)的標(biāo)注貧乏,且耗費(fèi)大量精力,因此我們提出無監(jiān)督方法。
我們的目標(biāo)是把一個(gè)訓(xùn)練過的contour detection model(CEDN)轉(zhuǎn)換成顯著性監(jiān)測模型,且不使用手動(dòng)標(biāo)注的數(shù)據(jù)。我們首先在現(xiàn)有的CEDN上嫁接了一個(gè)新分支(顯著性檢測分支)以形成一個(gè)多任務(wù)網(wǎng)絡(luò)框架。然后我們用訓(xùn)練好的輪廓分支生成contour maps,然后用contour-to-saliency transferring method生成相應(yīng)的saliency masks。這些masks用于監(jiān)督新添加的分支。這樣一來新分支生成的saliency maps,轉(zhuǎn)換成contour又可以反過來監(jiān)督contour分支只生成顯著性區(qū)域的contour。
contributions如下:
- 提出了新的SOD方法,可自動(dòng)把well-trained輪廓檢測模型轉(zhuǎn)換成顯著性檢測模型,且不用任何手動(dòng)標(biāo)注。
- 提出Contour-to-Saliency Network (C2S-Net),在這個(gè)網(wǎng)絡(luò)中有兩個(gè)分支,兩個(gè)分支互相學(xué)習(xí)。
- 提出有效的contour-to-saliency transferring方法;也提出了交替的訓(xùn)練過程。
2 Related Work
3 Approach
3.1 Overview
本算法給定一個(gè)現(xiàn)有的輪廓檢測網(wǎng)絡(luò)(CEDN),我們把這個(gè)CEDN模型轉(zhuǎn)換成深度顯著性檢測模型。
首先,把顯著性檢測網(wǎng)絡(luò)分支嫁接到已有的輪廓檢測上,兩個(gè)分支共用一個(gè)特征提取器,結(jié)構(gòu)如下:
訓(xùn)練過程就是先用一個(gè)輪廓檢測網(wǎng)絡(luò)先生成目標(biāo)輪廓,然后用另外一個(gè)算法把輪廓轉(zhuǎn)換成saliency map,然后用這個(gè)map去監(jiān)督顯著性網(wǎng)絡(luò)的學(xué)習(xí)。
3.2 Contour-to-Saliency Network
Architecture. Fig. 3展示了Contour-to-Saliency Network (C2S-Net)的具體配置。
網(wǎng)絡(luò)可以分成三部分:encoder(fencf_{enc}fenc?), contour decoder(fcontf_{cont}fcont?), saliency decoder(fsalf_{sal}fsal?)。
Encoder. 輸入圖像Ii\mathcal I_iIi?,輸出feature map Fi\mathcal F_iFi?。
Contour Decoder. 輸入feature map Fi\mathcal F_iFi?,輸出saliency-aware contour map C(Fi,θc)C(\mathcal F_i,\theta_c)C(Fi?,θc?),θc\theta_cθc?表示輪廓檢測分支的模型參數(shù)。Contour Decoder的訓(xùn)練可以看做per-pixel regression problem:
min?θc∑iecont(Lcont(Ii),C(Fi;θc))\min_{\theta_c}\sum_ie_{cont}(\mathcal L_{cont}(\mathcal I_i),C(\mathcal F_i;\theta_c)) θc?min?i∑?econt?(Lcont?(Ii?),C(Fi?;θc?))
其中Lcont(Ii)\mathcal L_{cont}(\mathcal I_i)Lcont?(Ii?)表示第i個(gè)樣本的gt contour labels,econt(Lcont(Ii),C(Fi;θc))e_{cont}(\mathcal L_{cont}(\mathcal I_i),C(\mathcal F_i;\theta_c))econt?(Lcont?(Ii?),C(Fi?;θc?))是per-pixel loss function。
Saliency Decoder. 輸入feature map Fi\mathcal F_iFi?,輸出saliency map S(Fi,θs)S(\mathcal F_i, \theta_s)S(Fi?,θs?),其中θs\theta_sθs?表示saliency decoder的模型參數(shù)。這個(gè)分支通過gt和預(yù)測的saliency maps求loss,訓(xùn)練可寫成以下:
min?θs∑iesal(Lsal(Ii),S(Fi;θs))\min_{\theta_s}\sum_ie_{sal}(\mathcal L_{sal}(\mathcal I_i),S(\mathcal F_i;\theta_s)) θs?min?i∑?esal?(Lsal?(Ii?),S(Fi?;θs?))
其中Lsal(Ii)\mathcal L_{sal}(\mathcal I_i)Lsal?(Ii?)是第i個(gè)圖像的gt mask,esal(Lsal(Ii),S(Fi;θs))e_{sal}(\mathcal L_{sal}(\mathcal I_i),S(\mathcal F_i;\theta_s))esal?(Lsal?(Ii?),S(Fi?;θs?))是Lsal(Ii)\mathcal L_{sal}(\mathcal I_i)Lsal?(Ii?)對(duì)應(yīng)的S(Fi,θs)S(\mathcal F_i, \theta_s)S(Fi?,θs?)的per-pixel loss。
Cross-Domain Connections. 作者用下面這樣的方式去結(jié)合輪廓檢測分支提取的特征fsicontf_{s_i}^{cont}fsi?cont?和saliency分支提取的特征fsisalf_{s_i}^{sal}fsi?sal?:
f~sisal=σ(cat(fsicont,fsisal)?wsisal+bsisal)\tilde{f}_{s_i}^{sal}=\sigma(cat(f_{s_i}^{cont},f_{s_i}^{sal})\otimes w_{s_i}^{sal}+b_{s_i}^{sal}) f~?si?sal?=σ(cat(fsi?cont?,fsi?sal?)?wsi?sal?+bsi?sal?)
其實(shí)也就是concat到一起再卷積。
3.3 Contour-to-Saliency Transfer
這個(gè)部分是比較難理解的地方,主要是公式不太好理解。我們?nèi)绾瓮ㄟ^預(yù)測的輪廓生成saliency map呢?這個(gè)過程分成兩步:首先用Multiscale Combinatorial Grouping (MCG)方法生成很多候選proposal masks C\mathcal CC。然后用下面這個(gè)公式從C\mathcal CC中提取出B\mathcal BB:
max?B{S(B)?α?O(B)?κ?N(B)}s.t.B?C\max_{\mathcal B}\{S(\mathcal B)-\alpha\cdot O(\mathcal B)-\kappa\cdot N(\mathcal B)\}\\ s.t. \mathcal B\subseteq\mathcal C Bmax?{S(B)?α?O(B)?κ?N(B)}s.t. B?C
其中S(?)S(\cdot)S(?)是激勵(lì)選擇更顯著區(qū)域proposals的數(shù)據(jù)項(xiàng),O(?)\mathcal O(\cdot)O(?)是懲罰被選擇的proposals重疊的overlap項(xiàng),N(?)N(\cdot)N(?)是被選擇的proposals的數(shù)量項(xiàng)。通過最大化上式,可以得到我們用于監(jiān)督的Lsal\mathcal L_{sal}Lsal?。
下面就是比較難理解的了,跟其他人交流之后我對(duì)此的理解也只是猜測,首先看看上面這個(gè)式子的展開:
max{∑bi?CSici?α?∑bi,bj∈C(i≠j)K(bi,bj)cicj?κ∑bi?Cci}s.t.ci,cj=0or1max\{\sum_{b_i\subseteq C}S_ic_i-\alpha\cdot\sum_{b_i, b_j\in C(i\neq j)}K(b_i,b_j)c_ic_j-\kappa\sum_{b_i\subseteq C}c_i\} \\ s.t. c_i, c_j=0 or 1 max{bi??C∑?Si?ci??α?bi?,bj?∈C(i?=j)∑?K(bi?,bj?)ci?cj??κbi??C∑?ci?}s.t. ci?,cj?=0 or 1
這里面cic_ici?的意思是,我們?cè)?span id="ozvdkddzhkzd" class="katex--inline">C\mathcal CC中選擇了很多組的proposals,每組proposals中包含很多bib_ibi?,如果當(dāng)前組中,這個(gè)bib_ibi?被選擇了,那么對(duì)應(yīng)的ci=1c_i=1ci?=1。最后哪組算出的上面這個(gè)式子的值最大,那么我們就認(rèn)為當(dāng)前這組proposals組成的mask更有可能是顯著性區(qū)域。第二項(xiàng)是overlap懲罰項(xiàng),K(bi,bj)K(b_i,b_j)K(bi?,bj?)就是求兩個(gè)proposals的IoU。最后一項(xiàng)是當(dāng)前組proposals的數(shù)量。這個(gè)式子的含義就是:最有可能是saliency的一組,且這些proposals重疊不嚴(yán)重,且proposals的數(shù)量不是很多(或者說proposals不是很細(xì)碎)。
上面提到的最有可能是saliency這一點(diǎn),就是靠式子的第一項(xiàng)的SiS_iSi?展現(xiàn)的:
Si=K(cnt(bi),Cer)+γ?K(bi,Ser)S_i=K(cnt(b_i),C^{e_r})+\gamma\cdot K(b_i, S^{e_r}) Si?=K(cnt(bi?),Cer?)+γ?K(bi?,Ser?)
其中cnt(bi)cnt(b_i)cnt(bi?)表示從給定的region mask bib_ibi?提取出輪廓,Cer,SerC^{e_r},S^{e_r}Cer?,Ser?分別是第r個(gè)epoch后檢測到的contour和saliency map。在第一個(gè)epoch,γ=0\gamma=0γ=0,之后γ=1\gamma=1γ=1。
上面的解讀也只是我個(gè)人的理解,大家有其他的想法可以與我聯(lián)系。
3.4 Alternating Training
這部分講的是交替訓(xùn)練的方法,為了避免局部最優(yōu)問題,作者把訓(xùn)練集分成兩部分。一個(gè)訓(xùn)練集去訓(xùn)練contour-to-saliency網(wǎng)絡(luò),多次epoch迭代之后,網(wǎng)絡(luò)已經(jīng)可以輸出saliency map了,然后用這個(gè)網(wǎng)絡(luò)的學(xué)習(xí)出來的參數(shù)去訓(xùn)練saliency-to-contour網(wǎng)絡(luò),這樣就使網(wǎng)絡(luò)更加趨于只生成顯著性區(qū)域的contour。如此不斷循環(huán),網(wǎng)絡(luò)越來越穩(wěn)定。其中,也有過濾掉生成的不靠譜的監(jiān)督信息,也就是計(jì)算生成的contour map的置信度:C(Fi,θc)≥0.9C(Fi,θc)≥0.1\frac{C(\mathcal F_i,\theta_c)\geq0.9}{C(\mathcal F_i,\theta_c)\geq0.1}C(Fi?,θc?)≥0.1C(Fi?,θc?)≥0.9?,即只選擇這個(gè)置信度大于閾值(?=0.15\vartheta=0.15?=0.15)的maps作為監(jiān)督。
4 Experiments
精度非常之強(qiáng)悍。。。然而只給了測試代碼,沒給訓(xùn)練代碼,GitHub的star也很少。
總結(jié)
以上是生活随笔為你收集整理的Contour Knowledge Transfer for Salient Object Detection的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不在以下合法域名列表中,请参考文档:ht
- 下一篇: LOL不用下载就能玩了?