语义分割和实例分割_语义分割入门的一点总结

点击上方“CVer”,选择加"星标"或“置顶”

重磅干货,第一时间送达c4c045c42f77592e2c321b3b85f048e3.png

作者:Yanpeng Sun

https://zhuanlan.zhihu.com/p/74318967

本文已由作者授权,未经允许,不得二次转载

语义分割

目的:给定一张图像,我们要对这张图像上的每个pixel逐一进行分类,结果展示如下图:

6d62726f5be88dbb2db8e8491decdae6.png

上图中的实例分割是语义分割的延伸,要区别出相同类别的不同个体。

应用场景:无人驾驶、辅助医疗等。

语义分割方法发展过程

1.灰度分割(Gray Level Segmentation)

语义分割的最简单形式是对一个区域设定必须满足的硬编码规则或属性,进而指定特定类别标签. 编码规则可以根据像素的属性来构建,如灰度级强度(gray level intensity). 基于该技术的一种分割方法是 Split and Merge 算法. 该算法是通过递归地将图像分割为子区域,直到可以分配标签;然后再合并具有相同标签的相邻子区域。

这种方法的问题是规则必须是硬编码的. 而且,仅使用灰度级信息是很难表示比如人类等复杂类别的. 因此,需要特征提取和优化技术来正确地学习复杂类别的特征表示。

2.条件随机场(Conditional Random Fields)

CRFs 是一类用于结构化预测的统计建模方法. 不同于分类算法,CRFs 在进行预测前,会考虑像素的邻近信息(neighboring context),如像素间的关系. 这使得 CRFs 成为语义分割的理想候选者. 这里介绍下 CRFs 在语义分割中的应用.

图像中的每个像素都是与有限的可能状态集相关. 在语义分割中,target 类别标签就是可能状态集. 将一个状态(或,label u) 分配给的单个像素 x 的成本(cost) 被称为一元成本(unary cost). 为了对像素间的关系进行建模, 还进一步考虑将一对标签(labels (u, v)) 分配给一对像素 (x, y),其被成为成对成本(pairwise cost). 可以采用直接相邻的像素对作为像素对(Grid CRF);也可以采用图像中所有的像素构建像素对(Denser CRF)。

图像中所有 unary cost 和 pairwise cost 的相加和作为 CRF 的能量函数(或损失函数,loss). 求解最小化即可得到较好的分割输出。

深度学习极大地简化了语义分割的流程(pipeline),并得到了较高质量的分割结果

3.FCN

FCN方法的提出成功的将深度学习方法成功的引入到了语义分割领域,由于要预测的图像是一个二维的表示,因此提出了全卷积网络用来抽取图像中的特征,将得到的高级语义特征上采样到指定的维度,从而得到了最终的预测结果,从而自然的形成了Encoder-Decoder框架,这也成为了语义分割领域中通用框架之一。

具体的模型图如下:

4996922eb6dec60cab60533ca35f18ef.png

由于在Encoder中获取到图像的高级语义,但是其并不是最终分割的结果,因此作者采用转置卷积的方法将该高级特征上采样到指定的维度,从而得到最终的分割结果。由于直接上采样之后的结果并不好,因此在改论文中引入了跳跃模型就是将不同卷积层下获取到的特征相融合,从而改善模型的效果,其具体结构如下所示:

9aaa94b89d629013d3f2c53eac0a20fe.png

4.U-NET, SegNet 等

为了改善FCN中的弊端,随后提出了很多模型最经典的是U-Net,SegNet,但是他们的本质上并没有改变Encoder-Decoder模型的架构。

5.DeepLab系列

DeepLab的出现带来了一个新的方法就是扩展卷积(空洞卷积)方法,卷积层引入了一个称为 “扩张率(dilation rate)”的新参数,该参数定义了卷积核处理数据时各值的间距。其目的是为了扩大模型的感受野,使其能够感受到更大范围下的特征信息。具体的体现如下所示:

a22197d4a5afbf155f303f974683c0a9.png

扩展卷积方法的提出让人们可以去除Encoder-Decoder框架的限制。随后deeplab算法的改进也提出了例如多尺度学习的通则红描述方法(ASPP等)

6.NOW

面对监督式方法---最近的方法大家更注重于实时的语义分割任务,也就是轻量级的语义分割网络的设计。当然还有一些其他的方法,例如针对不同的领域设计不同的语义分割网络、改进上采样方法等。

面对弱监督方法---目前出现了很多弱监督方法,就是通过学习图像分类的数据集(image-level tag)中的信息,来完成语义分割这种密度预测的任务。当然还有使用框架注释来标注数据(bounding-boxes tag)的。

语义分割领域中困难的地方:

1、数据问题:分割不像检测等任务,只需要标注一个类别就可以拿来使用,分割需要精确的像素级标注,包括每一个目标的轮廓等信息,因此使得制作数据集成本过高;

