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 h和w是空间维度, 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)∈{0,…,f−1}×{0,…,f−1} 这 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。
相关文章:

Fully Convolutional Networks for Semantic Segmentation--论文笔记
论文笔记 资料 1.代码地址 2.论文地址 https://arxiv.org/abs/1411.4038 3.数据集地址 论文摘要的翻译 卷积网络是强大的视觉模型,可以产生特征层次结构。我们表明,卷积网络本身,经过端到端,像素对像素的训练,在…...

Camworks编程怎么样:深度解析其四大特点、五大应用领域、六大优势与七大挑战
Camworks编程怎么样:深度解析其四大特点、五大应用领域、六大优势与七大挑战 Camworks编程,作为计算机辅助制造(CAM)领域的一款重要软件,近年来在制造业中得到了广泛的应用。那么,Camworks编程究竟怎么样呢…...

【Linux】操作系统之冯诺依曼体系
🎉博主首页: 有趣的中国人 🎉专栏首页: Linux 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 操作系统中 冯诺依曼体系 的相关内容。 如果看到最后您觉得这篇文…...

c++ QT 实现QMediaPlayer播放音频显示音频级别指示器
文章目录 效果图概述代码总结 效果图 概述 QMediaPlayer就不介绍了,就提供了一个用于播放音频和视频的媒体播放器 QAudioProbe 它提供了一个探针,用于监控音频流。当音频流被捕获或播放时,QAudioProbe 可以接收到音频数据。这个类在需要访问…...

失之毫厘差之千里之load和loads
起源 最近在读pandas库的一些文档的时候,顺便也会将文档上的一些demo在编辑器中进行运行测试,其中在读到pandas处理Json数据这一节的时候,我还是像往常一样,将文档提供的demo写一遍,结果在运行的时候,直接…...

