图像分割-语义分割

2023-11-10

1.FCN

1.1 CNN与FCN的比较

简单的说,FCN与CNN的区别在于FCN把CNN最后的全连接层换成卷积层,其输出的是一张已经标记好的图,而不是一个概率值。如下两图所示:
(1)在CNN中, 猫的图片输入到AlexNet, 得到一个长为1000的输出向量, 表示输入图像属于每一类的概率, 其中在“tabby cat”这一类统计概率最高, 用来做分类任务。
在这里插入图片描述(2)FCN是对图像进行像素级的分类(也就是每个像素点都进行分类),从而解决了语义级别的图像分割问题。与上面介绍的经典CNN在卷积层使用全连接层得到固定长度的特征向量进行分类不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷基层的特征图(feature map)进行上采样,使它恢复到输入图像相同的尺寸,从而可以对每一个像素都产生一个预测,同时保留了原始输入图像中的空间信息,最后奇偶在上采样的特征图进行像素的分类。如下图所示:
在这里插入图片描述总结:
在传统的CNN结构中,前5层是卷积层,第6层和第7层分别是一个长度为4096的一维向量,第8层是长度为1000的一维向量,分别对应1000个类别的概率。FCN将这3层表示为卷积层,卷积核的大小(通道数,宽,高)分别为(4096,7,7)、(4096,1,1)、(1000,1,1)。所有的层都是卷积层,故称为全卷积网络。

1.2 三种上采样方法

经过全卷积化的网络后,我们会发现在整个过程中,原图象被进行了32倍的降采样。
在这里插入图片描述但是FCN网络一般是用来对图像进行语义分割的,于是就需要对图像上的各个像素进行分类,这就需要一个上采样将降采样32倍的图像上采样到原图的大小。上采样对于低分辨率的特征图,常常采用上采样的方式将它还原高分辨率,这里陈述上采样的三种方法。

1.2.1 双线性插值上采样

简单来说,插值指利用已知的点来“猜”未知的点,一个分析帖。特点是不需要进行学习,运行速度快,操作简单。
单线性插值(一个方向上)就是知道两个点的值,并将两点连成一条直线,来确定中间的点的值,假设,现在有两点 (x1​,y1​)、(x2​,y2​)连成一条直线 [x1​,x2​]中的点就可以用线上的点表示。双线性插值(两个方向上)是一个三维的坐标系,因此,需要找到4个点来确定中心点坐标,如下图所示的例子:

在这里插入图片描述已知的红色数据点和待插值的绿色数据点。咱们已知函数f在Q1,Q2,Q3,Q4四个点值,咱们想获得未知函数f在点P= (x,y) 的值。
第一步:X方向的线性插值,在Q12,Q22中插入蓝色点R2,Q11,Q21中插入蓝色点R1。
在这里插入图片描述

第二步 :Y方向的线性插值 ,经过第一步计算出的R1与R2在y方向上插值计算出P点。
在这里插入图片描述
在x与y方向上,z值成单调性特性的应用中,此种方法能够作外插运算,便可以求解Q11~Q22所构成的正方形之外的点的值,计算正方形之外的点就是上采样的过程!!!

1.2.2 反卷积上采样

首先要记住把反卷积理解成逆卷积(Deconvolution)比较容易引起误会,把反卷积理解为转置卷积(Transposed Convolution)是一个更为合适的叫法.
(1)外围全补零(Full padding)反卷积
在这里插入图片描述在这里插入图片描述

(2)插零分数步长反卷积
其实上面这种补0的方法事有问题的,你想一下,只在四周补0会导致最边上的信息不太好,那我们把这个信息平均下,在每个像素与像素之间补0,这就是插零分数步长反卷积
在这里插入图片描述在这里插入图片描述

1.2.3 反池化上采样

反池化可以用下图来理解,
(1)在池化时需要记录下池化的位置,形成“池化索引”
(2)反池化时把池化的位置直接还原,其他位置填0。

在这里插入图片描述注意:
反卷积与反池化之间最大的区别在于反卷积过程是有参数要进行学习的。
理论上

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像分割-语义分割 的相关文章

  • Google Mock - GoogleTest(九)

    本文翻译自 https github com google googletest blob master googlemock docs CheatSheet md 一 定义一个模拟类 1 模拟一个正常的类 就是接口类 给 1 2 3 4
  • 数字经济时代下的软硬件基础设施建设与发展

    随着全球数字化新时代的到来 软件正在被重新定义 程序员的世界的代码走向各行各业 智慧城市 载人航天 潜海探月 数字新时代的加快到来 也为开发者拥有无限想象力提供了新机遇 一 云计算 云计算 大数据和人工智能 这三个东西已非常火 并且它们之间
  • 【C++初阶】list的模拟实现 附源码

    一 list介绍 list底层是一个双向带头循环链表 这个我们以前用C语言模拟实现过 gt 双向带头循环链表 下面是list的文档介绍 list文档介绍 我们会根据 list 的文档来模拟实现 list 的增删查改及其它接口 二 list模
  • 【深入理解C++】三种继承方式、函数遮蔽

    文章目录 1 三种继承方式 2 函数遮蔽 1 三种继承方式 继承可以让子类拥有父类的所有成员 成员变量和成员函数 public继承 父类 继承方式 子类 public public public protected public prote

