图像分割实战-系列教程1:语义分割与实例分割概述

🍁🍁🍁图像分割实战-系列教程 总目录

有任何问题欢迎在下面留言
本篇文章的代码运行界面均在Pycharm中进行
本篇文章配套的代码资源已经上传

下篇内容:
Unet系列算法

1、图像分割任务概述

1.1 图像分割

分割任务就是在原始图像中逐像素的找到你需要的轮廓

如图分别是(物体检测)与(图像分割)两个任务的效果对比,实际上会比检测任务要稍微麻烦一些,将图像会分为几个区域把需要的单独拿出来,不需要的当成背景处理,分割也分为语义分割和实例分割。

1.2 语义分割

  • 语义分割就是把每个像素都打上标签(这个像素点是人,树,背景等)
  • 语义分割只区分类别,不区分类别中具体单位

1.3 实例分割

在右图中将五个人的轮廓都描绘出来了,但是没有把5个人区分出来,这就是一个基本的语义分割

实例分割不光要区别类别,还要区分类别中每一个个体,每一个个体都是不同的

往基本的要求做,就是可以做语义分割,往高级的做就是实例分割

和物体检测的任务对比呢,比如YOLO是将分类任务变成回归,找一些坐标点分别是什么。那分割任务呢?

2 语义分割损失函数解析

2.1 损失函数

  • 逐像素的交叉熵
  • 还经常需要考虑样本均衡问题
  • 交叉熵损失函数公式如下:

p o s w e i g h t = n u m n e g n u m p o s pos_{weight} = \frac{num_{neg}}{num_{pos}} posweight=numposnumneg
这里的 p o s w e i g h t pos_{weight} posweight是一个额外权重,是前景像素点和背景像素点的数量的比例值。

l o s s = − p o s w e i g h t ∗ y t r u e l o g ( y p r e d ) − ( 1 − y t r u e ) l o g ( y p r e d ) loss = -pos_{weight}*y_{true}log(y_{pred})-(1-y_{true})log(y_{pred}) loss=posweightytruelog(ypred)(1ytrue)log(ypred)
首先一张图像有几万几十万甚至更多个像素点,需要对每一个像素点都进行多分类任务,也就是逐像素进行交叉熵的过程。上式就是一个2分类交叉熵的公式再加上前面提到的额外权重

2.2 Focal loss

样本也由难易之分,就跟玩游戏一样,难度越高的BOSS奖励越高
− ( 1 − y p r e d ) γ ∗ y t r u e l o g ( y p r e d ) − y p r e d γ ∗ ( 1 − y t r u e l o g ( 1 − y p r e d ) ) -(1-y_{pred})^γ*y_{true}log(y_{pred})-y^γ_{pred}*(1-y_{true}log(1-y_{pred})) (1ypred)γytruelog(ypred)ypredγ(1ytruelog(1ypred))

正负样本的比例完全就是由数量决定的,每一个像素点都会去做交叉熵,都会产生一个损失值,像素点是不应该相同对待的,有些像素比较好处理,很明显是背景和前景的,难处理的就是轮廓上的,一个人去描边,边里面的好处理外面的也好处理,但是边上的不好处理。但是这些难处理的像素点应该要体现出比较高的重要性

在上面的公式中,Gamma通常设置为2,例如预测正样本概率0.95,那预测效果就非常好,也就是说这个像素处理的比较简单, ( 1 − 0.25 ) 2 = 0.0025 (1-0.25)^2=0.0025 (10.25)2=0.0025,0.0025也就意味着当前这个样本提供的损失值比较低,如果是0.5, ( 1 − 0.5 ) 2 = 0.25 (1-0.5)^2=0.25 (10.5)2=0.25,这个难度高一点,权重也就大一些。可以类似理解为错题本,想要学的更好得高分,错的题比较重要。这里就是对γ值的解释

再结合样本数量的权值就是Focal Loss:
− α ( 1 − y p r e d ) γ ∗ y t r u e l o g ( y p r e d ) − ( 1 − α ) ∗ y p r e d γ ∗ ( 1 − y t r u e l o g ( 1 − y p r e d ) ) -α(1-y_{pred})^γ*y_{true}log(y_{pred})-(1-α)*y^γ_{pred}*(1-y_{true}log(1-y_{pred})) α(1ypred)γytruelog(ypred)(1α)ypredγ(1ytruelog(1ypred))

3 IOU计算

3.1 IOU计算

多分类任务时:iou_dog = 801 /( true_dog + predict_dog - 801)

如图的混淆矩阵,左图中,横轴和纵轴分别为预测值和真实值,单独求某一个类别:真实值为狗的预测值也为狗就是做对的,为801个除以(实际总共有多少个狗的,再加上预测为狗的,再减去801)

看右图,交集就是801,并集就是绿色加上黄色的,上面的公式就是由于加了两次801所以要减去801

3.2 MIOU计算

IoU(Intersection over Union,交并比),下图中,左边是标签值,右边是预测值
Intersection 就是真实值和预测值的交集,Union就是真实值和预测值的并集,这两个值的比例
在这里插入图片描述

MIOU就是计算所有类别的平均值,一般当作分割任务评估指标
在这里插入图片描述

下篇内容:
Unet系列算法

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

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

相关文章

window的OPen方法,弹窗的特征

