Single-Stage Semantic Segmentation from Image Labels笔记

1. 概述

本文使用单阶段算法。以往的多阶段回归算法,大多都是先通过CAM或者是显著性检测生成显著性区域,而后通过传统的迭代算法或者是基于图论算法得到较为好的结果。多阶段的算法意味着更多的时间,更复杂的模型,更复杂的训练过程。而单阶段的算法在以往也提出过,但是由于精度的问题而遭受抛弃,本文根据一些衡量分割的指标:(局部一致性)local consistency, (语义准确性)semantic fidelity, and (完整性)completeness作为指导,证明单阶段方法也能够有良好的效果。
参考:https://zhuanlan.zhihu.com/p/149623318

2. 方法

这篇文章有三个创新点

  1. normalized Global Weighted Pooling (nGWP) – 分类loss
  2. pixel-Adaptive Mask Refinement (PAMR) – 分割loss
  3. Stochastic Gate (SG) – backbone

1. nGWP

使用nGWP的初衷:

  1. 根据图中的公式Global Average Pooling(GAP)公式,作者发现每个pixel(xk,i,jx_{k,i,j}xk,i,j​)对预测target class 的贡献是一样的,不利于小目标分割预测,并增加了分类器对上下文的依赖,从而导致了预测的mask精确度下降(we observe that it encourages all pixels
    in the feature map to identify with the target class. This
    may disadvantage small segments and increase the reliance
    of the classifier on the context, which can be undesirable
    due to a loss in mask precision.)
  2. 根据上图的公式,传统的CAM对class activation map使用了ReLU操作,mask的值是没有上限的,然而在分割问题中,我们更倾向于normalized representation,normalized representation可以视为confidence,有利于下游分割。
  3. GAP没有强调pixel之间的竞争性(没有类似softmax的操作),在下游的分割任务中,每个pixel只能有一个class,所以pixel之间应该有竞争性。这点在GAP中无体现。

针对这三点缺陷,作者提出了nGWP模块。


mcm_cmc​为通过softmax以后的mask的值,经过normalized weighted pooling后ycnGWPy_c^{nGWP}ycnGWP​作为分类分数,因为是normalized过的,可以看出与mask的大小没有关系。这样有利于对小物体分割,但mask的变小会造成recall变小。为了提高分割的完整性,作者使用一个惩罚项来提高正例的class的mask的尺寸。

由这个公式可以看出当mask过小的时候,得到一个巨大的负值,从而对相对于全图过小的mask有一个惩罚。作者做这么多步骤是为了将分类分数与mask大小解偶。当分类分数与mask大小解偶后,就可以应用difficulty-aware loss function(e.g. focal loss),于是作者又引入了下面的公式对小mask进一步关注。

当mask过小的时候,产生的结果不变。但focal loss会减小mask尺寸增大产生的影响,以关注mask接近零时的失败情况。
最终分类得分为ycnGWP+ycsize−focaly_c^{nGWP} + y_c^{size-focal}ycnGWP​+ycsize−focal​
class loss使用multi-label soft-margin loss function:

2. Pixel-adaptive mask refinement

classification loss影响了语意准确性(semantic fidelity)和完整性(completeness),local mask refinement会影响局部一致性。即临近的有相似appearance的区域应该属于同一个类。于是作者使用原本的mask m∈(0,1)(C+1)×h×wm \in (0,1)^{(C+1)\times h \times w}m∈(0,1)(C+1)×h×w和image III 来生成新的refined mask。这个函数必须高效,因为需要用新mask作为self-supervision在训练分类网络的同时训练分割网络。为了高效性,作者使用pixel-adaptive convolution(PAC)来实现这个过程。主要想法是用临近标签的convex combination来迭代地更新pixel labelm:,i,jm_{:, i, j}m:,i,j​

具体来说,对每个像素,作者计算出一个affinity kenel来衡量它与它的相邻像素在RGB空间的相似性。然后迭代的优化更新semantic mask。


kernel kkk是关于image III的方程。σ\sigmaσ是图像像素intensity的局部standard deviation。并且,在最终的affinity distance之前,作者使用了softmax将α\alphaα转成了0,1之间的数。具体的迭代次数与kernel的size和shape有关。值得注意的是,PAMR是不参与backpropogate的。作者采用了confidence>60%(background confidence >70%)的mask作为伪标签。

3. Stochastic gate

强大的模型可能会模仿伪标签(pseudo ground truth)的错误,之前的研究显示,大的感受野(receptive field)能够学习分割任务中的复杂现象。为了防止self-supervision中的错误的复合效应,作者提出了一种regularisation,命名为stochasitc Gate(SG)。主要的想法是,将具有大感受野的深层feature与具有一般大小感受野的(之前的layer的)feature结合。具体来说,x(d)x^{(d)}x(d), x(s)x^{(s)}x(s)分别为deep feature map和shallow feature map. 在训练阶段对每个像素使用SG类似于dropout。

