FCN-语义分割中的全卷积网络

news2024/11/26 16:27:16

FCN-语义分割中的全卷积网络

语义分割

语义分割是计算机视觉中的关键任务之一,现实中,越来越多的应用场景需要从影像中推理出相关的知识或语义(即由具体到抽象的过程)。作为计算机视觉的核心问题,语义分割对于场景理解的重要性日渐突出。

在这里插入图片描述

摘要

Abstract—Convolutional networks are powerful visual models that yield hierarchies of features. We show that convolutional networks
by themselves, trained end-to-end, pixels-to-pixels, improve on the previous best result in semantic segmentation. Our key insight is to
build “fully convolutional” networks that take input of arbitrary size and produce correspondingly-sized output with efficient inference
and learning. We define and detail the space of fully convolutional networks, explain their application to spatially dense prediction tasks, and draw connections to prior models. We adapt contemporary classification networks (AlexNet, the VGG net, and GoogLeNet)
into fully convolutional networks and transfer their learned representations by fine-tuning to the segmentation task. We then define a
skip architecture that combines semantic information from a deep, coarse layer with appearance information from a shallow, fine layer to produce accurate and detailed segmentations. Our fully convolutional network achieves improved segmentation of PASCAL VOC (30% relative improvement to 67.2% mean IU on 2012), NYUDv2, SIFT Flow, and PASCAL-Context, while inference takes one tenth of a second for a typical image

翻译:卷积网络是一种强大的视觉模型,它可以产生层次化特征。我们展示了卷积网络这种端到端、像素对像素的训练模型,超过了语义分割的最新技术水平。本文的关键点是构建了“全卷积”神经网络,它是一种输入尺寸任意的端对端神经网络,同时网络有着高效的学习和推理过程。我们定义并详细说明了全卷积神经网络的结构,解释它们在像素位置密集型预测任务中的应用,并得出与先前模型之间的连接。本文将经典的分类网络(AlexNet,VGG16,GoogleNet)整合进全卷积神经网络,经过微调这些网络的学习表征方式来使他们适用于分割任务。然后,本文定义了跳结构将深层、粗糙的语义信息和浅层、精细的表层信息结合,产生准确精细的分割结果。本文提出的全卷积神经网络在PASCAL VOC、NYUDv2、SIFT Slow数据集取得了目前最好的分割结果,对这些数据集中的典型图像,每张的推理过程只需要不到0.2秒。其中在PASCAL VOC数据集中达到了62.2%的平均交并比。

摘要总结

主要成就:端到端、像素到像素训练方式下的卷积神经网络超过了现有语义分割方向最先进的技术

核心思想:搭建了一个全卷积网络,输入任意尺寸的图像,经过有效推理和学习得到相同尺寸的输出

主要方法:将当前分类网络改编成全卷积网络(AlexNet、VGGNet和GoogLeNet)并进行微调设计了跳跃连接将全局信息和局部信息连接起来,相互补偿

实验结果:在PASCAL VOC、NYUDv2和SIFT Flow数据集上得到了state-of-the-art的结果。

分割术语

pixel-wise(pixels-to-pixels):像素级别
每张图片都是由一个个pixel组成的,pixel是图像的基本单位

image-wise:图像级别
比如一张图片的标签是狗,即“狗”是对整个图片的标注

patch-wise:块级别
介于像素级别和图像级别之间,每个patch都是由好多个pixel组成的

patchwise training:
是指对每一个感兴趣的像素,以它为中心取一个patch(小块),然后输入网络,输出则为该像素的标签

局部信息与全局信息

  • 局部信息
    提取位置:浅层网络中提取局部信息
    特点:物体的几何信息比较丰富对应的感受野较小
    目的:有助于分割尺寸较小的目标有利于提高分割的精确程度

  • 全局信息
    提取位置:深层网络中提取全局信息
    特点:物体的空间信息比较丰富对应的感受野较大
    目的:有助于分割尺寸较大的目标有利于提高分割的精确程度

在这里插入图片描述

感受野(RF)

在卷积神经网络中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野。通常来说,大感受野的效果要比小感受野的效果
更好。由公式可见,stride越大,感受野越大。但是过大的stride会使featuremap保留的信息变少。因此,在减小stride的情况下,如何增大
感受野或使其保持不变,称为了分割中的一大问题。

