Self-Supervised Difference Detection for Weakly-Supervised Semantic Segmentation

本文提出了一种自我监督差异检测(SSDD)模块,用于弱监督语义分割任务,旨在减少映射函数的噪声并提取有用信息。通过预测和区分知识与建议之间的差异,SSDD在网络中应用于伪掩码生成和全监督训练阶段,提高了分割准确性和性能。在实验中,该方法展现出良好的效果。
摘要由CSDN通过智能技术生成

论文地址
这篇论文原文的定义实在是太混乱了,也可能是我自己理解能力不够,我自己写完连自己都搞晕了,所以更到一半后面的就没有继续记录,这篇文章讲的比较清楚。

摘要

本文通过移除噪音来提升mapping function的准确性。本文提出self-supervised difference detection模块,通过预测mapping前后的分割掩码来减少noise。

1. Introduction

语义分割要求复杂精细的标注,而弱监督的标注很容易获得。WSSS任务通常使用可视化的方法,比如CAM去解决。这样一来,从可视化结果到语义分割结果的映射就显得很重要,映射的其中一种方法就是CRF,CRF应用在映射函数,优化概率的分布,是一种利用颜色和位置信息作为特征来优化拟合到区域边缘的概率分布的方法。许多映射方法虽然有效,但是映射结果包含噪音。本文的映射函数将结果视为可以接受其包含噪音的结果,然后提出了一种暴力的解决噪音的方法。

在本文中,用作映射函数的输入的信息称为knowledge,包含噪音的监督信息称为advice,允许一对一映射的完全监督学习的监督称为teacherknowledgeadvice不同的部分称为difference

推理knowledge和来自于knowledgeadvice导致要提前预测advisor的advice,有些advice很好预测,因为在训练过程中有大量相似的例子,这些advice我们认为是有用的信息。基于此,我们提出一种方法,可以通过 difference detection中预测advice中有用的信息。见Fig. 1。
在这里插入图片描述

本文提出的Self-Supervised Difference Detection (SSDD)模块既可以应用在伪掩码生成的阶段,也可以应用在全监督训练阶段(这里说的全监督应该就是用伪掩码监督分割模型的阶段)。在生成seed(伪掩码)的阶段,我们用SSDD模块提炼了pixel-level semantic affinity (PSA)的CRF结果。在训练阶段,我们介绍了两个SSDD在全监督分割网络中循环的应用,并在实验中展现了良好的结果。

本文的contributions如下:

  • 提出SSDD模块,减少了映射函数的噪音并选择有用的信息。
  • 展示了SSDD模块在生成伪掩码和训练的阶段都有有效性。
  • 实验。

2. Related Works

3. Method

在这里插入图片描述
原文详细讲了advice,knowledge和difference的关系,以及本文的任务。

3.1. Difference detection network

我们定义knowledge的mask为 m K m^K mKadvice的mask为 m A m^A mA,他们的difference记为 M K , A ∈ R H × W M^{K,A}\in\mathbb R^{H×W} MK,ARH×W
M u K , A = { 1 i f ( m u K = m u A ) 0 i f ( m u K ≠ m u A ) M_u^{K,A}= \left\{\begin{array}{rcl} 1 & if & (m_u^K=m_u^A) \\ 0 & if & (m_u^K\neq m_u^A) \end{array}\right. MuK,A={10ifif(muK=muA)(muK=muA)
其中 u ∈ { 1 , 2 , ⋯   , n } u\in\{1,2,\cdots,n\} u{1,2,,n}表示像素点的位置,n是像素点的数量。然后,我们定义一个difference detection网络来推断difference。我们用从训练过的CNN中提取的特征图来协助推断。具体来讲,我们用了高级特征 e h ( x ; θ e ) e^h(x;\theta_e) eh(x;θe)和低级特征 e l ( x ; θ e ) e^l(x;\theta_e) el(x;θe),其中x是输入图像,e是由 θ e \theta_e θe参数化的embedding function。在Fig. 3中,输入掩码的confidence map d d d由difference detection network (DDNet)生成。
在这里插入图片描述
图中左边输入的两个mask即knowledge和advice分别是mapping function的输入和输出。

我们接着谈DDNet, D D n e t ( e h ( x ; θ e ) , e l ( x ; θ e ) , m ^ ; θ d ) , d ∈ R H × W DDnet(e^h(x;\theta_e),e^l(x;\theta_e),\hat{m};\theta_d),d\in\mathbb R^{H×W} DDnet(eh(x;θe),el(x;θe),m^;θd),dRH×W m ^ \hat m m^是one-hot vector mask,数量和类别数相同, θ d \theta_d θd是DD-Net的参数, e ( x ) = ( e l ( x ) , e h ( x ) ) e(x)=(e^l(x),e^h(x)) e(x)=(el(x),eh(x))。DD-Net的结构如Fig. 2所示。其由3个卷积层和有3个输入1个输出的Residual block组成。
在这里插入图片描述
DD-Net的输入是原始mask或经过处理的mask,输出是difference mask。这个网络的loss可以由下面式子来求:
L d i f f = 1 ∣ S ∣ ∑ u ∈ S ( J ( M K , A , d K , u ; θ d ) + J ( M K , A , d A , u ; θ d ) ) \mathcal L_{diff}=\frac{1}{|S|}\sum_{u\in S}(J(M^{K,A},d^K,u;\theta_d)+J(M^{K,A},d^A,u;\theta_d)) Ldiff=S1uS(J(MK,A,dK,u;θd)+J(MK,A,dA,u;θd))
其中S是输入空间像素的集合,J()函数输出交叉熵损失。注意这里的d是DD-Net预测输出的confidence map。
J ( M , d , u ) = M u l o g d u + ( 1 − M u ) l o g ( 1 − d u ) J(M,d,u)=M_ulogd_u+(1-M_u)log(1-d_u) J(M,d,u)=Mulogdu+(1Mu)log(1du)
需要注意,embedding function θ e \theta_e θe的参数和 θ d \theta_d θd的优化无关。

3.2. Self-supervised difference detection module

本节详述Fig. 3的SSDD模块。advice中在difference里为TRUE的部分记为 S A , T S^{A,T} SA,T,FALSE的部分记为 S A , F S^{A,F} SA,F。这个方法的目标就是尽可能多地从 S A S^A SA中提取 S A , T S^{A,T} SA,T d K d^K dK是根据knowledge得到的advice的推断结果。

。。。。这篇论文原文的定义实在是太混乱了,我自己写完连自己都搞晕了,这篇文章讲的比较清楚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值