FCN深度学习语义分割开山之作——学习笔记

《Fully Convolutional Networks for Semantic Segmentation》提出了首个端到端的针对像素级预测的全卷积网络(FCN),可直接处理任意大小的输入图像并输出相应大小的预测结果,超过了现有技术水平。

一、提出背景

传统的语义分割方法需要对每个像素进行分类,但计算成本高且复杂。该论文的目标是利用 FCN 实现端到端的像素级预测,以更高的效率达到更好的语义分割效果。

二、全卷积网络(FCN)的特点

全卷积网络通过移除全连接层,仅使用卷积层、池化层和激活函数,构建一个完全由卷积层组成的网络结构。由于没有固定的输入尺寸限制,FCN 可以接受任意大小的输入图像,并输出相应的像素级预测结果。

三、网络设计

提出了一种创新的 跳跃结构(skip architecture),将深层语义信息(表示语义的全局信息)与浅层外观信息(表示局部细节)结合。跳跃连接使得模型在预测过程中,不仅能捕获全局的语义信息,还能保留细粒度的空间信息,从而提高了分割精度。

在理解FCN的架构之前先回忆一下VGG的架构,如下图:

FCN就是将VGG后面的全连接层换成了卷积层,使VGG能够适用于语义分割领域,如下图所示:

1、跳跃连接

通过以下几种方式可以得到多尺度的特征图,将低层特征图(高分辨率但较浅)与高层特征图(低分辨率但语义丰富)结合,通过逐层的上采样生成更细致的分割图像。

(1)FCN-32s

FCN-32s架构如下图所示,就是将VGG的全连接层换成了卷积层FC6,FC7和1×1的卷积,然后用一个转置卷积实现上采样32倍。

(2)FCN-16s

FCN-16s就是将Maxpool4的特征图(如下图尺寸为\frac{h}{16}×\frac{w}{16})与通过转置卷积上采样2倍的特征图进行合并后,再进行一个转置卷积实现上采样16倍。

(3)FCN-8s

FCN-16s就是将Maxpool4的特征图(如下图尺寸为\frac{h}{16}×\frac{w}{16})与通过转置卷积上采样2倍的特征图进行合并后,再进行一个转置卷积实现上采样2倍,此时特征图尺寸为\frac{h}{8}×\frac{w}{8},最后与Maxpool3的特征图(如下图尺寸为\frac{h}{8}×\frac{w}{8})进行合并后,做最后一次转置卷积向上采样8倍。

2、转置卷积

转置卷积就是起到一个上采样的作用。

(1)为什么要提出新的上采样方法(转置卷积)?

可学习的参数,更具适应性
  • 传统的插值方法(如双线性插值)使用固定的插值权重,不能进行任务特定的学习,因此在恢复细节信息时效果有限。
  • 转置卷积引入了可学习的参数,能够通过反向传播来优化上采样过程,从而更好地恢复原始图像的细节,并对语义分割任务进行优化。
② 更精确的细节恢复
  • 在语义分割中,精细的边缘和小目标物体的识别至关重要。双线性插值等方法上采样后的结果可能模糊,无法清晰地表达物体的边缘。
  • 转置卷积通过学习,能自适应地生成细节更丰富、边界更清晰的分割结果,提高分割的精度。
③ 无缝集成于卷积神经网络(CNN)框架
  • 转置卷积可以直接集成在卷积神经网络中,与其他卷积层共享相同的操作机制。在前向传播中用于上采样,在反向传播中用于梯度更新,方便进行端到端训练。
  • 这样可以避免额外的上采样模块,使得整个网络结构更加简洁,并减少了预处理和后处理的复杂性。
④ 保持空间结构的连续性
  • 转置卷积通过可控的步幅和填充策略,可以确保上采样后的特征图保留空间上的连续性,即上采样后的每个像素仍然与输入图像有直接的空间关系。这种连续性对于像素级任务(如语义分割)尤为重要。
  • 通过上采样的过程中学习适应性的卷积核,转置卷积可以在增强细节的同时,保持整体的语义一致性。
⑤ 减少“花瓶效应”
  • 传统的插值方法在处理较深层的特征图时容易出现信息丢失,导致上采样后的特征图缺乏高层语义信息的清晰表达,出现“花瓶效应”(即物体的内部信息和边界被模糊化)。
  • 转置卷积通过学习不同尺度的特征信息,减少了“花瓶效应”的产生,在上采样时保留更丰富的语义信息。

参考视频:

FCN网络结构详解(语义分割)_哔哩哔哩_bilibili

转置卷积(transposed convolution)_哔哩哔哩_bilibili

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

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

相关文章

[计算机网络]第一周

TCP/IP 与OSI TCP/IP TCP/IP 四层模型是一个分层网络通信模型,它将网络通信过程分为四个层次,这四层分别是:网络接口层、互联网层、传输层和应用层。 网络接口层负责在计算机和网络硬件之间传输数据,负责在物理网络上发送和接收…

2024“源鲁杯“高校网络安全技能大赛-Misc-WP

Round 1 hide_png 题目给了一张图片,flag就在图片上,不过不太明显,写个python脚本处理一下 from PIL import Image ​ # 打开图像并转换为RGB模式 img Image.open("./attachments.png").convert("RGB") ​ # 获取图像…

241026-RHEL如何以root身份卸载Docker