感受野的计算公式

在这里插入图片描述

当前层的感受野 =RF(上一层感受野) + (K-1) x S

1x1卷积

在这里插入图片描述
FCN网络中,将CNN网络的后三层全部转化为1*1的卷积核所对应等同向量长度的多通道卷积层。整个网络模型全部都由卷积层组成,没有全连接层产生的向量。CNN是图像级的识别,也就是从图像到结果。而FCN是像素级的识别,标注出输入图像上的每一个像素最可能属于哪一类别。

上采样与转置卷积

本文没有沿用以往的插值上采样(lnterpolation),而是提出了新的上采样
方法,即反卷积(Deconvolution)。反卷积可以理解为卷积操作的逆运算,反卷积并不能复原因卷积操作造成的值的损失,它仅仅是将卷积过程中的步骤反向变换一次,因此它还可以被称为转置卷积。

在这里插入图片描述

反卷积的计算公式与卷积特征图输出的计算公式相反

卷积:input - k +2p/stride +1

而转置卷积的计算公式是其一个逆过程

转置卷积:= (input-1)x stride +k -2p (计算输出特征图尺寸的公式)

算法讲解

在这里插入图片描述

在这里插入图片描述
32s是指上采样32倍还原到图片原来的大小。(16s与8s同理)

FCN32S

直接使用转置卷积来进行上采样将图片恢复到32倍的大小

在这里插入图片描述

FCN16S

在FCN16S中我们融合了Maxpooling4中的相关的信息。

在这里插入图片描述

FCN8s

同理在FCN8s中我们需要使用maxpooling3和Maxpooling4中的特征图

先从32按提升到16在将16继续进行提升到32

在这里插入图片描述

损失计算

分割中的损失的计算是按照每个像素来进行计算求解的。

和分类类似通常也使用交叉熵损失来进行计算。

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

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

相关文章

QT C++(QT控件 QPushButton,QRadioButton,QCheckBox)

文章目录 1. QPushButton 普通按钮2. QRadioButton 单选按钮3. QCheckBox 复选按钮 1. QPushButton 普通按钮 QPushButton中的重要属性 text:按钮中的文本icon:按钮的图标iconSize:按钮中图标的尺寸shortCut:按钮对应的快捷键&a…

关于烫烫烫和屯屯屯

微较的msvc编译器,调试模式下为了方便检测内存的非法访问,对于不同的内存做了初始化, 未初始化栈: 0xCCCCCCCC 未初始化堆: 0xCDCDCDCD 已释放的堆: 0xDDDDDDDD 0xCCCC解释为GB2312字符即是烫&#xff…

“深入探讨Java中的对象拷贝:浅拷贝与深拷贝的差异与应用“

前言:在Java编程中,深拷贝(Deep Copy)与浅拷贝(Shallow Copy)是两个非常重要的概念。它们涉及到对象在内存中的复制方式,对于理解对象的引用、内存管理以及数据安全都至关重要。 ✨✨✨这里是秋…

AI视频教程下载:如何用ChatGPT来求职找工作?

这是一个关于使用ChatGPT找工作的课程,作者分享了自己的求职经验和技巧,介绍了如何使用人工智能来改进个人资料和简历,以及如何研究公司和面试。通过细节处理职业目标、分享个人兴趣和技能、寻求导师和专业发展机会,以及在行业内建…

【K8s源码分析(三)】-K8s调度器调度周期介绍

本文首发在个人博客上,欢迎来踩! 本次分析参考的K8s版本是v1.27.0。 K8s的整体调度框架如下图所示。 调度框架顶层函数 K8s调度器调度的核心函数schedulerone在pkg/scheduler/schedule_one.go:62,如下,这里将一些解释写在了注…

CTF Show MISC做题笔记

