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

深度学习论文笔记(七)---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都不好的情况但是被二者结合起来得到好结果的示例

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

什么是数据挖掘

好吧,这样的定义方式比较抽象,但这也是业界认可度最高的一种解释了。对于如何开发一个大数据环境下完整的数据挖掘项目,业界至今仍没有统一的规范。说白...

852
来自专栏机器之心

学界 | 启发式搜索:华为提出通用人工智能工程方法

选自arXiv 作者:Zengkun Li 机器之心编译 参与:刘晓坤、李泽南 鉴于当前认知神经科学和人工智能工程所遇到的困难,华为 2012 实验室的研究人员...

2795
来自专栏新智元

【人脸识别终结者】多伦多大学反人脸识别,身份欺骗成功率达99.5%

1323
来自专栏应兆康的专栏

1. 为什么使用机器学习

机器学习是很多应用程序的基础,包括Web搜索、垃圾邮件过滤系统、语音识别、产品推荐等等。如果你的团队正在研究一个机器学习的程序,希望本书可以帮助你快速的取得进展...

2796
来自专栏专知

何谓“人工智能”?如何做到“强人工智能”?

本文是工程师Narasimha Prasanna HN撰写的技术博文,主要介绍人工智能的概念,当前人工智能的水平,以及什么是强人工智能,当前实现强人工智能的方向...

4566
来自专栏钱塘大数据

揭秘丨反人脸识别,身份欺骗成功率达99.5%

在一些社交媒体平台,每次你上传照片或视频时,它的人脸识别系统会试图从这些照片和视频中得到更多信息。比如,这些算法会提取关于你是谁、你的位置以及你认识的其他人的数...

701
来自专栏企鹅号快讯

浅析图像视频类AI芯片的灵活度

兼容性和灵活度是芯片快速杀入新市场、扩大市场范围、快速适应客户需求,减少开发周期的关键特性。目前深度学习的网络结构已走向了多样化,出现了大量的算法变种、更多的算...

20210
来自专栏IT技术精选文摘

逻辑回归如何用于新用户识别与触达

目前,某产品营收运营正处在从过去依赖产品经理的经验到通过数据来驱动增长(Growth Hacking)的过渡期。在这里梳理一下通过数据模型帮助该产品营收的一些经...

943
来自专栏机器人网

机器学习项目的常见误区

在最近的一次报告中,Ben Hamner向我们介绍了他和他的同事在Kaggle比赛中看到的一些机器学习项目的常见误区。

983
来自专栏应兆康的专栏

为什么使用机器学习

34210

扫码关注云+社区