这篇文章比较简单,但还是不想写overview,转自: https://blog.csdn.net/zimenglan_sysu/article/details/52451098

另外,读这篇paper的时候,一直想不明白白一个问题,就是他分出了\(k^2\)个Instance-sensitive score maps,他是怎么训练的。。换句话说,ground truth是怎么弄的? 文章里只说了用logistics做损失函数,应该需要看代码,因为还没有搞分割的打算,先不详细了解代码。

Instance-sensitive Fully Convolutional Networks - eccv 2016

=====

论文地址:http://arxiv.org/abs/1603.08678

=====

一句话概括:

根据local coherence的特性,以sliding window的方式,利用FCN产生positive-sensitive的instance-level的segment proposal。

=====

framework

从上图可以看出,该network是一个full convolutional network(based on VGG16),除了feature extractor(VGG16的前13个conv layers)外,还有两个branches:

1 segment branch

该branch由1*1 conv,3*3 conv和一个assembling layer构成,后接segment的loss layer(采用logistic regression layer)

2 scoring branch

该branch由3*3 conv,1*1 conv构成,后接一个scoring的loss layer(采用logistic regression layer)

显然segment branch产生instance-level的segmentation mask,scoring branch对segment branch产生的instance mask进行打分。

(这里为objectness score,有点不明白为什么不是class-specific的)。

剩下的network architecture(VGG16-base)见下图:

论文采用了hole algorithm来获取dense的feature map同时保持和原来VGG16的感受野大小。

=====

key module - assembling module

论文中的network(如上所述)是比较容易理解的,除了segment branch的assembling module。

先上图来个感性认识

从上述三张图可以看出assembling module是如何工作的了,具体来说:

1 理解k^2 feature maps

由segment branch产生k^2个feature maps(或者理解为predicted masks),

这k^2 feature map编码了不同的位置信息,如top-left,top-center,……,bottom-right。

也就是每个feature map对应一个位置。

2 assembling -> producing instance-level mask

假如给定一个bounding box M(m*m大小),那么就可以将bounding box投影到k^2个feature map。

(类似RoIPooling)

将bounding box划分为k*k个bin,每个bin的大小为(m/k,m/k),

同理,bounding box投影到的feature map上的投影bounding boxes的

每个bounding box N_i (i=1,2, ...., k^2)也划分为k*k个bins。

这样M的每个bin K对应到第K个feature map上的N_k的bin K(刚好都是k^2)

那么对应的instance-level mask的输出为:同样为m*m大小,同样划分为k*k个bins

将第K个feature map上的N_k的bin K的feature values,拷贝到输出对应的bin K上。

(反向传播时,就是将对应的diff反过来拷贝过来就好)

说的有点绕口,但是它就是这么简单。

这里的输入bounding box并不是由proposal method产生的,而是论文作者以sliding window的方式

和指定bounding box的大小来产生的:

1 假设k^2的feature maps的大小为h和w,(同样对应的scoring branch的score map的大小也是h和w)

2 feature map上的每个pixel都产生一个bounding box,其大小为m*m,(论文里m=21)

3 每个pixel根据该bounding box

(已经是投影再feature map上的bounding box了,这个需要注意,而不是再从原图投影到feature map上),

输入其的instance-level的mask

4 这里的每个instance-level mask(一共w*h个)都由一个对应的objectness score,由scoring branch的score map给出

需要注意的是这里的w和h由个隐性的约束条件:h>=m, w>=m

=====

training & testing

那么论文是怎么training和testing的?还是直接看图(笔者直接截出来的)

=====

local coherence

嗯,直接看图,不说话

=====

与deepmask的对比

这个嘛,上面的local coherence已经说的很明白了,具体的请各位客官各自看论文和deepmask的论文

=====

实验效果

嗯,直接看图,不说话

=====

总的来说,

整篇论文的思路很简单,但是效果就是好,复现也容易(但是,笔者还是坐等论文作者开源)

但是笔者有几处不是很明了,不知道哪位客官可以解答下:

1 branches的conv layer设计,为什么segment branch的为1*1,3*3,而scoring branch为3*3,1*1,为什么这样设计?

2 scoring branch的score为什么不是class-specific的而是objectness?

3 为什么不用proposal method的方式来产生bounding boxes?

4 训练segment branch时,是如何为每个predicted instance-level的mask分配对应的ground-truth?

5 为什么不用在论文作者的另外一篇论文上:Instance-aware Semantic Segmentation via Multi-task Network Cascades

