【论文笔记】《Learning Deconvolution Network for Semantic Segmentation》

重要说明:严格来说,论文所指的反卷积并不是真正的 deconvolution network 关于 deconvolution network 的详细介绍,请参考另一篇博客:什么是Deconvolutional Network?

一、参考资料

Learning Deconvolution Network for Semantic Segmentation

二、Deconvolution Network

deconvolution network是卷积网络(convolution network) 的镜像,由反卷积层(deconvolutional layers)和上采样层(Unpooling layers)组成。本质上,deconvolutional layers是由卷积层(convolutional layers)组成的。

deconvolution network=deconvolutional layers+Unpooling layers

1. 引言

原始的FCN存在以下问题:

  1. 第一,感受野为固定大小;物体大于或小于感受野会被 fragmented or mislabeled。大物体分割不连续,小物体被忽视。虽然FCN加入了 skip architecturer ,但是这并不是根本的解决方案,问题在于没有详细的边界和语义;
  2. 第二,输入反卷积层的 label map 太粗糙,反卷积过程太简单,使得物体的细节信息丢失或被平滑;在FCN论文中,label map 大小仅仅为16x16,以 deconvolution 作为双线性差值来获得原始输入图像大小的分割。由于缺少深度的反卷积网络,很难精确重建物体边界这种高度非线性结构。

2. 论文创新点

为了克服FCN存在的问题,论文用了一个完全不同的策略进行语义分割,主要贡献如下:

  1. 学习一个多层的deconvolution network,它由 deconvolutional layersUnpooling layersReLU layers组成。
  2. 将训练好的网络应用在目标候选区域(object proposal),来获得 instance-wise segmentions。再将这些单个的分割结果结合起来组成最终的语义分割结果。这解决了FCN存在的物体尺度问题,能够识别细小的结构。

3. Deconvolution Network与FCN对比

本文与FCN最大的不同,应该是上采样阶段的不同,FCN的上采样利用转置卷积(Conv2DTranspose),本文利用deconvolution network,也就是Unpooling layers+deconvolutional layers。可以简单理解,基于 Conv2DTranspose 的上采样和基于 Unpooling layers+deconvolutional layers 的上采样,都可以实现语义分割任务。

通过 deconvolutional layersUnpooling layers 的结合,论文可以产生更精细的分割图。和FCN的对比如下图:

在这里插入图片描述

4. Deconvolution Network网络结构

论文提出的网络结构由卷积网络层和反卷积网络层组成。卷积网络层对应于特征提取器,将输入图像转换为多维特征表示;而反卷积网络是一个形状(shape)生成器,对卷积网络层中提取的特征进行对象分割。网络的最终输出是一个与输入图像尺寸相同的概率图,表示每个像素点属于预定义类别的概率。

在这里插入图片描述

  • 卷积网络(convolution network): VGG-16(去除分类层),包括:convolutional layersRelu layerspooling layers

  • 反卷积网络(deconvolution network)反卷积网络是卷积网络的镜像,包括一系列的 Unpooling layersdeconvolutional layersRelu layers。反卷积网络输出密集的逐像素类别概率图(dense
    pixel-wise class probability map)。

4.1 Unpooling layers

Unpooling layers 是通过回溯原始位置来获得更好的结构。

首先,在执行pooling操作时用 switch variables 记录 max pooling 选择最大值的位置(location)。然后,在 unpooling 阶段,利用 switch variables 还原位置,恢复 pooling 之前的尺寸大小,其它像素位置用零元素填充,得到稀疏的激活图(sparse avtivation map)。

4.2 deconvolution layers

对稀疏激活图进行deconvolution操作,使得稀疏激活图变成稠密激活图。执行deconvolution后,裁剪(crop)激活图的边界,使其等于 Unpooling layers 的输出尺寸(也是 deconvolutional layers 输入的大小)。

论文中,低层的 deconvolutional layers 可获得目标的粗略信息(例如:位置,形状,范围),而高层的 deconvolutional layers 可获得更精细的信息。

5. Deconvolution Network可视化

可视化 Deconvolution network 的每一层,如下图所示:

