分割(语义分割、实例分割、全景分割)概述_语义分割,实例分割,全景分割-程序员宅基地

技术标签: 语义分割  实例分割  图像处理  深度学习  全景分割  

1.概念

语义分割:语义分割的目标是为图像中的每个像素分配一个语义标签,以指示它属于哪个类别。
在这里插入图片描述
实例分割:实例分割的目标是对每个物体实例进行独立的分割,从而可以识别和跟踪图像中的每个物体。与语义分割只关注像素级别的语义标签不同,实例分割还要求对同类但不是同一个物体实例进行区分和分割。
全景分割:全景分割是一种结合了语义分割和实例分割的综合方法、,全景分割为图像中的每个像素分配一个语义标签和一个唯一的实例标识符。
在这里插入图片描述
在这里插入图片描述

2.1语义分割算法流程

以语义分割算法SegNet为例,就是线通过特征提取网络下采样,然后使用反卷积或者线性差值等方法进行上采用来回复特征图的分辨率和位置信息,之后在通过sotfmax来获取每个像素点的分类结果。
在这里插入图片描述
和目标检测算法不同的使语义分割算法去掉了全连接层,全连接层会破坏掉位置信息

2.2.实例分割算法流程

目前主流做二阶段实例分割的方法大都基于目标检测:先跑目标检测,然后对于每一个方框跑一个二元图像分割(binary segmenation)
Mask R-CNN:
在这里插入图片描述
YOLACT:是yolov5和v8分割的基础,流程:
1、输入图片;
2、通过主干网络对图片,进行特征提取;
3、经过FPN特征金字塔,对不同尺寸的特征图进行融合;
4.1、检测分支,对于每个目标物体,都输出类别、边框信息(x,y,w,h)、k个mask Coefficients(mask的的置信度,取值1或-1),这整个方块的区域可能是哪个类,但表示方式不是用置信度的形式而是bool;class
4.2、分割分支,针对当前输入图片,输出k个Prototype (mask原型图);不同图片,输出的Prototype有差异,但数量也是k个。bbox
5、对于每个目标物体,将k个mask Coefficients (mask的的置信度)与k个Prototype(mask原型图)进行相乘,然后将所有结果相加,得到该目标物体的实例分割结果。
请添加图片描述
检测分支
在这里插入图片描述
原型掩码,其个数K=32,k为超参数,32为原论文给出的

请添加图片描述
实例掩码系数
在这里插入图片描述

检测分支和mask分支加权求和就得到了最终的mask
在这里插入图片描述

参考:https://blog.csdn.net/qq_41204464/article/details/130417487https://blog.csdn.net/qq_41204464/article/details/130417487
https://zhuanlan.zhihu.com/p/376347955

3.评价指标

3.1执行时间

FPS也是指每秒钟可以处理的图像帧数,单位是帧/秒
实例分割的yolov8-seg,在镭神域控上可以达到31帧/秒

3.2准确率

分割性能评价指标有7种:
平 均 精 度(average precision,AP)、平 均 精 度 均 值(mean average precision,mAP)、平 均 准 确 率(mean accuracy,MA)、平均召回率(average recall,AR)、平均交并比(mIoU)、像素准确率(pixel accuracy,PA)和频率加权交并比(frequency weighted intersection over union,FWIoU),比较常用的有两种:平均准确率、平均交并比
平均准确率PA:表示图像中正确分类的像素数目与像素总数的比率
在这里插入图片描述
交并比
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

平均交并比mean Intersection over Union:图像像素 每个类的 IoU 值累加后的平均值,大于80%就很高了
在这里插入图片描述
在这里插入图片描述

3.3计算开销

计算量的要求是在于芯片的计算量(指的是gpu的运算能力)参数量取决于显存大小

计算量(FLOPs):即每秒浮点运算次数的意思,考量一个网络模型的计算量的标准。
常用的单位有GFLOPs :GFLOPs为十亿(1e9)次的浮点运算。TFLOPs为万亿次(1e12)

参数量(Params):是指网络模型中需要训练的参数总数,从侧面反映了所需存储空间的大小。
以alexnet为例:参数量是6000万,假设每个参数都是float,也就是一个参数是4字节,总的字节数是24000万字节
24000万字节= 24000万/1024/1024=228mb
在这里插入图片描述

参考:
https://blog.csdn.net/huarzail/article/details/131739469

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41950533/article/details/135891861

智能推荐

概念理解:面向对象编程(OOP)-程序员宅基地

文章浏览阅读49次。一、对象的综述面向对象编程(OOP)具有多方面的吸引力。对管理人员,它实现了更快和更廉价的开发与维护过程。对分析与设计人员,建模处理变得更加简单,能生成清晰、易于维护的设计方案。对程序员,对象模型显得如此高雅和浅显。此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务。每个人都可从中获益,至少表面如此。所有编程语言的最终目的都是解决企业又或者人在现实生活中所遇到的问题,最初我们..._咋样理解面向对象编程 -baijiahao

C语言之makefile简介及简单应用_c makefile-程序员宅基地

文章浏览阅读963次。其实makefile最大的优点就是提供了”自动编译”,只要内容编写好,一个make命令,整个工程就会自动编译程序,大大提高了软件开发的效率。 所以 会使用makfile还是一个很重要的技能哦!!!make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生..._c makefile

数据库新增幂等操作_接口幂等性-程序员宅基地

