Zhang D., Zhang H., Tang J., Hua X. and Sun Q. Causal Intervention for Weakly-Supervised Semantic Segmentation. NIPS, 2020.

这篇文章从因果关系的角度剖析如何提升弱监督语义分割的方法.

主要内容

普通的弱监督语义分割

弱监督语义分割不似普通的语义分割一样依赖丰富的人工标注, 本文考虑的情况就是非常极限的, 仅知道每张图片的类别标签(可以是多标签, 比如: 人, 车, 表示一张图片里面有人有车).

一般的弱监督语义分割包含:

  1. 训练一个分类模型(多标签);
  2. 通过CAM确定大概的seed areas;
  3. 将seed areas进行拓展得到pseudo-masks;
  4. 训练一个分割模型(将pseudo-masks作为ground-truth);
  5. 概分割模型作为最后的模型

但是显然的是, 仅仅凭借类别标签完成复杂的语义分割任务是相当困难的, 大概有如下:

  1. 目标物体往往不是孤立的: 有可能数据集中每次出现马的时候都会有一个人, 则分类模型可能会将二者的特征混合用于分类, 那么最后的分割就很难明显的把二者的边界提取出来;
  2. 背景信息并不完全: 背景往往含有一些别的未被标注的目标, 而这些目标和我们所关心的目标有可能是相互联系甚至是同时存在的, 比如: 地板和沙发, 这导致在提取沙发的时候往往把模板也一并提取出来了;
  3. foreground, 前景的目标往往是共同变化的: 比如车和车窗, 车窗总是会反应周围的事物, 导致车窗这一属性不是用来提取车的好的特征, 分类模型很有可能会丢掉这一部分信息, 其导致的结果就是最后的分割的区域车窗少一块.

因果模型

C: context prior;

X: pixel-level image;

M: image-specific representation using the textual templates from C;

Y: labels.

作者认为, 整个流程是这样的:

  1. 确定先验背景信息\(C\);
  2. 通过先验背景信息\(C\)构建图片\(X\);
  3. 图片\(X\)和背景信息\(C\)共同确定了和背景有关的特征表示\(M\);
  4. \(X\), \(M\) 共同影响最后的类别标签\(Y\).

我们一般的分类模型, 实际上是拟合条件分布

\[\mathrm{P}[Y|X],
\]

显然这个条件分布与先验的背景信息有很大联系, 即图(a).

而我们实际上所关心的是

\[\mathrm{P}[Y|do(X)],
\]

即建立目标的出现和场景没有关系的模型.

首先我们要做的就是将其转为一般的统计估计量:

\[\tag{1}
\begin{array}{rl}
\mathrm{{P}}[Y|do(X)]
=& \sum_{c} \mathrm{P}[Y|do(X), c] \: \mathrm{P}[c|do(x)]\\
=& \sum_{c} \mathrm{P}[Y|do(X), c] \: \mathrm{P}[c]\\
=& \sum_{c} \mathrm{P}[Y|X, c, f(X;c)] \: \mathrm{P}[c]\\
=& \sum_{c} \mathrm{P}[Y|X, M=f(X;c)] \: \mathrm{P}[c].\\
\end{array}
\]

显然, 这里有一个假设, 即知道了\(X, C\)之后, \(M\)也是确定的, 其通过\(M=f(X;c)\)来拟合.

训练流程

  1. 训练以\(X, M\)为输入的多标签分类网络, 其通过
\[\mathrm{P}[Y|do(X);\Theta_t] = \prod_{i=1}^n [\mathbf{1}_{i \in Y}\frac{1}{1 + \exp(-s_i)} + \mathbf{1}_{i \not\in Y}\frac{1}{1 + \exp(s_i)} ],
\]

其中\(s_i=f(X, M_t;\theta_t^i)\), \(n\)是类别总数.

2. 利用CAM得到seed areas 并扩展为pseudo-mask;

3. 将上面的pseudo-mask作为ground-truth训练分割模型;

4. 计算

\[M_{t+1} = \sum_{i=1}^n \alpha_i c_i P(c_i), \quad \alpha_i = softmax(\frac{(W_1X_m)^T(W_2c_i)}{\sqrt{n}}).
\]

注意到, 我们本应该最小化(1), 但是注意到, 此时对于每一个\(c\), 我们都要循环一次, 这非常非常耗时, 所以作者是:

\[\sum_{c} \mathrm{P}[Y|do(X), M=f(X;c)] \mathrm{P}[c]\approx
\mathrm{P}[Y|do(X), M=\sum_{c}f(X;c)\mathrm{P}(c) ].\\
\]

一直进行\(T\)步.

注:第1步中的\(f(X, M_t;\theta_t^i)\)并不一定要让\(X, M_t\)都在同一层输入, 实际上\(M_t\)是比较抽象的信息, 故作者实验发现在后几个block加入效果更好;

