Fully Convolutional Networks for Semantic Segmentation--论文笔记

论文笔记

资料

1.代码地址

2.论文地址

https://arxiv.org/abs/1411.4038

3.数据集地址

论文摘要的翻译

卷积网络是强大的视觉模型,可以产生特征层次结构。我们表明,卷积网络本身,经过端到端,像素对像素的训练,在语义分割方面超过了最先进的技术。我们的关键见解是建立“完全卷积”网络,该网络可以接受任意大小的输入,并通过有效的推理和学习产生相应大小的输出。我们定义和详细描述了全卷积网络的空间,解释了它们在空间密集预测任务中的应用,并绘制了与先前模型的连接。我们将当代分类网络(AlexNet , VGG网络和GoogLeNet)改编为全卷积网络,并通过微调将其学习到的表征转移到分割任务中。然后,我们定义了一种新的架构,该架构将来自深层粗糙层的语义信息与来自浅层精细层的外观信息相结合,以产生准确而详细的分割。我们的全卷积网络实现了PASCAL VOC(相对于2012年的62.2%平均IU提高了20%)、NYUDv2和SIFT Flow的最先进分割,而对典型图像的推理时间不到五分之一秒。

1背景

从粗糙到精细推理的关键一步自然是对每个像素进行预测。先前的方法使用卷积神经网络进行语义分割,其中每个像素都用其封闭对象或区域的类别进行标记,但该工作解决了缺点。
该方法具有渐近性和绝对性两方面的有效性,避免了其他工作中的复杂性。Patchwise训练很常见,但缺乏全卷积训练的效率。我们的方法没有利用预处理和后处理的复杂性,包括超像素,建议,或随机字段或局部分类器的事后细化[8,16]。我们的模型将最近在分类方面的成功转移到密集预测上,将分类网络重新解释为完全卷积的,并从其学习到的表示中进行微调。相比之下,以前的作品应用了没有监督预训练的小convnets。
语义分割面临语义和位置之间固有的紧张关系:全局信息解决什么问题,而局部信息解决哪里问题。=

2论文的创新点

  • 建立完全卷积网络,该网络可以接受任意大小的输入,并通过有效的推理和学习产生相应大小的输出。
  • 定义了一种新的架构,该架构将来自深层粗糙层的语义信息与来自浅层精细层的外观信息相结合,以产生准确而详细的分割。

3 论文方法的概述

convnet中的每一层数据是一个大小为 h × w × d h × w × d h×w×d的三维数组,其中 h 和 w h和w hw是空间维度, d d d是特征或通道维度。第一层是图像,像素大小为 h × w h × w h×w,有 d d d个颜色通道。更高层的位置对应于它们在图像中路径连接的位置,这些位置被称为它们的接受野。

3.1 Adapting classifiers for dense prediction

典型的识别网络,包括LeNet、AlexNet及其后继者,表面上采用固定大小的输入,并产生非空间输出。这些网的完全连接层具有固定的尺寸,并且抛弃了空间坐标。完全连接层也可以被视为卷积,其卷积核覆盖了整个输入区域。这样做将它们转换成完全卷积的网络,可以接受任何大小的输入和输出分类图。这一转变如图2所示
在这里插入图片描述
AlexNet示例中对应的反向时间为单张图像2.4 ms,全卷积10 × 10输出映射37 ms,导致类似于正向传递的加速。这种密集的反向传播如图1所示。

在这里插入图片描述

3.2Shift-and-stitch is filter rarefaction

输入移位和输出交错是OverFeat引入的一种技巧,可以在没有插值的情况下从粗输出中产生密集预测。如果输出按f的系数下采样,则输入(通过左和上填充)向右移动 x x x个像素,向下移动y个像素,对于每个 ( x , y ) ∈ { 0 , … , f − 1 } × { 0 , … , f − 1 } (x, y)∈\{0,…, f−1\}×\{0,…, f−1\} (x,y){0f1}×{0f1} f 2 f^2 f2个输入都通过convnet运行,输出是交错的,这样预测就与它们的接受域中心的像素相对应

