题目:Learning Deconvolution Network for Semantic Segmentation

作者:Hyeonwoo Noh, Seunghoon Hong, Bohyung Han

年份:2015

会议:ICCV

说面:

Segmantic Segmentation(语义分割)

简单来说就是对图像的每个像素都做分类。输入左边的图片会得到右边分割后后图片。

2.解决的问题

之前使用FCN(注:FCN是2015年发表的论文第一次将卷积神经网络用于语义分割,实现了端到端的语义分割图片的生成)由于要求输入的图片是固定的大小就会存在如下的几个问题(1)如果物体过大话,产生的标签不一致(2)一些小物体的大小会丢失。为此该论文在FCN的基础上进行改进,可以输入任意大小的图片,然后产生相应大小的图片语义分割图片,从而解决以上的问题。

3.研究点

如何将卷积神经网络用于图像语义分割;由于卷积层中的池化操作会使原来图片的大小变小,如何通过反卷积还原原来图片的大小;

4.研究假设

5.关键算法

由于是对图像进行处理,论文采用2014年ImageNet的冠军VGG进行前一部分卷积神经网络的构造。后一部分由红色矩形框圈出来的部分进行反卷积还原原来图片的大小,从而进行语义分割的训练与预测。

VGG网络中由于在卷积层使用池化操作(Max Pooling),图片的大小逐渐减少,论文在反卷积层使用UnPooling操作还原原来图片的大小。

UnPooling的操作如下

首先输入的大小为4*4,通过Max Pooling操作后得到2*2(每个矩形框取最大的数)。在Max UnPooling中输入的大小为2*2,通过UnPooling操作,还原为原来的4*4,它会记住原来取最大值的位置,在UnPooling中input的值填充到原来最大值的位置,其他位置填充为0。每一层的卷积后面都有对应的反卷积层。

UnConvolution操作如下:

为了简单说明这里以一维的例子作为说明

输入为{a,b},反卷积过滤器为{x,y,z},stride为1,在输出的时候会将重复的部分相加,因此得到UnConvolution的结果{ax,ay,az+bx,by,bz}

图片通过卷积层以及反卷积层后得到原来图片的大小,这样就可以将标注好的语义分割图片用于训练。

6.数据

7.优点

可以实现任意大小的图片输入用于语义分割

8.不足之处

 
 
 

Learning Deconvolution Network for Semantic Segme小结的更多相关文章

  1. 论文阅读笔记十六:DeconvNet:Learning Deconvolution Network for Semantic Segmentation(ICCV2015)

    论文源址:https://arxiv.org/abs/1505.04366 tensorflow代码:https://github.com/fabianbormann/Tensorflow-Decon ...

  2. Deep learning:五十(Deconvolution Network简单理解)

    深度网络结构是由多个单层网络叠加而成的,而常见的单层网络按照编码解码情况可以分为下面3类: 既有encoder部分也有decoder部分:比如常见的RBM系列(由RBM可构成的DBM, DBN等),a ...

  3. 论文笔记:A Review on Deep Learning Techniques Applied to Semantic Segmentation

    A Review on Deep Learning Techniques Applied to Semantic Segmentation 2018-02-22  10:38:12   1. Intr ...

  4. [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding

    [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...

  5. Learning a Discriminative Feature Network for Semantic Segmentation(语义分割DFN,区别特征网络)

    1.介绍 语义分割通常有两个问题:类内不一致性(同一物体分成两类)和类间不确定性(不同物体分成同一类).本文从宏观角度,认为语义分割不是标记像素而是标记一个整体,提出了两个结构解决这两个问题,平滑网络 ...

  6. 论文笔记(6):Weakly-and Semi-Supervised Learning of a Deep Convolutional Network for Semantic Image Segmentation

    这篇文章的主要贡献点在于: 1.实验证明仅仅利用图像整体的弱标签很难训练出很好的分割模型: 2.可以利用bounding box来进行训练,并且得到了较好的结果,这样可以代替用pixel-level训 ...

  7. 《Learning a Discriminative Feature Network for Semantic Segmentation》解读

    旷世18年的CVPR,论文链接:https://arxiv.org/abs/1804.09337 Motivation:针对分割中的“类内不一致”和“类间一致性”的两大问题,设计了结合Smooth n ...

  8. Learning Bayesian Network Classifiers by Maximizing Conditional Likelihood

    Abstract Bayesian networks are a powerful probabilistic representation, and their use for classifica ...

  9. [转]综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation

    近期主要在学习语义分割相关方法,计划将arXiv上的这篇综述好好翻译下,目前已完成了一部分,但仅仅是尊重原文的直译,后续将继续完成剩余的部分,并对文中提及的多个方法给出自己的理解. _论文地址:htt ...

随机推荐

  1. arcgis jsapi接口入门系列(9):可以同时显示多个的地图popup

    jsapi有提供popup功能,但缺点很多,例如地图上只能同时显示一个popup,popup内容有限制等 本文提供另一个方法,原理不用jsapi,在地图外用一个普通的div放在地图上面,再监听地图的鼠 ...

  2. escape,encodeURI,encodeURIComponent 之间的区别和使用

    escape(目前已经被淘汰)是对字符串(string)进行编码(而另外两种是对URL),不会对下列字符编码 ASCII字母  数字  @*/+ 最关键的是,当你需要对URL编码时,请忘记这个方法,这 ...

  3. Git在Xcode中的配置与使用常见问题总结

    书接上回提出的Git在Xcode中的配置与使用常见问题4个问题 问题1,如何在Xcode中创建代码库,并添加和提交代码到代码库? 问题2,如何在Xcode中提交推送给远程服务器代码库? 问题3,如何在 ...

  4. webservice、soap、wsdl

    搜集了一些关于webservice.soap.wsdl的基本知识,解决工作中遇到的疑问 一 .什么是webservice(用你的话描述webservice)?在什么时候用webservice(webs ...

  5. coredata 关系的删除规则

    http://blog.csdn.net/Hello_Hwc/article/details/46375517 关系的删除规则-Delete Rule Deny 关系的destination中只要有一 ...

  6. Python封装补充

    property属性 property实际是setter getter deleter是集合体,并不是一个单独的方法 import math # 使用的库 class Circle: def __in ...

  7. linux readahead

    blockdev --getra /dev/sda blockdev --setra 2048 /dev/sda 必须将其写入配置文件/etc/rc.local,否则重启就会失效.[root@loca ...

  8. springmvc的第一个程序

    文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下. web.xml配置: <?xml version="1.0" encoding=" ...

  9. HTML5<article>元素

    HTML5<article>元素用来定义页面文档的独立内容. 实例: <article class="pageArticle"> <h2>art ...

  10. java,求1-100之和。

    package study01; public class TestWhile { public static void main(String[] args) { int sum = 0; int ...