首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习论文笔记(七)---Deconvolution network-2016年(Learning Deconvolution Network for Semantic Segmentation )

深度学习论文笔记(七)---Deconvolution network-2016年(Learning Deconvolution Network for Semantic Segmentation )

作者头像
TeeyoHuang
发布2017-12-28 14:32:54
4.3K0
发布2017-12-28 14:32:54
举报

深度学习论文笔记(七)---Deconvolution network

Learning Deconvolution Network for Semantic Segmentation

Author:H Noh , S Hong , B Han

Year:2016

1、  导引

2015年提出的FCN网络在Semantic segmentation上取得了较好的成绩,但是依然存在两个较为突出的缺点:

①First, the network has a predefined fixed-size receptive field.

所以那些大于或者小于感受野的目标,就可能被分裂或者错误标记。具体点来说,对于大目标,进行预测时只使用了local information所以可能会导致属于同一个目标的像素被误判为不连续的标签(即不同目标),如下图,左侧为input,中间为ground truth,右侧为result,可见这个大巴由于too large所以被分割成了很多不连续的部分。

对于小目标来说,经常会被忽略掉,就是被当作了背景了。如下图,左侧为input,中间为ground truth,右侧为result。由于人很远所以在图中面积too small,结果被当作背景了:

目标的细节结构常常丢失或者被平滑处理掉

所以输入deconvolution-layer的label map就太粗糙了,而且deconvolution 这个步骤在FCN这篇文章中做的过于简单了

缺少一个在大量数据上得到训练的deconvolution network使得准确地重构物体边界的高维非线性结构变得困难。

针对上面的两个limitations,这篇文章提出的贡献有:

We learn a deep deconvolution network, which is composed of deconvolution, unpooling, and rectified linear unit (ReLU) layers.

•   经过训练的网络被用于单个物体以获得 instance-wise(就是样例水平上)的分割,并最终和语义分割结合起来。

•   在PASCAL VOC 2012数据集上取得的效果很nice。

2、模型解读

总的来说,分为两个部分

Convolution part-- feature extractor that transforms the inputimage to multidimensional feature representation

Deconvolution part--a shape generator that produces objectsegmentation from the feature extracted from the convolution network

Finaloutput of the network is a probability map in the same size to input image,indicating probability of each pixel that belongs to one of the predefinedclasses.

①ConNet部分:以VGG-16laye为基础,只不过把最后分类的全连接层去掉了,所以有13个卷积层。在适当的层间应用Relu和Maxpooling.

②然后增加两个全连接层来强化特定类别的投影。有人可能会想,FCN中不是已经提到要用卷积层来替换掉全连接层吗?怎么这里还在接全连接层,是在退步吗?所以这里有个有意思的地方,看清楚哦,图中所示的全连接层是1x1大小的

这里就有个梗,当年FCN得到CVPR'15 best paper honorable mention的时候, Yann LeCun等人出来吐槽这个'FCN'的概念早就有了,AlexNet里面的fullyconnected layer (FC)本身就是个误导,因为FC layer可以看成是1x1的convolution, 本来就可以输入任意大小的图片.这段话摘自知乎答主周博磊。

为什么说FC layer可以看成是1x1的convolution呢,我个人的理解是,FC做运算的时候确实就是把输入给拉成一行(或是一列)来算的,输出的也是一个列(或是一行)。

③DeconNet是ConNet部分的一个镜像。只不过Maxpooling换成了Unpooling。

大致结构就是这样。

3、 特点分析

①Unpooling

他们采用的Unpooling的技术来源于论文Visualizing and understanding convolutional networks. In ECCV, 2014。 简单的说,就是利用一些switch variables记录下Maxpooling操作得到的activation的位置,然后Unpooling就是把它放回原位置,如下图:

