Instance-aware Semantic Segmentation via Multi-task Network Cascades

Jifeng Dai Kaiming He Jian Sun

本文的出发点是做Instance-aware Semantic Segmentation,但是为了做好这个,作者将其分为三个子任务来做:

1) Differentiating instances. 实例区分

2) Estimating masks.    掩膜估计

3) Categorizing objects.   分类目标

通过这种分解,作者提出了如下的多任务学习框架,即:Multi-task Network Cascades (MNCs),示意流程如下:

下面详细的介绍下这个流程,即:

1. Multi-task Network Cascades

1). Regressing Box-level Instances 

  第一个阶段是回归出物体的bbox,这是一个全卷积的子网络。本文follow了Faster R-CNN的提取proposal的方法Region Proposal Networks (RPNs)。在共享feature之前,作者先用了一个 3*3的Conv 用于降维,紧跟着用2个1*1的Conv层回归出其位置,并且对目标进行分类。该阶段的loss function是:

其中,B是该阶段的输出,是一系列的box,B = { Bi }, Bi = { xi; yi; wi; hi; pi },box的中心点和长宽分别是:xi yi wi hi, yi是物体的概率。

2). Regressing Mask-level Instances 

  该阶段的输出是对每一个box的proposal进行像素级的mask分割。

    Given a box predicted by stage 1, we extract a feature of this box by Region-of-Interest (RoI) pooling . The purpose of RoI pooling is for producing a fixed-size feature from an arbitrary box, which is set as 14*14 at this stage. (给定阶段1产生的box,我们用RoI pooling的方法提取该box的特征。用RoI pooling的原因是从一个任意的box中产生一个固定长度的feature。)

  在每一个box的feature之后,添加两个fc层,第一个fc将维度降到256, 第二个fc 回归出像素级的mask。

  第二阶段的loss function符合下面的形式:

  其中,M是该阶段的输出,代表一系列的mask,M = { Mi }, Mi = m^2 维的逻辑回归输出(用sigmoid回归到 [0,1])。该阶段的loss不仅依赖于M,而且依赖于B。

3). Categorizing Instances

  给定第一阶段的box,也对其进行特征的提取。然后用第二阶段的mask估计进行二值化。这么做的好处是:this lead to a feature focused on the foreground of the prediction mask. 掩膜化的feature计算方式如下:

  其中,元素级乘积的左边是RoI pooling之后的特征,右边是第二阶段的mask prediction. 可以看出乘积的结果Fi^Mask(*)依赖于Mi(*).将该feature输入给两路fc层。这是:mask-based pathway. 所给流程图中并未画出的一路是:box-based pathway,是将RoI pooling features直接输入到4096维的fc层。然后将mask-based pathway 和 box-based pathway 连接起来(concatenated)。紧接着是 N+1类的Softmax分类器,其中N类是物体,1类是背景。

  第三个阶段的loss term是:

  其中,C(*)是物体种类的预测结果。 

2. End-to-End Training

  总的级联的损失函数定义为:

  此处,该loss function并不像传统的multi-task learning,因为后一阶段的输入依赖于前一阶段的输出。例如:根据后向传播(BP)的链式法则,L2的梯度和B有关。对上述loss function采用链式法则的主要技术挑战在于:预测box Bi(*)决定RoI pooling的空间转换(spatial transformation)。对于RoI pooling层来说,其输入是预测的box B(*) 和 卷及特征映射 F(*),这两者都是*的函数。

  在Fast R-CNN中,the box proposal 都是预先计算的且是固定的。RoI pooling的回传仅仅和F(*)有关,但是这个仅仅在B(*)不出现的情况下才可以。在End-to-End的训练过程中,这两项的梯度都要考虑。

  本节提出了可微分的RoI warping layer来解决梯度问题,即:预测的box的位置和对B(*)的依赖。

Differentiable RoI Warping Layers.

  too many things, waiting for my understanding ... will add this part in the future ...   

  sorry ...

Masking Layers. 

  我们也需要计算设计 L3 的梯度,其依赖于B(*) 和 M(*),有了differentiable RoI Warping module (Fi^RoI),就可以通过元素级乘积模块来执行该操作。

  有了这些东西,其余的都是一样的了,直接利用SGD就可以在caffe的框架下进行求解了。

 

3. Cascades with More Stages

  本文参考Fast R-CNN的用class-wise bbox 回归出 (N+1)-way的分类器,在第三阶段,添加了 4(N+1)-d fc layer和分类器层是兄弟层。由于本文的目标不是box 而是 mask,所以作者将第三个阶段产生的 regressed boxes, 然后将这些boxes再看做是 proposals,然后在此基础上,再运行一次阶段2和3. 这实际上是一种5级的级联网络:

  作者提到此处可以迭代的进行此处inference的过程,但是貌似精度并未有明显的提升。

