【语义分割】语义分割综述文章

news2024/11/8 11:18:46

目录:语义分割

  • 一、什么是语义分割
  • 二、什么是图像中的语义信息?
  • 三、语义分割中的上下文信息
  • 四、语义分割方法
  • 五、语义分割神经网络
  • 六、目前比较经典的网络
  • 七、评价指标

一、什么是语义分割

语义分割,也称为像素级分类问题,其输出和输入分辨率相同(如题图中,左边为2048x1024分辨率的Cityscapes街景图像,输入模型,得到右边同样分辨率的语义图)。

由此,语义分割具有两大需求,即高分辨率和高层语义,而这两个需求和卷积网络设计是矛盾的。

语义分割通过对输入图像中每个像素的标签进行预测,给出了较好的推理,例如是前景还是背景。每个像素都根据其所在的对象类进行标记。

通俗且具体到实际图像上来说,语义分割其实就是对于细化版的分类,就是对于一张图像上说,传统的图像分类是把图像中出现的物体进行检测并识别是属于什么类别的,也就是对于一整张图片进行分类。那么现在就有人想对于图中每一个像素点都进行分类。

与分类不同的是,深度网络的最终结果是唯一重要的,语义分割不仅需要在像素级别上进行区分,而且还需要一种机制将编码器不同阶段学习到的区分特征投影到像素空间上。
在这里插入图片描述

二、什么是图像中的语义信息?

处理的那个单元和周围单元的意思。

从自然语言处理的角度,上下文就是指一个单词与其周围单词之间的关联。

图像的语义分为视觉层、对象层和概念层。

视觉层即通常所理解的底层,即颜色、纹理和形状等等,这些特征都被称为底层特征语义;对象层即中间层,通常包含了属性特征等,就是某一对象在某一时刻的状态;概念层是高层,是图像表达出的最接近人类理解的东西。

通俗点说,比如一张图上有沙子,蓝天,海水等,视觉层是一块块的区分,对象层是沙子、蓝天和海水这些,概念层就是海滩,这是这张图表现出的语义。

三、语义分割中的上下文信息

上下文信息也可以被叫做上下文特征。

上下文这个概念听起来有点像是在自然语言处理的时候会用到的一个概念,我们平时在做文章阅读的时候也会遇到这个单词。

但是,随着深度学习领域不断地发展,许多深度学习研究者都尝试着把NLP的处理方式应用到CV的处理上,同时CV的处理方式也应用到NLP上,所以图像和语言处理两家的边界能够被一些理论所连接起来。

故我们可以把一些NLP中的概念代入到CV领域中能够帮助我们去解释一些现象。

上下文: 上下文指的是图像中的每一个像素点不可能是孤立的,一个像素一定和周围像素是有一定的关系的,大量像素的互相联系才产生了图像中的各种物体,所以上下文特征就指像素以及周边像素的某种联系。

具体到图像语义分割,一般论文会说我们的XXX算法充分结合了上下文信息,意思也就是在判断某一个位置上的像素属于哪种类别的时候,不仅考察到该像素的灰度值,还充分考虑和它临近的像素。

对其再次解释可以理解为图像中该像素点的像素值与它周围的一些像素是具有一定的关系的,也就是说分割领域中是靠上下文信息来联系像素点之间的关系。因为图像是由像素点组成的,当图像上某个特定区域上的像素点产生了联系,这个区域在图像上就突出出来了,这个区域现在就是这个图像上独一为二的区域,也相当于从图像上分割出来了。

所以上下文信息其实就是描述像素点之间的关联/关系的。所以我们对每个像素点进行分类之后根据像素点的类别去找这样的上下文信息,而类别信息就是作为图像上的语义信息。

其实感觉这样说还是有点模糊,毕竟个人认为上下文是一个没有公式定义的东西,更多的还是一种理念,像条件随机场,就是一种充分考虑了上下文信息的代表,局部连接的CRF只考虑局部上下文,全连接CRF考虑了全局上下文。

四、语义分割方法

常用的深度学习的语义分割主要有两种方法:

深度学习方法一般都是在分类网络上进行精调,分类网络为了能获取更抽象的特征分层,采取了Conv+pool堆叠的方式,这导致了分辨率降低,丢失了很多信息,这对分割任务来说肯定是不好的,因为分割是对每一个像素进行分类,会造成定位精度不高。但同时更高层的特征对于分类又很重要。

  • encoder-decoder方法:与经典的FCN中的skip-connection思想类似,encoder为分类网络,用于提取特征,而decoder则是将encoder的先前丢失的空间信息逐渐恢复,decoder的典型结构有U-Net/segnet/refineNet,该类方法虽然有一定的效果,能恢复部分信息,但毕竟信息已经丢失了,不可能完全恢复。
  • dialed FCN方法:deeplabv1提出的方法,将vgg的最后的两个pool层步长置为1,这样网络的输出分辨率从1/32变为1/8。可以保留更多的细节信息,同时也丢掉了复杂的decoder结构,但这种方法计算量大。

