STC [PAMI16]

STC


paper: STC: A Simple to Complex Framework for Weakly-supervised Semantic Segmentation

STC的意思是simple to complex,很好的解释了本文提出的思路。
考虑到W3S中对于不同的图像 I I I,其对应的image-level的监督信息 z z z往往可能是多个类别,即一张图像中存在多个类别,这给神经网络训练初期造成困扰,所以作者的思路是先使用仅存在一个类别的图像训练网络,之后在逐渐过渡到多个类别的图像训练。同时,在只有一个类别的图像中,往往背景单一,前景突出,可以通过saliency来得到较棒的监督信息。
所以具体流程如下:

  1. 筛选出前景突出,只有一个类别的图像数据集(取自 Flickr.com)共40K张,使用显著性检测算法DRFI制成这40K图像的pixel-level监督信息。
  2. 第一个网络:Initial-DCNN,使用1中的40K图像数据和其saliency mask监督训练,至收敛。
  3. 在次将40K图像输入Initial-DCNN,得到预测的semantic mask,但是由于DCNN的局限性,所以可能有些图像识别出了多个类别,这显然错了(40K图像每张只含一个类),所以结合image-level label进行优化,得到refined semantic mask。
  4. 用这40K张simple/one-category图像和其refined semantic mask监督训练第二个网络:Enhanced-DCNN,至收敛。虽然Enhanced-DCNN训练使用的是one-category的数据,但是每个物体的appearence/scale等在one-category和multi-category中分布相同,所以Enhanced-DCNN训练好后也能对复杂的图像进行预测。
  5. 将complex/multi-category的10K数据(取自 VOC12)输入Enhanced-DCNN,得到预测的semantic mask,与3中同样的操作,结合image-level label优化,得到refined semantic mask。
  6. 用这10K张comlex/multi-category图像和其refined semantic mask训练第三个网络:Powerful-DCNN,至收敛,这样Powerful-DCNN就具备了很好的预测semantic segmentation的能力了。
I-DCNN

设图像 I I I经过图像显著性检测后得到的结果为 p ^ \hat{p} p^ p ^ i j \hat{p}_{i j} p^ij表示图像在 ( i , j ) (i,j) (i,j)处的显著性值(值越大越显著)。I-DCNN的输出为 p p p p ^ i j \hat{p}_{i j} p^ij表示图像在 ( i , j ) (i,j) (i,j)处的预测概率(值越大则预测属于该类的概率越大)。
由于这40K张图像都是one-category,设类别为 c c c,则损失函数如下:
− 1 h × w ∑ i = 1 h ∑ j = 1 w ( p ^ i j c log ⁡ ( p i j c ) + p ^ i j 0 log ⁡ ( p i j 0 ) ) -\frac{1}{h \times w} \sum_{i=1}^{h} \sum_{j=1}^{w}\left(\hat{p}_{i j}^{c} \log \left(p_{i j}^{c}\right)+\hat{p}_{i j}^{0} \log \left(p_{i j}^{0}\right)\right) h×w1i=1hj=1w(p^ijclog(pijc)+p^ij0log(pij0))
就是计算类别在类别 c c c和背景各自对应的feature map上,预测值与label(saliency)的交叉熵。( p ^ i j 0 = 1 − p ^ i j c \hat{p}_{i j}^{0}=1-\hat{p}_{i j}^{c} p^ij0=1p^ijc)

E-DCNN

训练好后的I-DCNN,再次传入40K张数据集。对于图像 I I I,I-DCNN输出了各个类别的feature map/score map/heat map,只需要考虑存在的类别 c c c和背景的map。通过 arg ⁡ max ⁡ \arg \max argmax得到了最终的语义分割图,用于训练E-DCNN,损失函数同样用交叉熵。 g i , j = arg ⁡ max ⁡ k ∈ { 0 , c } p i , j k g_{i,j}=\arg \max_{k\in \{0,c\}}p_{i,j}^k gi,j=argk{0,c}maxpi,jk

P-DCNN

训练好后的E-DCNN,传入complex的数据集(10K,取自VOC12)。对于图像 I I I,E-DCNN输出了各个类别的feature map/score map/heat map,同样的,通过 arg ⁡ max ⁡ \arg\max argmax得到最终的语义分割图,用于训练E-DCNN,损失函数同样用交叉熵。和E-DCNN的差别就在图像是multi-category了,所以需要考虑多个前景类 Ω \Omega Ω
g i j = arg ⁡ max ⁡ k ∈ Ω p i j k g_{i j}=\arg \max _{k \in \Omega} p_{i j}^{k} gij=argkΩmaxpijk

addition
  1. 最后的识别结果P-DCNN的输出也经过CRF后场处理。
  2. 上述DCNN采用了Deeplab。
performance
Train SetVOC12 valVOC12 test
I-DCNNFlickr-Clean44.9-
E-DCNNFlickr-Clean46.3-
P-DCNNFlickr-Clean+VOC49.851.2
疑问

I-DCNN和E-DCNN都是使用的one-category的数据进行训练,E-DCNN使用的训练数据是由I-DCNN生成的。
从这个角度理解,E-DCNN训练收敛的上限应该只能达到I-DCNN的水平,因为E-DCNN训练标签都是由I-DCNN生成的。但是VOC上的实验准确率E-DCNN是比I-DCNN要高的,所以这说明:神经网络有一定的纠错能力?比如一个用较一般的训练数据X训练网络,网络收敛后的反而能得到refined X,拿refined X重新训练网络能够在得到renfined refined X?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值