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

浅谈图像分割中预测图与标签图的对应关系

文章目录

  • 前言
  • 一、one-hot 编码
    • 1.1 什么是one-hot编码?
    • 1.2 one-hot编码做了什么?
  • 二、图像分割的标签图
    • 2.1 one-hot编码 结果
    • 2.2 模型的预测结果图


前言

当接触深度学习中图像处理时,往往最开始了解的是图片分类的项目,其实图像分割跟图想分类比较类似,只不过图像分类是以图片为单位的,而图像分割是是以像素为单位的。

一、one-hot 编码

  one-hot 编码,也称“独热编码”。这是在机器学习与深度学习中经常会遇到一个名词。也是图像分割与分类中很重要的一种标签处理方式。

1.1 什么是one-hot编码?

   在机器学习的书籍里翻译的话是:One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由独立的寄存器位,并且在任意时候只有一位有效。说人话版本:One-Hot编码 是将 离散变量 转为 二进制向量

先来了解什么是离散变量?
   离散是指一种无序、互相独立、互不干扰的关系。例如图像分类中,分三类:猫、狗、鸟。这三个类别就是离散变量,它们之间不存在任何关系,如谁大谁小,谁前谁后,每一类都是独立的。

再来看什么是二进制向量?
   首先,我们需要了解二进制的基本概念。二进制是计算机中最常用的数制,它只有两个数字:0和1。每一个0或1被称为一个比特(bit)。在计算机内部,所有的信息,包括文字、图片、声音等,最终都会被转换成由0和1组成的二进制代码进行存储和处理。

   为什么要转为二进制向量? —— 继续离线变量的例子,假设将“猫、狗、鸟”分为三类,给的标签是【0-猫,1-狗,2-鸟】,但是这样的表示会让这三个互相独立的类别存在了特定关系,如0<1<2,要后续计算loss时,岂不是不对等了。所以需要用一个方式来处理,这种方式就是one-hot编码。(

:简单来说,就是我们知道这三类是离线变量,但计算机又不知道,所以我们需要告诉计算机,这三个类别是互不干扰的独立关系,后续计算要一律平等。

1.2 one-hot编码做了什么?

one-hot编码会根据二进制关系将【0-猫,1-狗,2-鸟】变成下列:

猫:【1,0,0】
狗:【0,1,0】
鸟:【0,0,1】

在三维坐标系下,[1, 0, 0]、[0, 1, 0]和[0, 0, 1]这三个向量是互相正交垂直的,这样也就使得三个类别都是独立关系。

例如,在图像分类训练中,一幅标注类别为狗的图,经过softmax预测结果为【0.1,0.7,0.2】,那它就会和标签【0,1,0】进行loss计算。

二、图像分割的标签图

   上面以图像分类进行了举例说明,而对于图像分割来说,可以理解为:图像分类的标签是一维向量,图像分割的标签是三维向量。下面是一张常见的初学语义分割资料里的一张标签图,先理解到每个像素都有一个类别即可在这里插入图片描述

2.1 one-hot编码 结果

   首先,要知道标签图是一个单通道的灰度图,数值从0到255。假设:图像分割为4类,【0-背景,1-人,2-树,3-房子】,一般情形下,背景类(即不需要预测的区域)要算一类。其中标签图如下:

在这里插入图片描述
这时使用one-hot编码,是对每一个像素点进行编码,如上图有4*4=16个像素点,其中编码关系如下:
0-:【1,0,0,0】
1-:【0,1,0,0】
2-:【0,0,1,0】
3-:【0,0,0,1】

图像分割标签图采用one-hot编码,为每一个类别创建一个输出通道
在这里插入图片描述

可以看到每一个通道,只要属于该类别的才是1,其余类别都是0。其实画立体图更好理解,但不想浪费时间弄,可以参考下面这个常用图

在这里插入图片描述

2.2 模型的预测结果图

   在训练时,模型预测最后输出的结果图通道数是根据要分的类别来定的,如上面例子分4类,要预测图的通道数也是4,以此来与标签图进行loss计算。
   在训练完模型后,进行预测时,会进行一个max比较操作,找出所有类别通道中概率最高的那个,如【0.1,0.05,0.85,0.1】,那最高的就是第2类通道,即该像素点被预测为第2类。

http://www.xdnf.cn/news/326773.html

相关文章:

  • C++面向对象设计类的核心知识详解总述(1)
  • Spring 与 MyBatis 整合时的事务管理细节
  • 如何使用docker配置ros-noetic环境并使用rviz,gazebo
  • Nvidia-smi 运行失败(Failed to initialize NVML: Driver/library version mismatch)
  • Elasticsearch 8.x 在 java 中的使用情况
  • MIT关节电机相序校准
  • upload-labs靶场通关详解:第二关
  • 绕线机的制作与研究
  • very_easy_sql(SSRF+SQL注入)
  • 配置指定地址的conda虚拟Python环境
  • gitcode 上传文件报错文件太大has exceeded the limited size (10 MiB) in commit
  • dragonfly Prometheus 没有监控指标 dragonfly_scheduler_host_traffic
  • 益鑫通连接器车规级,非车规可替代JST,MOLEX
  • Keil安装pack包时报错解决:Cannot copy license file to “.Download“ folder.
  • string--OJ3
  • 基于Django框架开发的B2C天天生鲜电商平台
  • 306.检查是否所有A都在B之前
  • 通用分布式锁组件
  • 【优化策略】离散化
  • 力扣92.反转指定范围内的链表、25.k个一组反转链表
  • SpringBoot优雅参数检查
  • java基础-数组
  • AI训练服务器概述
  • 【信息系统项目管理师】法律法规与标准规范——历年考题(2024年-2020年)
  • 【fastadmin开发实战】财务数据快速导入系统(复制导入)
  • 配置Hadoop集群-测试使用
  • C# NX二次开发:曲线和点位相关UFUN函数详解
  • 游戏中心首页
  • LeetCode:对称二叉树
  • 贵州省棒球运动发展中长期规划(2024-2035)·棒球1号位