在这里插入图片描述

图(a)是输入层;图(b)是14x14 deconvolution layers 的结果;图©是28x28的 Unpooling layers 的结果;图(d)是28x28 deconvolution layers 的结果;图(e)是56x56 Unpooling layers 的结果;图(f)是56x56 deconvolution layers 的结果;图(g)是112x112 的Unpooling layers 的结果;图(h)是112x112 deconvolution layers 的结果;图(i)和图(j)分别是224x224 Unpooling layersdeconvolution layers 的结果。

6. 总结

论文将 semantic segmentation 问题视为 instance-wise segmentation 问题,也就是 pixel-wise prediction。网络是以包含目标的子图像(将它视作一个instance)作为输入,并以此来产生 逐像素的类别预测结果(pixel-wise class prediction)。最后将图像中每个候选区域的输出整合起来,得到原始图像的输出。

instance-wise segmentation VS image-level prediction

  • instance-wise segmentation:能处理不同尺度大小的物体,识别细节信息;减少搜索空间,减少训练的复杂度,减少存储需求;
  • image-level prediction:固定大小感受野,不能解决上述问题。

三、参考文献

[1] Noh H, Hong S, Han B. Learning deconvolution network for semantic segmentation[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1520-1528.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/351297.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

朴素贝叶斯

一、数学基础 先验概率(Prior Probability): 先验概率是在考虑任何新观测数据之前,基于先前的知识或信仰,对事件发生的概率的初始估计。这是对事件的主观先验信仰或经验的量化体现。 记作 P(A),表示事件 …

NFS远程共享存储

NFS:Network File System 网络文件系统,NFS 和其他文件系统一样,是在 Linux 内核中实现的,因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用。是Unix系…

《Vue3 基础知识》 Vue2+ElementUI 自动转 Vue3+ElementPlus(GoGoCode)

前言 GoGoCode 一个基于 AST 的 JavaScript/Typescript/HTML 代码转换工具。 AST abstract syntax code 抽象语法树。 实现 第一步:安装 GoGoCode 插件 全局安装最新的 gogocode-cli 即可 npm i gogocode-cli -g查看版本 gogocode-cli -V相关插件说明 插件描述…

2024初学编曲免费软件FL Studio21.2.2

FL Studio在业内也被称作“水果”软件,这是一款功能强大、简单易上手的专业编曲软件。软件中的音效插件库拥有超过25种音效插件,能够帮助激发我们的创作灵感。而FL Studio中文还推出了训练营课程,初学者可以在训练营中进行编曲知识的学习&…

1888_关于多任务调度的一些整理与思考

全部学习汇总: g_embedded: 嵌入式通用技术学习笔记 (gitee.com) 让我想来对此做一下总结思考的书其实不是嵌入式或者至少不限于嵌入式,但是我的主业是嵌入式,对于问题的理解点暂时也是在这个领域。后续,这些知识对我自己能够产生…

Ubuntu使用Docker部署Redis并实现远程访问本地数据库

文章目录 前言1. 安装Docker步骤2. 使用docker拉取redis镜像3. 启动redis容器4. 本地连接测试4.1 安装redis图形化界面工具4.2 使用RDM连接测试 5. 公网远程访问本地redis5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 前言 本文主要介绍如何在Ub…

以梦为码,CodeArts Snap 缩短我与算法的距离

背景 最近一直在体验华为云的 CodeArts Snap,逐渐掌握了使用方法,代码自动生成的准确程度大大提高了。 自从上次跟着 CodeArts Snap 学习用 Python 编程,逐渐喜欢上了 Python。 我还给 CodeArts Snap 起了一个花名: 最佳智能学…

深入浅出hdfs-hadoop基本介绍

一、Hadoop基本介绍 hadoop最开始是起源于Apache Nutch项目,这个是由Doug Cutting开发的开源网络搜索引擎,这个项目刚开始的目标是为了更好的做搜索引擎,后来Google 发表了三篇未来持续影响大数据领域的三架马车论文: Google Fil…

WEB安全渗透测试-pikachuDVWAsqli-labsupload-labsxss-labs靶场搭建(超详细)

目录 phpstudy下载安装 一,pikachu靶场搭建 1.下载pikachu 2.新建一个名为pikachu的数据库 3.pikachu数据库配置 ​编辑 4.创建网站 ​编辑 5.打开网站 6.初始化安装 二,DVWA靶场搭建 1.下载DVWA 2.创建一个名为dvwa的数据库 3.DVWA数据库配…

操作系统(4)---虚拟机

虚拟机又叫虚拟机管理程序或者虚拟机监控程序(Virtual Machine Monitor/Hypervisor,VMM),使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器 (Virtual Machine,VM),每个虚拟机器都可以独立运行一个操作系…

CPU,内存和硬盘之间的关系

计算机三大件:CPU,内存,硬盘。从运算速度来看,CPU>内存>固态硬盘>机械硬盘。 电脑卡顿怎么解决? 1、清理垃圾; 2、释放C盘空间,因为系统需要C盘空间当作虚拟内存; 3、增…

[SwiftUI]Text对字符串中部分字符改变颜色和字体

如图,需要对字符串中部分字符改变颜色和字体。 在 SwiftUI 中合并带有不同样式的文本,应该使用不同的 Text 实例并将它们合并起来。将实例使用 运算符合并起来,每个 Text 实例都保持其自己的样式设置。这种方式可以正常编译并运行&#xff0…

想找一个轻量版的MarkDown编辑器客户端,哪位推荐一下

经常需要即时写一些MarkDown文档,打开网页版的笔记不方便。 对比了几个,已收费的typora感觉还是最好的。 除此之外,原以为最重的VSCode,从打开速度、占内存等情况来说,居然也不相上下。 这样的对比条件下,…

Java Swing桌面项目打包成可执行jar

前言 最近有需求,将Swing项目打包为一个可执行的jar包,遇见了一些问题,参考AI助手,解决了遇到的问题,也有一些亲身实践体会,记录一下。开发环境IntelliJ IDEA,JDK8,用kotlin语言实现…

第七篇【传奇开心果系列】鸿蒙开发技术点案例示例:ArkUI声明式UI编程思想

传奇开心果博文系列 系列博文目录鸿蒙开发技术点案例示例系列 博文目录一、前言二、ArkUI声明式UI编程思想介绍三、以官方示例helloworld解读声明式编程四、以官方示例helloworld解读组件化开发五、以官方示例helloworld解读组件可定制六、用示例解读响应式布局七、以官方hello…

金蝶云星空--写插件不重启IIS热更新简单配置指南

云星空7.5版本,以简单方式配置并测试了热更新的实现方式可行,操作如下(7.5外版本没试过,大家可试下): 1、打开WebSite\App_Data\Common.config,修改appSettings,设置IsEnablePlugIn…

InforSuiteAS中创中间件windows环境部署

版本:InforSuiteAS_StE_V10.0.5.2.1 环境要求:Java环境 DK1.8版本, 内存2GB或以上 , 硬盘空间 10GB或以上, 监视器 图形界面安装需要256色以上,字符界面安装没有色彩要求 ,浏览器 Microsoft …

Github 2024-01-27 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-01-27统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3Jupyter Notebook项目2非开发语言项目2JavaScript项目1Go项目1Rust项目1Shell项目1 Papers We Lo…

LeetCode.42. 接雨水

题目 题目链接 分析 读完本题以及结合题目给出的图我们可以很直观的看到,这道题目是让我们求形成凹槽的面积。 我们可以针对每一个数字形成凹槽的面积进行计算,然后相加数组每一个数字形成凹槽的面积即可。 那么问题来了,怎么知道一个数…

【GPU】GPU CUDA 编程的基本原理是什么?

【GPU】GPU CUDA 编程的基本原理是什么? 作者:董鑫 想学好 CUDA 编程, 第一步就是要理解 GPU 的硬件结构, 说到底, CUDA 的作用就是最大程度压榨出 NVIDIA GPU 的计算资源. 想要从零理解起来, 还有有些难度. 这里希望能够用最简单的方式把一些最基本的内容讲清楚.…