随机推荐

  • Ideal必备宝藏插件

    Ideal必备宝藏插件 1 CodeGlance 代码迷你缩放图插件 方便拉到对应的代码 2 Codota代码提示工具 3 Alibaba Java Coding Guidelines 阿里巴巴的编码规约检查插件 4 Lombok 实体类插
  • UmiJS学习

    UmiJS4学习笔记 起步 官网学习 https umijs org 开发环境 Umi js 需要使用 Node js来进行开发 因此请先确保电脑已经安装了 Node js 且版本在 14 以上 安装pnpm npm install pnp
  • mysql Using where; Using join buffer (Block Nested Loop)

    SELECT FROM t1 INNER JOIN t2 ON t1 id t2 CODE sql执行很慢 explain 发现Using join buffer Block Nested Loop 产生的原因有可能是 JOIN 的字段类型
  • JavaScript-MD5加密

    代码 或者 示例 var hash md5 value 2063c1608d6e0baf80249c42e2be5804 var hash md5 111111 96e79218965eb72c92a54
  • 精通CSS-添加样式

    精通CSS 添加样式 一 CSS 选择符 1 子选择符与同辈选择符 2 通用选择符 3 属性选择符 4 伪元素 5 伪类 6 结构化伪类 7 表单伪类 二 层叠 三 特殊性 1 利用层叠次序 四 继承 五 为文档应用样式 1 link 与
  • macOS下更改默认的Python版本

    本机环境 macOS11 6 macOS默认已经安装了python 只不过版本是Python2 7 其相比Python 3缺少了很多特性 而且速度也比Python 3慢 因此建议大家安装Python 3 python download 这里
  • 国内镜像下载Android10源码并编译(实测)

    1 安装ubuntu 不会的百度 一大把 2 安装编译环境必要软件 sudo apt get install git core gnupg flex bison build essential zip curl zlib1g dev gcc
  • unity 中带贴图以及动画的模型文件转为 lowpoly 风格的方法

    本篇讲述的是使用代码来修改的方法 其实unity已经给我们提供了设置的方法 Normals选择Calculate Smoothing Angle调整为0即可 这里的内容是在这篇文章的基础上进行的修改 https blog csdn net
  • winget安装提示:执行此命令时发生意外错误: InternetOpenUrl() failed. 0x80072efd

    问题 当我们使用 Winget 包管理器安装软件时总是提示以下错误 执行此命令时发生意外错误 InternetOpenUrl failed 0x80072efd unknown error 解决方法 DNS是一种将网址转化为IP地址的重要工
  • 蓝桥杯C/C++ 基础练习 矩阵乘法 C语言

    题目 思路分析 题目要求输入N阶矩阵 可以动态定义二维数组A N N 来存储该矩阵A 由于矩阵A的M次幂也是N阶矩阵 那么需要定义另一个数组B N N 来存储该矩阵 在继续分析之前需要明确矩阵的乘法规则 举例如下图图1 不清楚者可自行百度
  • Rockchip

    1 Graphics介绍 1 1 使用X11 Graphics Xserver 是在常规桌面 Linux 平台上使用的显示系统 Rockchip 有一个定制的 Xserver 可以实现 glamor 2D acceleration Xser
  • 《面向对象程序设计》授课计划2022-2023-02

    面向对象程序设计授课计划 可参照此计划 在课前预习 待完善 授课内容 课本章节 PPT 课堂 PPT 课本配套 一 课程介绍 课程要求 编程语言 面向对象简介 C 简介 实验环境 CH1 OOP00 BeforeTheClassStarts
  • BP神经网络公式推导及实现(MNIST)

    BP神经网络的基础介绍见 http blog csdn net fengbingchun article details 50274471 这里主要以公式推导为主 BP神经网络又称为误差反向传播网络 其结构如下图 这种网络实质是一种前向无反
  • Journal of Proteome Research

    题目 Improving Silkworm Genome Annotation Using a Proteogenomics Approach 期刊 Journal of Proteome Research 发表时间 June 28 201
  • 数组根据某个条件筛选出符合的数据,生成一个新的数组

    前言 使用vue结构 把一个数组重新组合 一 数组重新组合 得到符合条件的新的数组 代码如下 示例 menuList icon el icon search index 11 title 协议管理 subs index homes agre
  • 测试四:jmeter使用过程遇到的问题

    1 查看结果树的条数设置 如果用1000个并发量测20个接口则响应的数据量太多想要查看到每一个的响应树结果 结果只显示了一部分 发现可以通过修改配置文件来增加响应的条数 全局搜索并修改配置文件为view results max result
  • 均值已知检验方差_方差分析怎么做?用3个假设来验证流程

    点击上方 中国统计网 订阅我吧 背 景 假如你们现在针对用户提出了三种提高客单价的策略A B C 现在想看一下这三种策略最后对提高客单价的效果有什么不同 那我们怎么才能知道这三种策略效果有什么不同 最简单的方法就是做一个实验 我们可以随机挑
  • 目标检测中的标签分配策略

    介绍 label assignment 主要指的是检测器在训练阶段区分正负样本 并给feature map 不同位置匹配合适的监督目标 用于计算损失 进而完成梯度更新 合适的分配策略对于模型来说至关重要 在一定程度上决定了模型的性能 分类
  • ElementUI浅尝辄止17:Progress 进度条

    用于展示操作进度 告知用户当前状态和预期 常见于操作流程进度或某项任务的状态 1 如何使用 Progress 组件设置percentage属性即可 表示进度条对应的百分比 必填 必须在 0 100 通过 format 属性来指定进度条文字内
  • 图像分割-语义分割

    图像分割 语义分割 1 FCN 1 1 CNN与FCN的比较 1 2 三种上采样方法 1 2 1 双线性插值上采样 1 2 2 反卷积上采样 1 2 3 反池化上采样 1 3 FCN 跳层结构 Skip layer 1 4 FCN架构 1