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. linux下的deb/rpm文件的说明和安装方法

    1.    deb 是 ubuntu .debian 的格式.    rpm 是 redhat .fedora .suse 的格式. 他们不通用(虽然可以转换一下). deb是debian发行版的软件 ...

  2. 摘自:java夜未眠之java学习之道

    目前Java可以说是产业界和学术界最热门的语言,许多读者都很急切想把Java学好.除非是武侠小说中的运功传送内力的方式,否则花上一段时间苦学是免不了的.花时间,不打紧,就是怕方法错误,事倍功半.我认为 ...

  3. SQL SERVER中的逻辑读取,物理读取,以及预读的理解

    在SQLSERVER查询分析器中,当我们用Set Statistics on 语句来统计SQL语句或者存储过程I/O的时候, SQLSERVER会显示几个概念去词语:逻辑读取,物理读取,预读. 如下: ...

  4. 详解模块定义(.def)文件

    一个完整的Windows应用程序(C++程序)通常由五种类型的文件组成:源程序文件,头文件,资源描述文件,项目文件,模块定义文件.本文主要讲解模块定义文件. 模块定义 (.def)文件为链接器提供有关 ...

  5. 模拟http或https请求,实现ssl下的bugzilla登录、新增BUG,保持会话以及处理token

    1.增加相应httpclient 需要的jar包到工程,如果是maven工程请在pom.xml增加以下配置即可: <dependency> <groupId>org.apach ...

  6. Python网络编程03----Python3.*中socketserver

    socketserver(在Python2.*中的是SocketServer模块)是标准库中一个高级别的模块.用于简化网络客户与服务器的实现(在前面使用socket的过程中,我们先设置了socket的 ...

  7. 未来WEB程序员

    作为一名程序员,如果你想在这个领域内继续向前进步或者在当前的经济形势下保持不被炒鱿鱼,那么你就决不应当自满自足,你需要继续学习.近日,著名IT评论员Justin James在他的博客中列出了未来五年程 ...

  8. javaweb-dbutils

    package cn.itcast.demo; import java.io.File;import java.io.FileNotFoundException;import java.io.File ...

  9. 算法题----称硬币: 2n(并不要求n是2的幂次方)个硬币,有两个硬币重量为m+1, m-1, 其余都是m 分治 O(lgn)找出假币

    Description: 有2n个硬币和一个天平,其中有一个质量是m+1, 另一个硬币质量为m-1, 其余的硬币质量都是m. 要求:O(lgn)时间找出两枚假币 注意: n不一定是2的幂次方 算法1: ...

  10. jQuery实现产品滚动效果

    html: <div class="win_list_b"> <div class="scroll" style="height: ...