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

【语义分割】语义分割概念及算法介绍

文章目录

  • 一、基本概念
  • 二、研究现状
    • 2.1 传统算法
    • 2.2 深度学习方法
  • 三、数据集及评价指标
    • 3.1 常用数据集
    • 3.2 常用指标
  • 四、经典模型
  • 参考资料

一、基本概念

语义分割是计算机视觉中很重要的一个方向。不同于目标检测和识别,语义分割实现了图像像素级的分类。它能够将一张图片或者视频(视频以帧来提取的话其实就是图片),按照类别的异同,将图像分为多个块。
如下图所示:

在这里插入图片描述

二、研究现状

2.1 传统算法

  • 灰度分割
    最简单的语义分段形式涉及分配区域必须满足的硬编码规则或属性,以便为其分配特定标签。规则可以根据像素的属性(例如灰度级强度)来构建。使用此技术的一种方法是拆分(Split)和合并(Merge)算法。该算法递归地将图像分割成子区域,直到可以分配标签,然后通过合并它们将相邻的子区域与相同的标签组合。
    这种方法的问题是规则必须硬编码。此外,仅用灰色级别的信息来表示复杂的类(如人)是极其困难的。因此,需要特征提取和优化技术来正确地学习这些复杂类所需的表示。

  • 条件随机场
    考虑通过训练模型为每个像素分配类来分割图像。如果我们的模型不完美,我们可能会得到自然界不可能得到的噪声分割结果(如图中所示,狗像素与猫像素混合)。
    可以通过考虑像素之间的先验关系来避免这些问题,例如,对象是连续的,因此附近的像素往往具有相同的标签。为了模拟这些关系,我们使用条件随机场(CRF)。
    CRF是一种用于结构化预测的统计建模方法。与离散分类器不同,CRF可以在进行预测之前考虑“相邻上下文”,比如像素之间的关系。这使得它成为语义分割的理想候选。
    图像中的每个像素都与一组有限的可能状态相关联。在我们的示例中,目标标签是可能的状态集。将一个状态(或标签,u)分配给单个像素(x)的成本称为它的一元成本(unary cost)。为了对像素之间的关系建模,我们还考虑了将一对标签(u,v)分配给一对像素(x,y)的成本,即成对成本(pairwise cost)。我们可以考虑它的近邻像素对(Grid CRF)或者我们可以考虑图像中的所有像素对(Dense CRF)
    在这里插入图片描述

2.2 深度学习方法

与此同时随着深度学习技术的不断发展,深度学习在语义分割任务中大放异彩,取得了骄人的成绩。从第一篇真正意义上的深度学习方法语义分割模型FCN说起,语义分割发展了不足六年的时间,经典的SegNet,Deeplab系列,DenseASPP等等,再到近些年来研究热点的NAS方法。不断的刷新各个分割数据集的Leaberboard。

三、数据集及评价指标

3.1 常用数据集

语义分割有一些常用的数据集,这些数据集在各种论文中常作为算法优劣性的一个验证(其中SUNRGBD是四维的,它还有利用深度学习相机得到了一个Deep维度,Depth类似于灰度图像,只是它的每个像素值是传感器距离物体的实际距离):
在这里插入图片描述

3.2 常用指标

  • 像素准确率(PA):正确分类的像素数量与所有像素数量的比值。
  • 像素准确率平均值(MPA):PA的变体,每个类内正确分类的像素数量和该类的所有像素点数 (Ground truth)的比值,之后求所有类的平均。
  • 平均交并比(MIoU):检验语义分割效果最重要的指标。计算两个集合的交并比,两个集合分别是真实值(Ground truth)和预测值(predicted segmentation),是一个交集与并集的比值。平均交并比为对各类的交并比进行平均。
    在这里插入图片描述

