当前位置: 首页 > news >正文

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 后台登录时&#xff0c;发生 error 报错&#xff1a;(blocked:mixed-content) xhr VM484:1&#xff0c;浏览器拦截 其实这是浏览器在 HTTPS 页面中尝试加载 HTTP 资源&#xff0c;导致浏览器阻止了这些不安全的请求。 解决 在 .env 文件中添加或修改 AD…...

(三)Sping Boot学习——升级jdk1.8-jdk18

1.修改系统环境变量。 2.idea中修改配置。 3.项目setting中设置修改 4.更新后还要重新下载依赖mvn clean install &#xff0c;并且记住reload 项目。同时查看java -version查看一下jdk版本。...

语言模型中的多模态链式推理

神经网络的公式推导 简介摘要引言多模态思维链推理的挑战多模态CoT框架多模态CoT模型架构细节编码模块融合模块解码模块 实验结果运行代码补充细节安装包下载Flan-T5数据集准备rougenltkall-MiniLM-L6-v2运行 简介 本文主要对2023一篇论文《Multimodal Chain-of-Thought Reason…...

SCons:下一代构建工具,如何用 Python 驱动高效构建?

在现代软件开发中&#xff0c;构建工具是开发流程中不可或缺的一环。无论是小型项目还是跨平台的复杂工程&#xff0c;选择一个高效、灵活的工具都能显著提高开发效率和代码质量。SCons&#xff0c;一个以 Python 为基础的构建工具&#xff0c;通过自动化依赖管理、灵活的扩展性…...

springboot 整合 rabbitMQ (延迟队列)

前言&#xff1a; 延迟队列是一个内部有序的数据结构&#xff0c;其主要功能体现在其延时特性上。这种队列存储的元素都设定了特定的处理时间&#xff0c;意味着它们需要在规定的时间点或者延迟之后才能被取出并进行相应的处理。简而言之&#xff0c;延时队列被设计用于存放那…...

ES 基本使用与二次封装

概述 基本了解 Elasticsearch 是一个开源的分布式搜索和分析引擎&#xff0c;基于 Apache Lucene 构建。它提供了对海量数据的快速全文搜索、结构化搜索和分析功能&#xff0c;是目前流行的大数据处理工具之一。主要特点即高效搜索、分布式存储、拓展性强 核心功能 全文搜索:…...

分割一切2.0,SAM2详解

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月24日20点03分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…...

Spring AI Fluent API:与AI模型通信的流畅体验

引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;越来越多的应用场景开始融入AI技术以提升用户体验和系统效率。在Java开发中&#xff0c;与AI模型通信成为了一个重要而常见的需求。为了满足这一需求&#xff0c;Spring AI引入了ChatClient&#xff0c…...

基于python的长津湖评论数据分析与可视化,使用是svm情感分析建模

引言 研究背景及意义 上世纪初开始&#xff0c;中国电影就以自己独有的姿态登上了世界电影史的舞台。中国电影作为国家文化和思想观念的反映与延伸&#xff0c;能够增强文化自信&#xff0c;在文化输出方面有着极其重要的作用1[1]。 改革开放以来&#xff0c;随着生产力的提高…...

Lucene(2):Springboot整合全文检索引擎TermInSetQuery应用实例附源码

前言 本章代码已分享至Gitee: https://gitee.com/lengcz/springbootlucene01 接上文。Lucene(1):Springboot整合全文检索引擎Lucene常规入门附源码 如何在指定范围内查询。从lucene 7 开始&#xff0c;filter 被弃用&#xff0c;导致无法进行调节过滤。 TermInSetQuery 指定…...

shell完结

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…...

【2024最新】基于Springboot+Vue的智慧食堂系统Lw+PPT

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…...

NVR小程序接入平台EasyNVR多品牌NVR管理工具:高效管理分散视频资源的解决方案

在当今数字化、智能化的时代背景下&#xff0c;视频监控已成为各行各业不可或缺的一部分&#xff0c;从公共安全到企业运维&#xff0c;再到智慧城市建设&#xff0c;视频资源的管理与应用正面临着前所未有的挑战。如何高效整合、管理这些遍布各地的分散视频资源&#xff0c;成…...

排序算法(三)--插入排序

文章目录 一、插入排序的基本原理二、插入排序的C语言实现三、代码解析 插入排序 C语言实例 一、插入排序的基本原理 插入排序的基本思想是将数组中的元素逐一取出&#xff0c;然后将其插入到已经排好序的部分中的适当位置&#xff0c;直到整个数组排序完成。具体步骤如下&…...

