CV22_语义分割基础
1. 常见的分割类型
在计算机视觉领域,根据不同的应用场景和需求,分割任务可以分为几种主要类型。以下是几种常见的分割类型:
语义分割(Semantic Segmentation):
语义分割的目标是将图像中的每个像素分配到一个预定义的类别中。这类分割关注的是类别级别的识别,即所有属于同一类别的对象都被标注为相同的标签。例如,在自动驾驶场景中,将路面、行人、车辆等分别标注出来。
实例分割(Instance Segmentation):
实例分割不仅识别图像中的对象类别,还能区分出同一类别中的不同个体。这意味着对于每一种对象类别,每个具体的实例都会被单独标识。例如,在一张包含多个人的图片中,不仅要识别出所有的人都属于“人”这一类别,还要能够区分每一个人。
全景分割(Panoptic Segmentation):
全景分割结合了语义分割和实例分割的优点,旨在同时处理场景中的所有元素,无论是可数的个体对象还是不可数的背景区域。这种方法能够为每个像素提供一个唯一的标签,确保每个对象实例都得到明确的识别。
交互式分割(Interactive Segmentation):
交互式分割允许用户通过简单的输入(如点击、拖拽等)参与到图像分割的过程中,以指导算法更好地完成任务。这种方式常用于需要高精度分割结果的场合,如医学图像分析。
医学图像分割(Medical Image Segmentation):
医学图像分割专门针对医疗影像数据,目的是准确地识别和分离出组织、器官或病变区域。这种类型的分割对于临床诊断、手术规划以及疾病研究至关重要。
视频分割(Video Segmentation):
视频分割是在视频序列中执行的分割任务,它不仅需要考虑单帧图像的信息,还需要利用时间维度上的连续性来提高分割的准确性。这在运动分析、行为识别等领域有重要应用。
弱监督分割(Weakly Supervised Segmentation):
弱监督分割试图在较少的标注数据或者不完全标注的情况下完成分割任务。例如,可能只有图像级别的标签而没有像素级别的标注,这种情况下算法需要从有限的信息中学习并推断出详细的分割结果。
每种分割类型都有其特定的应用场景和技术挑战,随着计算机视觉技术的进步,这些领域的研究也在不断深入和发展。

2. 分割常见的数据集类型
PASCAL VOC (Visual Object Classes)
PASCAL VOC 是一个经典的计算机视觉数据集,最初用于目标检测和分类任务。后来扩展到了语义分割任务,包含了20个常见的物体类别和一个背景类别。每个图像都有对应的像素级标签。
请注意:PASCAL VOC数据集的png格式的图片实际上是单通道的类型,,不是我们常见的RGB三通道类型。(该数据集用的是“调色板”的模式去存储颜色信息。比如像素0对应的是(0,0,0)黑,,1对应的是(127.0, 0)深红像素,255对应的是(224,224,129)。在背景处的像素值为0,目标边缘处用的像素值为255,目标区域内根据目标的类别索引信息进行填充,例如人对应的目标索引是15,所以目标区域的像素值用15填充。)

有些分割比较困难的目标,比如下图,左下角只有一个飞机的尾翼,并没有完整的飞机,分割有一定的难度,我们为了减小损失,就用相同颜色的像素遮盖了这个部分。

COCO (Common Objects in Context)
COCO 数据集是一个大规模的数据集,主要用于目标检测、分割和字幕生成任务。它包含了超过20万张图片,标注了80个类别,并提供了丰富的实例分割标注。
MS COCO数据集提供了每个目标的多边形坐标。(X坐标,Y坐标,两两一组)
MS COCO并没有标注边缘信息。除了可以做语义分割还可以做实力分割,因为每个目标的具体坐标都给出来了。