2、计算资源问题:现在想要得到较高的精度的语义分割模型就需要使用类似于ResNet101等深网络。同时,分割预测了每一个像素,这就要求feature map的分辨率尽可能的高,这都说明了计算资源的问题,虽然也有一些轻量级的网络,但精度还是太低了;

3、精细分割:目前的方法中对于图像中的大体积的东西能够很好的分类,但是对于细小的类别,由于其轮廓太小,从而无法精确的定位轮廓,造成精度较低;

4、上下文信息:分割中上下文信息很重要,否则会造成一个目标被分成多个part,或者不同类别目标分类成相同类别;

评价指标:

1、执行时间:速度或运行时间是一个非常有价值的度量,因为大多数系统需要保证推理时间可以满足硬实时的需求。然而在通常的实验中其影响是很不明显的,并且该指标非常依赖硬件设备及后台实现,致使一些比较是无用的。

2、内存占用:在运行时间相同的情况下,记录系统运行状态下内存占用的极值和均值是及其有价值的。

3、精确度:这里指的是逐像素标记的精度测量,假设共有k个类(从l0到lk其中有一个类别是属于背景的。),Pij表示本属于i类但是被预测为j类的像素个数,Pii表示为真正分对类的数量,而Pij与Pji分别被称为假正样本和假负样本。

1)Pixel Accuracy(PA,像素精度):标记正确的像素占总像素的比例

6ab09f45430763574274128bb747cd8d.png

2)Mean Pixel Accuracy(MPA,平均像素精度):计算每个类内被正确分类像素数比例,之后求所有类的平均数。

fc3c4dcd476b33d0dc4e21c3f165455b.png

3)Mean Intersection over Union(MIoU,均交并比):为语义分割的标准度量,其计算两个集合的交集和并集之比,这两个集合分别为ground truth 与predicted segmentation,在每个类上计算IoU,之后将其求平均。

-----IoU即真正样本数量/(真正样本数量+假正样本数量+假负样本数量)

64c2482e80a5ca25b2a9ad1e78024fff.png

4)Frequency weighted Intersection over Union(FWIoU,频权交并):是MIoU的一种提升,这种方法根据每个类出现的频率为期设置权重。

35e17f22bf8e55aee9c12d4524318d00.png

CVer-图像分割交流群

扫码添加CVer助手,可申请加入CVer-图像分割交流群。一定要备注:研究方向+地点+学校/公司+昵称(如图像分割+上海+上交+卡卡)

488a7f31eed9e25ec0960ceed82ed4ae.png

▲长按加群

08b001e6206a4b2100ed649e271f1c89.png

▲长按关注我们

麻烦给我一个在看

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

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

相关文章

linux 音频驱动的流程,Intel平台下Linux音频驱动流程分析

【软件框架】在对要做的事情一无所知的时候,从全局看看系统的拓扑图对我们认识新事物有很大的帮助。Audio 部分的驱动程序框架如下图所示:这幅图明显地分为 3 级。上方蓝色系的 ALSA Kernel 整体属于Linux Kernel,是原生Linux 操作系统的一部…

Windows Server 2008 R2Cisco2960 配置Radius服务 实现802.1x认证 实战

实战配置Windows Server 2008 R2 Radius服务 与Cisco 2960 实现 802.1x认证实验拓扑1.Radius服务器 安装 dc 域名 wjl.com ,和ca 安装步骤不再详解2.安装完ca之后,打开MMC 添加计算机证书,查看个人-证书里面有没有ca颁发给计算机的证书&…

linux文件编程(3)—— main函数传参、myCp(配置成环境变量)、修改配置文件、将整数和结构体数组写到文件

参考:linux文件编程(3)—— 文件编程的简单应用:myCp、修改配置文件 作者:丶PURSUING 发布时间: 2021-04-09 23:45:05 网址:https://blog.csdn.net/weixin_44742824/article/details/115209404 …

linux 修改文件名_Linux常用命令

Linux下一切皆文件查看型ls 查看当前文件夹内容 选项 -a 查看隐藏文件 -l 查看文件详细信息pwd 查看当前所在路径su 切换用户cat /etc/passwd 查看当前系统的用户cat 文件 查看文件内容选项 -n 加上编号 -E 每行末尾加上$ifconfig 查看网卡名,IP地址等网络信息route…

c语言mfc弹出窗口函数,CMFCDesktopAlertWnd实现桌面弹出消息框

1.创建一个CMFCDesktopAlertWnd指针CMFCDesktopAlertWnd* pPopup new CMFCDesktopAlertWnd;2.设置参数pPopup->SetAnimationType((CMFCPopupMenu::ANIMATION_TYPE) 2);pPopup->SetAnimationSpeed(100);pPopup->SetTransparency((BYTE)128);pPopup->SetSmallCaptio…

linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍

参考:linux文件编程(2)——文件操作原理简述之文件描述符、动静态文件、块设备 作者:丶PURSUING 发布时间: 2021-04-09 11:14:12 网址:https://blog.csdn.net/weixin_44742824/article/details/115209312 目…

java中volatile的使用方式

2019独角兽企业重金招聘Python工程师标准>>> 转载地址: http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html 转载于:https://my.oschina.net/wangfree/blog/122664

linux文件编程(1)—— open、write、read、lseek、阻塞问题(ps文件操作/文件描述符/重定向原理/缓冲区/标准错误)

参考:linux文件编程(1)—— 常用API之open、write、read、lseek 作者:丶PURSUING 发布时间: 2021-04-08 22:19:28 网址:https://blog.csdn.net/weixin_44742824/article/details/115209134 【Linux】文件操…

linux文件编程(4)—— 用ANSIC标准C库函数进行文件编程:fopen、fread、fwrite、fseek

参考:linux文件编程(5)—— 用ANSIC标准中的C库函数进行文件编程 作者:丶PURSUING 发布时间: 2021-04-11 11:58:25 网址:https://blog.csdn.net/weixin_44742824/article/details/115209680 部分参照&#…

swig封装 c语言函数到python库,python swig 调用C/C++接口

转载:https://www.cnblogs.com/dda9/p/8612068.html当你觉得python慢的时候,当你的c/c代码难以用在python上的时候,你可能会注意这篇文章。swig是一个可以把c/c代码封装为python库的工具。(本文封装为python3的库)文章结构整体看封装只使用py…

Java学习---面试基础知识点总结

Java中sleep和wait的区别① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线…

使用NPOI和委托做EXCEL导出

首先,在用NPOI导出时,学习了邀月这篇文章NPOI根据Excel模板生成原生的Excel文件实例,在这里先行谢过了。 本篇文章在邀月的基本上,做了一些小的改动,加上委托的机制。因为在做导出时,加载模板,下…

android 放大镜功能,简单实现Android放大镜效果

利用之前学过的图形图像绘画技术和图片添加特效技术,我们来实现一个Android放大镜的简单应用。最终效果如图具体实现:用来显示自定义的绘图类的布局文件res/layout/main.xml:xmlns:tools"http://schemas.android.com/tools"android:layout_width"fil…

android 音乐播放器的状态栏通知,Android仿虾米音乐播放器之通知栏notification解析...

通知栏notification是Android中一个很重要的组件,可以在顶部状态栏中存在,用户也可以通过此来操作应用,在Android中只有3.0以上的版本才加入了notification的按钮点击功能。先看一下仿虾米写出来的通知的效果这是一个自定义的notification&am…

mysql 查询语句_SQL语言mysql基础查询语句

单表查询、条件查询、查询并排序、限制结果查询、查询并排名、分组聚合查询、-- DQL操作,数据基本查询语言使用----------------------------------------------------------------------------------------------- -- 创建数据表-- 注释:员工编号&#…

mvdr波束形成原理_5G的“波束赋形”技术是什么东东?

工业互联网建设巳拉开帷幕,作为其“基础设施”的5G许多通信技术将发挥极大作用。波束赋形就是其中之一。电磁波发射波束、如不加人为干涉,是向其四周无死角散射,大部分是做无用功或浪费掉了。而5G的波束赋形技术、就是使用很多微型的毫米级天…

python 2 类与对象

1、类与对象的概念 类即类别、种类,是面向对象设计最重要的概念,从一小节我们得知对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体。 那么问题来了,先有的一个个具体存在的对象(比如一个具体存在…

mx4 pro 刷 原生 android,魅族MX4 Pro怎么刷机?通用刷机和固件升级教程

魅族MX4 Pro是一款性价比很高的手机,使用这款手机的用户也非常多。不过在魅族MX4 Pro的使用过程中,难免会出现系统方面的问题,又或者官方发布了新的固件升级包,这个时候就需要通过刷机的方法来解决问题或者升级魅族MX4 Pro固件。在…

#linux# su命令细节错误

2019独角兽企业重金招聘Python工程师标准>>> #前言# 在学习su命令时&#xff0c;几乎所有的国内书籍都说是切换用户功能。今天在linux系统下想开启httpd&#xff08;即Apache服务器&#xff09;&#xff0c;输入指令<code>service httpd start</code>结…

ASP.NET MVC5+EF6+EasyUI 后台管理系统(92)-打印EasyUI 的datagrid表格

前言 应用系统有时候需要打印Datagrid的表格内容&#xff0c;我们本节就来学习打印datagrid内容 打印主要使用&#xff1a;web打印&#xff08;我们之前有讲过web打印插件jqprint&#xff09; 将datagrid重新编制成可以打印的html格式 一、建立一个普通的例子 我们使用官方下载…