要注意,switch variables记录的只是Pooling的时候被选中的那些值的位置,所以Unpooling之后得到的map虽然尺寸变回来了,但是只是对应的位置有值,如上图右边黑色的位置,其它地方是没有值的,所以是一个稀疏map。所以就要进行下一步操作,deconvolution

②Deconvolution

如图所示,Deconvolution的细节我就不描述了。简而言之,它的功能就和convolution相反。如果对于这个过程有很强兴趣的朋友,可看一下这篇文章。

#########    A guide to convolution arithmetic for deep learning。###########

       虽然名字是convolution…,但是里面较为详细的讲述了相关内容。

还有一点,把这个运算称为:deconvolution(逆卷积),似乎比较容易引起误会,更为精确的说法是Transposed Convolution (转置卷积)

这是我上面推荐的那个文章的目录,Transposed convolution就是在详细描述这个过程。有兴趣的朋友可以自行搜索下载查看。

总之,Deconvolution网络中的filters,位于低层的filter能捕获目标的形状信息,位于高层的filter能够捕获特定类别的细节信息,所以整个网络就能兼顾这两方面。

③示例

图a为输入,图b为我第2部分结构图中14 × 14 deconvolutional layer中的最后一层的输出,然后经过Unpooling,得到图c,可以看到c是一个sparse map,详见我的①中unpooling的分析。然后图d又是结构图中28 × 28 deconvolutional layer最后一层的输出,然后再unpooling得到图e,以此类推后面的图。

然后他们和FCN-8S做了个对比,效果确实还是有提升的:

④系统分析

他们的算法将语义分割作为实例分割问题,也就是说,网络采用可能包含对象的子图像(我们以后称为实例)作为输入,并产生像素级类预测作为输出。

对于他们的网络来说,整张图的Semantic segmentation是通过将网络应用于每一个从图中提取出来的候选项并将所有候选项的输出聚合起来 得到的。就是说他们先通过输入图得到足够数量的candidate proposals然后把proposals输入进去,最后再聚合到一起。

他们认为:instance-wise prediction is useful for handling objects with various scales

聚合的方法:

在聚合的时候要抑制一些噪声(如错位),他们证明 对应所有类别的得分图的像素最大值平均值 是足够有效 来获得鲁棒的结果的。

来代表第i个proposal的得分图,W X H代表这个proposal的尺寸,C代表类别的数量。我们首先把它放在gi的外围有零填充的图像空间上,我们用下面的Gi来表示 在原始图像尺寸中与gi对应的分割图。然后我们通过下面这两个公式来 聚合所有proposals的输出 进而来构建一幅图像的像素级别的类别得分图,

利用像素最大值

  利用像素平均值

⑤另外的发现:

       当他们减小proposal的大小(相对的就增加了proposal的数量),发现效果会得到提升,如下图:

两种方法结合:

In addition, instance-wise prediction is useful for handling objects with various scales,

while fully convolutional network with a coarse scale may be advantageous to capture context within image.

就是说,他们的方法对目标的尺度多样性有较好的适应性,之前的FCN方法能较好的捕捉背景信息,所以他们试着将两种方法结合起来。就是把一张图片输入这两个网络进行单独的处理,然后把把两个网络的输出计算均值当作最后的输出,然后还用到了CRF来获得更好的结果。对比图如下:

从左致右依次是:输入、ground truth、FCN、DeconNet、FCN+DeconNet、FCN+DeconNet+CRF

A、 这是他们的DeconNet处理结果比FCN好的情况
B、 这是FCN处理结果好的情况
C、 FCN和DeconNet都不好的情况但是被二者结合起来得到好结果的示例
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 深度学习论文笔记(七)---Deconvolution network
    • 1、  导引
      • ①First, the network has a predefined fixed-size receptive field.
      • ②目标的细节结构常常丢失或者被平滑处理掉,
    • 2、模型解读
      • 3、 特点分析
        • ①Unpooling
        • ②Deconvolution
        • ③示例
        • ④系统分析
        • ⑤另外的发现:
        • 两种方法结合:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档