ADE20K (A Diversity of Environments)
ADE20K 是一个大型的场景解析数据集,包含超过2万张图片,涵盖了室内和室外的各种场景。它标注了150多个类别,适合进行复杂的场景解析任务。
Cityscapes
Cityscapes 数据集专注于城市街景图像的语义分割任务,提供了来自50个城市的高质量图片,标注了30个类别,包括道路、行人、汽车等。这个数据集特别适用于自动驾驶和城市监控系统的研究。
CamVid (Cambridge Driving Labeled Video Database)
CamVid 是一个用于评估视觉理解系统的视频数据集,包含了驾驶过程中的街景视频片段。它提供了像素级的标注,涵盖11个类别,适合进行视频分割的研究。
PASCAL Context
PASCAL Context 是基于PASCAL VOC 数据集的一个扩展,增加了更多类别的标注,特别是那些在原始PASCAL VOC 数据集中未被标注的对象和背景元素。它共有463个类别,适合进行细粒度的场景解析。
SUN RGB-D
SUN RGB-D 数据集包含了超过10万个RGB-D图像,这些图像是从室内环境中采集的。它提供了丰富的注释信息,包括深度图、表面法线、物体边界框等,适合进行室内场景的理解和分割。
MIT Scene Parsing Benchmark (Scene Understanding Challenge)
MIT Scene Parsing Benchmark 提供了一个用于评估场景解析算法的数据集,包含超过7171张图片,标注了150个类别。该数据集强调场景理解的多样性。
BDD100K (Berkeley DeepDrive)
BDD100K 是一个大规模的驾驶场景数据集,包含了超过10万段视频片段,标注了10个类别。它还提供了多种其他注释,如目标检测、车道检测等,适合进行自动驾驶相关的研究。
3.语义分割得到的结果
类别标签:
每个像素的标签是一个整数,表示该像素所属的类别。例如,0 可能表示背景,1 表示道路,2 表示行人,等等。标签的具体含义取决于数据集的定义。
颜色编码:
为了可视化和解释方便,通常会将类别标签转换为颜色编码图像。每个类别对应一种颜色,这样可以直接看到分割结果的分布情况。例如,道路可以用灰色表示,行人用红色表示,汽车用蓝色表示等。

4. 语义分割的评价指标
为了评估语义分割模型的性能,通常采用多种指标。以下是常见的语义分割评价指标及其详细说明:
1. 像素准确率(Pixel Accuracy, PA)
定义:像素准确率是指模型预测正确的像素数占总像素数的比例。

优点:计算简单,易于理解。
缺点:当类别不平衡时,像素准确率可能会受到影响,因为背景类通常占大多数。
2. 均值像素准确率(Mean Pixel Accuracy, MPA)
定义:均值像素准确率是指每个类别的像素准确率的平均值。

优点:对于类别不平衡的问题,MPA可以避免背景类对整体指标的影响。
缺点:当某些类别的像素数较少时,可能导致其对指标影响较大。
3. 交并比(Intersection over Union, IoU)
定义:IoU是评估模型分割精度的常用指标,表示预测区域与实际区域的交集与并集之比。

优点:IoU可以精确反映模型的分割性能,尤其是在类别不平衡时具有较好的鲁棒性。
缺点:IoU值较低时,可能导致一些类别的性能评价不够全面。
4. 均值交并比(Mean IoU, mIoU)
定义:均值交并比是各个类别IoU的平均值,反映了整体模型在所有类别上的分割效果。

优点:提供了整体分割性能的概述。
缺点:类别不平衡可能影响mIoU,尤其是当某些类别非常少时,mIoU可能会受到很大影响。
5. 频率加权交并比(Frequency Weighted IoU, FWIoU)
定义:频率加权交并比是对每个类别的IoU按其像素数(频率)加权平均。该指标能够在类别不平衡的情况下更好地反映模型的性能。

![]()
优点:能更公平地考虑类别频率,避免少数类别对IoU的影响。
缺点:与mIoU类似,依赖于类别分布,可能无法反映小类别的性能。
6. Dice系数(Dice Coefficient, F1 Score)
定义:Dice系数是衡量预测与实际重合程度的一个常用指标,特别适用于不均衡数据集。它是精准率和召回率的调和平均数。

优点:对类别不平衡问题敏感,能够全面评估模型性能。
缺点:与IoU相比,Dice系数对类别间的错分容忍度稍低。

(忽略了边缘,就是没有像素值为255的情况)





global_accuracy中,分子就是我们对角线上预测正确的像素(包括背景),分母就是全部像素个数。

分类准确率,分母是每一类的像素总个数(真实标签列),分子是每一类预测正确的像素个数(对角线元素)

分类IOU,分母是“并”,就是每一类本来的像素的个数+(预测像素个数-预测对的像素个数)。分子是“交”,就是预测对的像素个数。

5. 语义分割标签标注工具
1. Labelme
- 简介:Labelme 是一个开源的图像标注工具,由麻省理工学院(MIT)开发。它支持多种标注格式,包括多边形标注、矩形标注、圆形标注等,适用于语义分割任务。
- 特点:
- 支持多种标注方式,如多边形、多种形状的区域标注。
- 标注数据可导出为JSON格式,易于与其他机器学习工具集成。
- 具有简单的图形界面,用户友好。
- 适用场景:适用于小型数据集的标注工作,也适合学术研究和快速原型开发。
- 官网:Labelme