注: 先验背景信息\(\{c_i\}\)是pseudo-mask的平均;

注: \(W_1, W_2\)是可训练的参数.

代码

原文代码

Causal Intervention for Weakly-Supervised Semantic Segmentation的更多相关文章

  1. 2018年发表论文阅读:Convolutional Simplex Projection Network for Weakly Supervised Semantic Segmentation

    记笔记目的:刻意地.有意地整理其思路,综合对比,以求借鉴.他山之石,可以攻玉. <Convolutional Simplex Projection Network for Weakly Supe ...

  2. [ICCV 2019] Weakly Supervised Object Detection With Segmentation Collaboration

    新在ICCV上发的弱监督物体检测文章,偷偷高兴一下,贴出我的poster,最近有点忙,话不多说,欢迎交流- https://arxiv.org/pdf/1904.00551.pdf http://op ...

  3. 论文笔记(3):STC: A Simple to Complex Framework for Weakly-supervised Semantic Segmentation

    论文题目是STC,即Simple to Complex的一个框架,使用弱标签(image label)来解决密集估计(语义分割)问题. 2014年末以来,半监督的语义分割层出不穷,究其原因还是因为pi ...

  4. [CVPR 2016] Weakly Supervised Deep Detection Networks论文笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #323333 } p. ...

  5. [CVPR2017] Weakly Supervised Cascaded Convolutional Networks论文笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Helvetica Neue"; color: #042eee } p. ...

  6. 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation

    在上计算机视觉这门课的时候,老师曾经留过一个作业:识别一张 A4 纸上的手写数字.按照传统的做法,这种手写体或者验证码识别的项目,都是按照定位+分割+识别的套路.但凡上网搜一下,就能找到一堆识别的教程 ...

  7. 论文笔记《Feedforward semantic segmentation with zoom-out features》

    [论文信息] <Feedforward semantic segmentation with zoom-out features> CVPR 2015 superpixel-level,f ...

  8. [Papers] Semantic Segmentation Papers(1)

    目录 FCN Abstract Introduction Related Work FCN Adapting classifiers for dense prediction Shift-and-st ...

  9. Fully Convolutional Networks for Semantic Segmentation 译文

    Fully Convolutional Networks for Semantic Segmentation 译文 Abstract   Convolutional networks are powe ...

随机推荐

  1. 强化学习实战 | 表格型Q-Learning玩井字棋(一)

    在 强化学习实战 | 自定义Gym环境之井子棋 中,我们构建了一个井字棋环境,并进行了测试.接下来我们可以使用各种强化学习方法训练agent出棋,其中比较简单的是Q学习,Q即Q(S, a),是状态动作 ...

  2. 日常Java 2021/11/4

    ServerSocket类的方法服务器应用程序通过使用java.net.ServerSocket类以获取一个端口,并且侦听客户端请求. 构造方法: public ServerSocket(int po ...

  3. A Child's History of England.17

    CHAPTER 6 ENGLAND UNDER HAROLD HAREFOOT, HARDICANUTE, AND EDWARD THE CONFESSOR Canute left three son ...

  4. day07 ORM中常用字段和参数

    day07 ORM中常用字段和参数 今日内容 常用字段 关联字段 测试环境准备 查询关键字 查看ORM内部SQL语句 神奇的双下划线查询 多表查询前提准备 常用字段 字段类型 AutoField in ...

  5. ES6必知,箭头函数与普通函数的区别。

    1. 箭头函数没有prototype(原型),所以箭头函数本身没有this let a = () =>{}; console.log(a.prototype); // undefined 2. ...

  6. Linux基础命令---mysqldump数据库备份

    mysqldump mysqldump是一个客户端的备份程序,他可以备份数据库,或者将数据库传输到另外一个服务器. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora. ...

  7. Initialization of data members

    In C++, class variables are initialized in the same order as they appear in the class declaration. C ...

  8. 【Linux】【Services】【SaaS】Docker+kubernetes(1. 基础概念与架构图)

    1.简介 1.1.  背景:公司正在进行敏捷开发环境的搭建,以取代传统的架构,好处大大的,我就不赘述了.公司原来负责这个项目的同事要转组,我只好交给另外同事继续,但是为了防止同样的事情,我也需要深入了 ...

  9. BigDecimal 中 关于RoundingMode介绍

    RoundingMode介绍 RoundingMode是一个枚举类,有以下几个常量:UP.DOWN.CEILING.FLOOR.HALF_UP.HALF_DOWN.HALF_EVEN.UNNECESS ...

  10. Python——连接数据库操作

    一.数据库基础用法 要先配置环境变量,然后cmd安装:pip install pymysql 1.连接MySQL,并创建wzg库 #引入decimal模块 import pymysql #连接数据库 ...