MISCX 30 题目压缩包为misc2.rar,其中包含三个文件:misc1.zip, flag.txt, hint.txt。其中后两个文件是加密的。 先解压出misc1.zip, 发现其中包含两个文件:misc.png和music.doc。其中后面文件是加密的。 解压出misc.png,发现图片尾部有消息:flag{flag…

Autosar Dem配置-Condition(TRC)的使用-基于ETAS软件

文章目录 前言Dem配置DemEnableConditionDemEnableConditionIdDemEnableConditionStatus DemEnableConditionGroupDemEventParameter 接口配置代码实现总结 前言 在车辆工作状态下,每个DTC检测可能都需要一个前提条件,否则如果任何条件下都可以进行DTC检…

【ARM Cache 与 MMU 系列文章 7.3 – ARMv8/v9 MMU 块描述符与页表描述符】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 上篇文章:【ARM Cache 系列文章 7.2 – ARMv8/v9 MMU 页表配置详细介绍 03 】 文章目录 MMU 块描述符与页描述符Block DescriptorBlock descriptor formatsBlock Entry 介绍Block En…

【C#】开发过程中记录问题

1.DateTimePicker控件获取时间 拖动控件,设置属性format为custom格式。例如我想获得20240101这种类型的string类型的数据: string DateTime = DateTimePicker.Value.ToString("yyyyMMdd");2.ComboBox下拉列表控件 默认为DropDown,下拉可修改。 DropDownList为下…

《Windows API每日一练》

2.2.8 第15练:处理WM_CLOSE消息 /*------------------------------------------------------------------------ 015 编程达人win32 API每日一练 第15个例子WM_CLOSE.C:回调函数---处理WM_CLOSE消息 WM_CLOSE消息 DestroyWindow函数 注意&#xf…

SprirngBoot+Vue房屋租赁系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 租客管理员 功能截图

Git【版本控制命令】

02 【本地库操作】 1.git的结构 2.Git 远程库——代码托管中心 2.1 git工作流程 代码托管中心用于维护 Git 的远程库。包括在局域网环境下搭建的 GitLab 服务器,以及在外网环境下的 GitHub 和 Gitee (码云)。 一般工作流程如下: 1.从远程…

[Cesium学习]

Popup弹窗 Cesium点位弹窗_cesium popup弹窗-CSDN博客 Cesium构造popup弹窗函数_cesium popup-CSDN博客 开发之家 - Cesium构造popup弹窗函数 GitHub - cesium-plugin/cesium-popup-es6: 气泡弹窗 热力图分析 // 创建Cesium Viewer实例 const viewer new Cesium.Viewer(c…

C#中使用Mysql批量新增数据 MySqlBulkCopy

在C#中使用MySqlBulkCopy类来批量复制数据到MySQL数据库,首先需要确保你的项目中已经引用了MySQL Connector。以下是使用MySqlBulkCopy的基本步骤: 1.安装MySQL Connector。 可以通过NuGet安装MySQL Connector: 2.在代码中引用必要的命名空间…

安装 JDK 17

安装包 百度网盘 提取码:6666 安装步骤 双击下载得到的安装包,开始安装: 正在安装: 安装完成: 安装路径下,多出来了很多新的内容。安装文件夹所包含的内容及作用: src 是 JDK 的源码包。类库…

DevExpress WPF中文教程:Grid - 如何向项目添加GridControl并绑定到数据

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

VueRouter路由与Vuex状态管理

前言 随着前端技术的快速发展和前后端分离架构的普及,单页面应用(SPA)已成为现代Web开发的主流。在SPA中,前端路由和状态管理扮演着至关重要的角色。Vue3作为当前流行的前端框架之一,提供了强大的路由(Vue …

sqli-labs 靶场 less-7 第七关详解:OUTFILE注入与配置

SQLi-Labs是一个用于学习和练习SQL注入漏洞的开源应用程序。通过它,我们可以学习如何识别和利用不同类型的SQL注入漏洞,并了解如何修复和防范这些漏洞。Less 7 SQLI DUMB SERIES-7判断注入点 进入页面中,并输入数据查看结果。 发现空数据提…

【JS实战03】学生信息的添加与删除

说明:本文章提供相应源码,需要到主页资源栏下载,并搭配源码看本文档;重点阐述每个JS模块实现过程中的重难点问题。 一:录入模块 1 渲染数据思路 减少DOM相关操作,避免因过多的DOM操作造成程序运行速度的…

机车 - 安驾培训记录

1,先学倒车后扶车。 先断电。脚蹬在外的话要展开,防止推过头。 可以挂档就挂到1档。可以用皮套把刹车拉紧,或手捏在刹车上。防止下坡溜车或扶起时车不稳。 站在车倒向的一侧,车把向内,方便一手抓车把,一…