在inference时,作者使用固定的mixing rate ∈[0,1]\in [0,1]∈[0,1]。调节两种feature的占比。

Shallow feature可能没有足够的semantic information。为了增强他们的表达性,并保留原有的感受野,作者设计了Global cue Injection(GCI)。据上图所示,deep feature通过1by1 convolution将channels增加一倍。之后用过Global Max Pooling(GMP)提取了两个vectors。红色区域为baseline model DeepLabv3+
之后通过上式得到增强的shallow feature。μ\muμ,σ\sigmaσ为某一个channel中x(s)x^{(s)}x(s)的mean和std。

Single-Stage Semantic Segmentation from Image Labels笔记相关推荐

  1. S4Net: Single Stage Salient-Instance Segmentation阅读笔记

    论文链接:http://arxiv.org/abs/1711.07618 简介 文章关注显著实例分割.考虑到每个实例类的独立性,文章设计了一个单阶段显著实例分割网络,该网络不仅考虑了box框内的loc ...

  2. 论文精读及分析:Fully Convolutional Networks for Semantic Segmentation

      本文主要内容为论文<Fully Convolutional Networks for Semantic Segmentation> 的阅读笔记,在原始论文的基础上加入了自己的一些理解, ...

  3. 【论文笔记】PSEUDOSEG: DESIGNING PSEUDO LABELS FOR SEMANTIC SEGMENTATION

    论文笔记 1.论文题目 2.作者及研究单位 3.摘要 4.简介 (1)这篇论文针对什么问题展开的研究 (2)已有工作是如何解决这些问题的(已有工作存在什么不足) (3)这篇论文是如何做的(如何弥足已有 ...

  4. Object Region Mining with Adversarial Erasing: A Simple Classification to Semantic Segmentation阅读笔记

    Object Region Mining with Adversarial Erasing: A Simple Classification to Semantic Segmentation Appr ...

  5. 论文笔记之:Instance-aware Semantic Segmentation via Multi-task Network Cascades

    Instance-aware Semantic Segmentation via Multi-task Network Cascades Jifeng Dai Kaiming He Jian Sun ...

  6. 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation

    论文阅读笔记:Fully Convolutional Networks forSemantic Segmentation 这是CVPR 2015拿到best paper候选的论文. 论文下载地址:Fu ...

  7. 论文笔记:STD2P: RGBD Semantic Segmentation Using Spatio-Temporal Data-Driven Pooling

    STD2P: RGBD Semantic Segmentation Using Spatio-Temporal Data-Driven Pooling Yang He, Wei-Chen Chiu, ...

  8. 【cvpr2022-论文笔记】《L2G: A Simple Local-to-Global Knowledge Transfer .... Semantic Segmentation》

    目录 文章概述 网络架构 Classification Loss Attention Transfer Loss Shape Tansfer Loss 相关讨论 本文记录弱监督语义分割领域论文笔记&l ...

  9. Semi-Supervised Semantic Segmentation with Cross-Consistency Training论文笔记

    文章标题:Semi-Supervised Semantic Segmentation with Cross-Consistency Training 文章地址:https://arxiv.org/ab ...

最新文章

  1. python 如何查看模块所有方法-如何查看python的模块
  2. OpenGL ktxview (KTX查看器)的实例
  3. 图像-摄像头驱动流程
  4. 数据库、表、表内容增删改查
  5. 为 Office 2007/2010 安装程序整合 Service Pack 及更新程序
  6. java 陷阱_Java基础知识陷阱
  7. 背景图怎么置于底层_Ps素材教程含有刻度的背景图
  8. 【Spark亚太研究院系列丛书】Spark实战高手之-构建Spark集群-安装Ubuntu系统(3)
  9. 在Ubuntu Server14.04上编译Android6.0源码
  10. MySQL集群Cluste详解(二)——配置实战
  11. 电壁挂炉该如何配电表和电线
  12. VML标记与通用属性
  13. 广发样样行这样做可以提额
  14. 数据库应用——DQL查询数据(连表查询 子查询 详细案例)
  15. 《操作系统导论》吐血万字整理 - 附下载地址及思维导图
  16. 产品分析————拼多多
  17. 2018年1月iOS招人心得(附面试题)- 答案整理
  18. 如何基于Arduino开发板使用BH1750环境光传感器
  19. 标签纸张如何在条码打印软件中进行设置
  20. Redis中RDB操作

热门文章

  1. linux的下载利器——aira2 可以下载磁力链接
  2. 使用 kubectl drain 从集群中移除节点
  3. MongoDB——分页排序聚合操作
  4. 《白夜行》读后感:忽视就是虐待
  5. 自我管理数据缓冲区内存
  6. Manifest merger failed
  7. 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第二篇“自动运行函数”
  8. Vue判断表单验证和判断单项验证是否成功
  9. Unity游戏制作问题整理(1)--添加按钮声音
  10. Direct3D(D3D)简介