四、经典模型

  • FCN网络(CVPR 2015):图像分割领域的开山之作
    将端到端的卷积网络推广到语义分割中;
    重新将预训练好的Imagenet网络用于分割问题中;
    使用反卷积层进行上采样;
    提出了跳跃连接来改善上采样的粗糙程度。
    论文讲解博客:

  • UNet网络

  • SegNet网络

  • 空洞卷积(Dilated Convolution)

  • Deeplab(V1 V2)

  • RefineNet

  • PSPNet

  • 大内核(Large Kernel Matters)

  • Deeplab v3

  • EncNet

  • DenseASPP

  • ResNet_DUC

  • Deeplab v3+

  • DFANet

  • DANet

  • Auto_Deeplab

  • APCNet

  • CANet
    ……

  • BiSeNet(ECCV 2018)

  • STDC(CVPR 2021):BiSeNet的轻量化。
    一些轻量化语义分割算法,如DFANet、BiSeNetV1,采用了轻量化backbone来减少计算量,但它们都是直接使用为分类任务设计的backbone,无法充分发挥在语义分割领域中的性能。
    BiSeNet使用了multi-path结构,融合低层次特征和高层次特征,但增加分支会增加网络的运行时间。
    STDC对BiSeNet中的multi-path结构进行了改进,可以在提取底层细节特征的同时减少网络计算量。

参考资料

  • 语义分割-概念、问题和指标
  • 史上最全语义分割综述(FCN,UNet,SegNet,Deeplab,ASPP…)

相关文章:

【语义分割】语义分割概念及算法介绍

文章目录 一、基本概念二、研究现状2.1 传统算法2.2 深度学习方法 三、数据集及评价指标3.1 常用数据集3.2 常用指标 四、经典模型参考资料 一、基本概念 语义分割是计算机视觉中很重要的一个方向。不同于目标检测和识别,语义分割实现了图像像素级的分类。它能够将…...

基于RK3568高性价比全国产EMS储能解决方案(一)概述

储能产业链框架 储能产业链可分为上游“原材料及生产设备”、中游“储能系统”、下游“储能场景应用及后市场服务”。 图1 储能产业链框架图 产业链中游的“储能电池系统”主要包括“能量管理系统(EMS)”、“电池管理系统(BMS)”、“储能逆变器(PCS)”、“电池组”四个部分。…...

3 Go的基础语法

概述 在上一节的内容中,我们介绍了第一个Go程序,包括:安装Go环境、编写第一个Go程序、编译并运行程序等。在本节中,我们将介绍Go的基础语法。Go是一门简洁和优雅的语言,有自己特殊的一些语法规则。因此,在介…...

Redis之Lua脚本讲解

这里写自定义目录标题 1 Lua1.1 简介1.1.1 注释1.1.2 变量1.1.3 数据类型1.1.4 控制结构1.1.5 函数1.1.6 模块1.1.7 字符串操作1.1.8 错误处理1.1.9 标准库 1.2 Redis和Lua脚本结合优点1.3 Lua脚本应用和调试1.3.1 缓存更新1.3.2 原子操作1.3.3 数据处理1.3.4 分布式锁1.3.5 Re…...

redis archive github

https://github.com/redis/redis/releases/tag/7.2.2https://github.com/redis/redis/releases/tag/7.2.2...

3台Centos7快速部署Kafka集群

首先,我要说,Kafka 是强依赖于 ZooKeeper 的,所以在设置 Kafka 集群之前,我们首先需要设置一个 ZooKeeper 集群。 部署ZooKeeper需要安装jdk yum install java-1.8.0-openjdk 安装完以后 下面是详细的步骤: 1. 安装和…...

最小栈(C++解法)

题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。i…...

Python 算法高级篇:堆排序的优化与应用

Python 算法高级篇:堆排序的优化与应用 引言 1. 什么是堆?2. 堆的性质3. 堆排序的基本原理4. 堆排序的 Python 实现5. 堆排序的性能和优化6. 堆排序的实际应用7. 总结 引言 堆排序是一种高效的排序算法,它基于数据结构中的堆这一概念。堆排序…...

视频下载软件 Downie4 mac中文介绍

Downie mac是一款Mac平台上非常实用的视频下载工具。它支持下载各种视频网站上的视频,并且具有快速、稳定、易于使用的特点。 Downie支持下载各种视频网站上的视频,包括YouTube、Vimeo、Netflix、Hulu、Amazon等等。它具有快速、稳定的下载速度&#xff…...