2. CVAT (Computer Vision Annotation Tool)
- 简介:CVAT 是由英特尔开源的一个专业标注工具,特别适用于计算机视觉任务,包括图像分类、目标检测、语义分割等。
- 特点:
- 支持多种标注任务,包括语义分割、目标检测、图像分类等。
- 可以使用多边形、矩形、点标注等方式进行标注。
- 提供团队协作功能,支持多人共同标注,适合大规模数据集的标注工作。
- 支持多种数据格式(如COCO、Pascal VOC、YOLO等)导入和导出。
- 可通过Web界面进行标注,便于在线操作。
- 适用场景:适合大规模数据集的标注,特别是在团队协作下使用。
- 官网:CVAT
3. LabelBox
- 简介:LabelBox 是一个商业化的图像和视频标注平台,提供了灵活的标注工具,支持语义分割、目标检测等多种任务。
- 特点:
- 提供了强大的标签管理和审核功能,适合企业级项目。
- 支持语义分割、目标检测等多种标注类型。
- 提供协作和项目管理功能,适合大规模团队合作。
- 支持与机器学习平台(如TensorFlow、PyTorch等)无缝集成。
- 适用场景:适用于商业项目和企业级的标注需求,支持大规模数据集。
- 官网:LabelBox
4. VGG Image Annotator (VIA)
- 简介:VGG Image Annotator 是由牛津大学视觉几何组(VGG)开发的开源标注工具,支持图像标注和视频标注。
- 特点:
- 简单易用,适合快速标注。
- 支持多边形、矩形、圆形等标注方式。
- 支持标注数据的导入和导出,支持JSON格式。
- 无需安装,完全基于Web浏览器,可以在任何现代浏览器中运行。
- 适用场景:适合小型项目或个人项目,快速标注小规模数据集。
- 官网:VIA
5. Supervisely
- 简介:Supervisely 是一款功能强大的人工智能数据标注平台,支持图像、视频、3D数据的标注。它提供了专为语义分割设计的标签标注工具。
- 特点:
- 支持多种标注任务,包括语义分割、目标检测、姿态估计等。
- 强大的标注工具,支持多边形、矩形、圆形等多种标注方式。
- 提供实时预览和标签管理功能,支持图像的快速标注。
- 集成了数据集管理、模型训练、模型评估等功能,方便一站式操作。
- 适用场景:适合需要高级功能的团队或公司,尤其是在大规模数据集的标注和训练过程中。
- 官网:Supervisely
6. MakeSense
- 简介:MakeSense 是一个免费的Web应用,旨在提供简单而高效的标注工具,支持语义分割、目标检测等任务。
- 特点:
- 免费使用,易于上手,界面简单直观。
- 支持多种标注格式,包括VOC、COCO、YOLO等。
- 具备团队协作功能,可以多人共同参与标注。
- 支持导入和导出标注数据,支持常见的格式。
- 适用场景:适合个人、小团队或快速项目标注,适合小规模数据集。
- 官网:MakeSense
7. RectLabel
- 简介:RectLabel 是一款Mac平台上的图像标注工具,支持目标检测、语义分割等任务的标注。
- 特点:
- 适用于Mac用户,支持高效的图像标注。
- 支持矩形、多边形、圆形等多种标注工具。
- 提供视频帧标注功能,适合视频数据的标注。
- 支持COCO、Pascal VOC等标注格式。
- 适用场景:适合Mac用户进行小规模项目的标注,支持目标检测、语义分割等任务。
- 官网:RectLabel
8. Sly (Sly.ai)
- 简介:Sly 是一个灵活且协作性强的图像标注平台,适合处理大规模数据集的标注。
- 特点:
- 强大的标注管理和版本控制功能,适合团队协作。
- 提供多种标注工具,支持语义分割、目标检测、实例分割等任务。
- 支持导入和导出多种格式,适应不同的数据格式需求。
- 提供标注质量控制和审核机制。
- 适用场景:适合大规模数据集和团队协作,适用于需要高效标注和质量控制的项目。
- 官网:Sly
9. EISEG