五、语义分割神经网络

对于语义分割而言,正如开头所说,输入和输出的图像分辨率必须相同,所以一般流程先会是先经过多个下采样层(一般为5个,输出原图1/32的特征图),从而逐步扩大视野获取高层语义特征 ,高层语义特征靠近输出端但分辨率低,高分率特征靠近输入端但语义层次低。

高层特征和底层特征都有各自的弱点,各自的分割问题如下图所示,第二行高层特征的分割结果保持了大的语义结构,但小结构丢失严重;第三行低层特征的分割结果保留了丰富的细节,但语义类别预测的很差。

在这里插入图片描述

所以,我们就很自然可以想到将不同层的特征进行融合,取长补短,分割经典工作FCN和U-Net均采用了这个策略,目标检测中常用的特征金字塔网络(FPN) 也是采用了该策略。

目前比较主流的特征融合方式主要有两类:

  • 一类是FPN(先自下而上获取高层语义特征,再自上而下逐步采样高层语义特征,并融合对应分辨率的下层特征。)
  • 另一类是HRNet(自下而上包含多个分辨率通路,不同分辨率特征在自下而上过程中及时进行融合。)

六、目前比较经典的网络

在这里插入图片描述

七、评价指标

可以从以下几个指标评价某个分割算法的好坏:

  • mIoU:这个指标是应用最多的,也是目前排名分割算法的依据。IoU就是每一个类别的交集与并集之比,而mIoU则是所有类别的平均IoU。论文均使用这一指标比较。
  • speed:由于有些分割算法是针对实时语义分割设计的,所以速度也是一个很重要的评价指标,当然评价速度需要公平比较,包括使用的图像大小、电脑配置一致。
  • 当然还有其他指标,如pixel accuracy(PA)、mean accuraccy(MA) 等。

MIOU:
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

如何远程访问别人的MySQL数据库

1、 如何远程访问别人的MySQL数据库 - curryzwy - 博客园 (cnblogs.com)https://www.cnblogs.com/curryzwy/p/15730485.html 2、 mysql——同一局域网如何共同访问一台电脑的数据库(胎教级教学)_七月星辰的博客-CSDN博客_两台电脑共用一个mysql数据库…

1803. 统计异或值在范围内的数对有多少

解法一:字典树 前置知识:字典树 字典树是一种实现字符串快速检索的多叉树结构。 例如:给定字符串集合[cab, cos, car, cat], 我们现在需要判断cat是否存在于字符串集合中。 字典树代码: static int[][] trie new int[N][26]; …

AcWing 1221. 四平方和(二分或哈希)

一、题目描述 二、思路分析 先从时间复杂度的角度入手,这道题的数据范围是106,因此我们的时间复杂度要控制在O(n)O(n)O(n)或者O(nlogn)O(nlogn)O(nlogn)。 对于abcd中的任何一个元素,必定是小于n\sqrt nn​的。 我们的一个思路就是去枚举&…

如何选择用 .net Framework 或 .net core

小米问: 给你一个项目,如何选择用 netframework 或 netcore?如何选择服务器? 怎么去考虑? 咋回答呢 答: 不要考虑.net framework 除非极其特殊的情况 比如目标主机系统版本较低 服务器自然是linux好&a…

2023年考证时间一览表

2022年已经成为历史,在疫情背景全面开放下给大家整理了2023年全年的考试时间以及报名时间新鲜出炉,了解清楚,为2023年提前做好规划! 1月份 2022年下半年中小学教师资格考试面试 报名时间:2022年12月9日-12日 考试时间…

大数据:Hive视图和索引

一、视图 1.1 简介 Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集。视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0.0 引入的物化视图除外),当查询引用视图时&#xff0…

【自学C++】Windows安装C++语言开发环境

Windows安装C语言开发环境 Windows安装C语言开发环境教程 C 的开发环境可以直接使用 C 语言 的开发环境, 同时,Windows 本身就自带 C 语言的运行环境,因此,为了开发 C 语言,我们只需要安装一个 C 语言的开发工具即可…

第03讲:HTTP操作之ElasticSearch文档操作

3.1.2、文档操作 实验1:创建文档 索引已经创建好了,接下来我们来创建文档,并添加数据。这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式 在 Postman 中,向 ES 服务器发 POST 请求 :http://1…

【Kafka】Java实现数据的生产和消费

【Kafka】Java实现数据的生产和消费 Kafka介绍 Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 Kafka 有如下…