计算机操作系统重点概念整理-第一章 计算机系统概述【期末复习|考研复习】

第一章 计算机系统概述 【期末复习|考研复习】 计算机操作系统系列文章传送门: 第一章 计算机系统概述 第二章 进程管理 第三章 进程同步 第四章 内存管理 第五章 文件管理 第六章 输出输出I/O管理 文章目录 第一章 计算机系统概述 【期末复习|考研复习】前言一、计…...

树莓派基金会近日发布了新版基于 Debian 的树莓派操作系统

树莓派基金会(Raspberry Pi Foundation)近日发布了新版基于 Debian 的树莓派操作系统(Raspberry Pi OS),为树莓派单板电脑带来了新的书虫基础和一些重大变化。 新版 Raspberry Pi OS 的最大变化是它现在基于最新的 Deb…...

Web项目如何做单元测试

你可能会用单元测试框架,python的unittest、pytest,Java的Junit、testNG等。 那么你会做单元测试么!当然了,这有什么难的? test_demo.py def inc(x):return x 1def test_answer():assert inc(3) 4 inc() 是定义的…...

MySQL主从复制(基于GTID--事务ID方式)

目录 一、GTID相关概念1.GTID 是什么?2.GTID主从复制方式概念3.GTID的优缺点 二、GTID工作原理三、部署主从复制四、测试同步1.主库上新建数据库2.从库上查看是否同步成功 五、重设从库六、常见故障七、故障切换八、GTID的一些疑问1.为什么基于GTID的同步也要打开bi…...

3.72 Command Buffer及URP概述

一、Command Buffer 1.概念 CommandBuffer携带一系列的渲染命令,依赖相机,用来拓展渲染管线的渲染效果。而且可以指定在相机渲染的某个点执行本身的拓展渲染。Command buffers也可以结合屏幕后期效果使用。 简单来说就是可以在渲染流程中插入一些自定…...

分布式理论和分布式锁知识点总结

文章目录 (一) 分布式理论算法和协议1)CAP理论总结 2)BASE理论BASE 理论的核心思想基本可用软状态最终一致性 3)Paxos算法Basic Paxos 算法4) Raft算法1 拜占庭将军 5)Gossip协议 (二) 分布式锁分布式锁应该具备哪些条…...

IOC课程整理-17 Spring事件

1. Java 事件/监听器编程模型 2. 面向接口的事件/监听器设计模式 3. 面向注解的事件/监听器设计模式 4. Spring 标准事件-ApplicationEvent 5. 基于接口的 Spring 事件监听器 6. 基于注解的 Spring 事件监听器 7. 注册 Spring ApplicationListener 8. Spring 事件发布器 9. Spr…...

大数据Flink(一百零五):SQL性能调优

文章目录 SQL性能调优 一、 ​​​​​​​MiniBatch 聚合...

ESP8266,手机与电脑之间的TCP通讯

电脑端运行通讯猫调试助手,作为服务端: 电脑端 电脑的IP地址是: 192.168.2.232 手机与电脑之间的TCP通讯 手机端运行网络调试精灵,作为客户端: 手机端 如果从手机端点击"发送"按钮,则也会将"ghhh东方红广场"几个字发送到电脑上(服务端). ESP8266作为客户…...

vue的数据监听是如何实现的?

Vue的数据监听是通过数据劫持和发布订阅模式来实现的。 数据劫持:Vue通过使用Object.defineProperty()方法来劫持数据对象的属性,并使用getter和setter来监听属性的变化。当属性被修改时,setter方法会被调用,从而触发相应的监听函…...

埋点日志解决方案——Golang+Gin+Sarama VS Java+SpringCloudGateway+ReactorKafka

埋点日志解决方案——GolangGinSarama VS JavaSpringCloudGatewayReactorKafka 之前我就写过几篇OpenRestylua-kafka-client将埋点数据写入Kafka的文章,如下: Lua将Nginx请求数据写入Kafka——埋点日志解决方案 python定时任务执行shell脚本切割Nginx…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...