AdvErasing [CVPR17]

AdvErasing


paper: Object Region Mining with Adversarial Erasing: A Simple Classification to Semantic Segmentation Approach

文章发表在2017年的CVPR上,同样的也是基于CAM进行后续处理。
作者考虑到CAM网络是通过训练辨别模型从而得到score map/heat map。所以无可避免主要的激活区域总是在最具辨识度(discriminate)的地方,如果能够解决这个问题,一定能改善CAM的效果。所以这是本文的第一部分工作,AE算法(adversarial erasing)。在此基础上,作者还提出了第二个算法PSL(Prohibitive Segmentation Learning)。

AE

作者为了完成CAM的分类网络(从feature map到点的转换使用平均池化),使用了强监督下表现良好的DeepLab-CRF-LargeFOV模型(当然,Deeplab也是基于VGG16)。

  1. 使用 n n n张训练集第一次训练模型至收敛,这样训练图像 I i ( i = 1 , 2 , . . . n ) I_i(i=1,2,...n) Ii(i=1,2,...n),输出各个类别的score map/heat map,设置阈值得到图像中存在类别集合 L L L的判别区域 R i , l R_{i,l} Ri,l l ∈ L l\in L lL
  2. 更新训练集,对于图像 I i I_i Ii将识别得到的所有类别 l l l的区域 R i , l R_{i,l} Ri,l擦去,即 I i = I i ∖ R i , L I_i=I_i\setminus R_{i,L} Ii=IiRi,L。擦去的方法是将这些区域的像素值设为训练集的平均像素值。
  3. 使用更新后的训练集重新训练(第二次)训练模型至收敛,重复2操作。
  4. 如法炮制,一直到图像中已经没有显著的属于类别的信息了,作者实验发现(训练-擦除)执行三次的效果最棒。

PLUS~:作者这里得到背景语义图的方式也是基于saliency。

PSL

AE能够得到不错的效果,但是会存在两个问题:

  1. 部分像素点位置的归属不确定,即前景和背景的置信度都很低,不知道该归到哪个类。
  2. 存在误判,比如识别出不存在于图像中的物体。

PSL是作者提出的在线算法。即随着训练的收敛,输出结果逐渐优化,label也会近一步的优化,从而达到更进一步的监督。
PSL个人认为和MIL-seg中的ILP一模一样…设S是经过AE后得到的识别结果,PSL思路就是将CAM中的类别置信度乘上 S S S中对应类别的feature map,在通过 arg ⁡ max ⁡ \arg \max argmax合成最终的语义分割图。
具体做法如下:

  1. 设AE输出的各个类别预测结果为 f ( I , θ ) f(I,\theta) f(I,θ),合成最终的预测结果为 S S S,即 S = max ⁡ { f ( I ; θ ) } S=\max\{f(I;\theta)\} S=max{f(I;θ)}
  2. v \boldsymbol{v} v是AE/CAM中对图像中的类别置信度。
  3. S ^ \hat{S} S^ f ( I , θ ) f(I,\theta) f(I,θ)加工优化在合成的预测结果。即 S ^ = max ⁡ { [ 1 , v ] ⊗ f ( I ; θ ) } \hat{S}=\max \{[1, \boldsymbol{v}] \otimes f(I ; \theta)\} S^=max{[1,v]f(I;θ)},即对应背景的fearure map,乘上系数1(因为一张图里肯定有背景,所以背景置信度肯定为1),对于其他识别出的前景分割图,分别乘上对应的类别置信度。

这样PSL部分的loss为:
min ⁡ θ [ ∑ I ∈ I − 1 ∑ c ∈ O s e g ∣ S c ∣ ∑ c ∈ O seg ⁡ ∑ u ∈ S c log ⁡ f u , c ( I ; θ ) − 1 ∑ c ∈ O s e g ∣ S ^ c ∣ ∑ c ∈ O s e g ∑ u ∈ S ^ c log ⁡ f u , c ( I ; θ ) ] \min _{\theta}[ \sum_{I \in \mathcal{I}}-\frac{1}{\sum_{c \in \mathcal{O}^{s e g}}\left|S_{c}\right|} \sum_{c \in \mathcal{O} \operatorname{seg}} \sum_{u \in S_{c}} \log f_{u, c}(I ; \theta)-\frac{1}{\sum_{c \in \mathcal{O}^{s e g}}\left|\hat{S}_{c}\right|} \sum_{c \in \mathcal{O}^{s e g}} \sum_{u \in \hat{S}_{c}} \log f_{u, c}(I ; \theta)] θmin[IIcOsegSc1cOseguSclogfu,c(I;θ)cOsegS^c1cOseguS^clogfu,c(I;θ)]
对于上式的理解:
损失函数可以看作两个部分,分别是 S S S S ^ \hat{S} S^的损失估计,我们希望 S S S中正确预测的各个像素的置信度尽可能的高/趋紧于1,同样的,对于优化后的输出 S ^ \hat{S} S^,我们也希望对于其预测出的且确实存在该类的置信度也尽可能的高/趋紧于1。
PSL和MIL-seg的ILP的区别:
在MIL-seg中,作者是将ILP作为后场处理,而本文中作者将PSL作为一个损失函数来迭代优化,使得其融入训练中。
疑问
所以为什么要这样设计同时优化 S S S S ^ \hat{S} S^呢?如果优化 S S S S ^ \hat{S} S^的交叉熵,使得 S S S趋紧于 S ^ \hat{S} S^好像也不错?毕竟SEC中把CRF的效果也直接让DCNN预测就是通过计算CRF前后的交叉熵来诱导DCNN。
test时:
测试时,作者采用更加严格的约束,对于类别置信度低于一定阈值的直接置为0,就是直接把对应类别的feature map直接删去。

addition

当然AE+PSL之后还使用了CRF进行后场处理。

performance
VOC12 valVOC12 test
AE50.9-
AE+PSL54.1-
AE+PSL++55.055.7

PSL++:PSL训练收敛好后,生成的segmentation mask经过CRF优化后得到了refined segmentation mask,将其作为superivsion在训练一次网络,收敛后得到的输出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值