在 RHEL 8.8 中,以 root 身份卸载 Docker 可以通过以下步骤完成: 停止 Docker 服务(如果已启动): sudo systemctl stop docker删除 Docker 包: 运行以下命令卸载 Docker 引擎及其依赖包(docker-…

Redis多级缓存

多级缓存 传统缓存的问题 传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,存在下面的问题: 请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈Redis缓存失效时,会对数据…

在多数据中心环境中,自动化运维如何保证跨区域的一致性?网络延迟导致的数据不一致是否可以完全避免?|自动化运维|跨区域一致性

目录 1. 跨区域一致性的定义与重要性 1.1 跨区域一致性的定义 1.2 跨区域一致性的意义 2. 网络延迟的挑战 2.1 网络延迟的来源 2.2 网络延迟对一致性的影响 3. 自动化运维如何实现跨区域一致性 3.1 使用分布式数据库 3.2 采用同步与异步复制 3.3 引入一致性协议 3.4…

Uni-App-03

登录功能开发 实现POST提交 HTTP协议规定请求消息内容类型(Content-Type)有哪些?—— 只有四种 text/plain 没有编码的普通数据 application/x-www-form-urlencoded 编码后的普通数据 multipart/form-data 请求主体中包含文件上传域 application/json 请求主体是 J…

【云原生网关】Higress 从部署到使用详解

目录 二、网关概述 2.1 什么是云原生网关 2.2 常见的云原生网关 2.2.1 Nginx 2.2.2 ApiSix 2.2.3 Kong 2.2.4 Apache Shenyu 2.2.5 Higress 2.2.6 Envoy​​​​​​​ 三、higress介绍 3.1 什么是higress 3.2 Higress 定位 3.3 Higress 内核选择 四、Higress搭…

Vscode + EIDE +CortexDebug 调试Stm32(记录)

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0","configurations": [{"cwd": "${workspaceRoot…

阿里面试竟被“DPO微调”吊打...

最近已有不少大厂都在秋招宣讲,也有一些已在 Offer 发放阶段了。 节前,我们邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对新手如何入门算法岗、该如何准备面试攻略、面试常考点、大模型技术趋势、算法项目落地经验分享等热门话题进行…

一个可以调节笔记本亮度的程序

在我这台笔记本上,当我把显示模式调为读显时发现右下角的亮度不能调了,就像这样 听说时nvidia显卡不适配的问题 咱也不知道呀 于是我就用java写了程序来调节,用了俩个多月,没啥问题的 打开就是这样拉动直接就可以调节 源码 im…

unity中的组件(Component)

在 Unity 中,组件(Component)是构成 GameObject 功能和行为的基础单元,每个 GameObject都可以附加一个或多个组件,以实现不同的功能 1. Transform 组件 描述:所有 GameObject 默认都有一个 Transform 组件…

C++研发笔记8——C语言程序设计初阶学习笔记6

在第一部分——课前准备的学习中,我就提到了学习C语言的过程中,练习是必不可少的环节,所以本篇笔记我们来进行记录我们学习《C语言程序设计初阶》阶段的第一篇练习文章。 题目一 下面哪个不是C语言内置的数据类型: A.char B.d…

【大数据学习 | kafka】kafuka的基础架构

1. kafka是什么 Kafka是由LinkedIn开发的一个分布式的消息队列。它是一款开源的、轻量级的、分布式、可分区和具有复制备份的(Replicated)、基于ZooKeeper的协调管理的分布式流平台的功能强大的消息系统。与传统的消息系统相比,KafKa能够很好…

C++基础:三个字符串也能搞大小?

上一篇说了三个整数比较大小,按照顺序输入的,这次我们看看字符串的,顺便把那个简化以下: 题目:这次输入三个字符串。如果用户输入“Stenbeck", “Hemingway”,“Fitzgerald”,输出将是“Fitzgerald,Hemingway&…

OPPO携手比亚迪共同探索手机与汽车互融新时代

10月23日,OPPO与比亚迪宣布签订战略合作协议,双方将共同推进手机与汽车的互融合作,这一合作也标志着两大行业巨头在技术创新和产业融合上迈出了重要一步,为手机与汽车的深度融合探索新的可能。 OPPO创始人兼首席执行官陈明永、OP…

LCD手机屏幕高精度贴合

LCD手机屏幕贴合,作为智能手机生产线上至关重要的一环,其质量直接关乎用户体验与产品竞争力。这一工艺不仅要求屏幕组件间的无缝对接,达到极致的视觉与触觉效果,还需确保在整个生产过程中,从材料准备到最终成品&#x…

<Project-11 Calculator> 计算器 0.3 年龄计算器 age Calculator HTML JS

灵感 给工人发工资是按小时计算的,每次都要上网,我比较喜欢用 Hours Calculator ,也喜欢它的其它的功能, 做个类似的。 我以为是 Python,结果在学 javascript 看 HTML,页面的基础还停留在 Frontpage 2000…

MongoDB简单学习

MongoDB 一、基本使用 1.1业务应用场景 传统的关系型数据库(如Mysql),在数据库操作的“三高”需求以及对应web2.0的网站需求面前,显得力不从心 三高: High performance - 对数据库高并发读写的要求Huge Storage -…

1U服务器和Hyper-V虚拟机使用记录

记录最近接触服务器和虚拟机的一些使用操作知识 背景:1U服务器上架使用,备份其他服务器vm虚拟机,Hyper-V管理虚拟机使用测试 设备:IBM3550服务器交换机, 移动硬盘:附加存储盘, u盘1&#xff1…

解决JAVA使用@JsonProperty序列化出现字段重复问题(大写开头的字段重复序列化)

文章目录 引言I 解决方案方案1:使用JsonAutoDetect注解方案2:手动编写get方法,JsonProperty注解加到方法上。方案3:首字母改成小写的II 知识扩展:对象默认是怎样被序列化?引言 需求: JSON序列化时,使用@JsonProperty注解,将字段名序列化为首字母大写,兼容前端和第三方…