YOLOv11融合[ECCV 2018]RCAN中的RCAB模块及相关改进思路

YOLOv11v10v8使用教程&#xff1a; YOLOv11入门到入土使用教程 YOLOv11改进汇总贴&#xff1a;YOLOv11及自研模型更新汇总 《Image Super-Resolution Using Very Deep Residual Channel Attention Networks》 一、 模块介绍 论文链接&#xff1a;https://arxiv.org/abs/1807…...

排序(Java数据结构)

1. 排序的概念及引用 1.1 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。(所有的排序都是默认从小到大排序) 稳定性&#xff1a;假定在待排序的记录序列中&#xff…...

【Java 解释器模式】实现高扩展性的医学专家诊断规则引擎

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

【超详细】卷积神经网络CNN基本架构以及工作原理详解

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

Html前后端Ajax交互数据前端JavaScript脚本后台C#ashx服务

本示例使用设备&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bU8Fdbo&ftt&id615391857885 前端以GET模式向后台请求数据 function MyGetAjax() {var xhr new XMLHttpRequest();xhr.open(GET, http://192.168.1.211/HttpReader.ash…...

问:Spring Boot应用监控组件工具,梳理一下?

在日常运维与开发过程中&#xff0c;Spring Boot 应用的监控是确保系统稳定性和性能的关键环节。本文将探讨 Spring Boot 常用的监控组件及工具的原理、适用场景&#xff0c;并针对不同场景下的运维监控方案进行介绍。 1. Spring Boot Actuator 原理&#xff1a; Spring Boo…...

利用Hooka开源的多种功能shellcode加载器实现快速免杀火绒,静态360+360杀毒,微步查杀1,vt查杀7(教程)

免责声明: 本文旨在提供有关特定漏洞的深入信息&#xff0c;帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步&#xff0c;未经授权访问系统、网络或应用程序&#xff0c;可能会导致法律责任或严重后果。因此&#xff0c;作者不对读者基于…...

2025-2026财年美国CISA国际战略规划(下)

文章目录 前言四、加强综合网络防御&#xff08;一&#xff09;与合作伙伴共同实施网络防御&#xff0c;降低集体风险推动措施有效性衡量 &#xff08;二&#xff09;大规模推动标准和安全&#xff0c;以提高网络安全推动措施有效性衡量 &#xff08;三&#xff09;提高主要合作…...

iframe通过url方式来获传递的参数

iframe通过url方式来获传递的参数 一、src"http://xxxx/#/policyOverview?codeaaaa"二、 src"/static/iframePhone/html/main.html?codeaaaa" 一、src“http://xxxx/#/policyOverview?codeaaaa” <iframedata-v-47a50536""src"http:/…...

蓝桥杯不知道叫什么题目

小蓝有一个整数&#xff0c;初始值为1&#xff0c;他可以花费一些代价对这个整数进行变换。 小蓝可以花贵1的代价将教数增加1。 小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍, 例如&#xff0c;如果整…...

最多可收集的水果数目

三个小朋友收集水果问题&#xff1a;最大水果收集路径 问题描述 有一个游戏&#xff0c;游戏由 n x n 个房间网格状排布组成。给定一个大小为 n x n 的二维整数数组 fruits&#xff0c;其中 fruits[i][j] 表示房间 (i, j) 中的水果数目。 游戏开始时&#xff0c;三个小朋友分…...

戴尔 AI Factory 上的 Agentic RAG 搭载 NVIDIA 和 Elasticsearch 向量数据库

作者&#xff1a;来自 Elastic Hemant Malik, Dell Team 我们很高兴与戴尔合作撰写白皮书《戴尔 AI Factory with NVIDIA 上的 Agentic RAG》。白皮书是一份供开发人员参考的设计文档&#xff0c;概述了实施 Agentic 检索增强生成 (retrieval augmented generation - RAG) 应用…...

HarmonyOS4+NEXT星河版入门与项目实战(16)------ 状态管理 @State(页面数据刷新与渲染)

文章目录 1、@State装饰器2、视图渲染演示1、无嵌套的对象属性值变化时可以触发页面渲染2、嵌套对象的嵌套属性值变化时不能够触发页面刷新渲染3、数组中对象的属性值变化时不能触发页面刷新渲染3、总结1、@State装饰器 2、视图渲染演示 常规的 string、number 这里就不演示了…...