文章浏览阅读417次。含义:接口可重复调用后,在调用方多次调用的情况下,接口最终得到的结果是一致的。有些接口天然具备幂等性,如查询接口。除查询外,增加、更新、删除都要保证幂等性。如何保证幂等性?1.全局唯一ID(防止新增脏数据)如果使用全局唯一ID,就是根据业务的操作和内容生成一个全局ID,在执行操作前先根据这个全局唯一ID是否存在来判断这个操作是否已经执行,如果不存在则把全局唯一ID存储到存储系统中,比如数据库,re..._如何保证数据库增加的幂等

java为什么要学习数组_为什么数组要从零开始?-程序员宅基地

文章浏览阅读354次。如题,数组第一个元素为什么要从零开始,而不从一开始?感觉这很反人类呀,正常来讲,一个集合的开始,不应该从一吗?对于这个问题,我觉得可以从以下两方面来考虑。设计层面我们先了解一下数组最基本的结构和寻址方式(即实现方式)。现在市面上无论是C、Java、PHP,还是Go或者其他编程语言,他们数组的实现方式,应该都是一样的:一段连续的内存。数组在分配内存的时候,我们会知道数组的开始地址(PS:在目前下标为..._java 为什么使用数组

魔兽世界plus怎么收费/怎么充值 手把手教你充值-程序员宅基地

文章浏览阅读295次,点赞8次,收藏4次。魔兽世界plus怎么收费/怎么充值 手把手教你充值。魔兽世界plus怎么收费/怎么充值 手把手教你充值。,也就是我们玩家要需要。

表格内容的展开和折叠效果《超实用的JavaScript代码段》笔记_html设置table展开怎么设置-程序员宅基地

文章浏览阅读902次。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>表格内容的展开和折._html设置table展开怎么设置

随便推点

Windows下安装Hive(包安装成功)_windows安装hive-程序员宅基地

文章浏览阅读5.1k次,点赞12次,收藏28次。Hive 的Hive_x.x.x_bin.tar.gz 高版本在windows 环境中缺少 Hive的执行文件和运行程序。配置文件目录(%HIVE_HOME%\conf)有4个默认的配置文件模板拷贝成新的文件名。可以发现,自动连接MySQL去创建schema hive,并执行脚本。可以通过访问namenode和HDFS的Web UI界面(以及resourcemanager的页面(先在Hive安装目录下建立。根据自己的Hive安装路径(根据自己的Hive安装路径(请严格按照版本来安装。在Hadoop管理台(_windows安装hive

无偏估计+求样本的方差为何除n-1_设总体x~n(θ,1),gθ=θ2,试求gθ的无偏估计的方差下界-程序员宅基地

文章浏览阅读464次。$$f(x)={xˉ=∑1nxin均值S2=∑1n(x−xi)2n−1方差f(x)=\begin{cases} \bar{x}=\frac{ \sum_{1}^{n} x_{i} }{n}& \text{均值}\\S^2= \frac{ \sum_{1}^{n} (x- x_{i} )^2 }{n-1} & \text{方差}\end{cases}f(x)={xˉ=n∑1n​xi​​S2=n−1∑1n​(x−xi​)2​​均值方差​求样本方差为什么除n−1?求样本方差_设总体x~n(θ,1),gθ=θ2,试求gθ的无偏估计的方差下界

Linux学习教程,Linux入门教程(超详细)| 网址推荐_linux中大量使用脚本语言,而不是c语言!-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏51次。1Linux简介2Linux安装3Linux文件和目录管理4Linux打包(归档)和压缩5Vim文本编辑器6Linux文本处理(Linux三剑客)7Linux软件安装8Linux用户和用户组管理9Linux权限管理10Linux文件系统管理11Linux高级文件系统管理12Linux系统管理13Linux备份与恢复14Linux系统服务管理15Linux系统日志管理16Linux启动管理17LAMP环境搭建和LNMP环境搭建18SEL..._linux中大量使用脚本语言,而不是c语言!

c语言函数base,c中base的用法-程序员宅基地

文章浏览阅读1.7k次。c中base的用法的用法你知道吗?下面小编就跟你们详细介绍下c中base的用法的用法,希望对你们有用。c中base的用法的用法如下:1、调用基类中的重名方法[csharp]public class Person{protected string ssn = "444-55-6666";protected string name = "John L. Malgraine";public virtua..._c语言中base=16是什么意思

为什么接口中变量要用final修饰_接口参数都定义为final的作用-程序员宅基地

文章浏览阅读6.7k次,点赞3次,收藏7次。今天碰到这个问题时候,还真不好理解,只知道interface中的变量默认是被public static final 修饰的,接口中的方法是被public和abstrct修饰的。查阅了很多资料,做了些例子,得出以下结论,不足的地方希望大家指出。 Java代码 /* * 关于抽象类和接口 * * 1_接口参数都定义为final的作用

【R语言学习笔记】6、List列表详解_r语言怎么查看list有几个项目-程序员宅基地

文章浏览阅读4.4k次,点赞3次,收藏25次。创建一个list列表> mylist <- list(stud.id = 1234,+ stud.name = "Tom",+ stud.marks = c(12, 3, 14, 25, 19))> mylist$stud.id[1] 1234$stud.name[1] "Tom"$stud.marks[1] 12 3 14 25 19取列表的值注..._r语言怎么查看list有几个项目