mIOU定义

Mean Intersection over Union(MIoU,均交并比),为语义分割的标准度量。其计算两个集合的交集和并集之比,在语义分割问题中,这两个集合为真实值(ground truth)和预测值(predicted segmentation)。这个比例可以变形为TP(交集)比上TP、FP、FN之和(并集)。在每个类上计算IoU,然后取平均。

pij表示真实值为i,被预测为j的数量。
等同于:

直观理解

红色圆代表真实值,黄色圆代表预测值。橙色部分为两圆交集部分。

MPA(Mean Pixel Accuracy,均像素精度):计算橙色与红色圆的比例;
MIoU:计算两圆交集(橙色部分)与两圆并集(红色+橙色+黄色)之间的比例,理想情况下两圆重合,比例为1。

步骤一:先求混淆矩阵

步骤二:再求mIOU

Pytorch实现

import numpy as npclass IOUMetric:"""Class to calculate mean-iou using fast_hist method"""def __init__(self, num_classes):self.num_classes = num_classesself.hist = np.zeros((num_classes, num_classes))def _fast_hist(self, label_pred, label_true):# 找出标签中需要计算的类别,去掉了背景mask = (label_true >= 0) & (label_true < self.num_classes)# np.bincount计算了从0到n**2-1这n**2个数中每个数出现的次数,返回值形状(n, n)hist = np.bincount(self.num_classes * label_true[mask].astype(int) +label_pred[mask], minlength=self.num_classes ** 2).reshape(self.num_classes, self.num_classes)return hist# 输入:预测值和真实值# 语义分割的任务是为每个像素点分配一个labeldef evaluate(self, predictions, gts):for lp, lt in zip(predictions, gts):self.hist += self._fast_hist(lp.flatten(), lt.flatten())#miouiou = np.diag(self.hist) / (self.hist.sum(axis=1) + self.hist.sum(axis=0) - np.diag(self.hist))miou = np.nanmean(iu)#其他性能指标acc = np.diag(self.hist).sum() / self.hist.sum()acc_cls = np.nanmean(np.diag(self.hist) / self.hist.sum(axis=1))freq = self.hist.sum(axis=1) / self.hist.sum()fwavacc = (freq[freq > 0] * iu[freq > 0]).sum()return acc, acc_cls, iou, miou, fwavacc

参考:mIoU源码解析

语义分割评价指标mIOU相关推荐

  1. 憨批的语义分割重制版2——语义分割评价指标mIOU的计算

    憨批的语义分割重制版2--语义分割评价指标mIOU的计算 注意事项 学习前言 什么是mIOU mIOU的计算 1.计算混淆矩阵: 2.计算IOU: 3.计算mIOU: 计算miou 注意事项 这是针对 ...

  2. 分割评价指标MIOU

    MIOU定义 有很多博客都有写MIOU,参考下面文章 注意点: 类别包含背景,二分类也包含背景 混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示出来. 代码实现 &q ...

  3. 详解语义分割评价指标

    本文主要介绍语义分割的三大评价指标,分别是执行时间.内存占用以及准确度,本文着重介绍准确度. 一.执行时间 二.内存占用 三.准确度 假设一共有k+1类(包括k个目标类和1个背景类): 1.Pixel ...

  4. 语义分割指标---MIoU详细介绍(原理及代码)

    一.IOU理解 在语义分割的问题中,交并比就是该类的真实标签和预测值的交和并的比值 单类的交并比可以理解为下图: TP: 预测正确,真正例,模型预测为正例,实际是正例 FP: 预测错误,假正例,模型预 ...

  5. tensorflow语义分割计算mIoU时忽略某一类别

    在做语义分割的时候,有不少数据集中的部分类别是我们不想让其参与mIoU计算的.tensorflow忽略某一类别计算mIoU的方法网上比较少.经过阅读tensorflow文档,总结出一下求解方法: 数据 ...

  6. 语义分割 评价指标(global_acc, mean_acc, mean_iou)等numpy实现

    语义分割常见评价指标global_acc, mean_acc, mean_iou计算,个人学习记录,仅供参考. 一.理论计算 假设真实标签为: 预测标签为: 则手动列出混淆矩阵可得: 1.1 全局准确 ...

  7. 语义分割各种评价指标实现

    前言 现存其实已经有很多博客实现了这个代码,但是可能不完整或者不能直接用于测试集的指标计算,这里简单概括一下. 一些概念.代码参考: [1] 憨批的语义分割9--语义分割评价指标mIOU的计算 [2] ...

  8. 【语义分割】评价指标:PA、CPA、MPA、IoU、MIoU详细总结和代码实现(零基础从入门到精通系列!)

    文章目录 引言 1 混淆矩阵 2 语义分割 PA:像素准确率 CPA:类别像素准确率 MPA:类别平均像素准确率 IoU:交并比 MIoU:平均交并比 3 综合实例 步骤一:输入真实.预测图片 步骤二 ...

  9. 图像语义分割模型综述

    文章目录 一.语义分割介绍 二.语义分割的思路 空洞卷积 条件随机场 三.经典语义分割算法介绍 1.FCN 2.UNet Family (1)UNet (2)Attention U-Net (3)UN ...

最新文章

  1. Linux_SELinux使用
  2. 编程心法 之什么是MVP What is MVP development?
  3. 学计算机的要做文档吗,我是如何学习计算机编程的
  4. SQL Server 2005中, 创建维护计划时出现错误信息: 创建维护计划 失败
  5. 公网传输技术之SRT协议解析(上)
  6. asyncio协程与并发
  7. LeetCode 1015. 可被 K 整除的最小整数(数学)
  8. IOS – OpenGL ES 调节图像色度 GPUImageHueFilter
  9. 转(A potentially dangerous Request.Form value was detected from the client)
  10. 【论文复现】使用RNN进行文本分类
  11. keil修改字体、文本颜色、背景颜色,global.prop使用
  12. 190517每日一句
  13. 强烈推荐10本程序员必读的书
  14. uni-app+微信小程序+云开发 爬取必应首页每日图片
  15. 定制网站建设流程有哪些
  16. python安装目录插件
  17. 兰德公司:零日漏洞平均生存期为6.9年
  18. 计算机一级b类考试题软件,全国计算机等级考试一级b类windows模拟考题(二)
  19. money as debt 笔记
  20. 业务中台-业务架构图

热门文章

  1. 深度学习驱动智能搜索引擎,RankBrain革了SEO的命
  2. gearman和python客户端的安装和使用
  3. 百度语音识别之拼音识别
  4. Java实现积分过期保证时间_商城会员积分过期的实现方案
  5. Stata | 字符函数
  6. SpringBoot工程使用shiro 进行MD5加密
  7. SpringBoot - Tomcat 容器 Spring 绿色叶子灰色解决方案
  8. 制药工业4.0 智慧工厂探索
  9. Windows驱动编程基础教程
  10. 【Win 10】学生必备!删除鼠标右键多余的“新建”选项