【LeetCode】1803. 统计异或值在范围内的数对有多少

1803. 统计异或值在范围内的数对有多少 题目描述 给你一个整数数组 nums &#xff08;下标 从 0 开始 计数&#xff09;以及两个整数&#xff1a;low 和 high &#xff0c;请返回 漂亮数对 的数目。 漂亮数对 是一个形如 (i, j) 的数对&#xff0c;其中 0 < i < j <…

阻塞式队列

文章目录一、阻塞队列阻塞队列的概念阻塞队列相关类和方法生产者消费者模型二、自定义实现阻塞队列自定义实现循环队列自定义实现阻塞队列生产者消费者模型体验一、阻塞队列 阻塞队列的概念 队列我们并不默认&#xff0c;一提起队列&#xff0c;我们立马就能想到 "先进先…

一条 update 语句的执行过程

1.一条 update 语句的执行流程 一条更新语句&#xff0c;其实是增&#xff0c;删&#xff0c;查的综合体&#xff0c;查询语句需要经过的流程&#xff0c;更新语句全部需要执行一次&#xff0c;因为更新之前必须要先拿到&#xff08;查询&#xff09;需要更新的数据。 Buffer…

低代码平台组件间通信方案复盘

背景介绍3年前我开发了一款零代码搭建平台 H5-Dooring, 主要目的是想用更低的成本, 更快的效率, 上线 web 页面(其实是不想写重复的代码了,写麻了). 好在陆陆续续折腾了3年, 目前已经可以满足基本的页面设计和搭建能力, 并能快速上线页面.之前也在社区分享了很多低代码和零代码…

高、低成本MEMS惯导系统姿态、位置、速度更新算法的对比

高、低成本MEMS惯导系统姿态、位置、速度更新算法的对比一、高成本MEMS惯导系统姿态、位置、速度更新算法1、速度更新2、位置更新3、姿态更新4、程序仿真及实验结果4.1 主函数4.2 子函数4.3 实验结果一、低成本MEMS惯导系统姿态、位置、速度更新算法1、速度更新2、位置更新3、姿…

乾元浩在创业板IPO终止:主要生产禽用疫苗产品,中农大是股东

2023年1月4日&#xff0c;深圳证券交易所披露的信息显示&#xff0c;乾元浩生物股份有限公司&#xff08;下称“乾元浩”&#xff09;提交了撤回上市申请文件的申请&#xff0c;保荐人中信证券也撤回对该公司的保荐。因此&#xff0c;深交所终止了乾元浩首次公开发行股票并在创…

程序员述职报告

程序员述职报告笔者能力有限&#xff0c;仅供参考。做研发的小伙伴&#xff0c;不太擅长于写PPT&#xff0c;对于更高一级别的领导&#xff0c;可能只有年终述职的时候才能全面的了解你的工作。所以需要我们在PPT中表达自我价值&#xff0c;突出角色职责。让领导更清楚的认识你…

访问数据库超时问题排障

1 排障过程 系统从圣诞节那天晚上开始&#xff0c;每天晚上固定十点多到十一点多这个时段&#xff0c;大概瘫痪1h左右&#xff0c;过这时段系统自动恢复。系统瘫痪时的现象就是&#xff0c;网页和App都打不开&#xff0c;请求超时。系统架构&#xff1a; 整个系统托管在公有云…

图解数据结构:盘点链表与栈和队列的那些血缘(单双链表模拟实现栈和队列)

写在前面 Hello&#xff0c;各位盆友们&#xff0c;我是黄小黄。关于前一段时间为什么拖更这件事&#xff0c;这里给大家说一句抱歉。笔者前段时间忙于ddl和一些比赛相关的事件&#xff0c;当然还有些隐藏任务&#xff0c;所以博文更新就放缓了。  这里还需要做一下对以后博文…

计算机原理一_计算机的组成、进程与线程

目录儿一、计算机组成二、进程与线程2.1 线程的切换2.2 CPU的并发控制2.2.1 关中断2.2.2 缓存一致性协议2.2.2.1 缓存Cache2.2.2.2 缓存行Cache Line2.2.2.3 缓存一致性拓展&#xff1a;超线程2.2.3 内存屏障2.2.3.1 CPU的乱序执行拓展1&#xff1a;java 的 this 溢出问题拓展2…

Linux(一):Linux基本结构

一、Linux系统划分 linux系统分为用户区、内核区 1.1分区目标 保护数据和硬件安全&#xff0c;对系统进行分区也就是进程分区&#xff0c;当处于用户态&#xff0c;只能访问用户区&#xff0c;用户无法修改内核&#xff0c;保证硬件安全&#xff0c;操作系统不易损坏&#…