相关文章:
CV22_语义分割基础
1. 常见的分割类型 在计算机视觉领域,根据不同的应用场景和需求,分割任务可以分为几种主要类型。以下是几种常见的分割类型: 语义分割(Semantic Segmentation): 语义分割的目标是将图像中的每个像素分配到…...
Dubbo源码解析-Dubbo的线程模型(九)
一、Dubbo线程模型 首先明确一个基本概念:IO 线程和业务线程的区别 IO 线程:配置在netty 连接点的用于处理网络数据的线程,主要处理编解码等直接与网络数据 打交道的事件。 业务线程:用于处理具体业务逻辑的线程,可以…...
【Canvas与标志】圆角三角形生化危险警示标志
【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>圆角三角形生化危险警示标志 Draft1</title><style type&qu…...
解决Dcat Admin laravel框架登录报错问题,(blocked:mixed-content)
前言 在使用 Dcat Admin 后台登录时,发生 error 报错:(blocked:mixed-content) xhr VM484:1,浏览器拦截 其实这是浏览器在 HTTPS 页面中尝试加载 HTTP 资源,导致浏览器阻止了这些不安全的请求。 解决 在 .env 文件中添加或修改 AD…...
(三)Sping Boot学习——升级jdk1.8-jdk18
1.修改系统环境变量。 2.idea中修改配置。 3.项目setting中设置修改 4.更新后还要重新下载依赖mvn clean install ,并且记住reload 项目。同时查看java -version查看一下jdk版本。...
语言模型中的多模态链式推理
神经网络的公式推导 简介摘要引言多模态思维链推理的挑战多模态CoT框架多模态CoT模型架构细节编码模块融合模块解码模块 实验结果运行代码补充细节安装包下载Flan-T5数据集准备rougenltkall-MiniLM-L6-v2运行 简介 本文主要对2023一篇论文《Multimodal Chain-of-Thought Reason…...
SCons:下一代构建工具,如何用 Python 驱动高效构建?
在现代软件开发中,构建工具是开发流程中不可或缺的一环。无论是小型项目还是跨平台的复杂工程,选择一个高效、灵活的工具都能显著提高开发效率和代码质量。SCons,一个以 Python 为基础的构建工具,通过自动化依赖管理、灵活的扩展性…...
springboot 整合 rabbitMQ (延迟队列)
前言: 延迟队列是一个内部有序的数据结构,其主要功能体现在其延时特性上。这种队列存储的元素都设定了特定的处理时间,意味着它们需要在规定的时间点或者延迟之后才能被取出并进行相应的处理。简而言之,延时队列被设计用于存放那…...
ES 基本使用与二次封装
概述 基本了解 Elasticsearch 是一个开源的分布式搜索和分析引擎,基于 Apache Lucene 构建。它提供了对海量数据的快速全文搜索、结构化搜索和分析功能,是目前流行的大数据处理工具之一。主要特点即高效搜索、分布式存储、拓展性强 核心功能 全文搜索:…...
分割一切2.0,SAM2详解
🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月24日20点03分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…...
Spring AI Fluent API:与AI模型通信的流畅体验
引言 随着人工智能(AI)技术的飞速发展,越来越多的应用场景开始融入AI技术以提升用户体验和系统效率。在Java开发中,与AI模型通信成为了一个重要而常见的需求。为了满足这一需求,Spring AI引入了ChatClient,…...
基于python的长津湖评论数据分析与可视化,使用是svm情感分析建模
引言 研究背景及意义 上世纪初开始,中国电影就以自己独有的姿态登上了世界电影史的舞台。中国电影作为国家文化和思想观念的反映与延伸,能够增强文化自信,在文化输出方面有着极其重要的作用1[1]。 改革开放以来,随着生产力的提高…...
Lucene(2):Springboot整合全文检索引擎TermInSetQuery应用实例附源码
前言 本章代码已分享至Gitee: https://gitee.com/lengcz/springbootlucene01 接上文。Lucene(1):Springboot整合全文检索引擎Lucene常规入门附源码 如何在指定范围内查询。从lucene 7 开始,filter 被弃用,导致无法进行调节过滤。 TermInSetQuery 指定…...
shell完结
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...
【2024最新】基于Springboot+Vue的智慧食堂系统Lw+PPT
作者:计算机搬砖家 开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:Java精选实战项…...
NVR小程序接入平台EasyNVR多品牌NVR管理工具:高效管理分散视频资源的解决方案
在当今数字化、智能化的时代背景下,视频监控已成为各行各业不可或缺的一部分,从公共安全到企业运维,再到智慧城市建设,视频资源的管理与应用正面临着前所未有的挑战。如何高效整合、管理这些遍布各地的分散视频资源,成…...
排序算法(三)--插入排序
文章目录 一、插入排序的基本原理二、插入排序的C语言实现三、代码解析 插入排序 C语言实例 一、插入排序的基本原理 插入排序的基本思想是将数组中的元素逐一取出,然后将其插入到已经排好序的部分中的适当位置,直到整个数组排序完成。具体步骤如下&…...
YOLOv11融合[ECCV 2018]RCAN中的RCAB模块及相关改进思路
YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《Image Super-Resolution Using Very Deep Residual Channel Attention Networks》 一、 模块介绍 论文链接:https://arxiv.org/abs/1807…...
排序(Java数据结构)
1. 排序的概念及引用 1.1 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。(所有的排序都是默认从小到大排序) 稳定性:假定在待排序的记录序列中ÿ…...
【Java 解释器模式】实现高扩展性的医学专家诊断规则引擎
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