文章目录 一、介绍二、弹窗的特征 一、介绍 window.open() 方法是 JavaScript 中的一个内置方法,用于在浏览器中打开一个新的窗口或标签页。 语法: window.open(url, name, features, replace)二、弹窗的特征 open方法参数说明: 参数说明url要载入窗…

【算法】数论---取模运算法则

取模运算(余数运算)有一些基本的运算法则: (a b) % m (a % m b % m) % m(a - b) % m (a % m - b % m) % m(a * b) % m (a % m * b % m) % ma ^ b % p ((a % p)^b) % p 取模运算(余数运算)有一些基本的性质&…

2023年12月第4周面试算法题总结

809. 情感丰富的文字——阅读理解题 1、s “abcd”; words [“abc”]; 的情况怎么处理 2、怎么求lens与lenw?(连续出现的字符串长度) class Solution { public: bool isStretchy(const string& s, const string& word) {int i 0…

基于SpringBoot的医疗挂号管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的医疗挂号管理系统,java…

详述numpy中的np.random各个函数的用法

文章目录 引言np.random.rand()np.random.randn()np.random.randint(low,high,size,dtype)np.random.uniform(low,high,size)参考文献 引言 在机器学习还有深度学习中,经常会用到这几个函数,为…

AKShare学习笔记

AKShare学习笔记 本文内容参考AKShare文档。AKShare开源财经数据接口库采集的数据都来自公开的数据源,数据接口查询出来的数据具有滞后性。接口参考AKShare数据字典。 AKShare环境配置 安装Anaconda,使用Anaconda3-2019.07版本包,配置清华数…

Elasticsearch8集群部署

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 本文记录在3台服务器上离线搭建es8.7.1版本集群。 1. 修改系统配置 1.1 hosts配置 在三台es节点服务器加入hostname解析&…

加法器原理详解

加法器的介绍与原理分析 什么是加法器? 加法器是一种数字电路,用于将两个二进制数相加并输出它们的和。 如何实现加法器 要讨论如何实现加法器就要先从只有一位的数字先进行考虑 一位二进制数相加 不考虑来自低位的进位——半加器 对于一位二进制…

【VTK三维重建-体绘制】第四期 VTK中GPU加速

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 上期内容讲到VTK的体绘制技术vtkGPUVolumeRayCastMapper,本文分享VTK中GPU加速的相关内容,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会…

图像分割实战-系列教程7:unet医学细胞分割实战5(医学数据集、图像分割、语义分割、unet网络、代码逐行解读)

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 unet医学细胞分割实战1 unet医学细胞分割实战2 unet医学细胞分割实战3 unet医学细胞分割实战4 unet…

机器学习的分类与经典算法

机器学习算法按照学习方式分类,可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Le…

[NAND Flash 5.1] 闪存芯片物理结构与SLC/MLC/TLC/QLC

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 前言 1 闪存芯片简介 闪存颗粒是固态硬盘中数据的真实存储地,就像机械硬盘的磁盘一样。 闪存颗粒flash memory是一种存储介质,重要的区别于传统机械盘…

bat脚本:将ini文件两行值转json格式

原文件 .ini&#xff1a;目标转换第2行和第三行成下方json [info] listKeykey1^key2^key3 listNameA大^B最小^c最好 ccc1^2^3^ ddd0^1^9目标格式 生成同名json文件&#xff0c;并删除原ini文件 [ { "value":"key1", "text":"A大" …

动态规划 | 最长公共子序列问题

文章目录 最长公共子序列题目描述问题分析程序代码复杂度分析 最短编辑距离题目描述问题分析程序代码复杂度分析 编辑距离题目描述输入格式输出格式 问题分析程序代码 最长公共子序列 题目描述 原题链接 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共…

图文证明 等价无穷小替换

等价无穷小替换 定义 等价无穷小是无穷小之间的一种关系&#xff0c;指的是&#xff1a;在同一自变量的趋向过程中&#xff0c;若两个无穷小之比的极限为1&#xff0c;则称这两个无穷小是等价的。无穷小等价关系刻画的是两个无穷小趋向于零的速度是相等的。 设当 x → x 0 时…

Android 接入第三方数数科技平台

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数数科技平台是什么&#xff1f;二、使用步骤1.集成SDK2. 初始化3. 发送事件和设置账号id4. 验证发送事件是否成功 小结 前言 一个成熟的App必然不可缺少对…

算法学习系列(十四):并查集

目录 引言一、并查集概念二、并查集模板三、例题1.合并集合2.连通块中点的数量 引言 这个并查集以代码短小并且精悍的特点&#xff0c;在算法竞赛和面试中特别容易出&#xff0c;对于面试而言&#xff0c;肯定不会让你去写一两百行的代码&#xff0c;一般出的都是那种比较短的…

服务器的TCP连接限制:如何优化并提高服务器的并发连接数?

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff09;&#xff0c;发送【资料】可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景、中间件系列…

mysql基础-表操作

环境&#xff1a; 管理工具&#xff1a;Navicat 数据库版本&#xff1a;5.7.37 mysql的版本&#xff0c;我们可以通过函数&#xff0c;version()进行查看&#xff0c;本次使用的版本如下&#xff1a; 目录 1.管理工具 1.1创建表 1.2.修改表名 1.3.复制表 1.4.删除表 2…

python开发的app有哪些,python如何开发小软件

这篇文章主要介绍了python开发的app有哪些&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Python 无处不在&#xff0c;可以说是现代的 C 编程语言&#xff0c;你可以在任何地…