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. above, abrupt

    above 近义词: over, beyond, exceeding反义词: below, beneath, under, underneath 有从右往左写的文字,没有从下往上的.above-men ...

  2. Flink(八)【Flink的窗口机制】

    目录 Flink的窗口机制 1.窗口概述 2.窗口分类 基于时间的窗口 滚动窗口(Tumbling Windows) 滑动窗口(Sliding Windows) 会话窗口(Session Window ...

  3. Hbase与Phoenix整合

    目录 一.简介 二.安装 三.Phoenix Shell操作 SCHEMA操作 1.创建schema 2.使用schema 3.删除schema 表操作 1.显示所有表 2.创建表 3.表数据的增删改 ...

  4. 在 Qualys SSL Labs SSL 测试中获得 A+ 评级的秘技 2021 版

    本系列文章将阐述主流应用交付控制器和主流 Web 服务器如何运行 HTTP/2 和 TLSv1.3 协议,以及如何在 SSL Test 中获得 A+ 评级. 请访问原文链接:https://sysin ...

  5. 数据存储SharePreferences详解

    1.SharedPreferences存储 SharedPreferences时使用键值对的方式来存储数据的,也就是在保存一条数据时,需要给这条数据提供一个对应的键,这样在读取的时候就可以通过这个键把 ...

  6. 双向链表——Java实现

    双向链表 链表是是一种重要的数据结构,有单链表和双向链表之分:本文我将重点阐述不带头结点的双向链表: 不带头结点的带链表 我将对双链表的增加和删除元素操作进行如下解析 1.增加元素(采用尾插法) (1 ...

  7. CentOs 7 yum 安装Nginx

    打开官网下载文档:http://nginx.org/en/download.html 2进入操作系统 centOs 7,建立文件夹 nginx ,进入nginx ,拷贝 上图1编辑命令:/etc/yu ...

  8. 搭建mybatis开发环境

    1.创建工程 <groupId>com.hope</groupId>     <artifactId>day01_eesy_01mybatis</artifa ...

  9. Java 多线程的一次整理

    一天没有出过家门,实属无聊,没事瞎写写 1. 基本概念 1.1 多进程和多线程的概念 程序是由指令和数据组成,指令要运行,数据要加载,指令被 CPU 加载运行,数据被加载到内存,指令运行时可由 CPU ...

  10. 尚硅谷SSM-CRUD实战Demo

    SSM-CRUD实战项目 1. 项目总览 SpringMVC + Spring + MyBatis CRUD:增删改查 功能: 分页 数据校验 jquery前端校验+JSR303后端校验 ajax R ...