笔者在此多谢喇!

欢迎前来探讨!

=====

如果这篇博文对你有帮助,可否赏笔者喝杯奶茶?


【Semantic Segmentation】 Instance-sensitive Fully Convolutional Networks论文解析(转)的更多相关文章

  1. 【Detection】R-FCN: Object Detection via Region-based Fully Convolutional Networks论文分析

    目录 0. Paper link 1. Overview 2. position-sensitive score maps 2.1 Background 2.2 position-sensitive ...

  2. 【Network Architecture】Densely Connected Convolutional Networks 论文解析

    目录 0. Paper link 1. Overview 2. DenseNet Architecture 2.1 Analogy to ResNet 2.2 Composite function 2 ...

  3. 论文学习:Fully Convolutional Networks for Semantic Segmentation

    发表于2015年这篇<Fully Convolutional Networks for Semantic Segmentation>在图像语义分割领域举足轻重. 1 CNN 与 FCN 通 ...

  4. Fully Convolutional Networks for Semantic Segmentation 译文

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

  5. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

  6. 论文阅读(Xiang Bai——【CVPR2016】Multi-Oriented Text Detection with Fully Convolutional Networks)

    Xiang Bai--[CVPR2016]Multi-Oriented Text Detection with Fully Convolutional Networks 目录 作者和相关链接 方法概括 ...

  7. 中文版 R-FCN: Object Detection via Region-based Fully Convolutional Networks

    R-FCN: Object Detection via Region-based Fully Convolutional Networks 摘要 我们提出了基于区域的全卷积网络,以实现准确和高效的目标 ...

  8. 『计算机视觉』R-FCN:Object Detection via Region-based Fully Convolutional Networks

    一.网络介绍 参考文章:R-FCN详解 论文地址:Object Detection via Region-based Fully Convolutional Networks R-FCN是Faster ...

  9. 全卷积网络Fully Convolutional Networks (FCN)实战

    全卷积网络Fully Convolutional Networks (FCN)实战 使用图像中的每个像素进行类别预测的语义分割.全卷积网络(FCN)使用卷积神经网络将图像像素转换为像素类别.与之前介绍 ...

随机推荐

  1. Cookies, Security, and Privacy Client Identification

    w HTTP The Definitive Guide Cookies themselves are not believed to be a tremendous security risk, be ...

  2. php面向对象--继承

    继承 extends 关键字来继承类 被继承的类,我们称之为父类 继承后的类,我们称之为子类 子类继承父类非私有的属性和方法 public 在本类,子类,以及类的外部都访问 protected 保护型 ...

  3. Yii框架2.0的过滤器

    过滤器是 控制器 动作 执行之前或之后执行的对象. 例如访问控制过滤器可在动作执行之前来控制特殊终端用户是否有权限执行动作, 内容压缩过滤器可在动作执行之后发给终端用户之前压缩响应内容. 过滤器可包含 ...

  4. html禁止选中文字

    简单的办法,可以直接使用CSS: div { -moz-user-select:none; -webkit-user-select:none; user-select:none; } 嗯,就酱~

  5. AngularJS filter:search 是如何匹配的 ng-repeat filter:search ,filter:{$:search},只取repeat的item的value 不含label

    1.  filter可以接收参数,参数用 : 进行分割,如下: {{ expression | filter:argument1:argument2:... }} 2.   filter参数是 对象 ...

  6. PageHelper中默认PageInfo成员变量

    以下是PageHelper中默认PageInfo的成员变量,方便以后自己使用 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前 ...

  7. python 之操作mysql 数据库实例

    对于python操作mysql 数据库,具体的步骤应为: 1. 连接上mysql host 端口号 数据库 账号 密码2. 建立游标3. 执行sql(注意,如果是update,insert,delet ...

  8. 2017 Multi-University Training Contest - Team 1 03Colorful Tree

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6035 题面: Colorful Tree Time Limit: 6000/3000 MS ( ...

  9. java对象在JVM堆中的数据结构

    java对象和数组是存放在堆中的,那么这些instance的数据结构是什么呢? 对象头:对象头存放的是这个对象的一些元数据信息.例如每个对象都有哈希值,GC分代年龄,锁状态标志等,这些信息就是存放在对 ...

  10. ansible playbook基本操作

    一.ansible playbook简单使用 相当于是把模块写入到配置文件里面 vim /etc/ansible/test.yml //写入如下内容: --- - hosts: 127.0.0.1 r ...