【论文笔记】《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.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ERROR Failed to get response from https://registry.npm.taobao.org/ 错误的解决

这个问题最近才出现的。可能跟淘宝镜像的证书到期有关。 解决方式一:更新淘宝镜像(本人测试无效,但建议尝试) 虽然无效,但感觉是有很大关系的。还是设置一下比较好。 淘宝镜像的地址(registry.npm.taobao…

计算机毕业设计 基于SpringBoot的线上心理咨询室系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

01_ESP32 MicroPython开发环境搭建

一、工作原理 Python源代码->Python解释器(MicroPython)-->二进制代码(01010)-->硬件电路(ESP32)-->高低电平输出-->其他设备 二、准备工作: 硬件:ESP32开发版,有很多个版本可选,我这里用的是ESP-32开发板&…

REVIT二次开发万能刷

将这两个参数赋予其他参数 步骤2 将来做个可以调控的版本 using System; using System.Collections.Generic; using System.Lin

Java集合相关面试题

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。 📗本文收录于java面试题系列,大家有兴趣的可以看一看 📘相关专栏Rust初阶教程、go语言基…

day31_HTML

今日内容 0 复习昨日 1 表格标签 2 表单标签【重要】 3 框架标签 0 复习昨日 Javaweb开发,前端,服务器,数据库 前端,要学习HTML,CSS,JavaScript,JQuery HTML是用来编写网页的一种编程语言 语法 由各种标签组成,标签是尖括号<>,一般都是成对儿出现,前面叫做开标签,后面…

秋招实习,刷题网站推荐

codefun2000.com 优点1: 题目全部改编自公司笔试真题&#xff0c;可以做做往年真题练手。 优点2: 该平台和公司笔试模式一样&#xff0c;都是Acm输入输出&#xff0c;更有利于准备秋招。 优点3: 平台主页有博客&#xff0c;以及各大公司真题知识点思维导图&#xff0c;讲…

Python网络爬虫实战——实验7:Python使用apscheduler定时采集任务实战

【实验内容】 本实验主要介绍在Django框架中使用APScheduler第三方库实现对数据的定时采集。 【实验目的】 1、掌握APScheduler库的使用&#xff1b; 2、学习在Django中实现多个定时任务调度&#xff1b; 【实验步骤】 步骤1 Apscheduler简介与特点 步骤2 Apscheduler基本…

HTML新手教程

HTML入门 教程&#xff1a;【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 一.初识HTML HyperTextMarkupLanguage&#xff08;超文本标记语言&#xff09; 超文本包括&#xff1a;文字、图片、音频、视频、动画。 HTML5的优势 世界知名浏览器厂商对HTML5的支持市场的…

SpringBoot系列之JPA实现按年月日查询

SpringBoot系列之JPA实现按年月日查询 通过例子的方式介绍Springboot集成Spring Data JPA的方法&#xff0c;进行实验&#xff0c;要先创建一个Initializer工程&#xff0c;如图&#xff1a; 选择&#xff0c;需要的jdk版本&#xff0c;maven项目 选择需要的maven配置&#x…

研发日记,Matlab/Simulink避坑指南(六)——字节分割Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南&#xff08;一&#xff09;——Data Store Memory模块执行时序Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(二)——非对称数据溢出Bug》…

2024年预制菜行业市场发展趋势分析(2021-2023年预制菜行业数据分析)

近期&#xff0c;老干妈被称为预制菜、预制菜国标报送稿出炉等事件再次引起大众对于预制菜市场的讨论。随着国家对预制菜审核标准的严格化&#xff0c;预制菜市场未来走向将会如何&#xff1f;鲸参谋带大家从数据角度来了解。 首先来看下预制菜市场的行业发展情况。 根据鲸参…