语义分割评价指标mIOU
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相关推荐
- 憨批的语义分割重制版2——语义分割评价指标mIOU的计算
憨批的语义分割重制版2--语义分割评价指标mIOU的计算 注意事项 学习前言 什么是mIOU mIOU的计算 1.计算混淆矩阵: 2.计算IOU: 3.计算mIOU: 计算miou 注意事项 这是针对 ...
- 分割评价指标MIOU
MIOU定义 有很多博客都有写MIOU,参考下面文章 注意点: 类别包含背景,二分类也包含背景 混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示出来. 代码实现 &q ...
- 详解语义分割评价指标
本文主要介绍语义分割的三大评价指标,分别是执行时间.内存占用以及准确度,本文着重介绍准确度. 一.执行时间 二.内存占用 三.准确度 假设一共有k+1类(包括k个目标类和1个背景类): 1.Pixel ...
- 语义分割指标---MIoU详细介绍(原理及代码)
一.IOU理解 在语义分割的问题中,交并比就是该类的真实标签和预测值的交和并的比值 单类的交并比可以理解为下图: TP: 预测正确,真正例,模型预测为正例,实际是正例 FP: 预测错误,假正例,模型预 ...
- tensorflow语义分割计算mIoU时忽略某一类别
在做语义分割的时候,有不少数据集中的部分类别是我们不想让其参与mIoU计算的.tensorflow忽略某一类别计算mIoU的方法网上比较少.经过阅读tensorflow文档,总结出一下求解方法: 数据 ...
- 语义分割 评价指标(global_acc, mean_acc, mean_iou)等numpy实现
语义分割常见评价指标global_acc, mean_acc, mean_iou计算,个人学习记录,仅供参考. 一.理论计算 假设真实标签为: 预测标签为: 则手动列出混淆矩阵可得: 1.1 全局准确 ...
- 语义分割各种评价指标实现
前言 现存其实已经有很多博客实现了这个代码,但是可能不完整或者不能直接用于测试集的指标计算,这里简单概括一下. 一些概念.代码参考: [1] 憨批的语义分割9--语义分割评价指标mIOU的计算 [2] ...
- 【语义分割】评价指标:PA、CPA、MPA、IoU、MIoU详细总结和代码实现(零基础从入门到精通系列!)
文章目录 引言 1 混淆矩阵 2 语义分割 PA:像素准确率 CPA:类别像素准确率 MPA:类别平均像素准确率 IoU:交并比 MIoU:平均交并比 3 综合实例 步骤一:输入真实.预测图片 步骤二 ...
- 图像语义分割模型综述
文章目录 一.语义分割介绍 二.语义分割的思路 空洞卷积 条件随机场 三.经典语义分割算法介绍 1.FCN 2.UNet Family (1)UNet (2)Attention U-Net (3)UN ...
最新文章
- Linux_SELinux使用
- 编程心法 之什么是MVP What is MVP development?
- 学计算机的要做文档吗,我是如何学习计算机编程的
- SQL Server 2005中, 创建维护计划时出现错误信息: 创建维护计划 失败
- 公网传输技术之SRT协议解析(上)
- asyncio协程与并发
- LeetCode 1015. 可被 K 整除的最小整数(数学)
- IOS – OpenGL ES 调节图像色度 GPUImageHueFilter
- 转(A potentially dangerous Request.Form value was detected from the client)
- 【论文复现】使用RNN进行文本分类
- keil修改字体、文本颜色、背景颜色,global.prop使用
- 190517每日一句
- 强烈推荐10本程序员必读的书
- uni-app+微信小程序+云开发 爬取必应首页每日图片
- 定制网站建设流程有哪些
- python安装目录插件
- 兰德公司:零日漏洞平均生存期为6.9年
- 计算机一级b类考试题软件,全国计算机等级考试一级b类windows模拟考题(二)
- money as debt 笔记
- 业务中台-业务架构图