4. 实验部分:

 

 

论文笔记之:Instance-aware Semantic Segmentation via Multi-task Network Cascades的更多相关文章

  1. 论文笔记:Concept Mask: Large-Scale Segmentation from Semantic Concepts

    Concept Mask: Large-Scale Segmentation from Semantic Concepts 2018-08-21 11:16:07 Paper:https://arxi ...

  2. 论文笔记:Capsules for Object Segmentation

    Capsules for Object Segmentation 2018-04-16  21:49:14 Introduction: ----

  3. 论文笔记:Person Re-identification with Deep Similarity-Guided Graph Neural Network

    Person Re-identification with Deep Similarity-Guided Graph Neural Network 2018-07-27 17:41:45 Paper: ...

  4. Large Kernel Matters —— Improve Semantic Segmentation by Global Convolutional Network(GCN全局卷积网络)

    作者认为语义分割的两个挑战是分类和定位,而这两个挑战又是比较对立的.对于分类问题,模型需要有变形和旋转不变形,而对于定位问题,模型有需要对变形敏感. 提出的GCN遵循两个主要原则: 1.对定位问题,模 ...

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

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

  6. Fully Convolutional Networks for Semantic Segmentation 译文

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

  7. FCIS:Fully Convolutional Instance-aware Semantic Segmentation

    论文:Fully Convolutional Instance-aware Semantic Segmentation   目录 0.简介 1.Position-sensitive Score Map ...

  8. Review of Semantic Segmentation with Deep Learning

    In this post, I review the literature on semantic segmentation. Most research on semantic segmentati ...

  9. Semantic Segmentation on Remotely Sensed Images Using an Enhanced Global Convolutional Network with Channel Attention and Domain Specific Transfer Learning

    创新点: 1.在GCN(global convolutional network)基础上,把他的backbone替换成更多层的,使其适应中分辨率影像,resnet50,101,152 2.利用 cha ...

随机推荐

  1. iframe中的jquery ui modal dialog 覆盖父窗口

    在iframe中 使用jquery ui dialog,弹出后可以覆盖父窗体 ///iframe中的jquery ui modal dialog 覆盖父窗口 function openDialog() ...

  2. 在VS2010中打开VS2012的项目

    修改工程文件来把VS2012的工程文件移植到VS2010中 首先是修改解决方案文件(.sln文件). 使用记事本打开,把里面的 Microsoft Visual Studio Solution Fil ...

  3. KVO的内部实现原理

    kvo概述 kvo,全称Key-Value Observing,它提供了一种方法,当对象某个属性发生改变时,允许监听该属性值变化的对象可以接受到通知,然后通过kvo的方法响应一些操作. kvo实现原理 ...

  4. JVM-JDK命令行工具

    JDK命令行工具 当我们进入JDK的安装目录里面的/bin目录,会发现有很多小工具,有我们熟悉的也经常用的java,javac,也有很多我们不怎么用到很陌生的工具.下面看看哪些平时不怎么用到的工具吧. ...

  5. C++ primer的第一章的主要内容

    第一章主要是把C++的主要的部分简单的介绍了一下,让读者对C++开始有一个简单的了解.看完第一章的收获就是知道如何去读入不确定数目的输入,主要是形式是:whlie(cin>>s){},利用 ...

  6. 《用格式化(fprintf和fscanf函数)的方式读写文件》

    //用格式化(fprintf和fscanf函数)的方式读写文件 [用格式化的方式向文件中写入数据]#include<stdio.h>#include<stdlib.h> int ...

  7. C++ shared_ptr deleter的实现

    #include <iostream>#include <memory>using namespace std; #include<iostream>class s ...

  8. linux命令:ls

    1.介绍: ls是linux日常操作中用的最多命令,是list的缩写,默认按名称排序列出当前目录和文件,ls --help可以查看帮助. 2.命令格式: ls [OPTION] [FILE] 3.命令 ...

  9. 关于我和Github不得不说的一些小事

    你好,我叫黄雅婷,学号是1413042031,网络工程142班.因为小时候家里有很多课外书,有关神话和科学方面的杂志和书籍等,所以从小就喜欢看书,现在比较不挑,什么书都喜欢看,就是给我本字典,我也能看 ...

  10. jQuery基础学习笔记(1)

    --------2.0以上版本体积更小. --------CDN  内容分发网络(Content delivery network或Content distribution network,常简写成C ...