只改变滤波器和convnet的层步长可以产生与这种移位和缝合技巧相同的输出。考虑一个输入步长为 s s s的层(卷积或池化),以及一个过滤器权重为 f i j f_{ij} fij的卷积层。将下层的输入步幅设置为1,将其输出采样5倍,就像shift-and-stitch一样。然而,将原始滤波器与上采样输出进行卷积不会产生与技巧相同的结果,因为原始滤波器只看到其(现在上采样)输入的减少部分。为了重现这个技巧,将滤波放大为 f i j ′ = { f i / s , j / s if  s divides both  i and  j ; 0 otherwise , \left.f_{ij}^{\prime}=\left\{\begin{array}{ll}f_{i/s,j/s} & \text{if }s\text{ divides both }i\text{ and }j;\\ 0 & \text{otherwise},\end{array}\right.\right. fij={fi/s,j/s0if s divides both i and j;otherwise,再现该技巧的完整净输出需要一层一层地重复这个滤波器放大,直到所有的子采样被移除。
在网络中简单地减少子采样是一种权衡:过滤器可以看到更精细的信息,但接受野更小,计算时间更长。我们已经看到,移位和缝合技巧是另一种权衡:在不减少过滤器的接受野大小的情况下,输出变得更密集,但过滤器被禁止以比原始设计更精细的规模访问信息。

33 上采样后向卷积

从某种意义上说,因子 f f f的上采样是与 1 / f 1/f 1/f的分数阶输入步长的卷积。只要 f f f是积分的,那么上采样的自然方法就是输出步长为 f f f的反卷积。因此,通过像素损失的反向传播,在网络中进行端到端学习的上采样。

3.4. Patchwise training is loss sampling

在随机优化中,梯度计算是由训练分布驱动的。拼接训练和全卷积训练都可以产生任何分布,尽管它们的相对计算效率取决于重叠和小批量大小。==全图像全卷积训练与patch - wise训练相同,其中每批训练由图像(或图像集合)损失以下的单元的所有接受域野组成。==虽然这比对补丁进行统一采样更有效,但它减少了可能批次的数量。然而,图像中随机选择的补丁可以简单地恢复。将损失限制为其空间项的随机抽样子集(或者,等效地在输出和损失之间应用将补丁从梯度计算中排除
如果保留的patch仍然有明显的重叠,全卷积计算仍然会加快训练速度。如果梯度累积在多个反向通道上,批次可以包括来自多个图像的补丁patch - wise训练中的采样可以纠正类不平衡,减轻密集patch的空间相关性。在全卷积训练中,也可以通过加权损失来实现类平衡,并且可以使用损失采样来解决空间相关性

4 论文实验

4.1 FCN

定义了一种新的全卷积网络(FCN)用于分割,它结合了特征层次结构的层并改进了输出的空间精度。参见图3。在这里插入图片描述

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

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

相关文章

【新能源大巴BMS结构与乘用车的区别】

新能源大巴BMS结构与乘用车的区别 这篇文章主要介绍新能源大巴的电池和BMS的结构与乘用车的区别。 主要有,新能源大巴行业、新能源电池系统结构和新能源大巴的BMS系统。 第一部分 新能源大巴行业 其实数数全球的商用车(大巴卡车),大致的方向还是沿着就…

解释 Vue route和router的区别?

Vue中的route和router在单页应用(SPA)开发中扮演着不同的角色,它们的区别可以归纳为以下几点: 定义与功能: router:router是Vue Router的一个实例对象,它是全局的。通过Vue.use(VueRouter)和Vue…

RocketMQ重复消费的幂等性问题

什么是幂等性?----》多次调用接口,得到的结果都一样。 用幂等性来解决重复消费的问题。 重复消费可以解决吗-----》重复消费根部避免不了。只能从消息的幂等消费入手。 为什么会有重复消费? 由于我们要求RocketMQ消息不丢失,要…

前端传String字符串 后端使用enun枚举类出现错误

情况 前端 String 后端 enum 前端 后端 报错 2024-05-31T21:47:40.61808:00 WARN 21360 --- [nio-8080-exec-6] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to con…

多态的一些问题

🏷️ 问答题: 1. 什么是多态? 多态(Polymorphism)是面向对象编程中的一个重要概念,指的是同一操作作用于不同对象时,可以表现出不同的行为方式。多态性允许不同类型的对象以统一的接口进行操作…

tomlkit mypy error: Value of type “Item | Container“ is not indexable [index]

使用tomlkit进行TOML文件的读写时,mypy静态检查报错如下: demo.py:5: error: Value of type "Item | Container" is not indexable [index]poetry_conf doc[tool][poetry]^~~~~~~~~~~~~~~~~~~~~ demo.py:7: error: Unsupported target for …

香港服务器无法访问是什么情况?

香港服务器无法访问是什么情况?简单来说,这意味着香港服务器没有响应请求,客户端无法访问。此错误可能由于多种原因而发生,包括网络连接问题、服务器停机、防火墙限制和 DNS 错误。当发生服务器无法访问错误时,它会影响您网站的性…

OncePerRequestFilter 和 GenericFilterBean比较

OncePerRequestFilter 和 GenericFilterBean 都是Spring框架提供的用于构建自定义Servlet过滤器(Filter)的基类,它们主要用于处理Web请求的拦截和处理逻辑。以下是它们各自的详细说明: GenericFilterBean 类描述:Gen…

Qt for android : libusb在android中使用

简介 如何在Qt for Android中使用libusb, 其实libusb的文档里面都写的很清楚, 这里只是稍微做下整理。 libusb libusb github源码 libusb release的版本, 有编译好的静态 步骤 1. 下载libusb libusb v1.0.027 源码包 2. 整理提取libusb android使用源…

Docker 私有仓库部署和管理

目录 一、案例一 概述 二、案例一 前置知识点 2.1、什么是 Docker Compose 2.2、什么是 Consul 三、案例一 使用 docker Compose 搭建 Consul 集群环境 3.1、案例实验环境 3.2、案例需求 四、案例实施 4.1、Docker 网络通信 1)端口映射 2&#xf…

运筹学_3.运输问题(特殊的线性规划)

目录 前言3.1 平衡运输问题中初始基可行解确定运输问题平衡运输与非平衡运输平衡运输问题的数学模型单纯形法解决平衡运输问题,初始可行基的确认 3.2 平衡运输问题的最优解判别求检验数表上作业法 3.3 产销不平衡的运输问题运输问题中产大于销的问题运输问题中产小于…

【MySQL访问】

文章目录 一、C远程连接到MySQLmysql_init()函数mysql_real_connect()函数实战案例 二、处理查询select的细节mysql_store_result()函数获取结果行和列获取select结果获取行内容获取列属性 三、MySQL图形化界面连接 关于动态链接,请看这篇文章…

Nginx 实战-02-nginx proxy_pass 服务代理访问 使用笔记 ubuntu nodejs

前言 大家好,我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的,可以参考我的另一个项目: 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

达梦数据库(五) -------- 达梦数据库+mybatisPlus+springboot

前言:安装完达梦数据库后,需要初始化实例,在初始化实例时,需要注意大小写敏感的设置。大小写敏感只能在初始化数据库的时候设置,默认为大小写敏感,一旦设置成功就无法修改,如果想要修改&#xf…

elementui el-tooltip文字提示组件弹出层内容格式换行处理

1、第一种 1.1 效果图 1.2、代码 <template><div class"wrapper"><el-tooltip class"content" effect"dark" placement"top"><div slot"content"><div v-html"getTextBrStr(text)"&…

centOS 编译C/C++

安装C和C编译器 yum -y install gcc*查看CenterOS系统信息 cat /etc/system-releaseCentOS Linux release 8.2.2004 (Core)查看gcc版本 gcc --versiongcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) Copyright (C) 2018 Free Software Foundation, Inc. This is free software…

深入理解同步与异步编程:从概念到实践

导言&#xff1a; 在软件开发中&#xff0c;同步和异步是两种常见的编程模式。深入理解这两种模式的工作原理对于提高代码的效率和性能至关重要。本文将从概念、原理和实践三个方面介绍同步和异步编程&#xff0c;帮助读者更好地理解和应用这两种编程模式。 同步编程&#xf…

ai虚拟主播自动切换的实现

前段时间,看到b站突然冒出很多ai主播,输入数字切换小姐姐.感觉挺有趣.思考了以下决定手动实现一下. 然后就陷入长达5天的踩坑中 由于是自建的webrtc服务器,很自然的想直接收流转发,这也是最优的方案, 然而实际上遇到许多不是很友好的bug, 然后再想使用rtp转发,依然不理想. 最后…

低代码开发:助企构建数字化应用平台

随着信息技术的快速发展&#xff0c;数字化应用平台已经成为企业提升竞争力、实现业务创新的关键。然而&#xff0c;传统的应用开发方式往往面临着开发周期长、成本高昂、技术门槛高等问题&#xff0c;这使得许多企业望而却步。而低代码开发技术的出现&#xff0c;为企业构建数…

【第十二节】C++控制台版本贪吃蛇小游戏

目录 一、游戏简介 1.1 游戏概述 1.2 实现功能 1.3 开发环境 二、实现设计 2.1 C类的设计 2.2 项目结构 2.3 代码设计 三、程序运行截图 3.1 游戏界面 3.2 自定义地图 3.3 常规游戏界面 一、游戏简介 1.1 游戏概述 本游戏是一款基于C语言开发的控制台版本贪吃蛇游…