element ui在移动端的适配问题
element ui在移动端的适配问题 问题1: 给el-table表头添加背景色,使用以下代码 :header-row-style“{ background: ‘linear-gradient(90deg, #0079FA 0%, #00C7DD 100%)’ }” 在安卓手机上显示正常,在ios手机上显示背景色添加到每一个th中…...

堆排序详细理解
目录 一、前备知识 二、建堆 2.2.1 向上调整算法建堆 2.2.2 向下调整算法建堆 三、排序 3.1 常见问题 3.2 思路 3.3 源码 一、前备知识 详细图解请点击:二叉树的顺序实现-堆-CSDN博客 本文只附上向上/向下调整算法的源码 //交换 void Swap(int* p, int* …...

RK3588+FPGA+AI高性能边缘计算盒子,应用于视频分析、图像视觉等
搭载RK3588(四核 A76四核 A55),CPU主频高达 2.4GHz ,提供1MB L2 Cache 和 3MB L3 ,Cache提供更强的 CPU运算能力,具备6T AI算力,可扩展至38T算力。 产品规格 系统主控CPURK3588,四核…...

07-操作元素(键盘和鼠标事件)
在前面的文章中重点介绍了一些元素的定位方法,定位到元素后,就需要操作元素了。本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件。 一、简单操作 点击按钮(鼠标左键):click()清空输入框&…...

3389,为了保障3389端口的安全,我们可以采取的措施
3389端口,作为远程桌面协议(RDP)的默认端口,广泛应用于Windows操作系统中,以实现远程管理和控制功能。然而,正因为其广泛使用,3389端口也成为许多潜在安全威胁的入口。因此,确保3389…...

Java集合【超详细】2 -- Map、可变参数、Collections类
文章目录 一、Map集合1.1 Map集合概述和特点【理解】1.2 Map集合的基本功能【应用】1.3 Map集合的获取功能【应用】1.4 Map集合的两种遍历方式 二、HashMap集合2.1 HashMap集合概述和特点【理解】2.2 HashMap的组成、构造函数2.3 put、查找方法2.4 HashMap集合应用案例【应用】…...

最佳 Mac 数据恢复:恢复 Mac 上已删除的文件
尝试过许多 Mac 数据恢复工具,但发现没有一款能达到宣传的效果?我们重点介绍最好的 Mac 数据恢复软件 没有 Mac 用户愿意担心数据丢失,但您永远不知道什么时候会发生这种情况。无论是意外删除 Mac 上的重要文件、不小心弄湿了 Mac、感染病毒…...

芋道系统,springboot+vue3+mysql实现地址的存储与显示
1.效果图 2.前端实现: <el-form-item label"地址" prop"entrepriseAddress"><el-cascaderv-model"formData.entrepriseAddress"size"large":options"region"/></el-form-item> //导入组件 im…...

【C++】C++11新特性:列表初始化、声明、新容器、右值引用、万能引用和完美转发
目录 一、列表初始化 1.1 { } 初始化 1.2 std::initializer_list 二、声明 2.1 auto 2.2 decltype 2.3 nullptr 三、新容器 四、右值引用和移动语义 4.1 左值和左值引用 4.2 右值和右值引用 4.3 左值引用与右值引用比较 4.4 右值引用使用场景和意义:移…...

【IB Protocal Serial--WQE】
IB Protocal Serial--WQE 1 Intro1.1 What1.2 IBA WQE 本系列文章介绍RDMA技术的具体实现–InfiniBand Protocal; Introduce the features, capalities,components, and elements of IBA. the principles of operation. 1 Intro 1.1 What 理解IB协议下面这三句话对…...

C++ 混合运算的类型转换
一 混合运算和隐式转换 257 整型2 浮点5 行吗?成吗?中不中? C 中允许相关的数据类型进行混合运算。 相关类型。 尽管在程序中的数据类型不同,但逻辑上进行这种运算是合理的相关类型在混合运算时会自动进行类型转换,再…...

线性时间选择
给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素 #include<iostream> #include<cstdlib> #include<time.h> using namespace std; int a[100]; int Random(int left,int right) {srand(time(NULL));return …...

【对算法期中卷子的解析和反思】
一、程序阅读并回答问题(共30分) #include<cstdio>#include<cstring>#include<iostream>using namespace std;char chess[10][10];int sign[10];int n, k, ans;void dfs(int x, int k) { if (k 0){ans;return; } if (xk-1 >…...

sudo apt update sudo: apt: command not found
CentOS或RHEL(Red Hat Enterprise Linux)系统上,包管理器是yum或dnf,而不是apt。您可以使用yum或dnf来安装软件包。以下是如何在CentOS或RHEL上安装Git的详细步骤: 1. 使用yum安装Git 首先,更新软件包列表&…...

ios:文本框默认的copy、past改成中文复制粘贴
问题 ios 开发,对于输入框的一些默认文案展示,如复制粘贴是英文的,那么如何改为中文的呢 解决 按照路径找到这个文件 ios/项目/Info.plist,增加 <key>CFBundleAllowMixedLocalizations</key> <true/> <…...

Qt moc系统的黑魔法?
Qt的元对象系统(Meta-Object System)是Qt框架的核心功能之一,为C语言增加了一些动态特性,借助元对象系统Qt可以实现以下功能 信号与槽机制(Signals and Slots)运行时类型信息(Run-Time Type In…...

MyBatis开发中常用总结
文章目录 常用MyBatis参数映射单个参数多个参数使用索引【不推荐】Param注解Map传参POJO【推荐】List数组 动态标签\<if>标签\<trim>标签\<where>标签\<set>标签\<foreach>标签 MyBatis查询一对一一对多 常用MyBatis参数映射 单个参数 XML中可…...

Git基本使用教程(学习记录)
参考文章链接: Git教程(超详细,一文秒懂) RUNOOB Git教程 Git学习记录 1Git概述 1.1版本控制软件功能 版本管理:更新或回退到历史上任何版本,数据备份共享代码:团队间共享代码,…...

【Linux-RTC】
Linux-RTC ■ rtc_device 结构体■ RTC 时间查看与设置■ 1、时间 RTC 查看■ 2、设置 RTC 时间 ■ rtc_device 结构体 Linux 内核将 RTC 设备抽象为 rtc_device 结构体 rtc_device 结构体,此结构体定义在 include/linux/rtc.h 文件中 ■ RTC 时间查看与设置 ■ 1…...

机器学习目录
文章目录 基本概念有监督学习回归问题分类问题 无监督学习聚类问题异常检测 基本概念 pass 有监督学习 回归问题 通过拟合函数,解决连续值的预测问题梯度下降法优化;最小二乘法求解;度量指标 均方误差;均方根误差;平…...

React开发环境配置详细讲解-04
环境简介 前端随着规范化,可以说规范和环境插件配置满天飞,笔者最早接触的是jquery,那个开发非常简单,只要引入jquery就可以了,当时还写了一套UI框架,至今在做小型项目中还在使用,show一张效果…...

Go 如何通过 Kafka 客户端库 生产与消费消息
文章目录 0.前置说明1. confluent-kafka-go2. sarama3. segmentio/kafka-go4. franz-go选择建议 1.启动 kafka 集群2.安装 confluent-kafka-go 库3.创建生产者特殊文件说明如何查看.log文件内容 4.创建消费者 0.前置说明 Go 语言中有一些流行的 Kafka 客户端库。以下是几个常用…...

【设计模式深度剖析】【B】【结构型】【对比】| 主要区别包装的不同
👈️上一篇:享元模式 回 顾:结构型设计模式 1.代理模式👈️ 2.装饰器模式👈️ 3.适配器模式👈️ 4.组合模式👈️ 5.桥接模式👈️ 6.外观模式👈️ 7.享元模式&#x…...

信息学奥赛初赛天天练-17-阅读理解-浮点数精准输出与海伦公式的巧妙应用
PDF文档公众号回复关键字:20240531 1 2023 CSP-J 阅读程序1 阅读程序(程序输入不超过数组成字符串定义的范围:判断题正确填√,错误填;除特殊说明外,判断题1.5分,选择题3分,共计40分࿰…...

mysql - 为什么MySQL不建议使用NULL作为列默认值?
为什么MySQL不建议使用NULL作为列默认值? InnoDB有4中行格式: Redundant : 非紧凑格式,5.0 版本之前用的行格式,目前很少使用,Compact : 紧凑格式,5.1 版本之后默认行格式,可以存储更多的数据Dynamic , Compressed : 和Compact类似,5.7 版本之后默认使…...