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

详解机器视觉性能指标相关概念——混淆矩阵、IoU、ROC曲线、mAP等

目录

0. 前言

1. 图像分类性能指标

1.1 混淆矩阵(Confusion Matrix)

1.2 准确率(Precision)

1.3 召回率(Recall)

1.4 F1值(F1 score)

1.5 ROC曲线(接收者工作特征曲线,Receiver Operating Characteristic curve)

1.6 mAP(mean Average Precision)

2. 图像分割性能指标

2.1 交并比(IoU, Intersection over Union)

2.2 准确率(Precision)&召回率(Recall)&F1值(F1 score)

2.3 Dice系数(Dice coefficient)


0. 前言

按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解,但是内容可能存在不准确的地方。如果发现文中错误,希望批评指正,共同进步。

本文将通过实例系统性说明机器视觉性能相关指标。关于这些指标内容我大体分为2类:图像分类性能指标和图像分割性能指标。

1. 图像分类性能指标

这类指标用于评估模型对图像分类的准确性:能将图像中的对象正确地划分到对应的分类中的比例、漏识别的比例、错误识别的比例等。

1.1 混淆矩阵(Confusion Matrix)

混淆矩阵是这类性能指标的基础。混淆矩阵是有监督学习中用来评估分类模型在测试数据集上的预测能力的一种评估方式。混淆矩阵是一个二维矩阵,其中每一行表示实际标签,每一列表示预测标签。

混淆矩阵的四个基本指标是真阳性(True Positive,TP)、假阳性(False Positive,FP)、真阴性(True Negative,TN)和假阴性(False Negative,FN),分别表示被正确分类的正例、被错误分类的正例、被正确分类的反例和被错误分类的反例的样本数。

下面通过实例来讲解混淆矩阵:假设我们有一个深度学习模型用来识别图像中是否有奥特曼,我们有下面9个测试样本,经过深度学习模型识别后输出如下:

可见,上述4个指标的对应个数分别为:

  • TP(模型预测有奥特曼,真实也有奥特曼):5
  • TN(模型预测无奥特曼,真实也无奥特曼):1
  • FP(模型预测有奥特曼,但实际无奥特曼):2
  • FN(模型预测无奥特曼,但实际有奥特曼):1

这样对应混淆矩阵为:

判断奥特曼的混淆矩阵真实类别
预测类别5(TP)2(FP)
1(FN)1(TN)

上面虽然是用二分类问题(是否问题、有无问题)来举例,但是混淆矩阵也可以扩展用于多分类问题,例如判断图像中的迪迦奥特曼、泰罗奥特曼、赛文奥特曼等。

判断奥特曼的混淆矩阵真实类别
迪迦泰罗……赛文
预测类别迪迦
泰罗
……
赛文
1.2 准确率(Precision)

准确率的数学定义为:

Precision = \frac{TP}{TP+FP}

准确率描述的是:如果模型输出为“是”,实际有多少比例真实为“是”,即模型预测的准不准。

1.3 召回率(Recall)

召回率的数学定义为:

Recall = \frac{TP}{TP+FN}

召回率描述的是:如果实际都为“是”,模型有多少比例能输出为“是”,即模型预测的全不全。

1.4 F1值(F1 score)

F1值的数学定义为:

F1 score = \frac{2\times Precision\times Recall }{Precision+Recall}

代入上面Precision和Recall的公式可以化简为:

F1 score = \frac{2TP}{2TP+FN+FP}

F1值是一种综合了模型的精度和召回率的评估指标。它是精度和召回率的调和平均值,因此在评估二元分类器时更加全面和准确。在模型选择、参数调优和结果解释等方面都具有重要的参考意义。同时,F1 score也可以用于比较不同模型或算法的性能,以便选择最优模型或算法。

1.5 ROC曲线(接收者工作特征曲线,Receiver Operating Characteristic curve)

这个指标有点复杂。。。

首先,ROC曲线横坐标为假阳性率FPR(False Positive Rate),FPR=FP/(FP+TN)。纵坐标为真阳性率TPR(True Positive Rate,即为Recall),TPR= Recall= TP/(TP+FN)。

然后再回到上面奥特曼的实例:我们需要知道,深度学习网络对于分类问题的输出并非“有”或“无”,而是一个0~1的置信概率。

如果我们设定一个阈值,比如模型计算输出有奥特曼的置信概率在0.6以上,我们才认为模型判断是“有”奥特曼,上面的示例应该变成这样:

显然,如果我们调整这个判断阈值,预测结果“有”或“无”就可能会发生变化,那么FPR和TPR就有可能都会变更,这样就有了一个新的点坐标(FPR,TPR)。

如果我们把所有的(FPR,TPR)都在坐标中描出来,并按顺序连接起来,就得到了ROC曲线。

特别地,如果我们把阈值设定为0,即模型输出的所有结果都为“有”,这时TN=FN=0,(FPR,TPR)=(1,1);如果把阈值设定为1,即模型输出的所有结果都为“无”,这是TP=FP=0,(FPR,TPR)=(0,0)。这样我们就知道ROC曲线肯定是在(0,0)和(1,1)这两点之间。例如下图:

ROC曲线的斜率和凸度反映了分类器的预测性能,ROC曲线越靠近左上角则分类器的性能越好。此外,ROC曲线下的面积AUC(Area Under the ROC Curve)也是一个常用的指标,AUC值越大表示分类器的预测性能越好,AUC值为1表示分类器的预测完全准确。

1.6 mAP(mean Average Precision)

中文咋翻译。。。平均平均精度?

首先需要介绍一下AP。我们按上面ROC的制作思路再制作一条曲线:其横坐标为Recall,纵坐标为Precision。这次我们调整的阈值不再是置信概率,而是IoU(或者说IoU本身也可以算作一种置信概率,下面会有介绍)。

通过调整IoU由0到1,我们获得多个坐标点(Recall,Precision)并依次连线,得到下面的Precision-Recall曲线:

对这条曲线进行积分即为AP:

AP = \int_{0}^{1} p(r)dr

如果我们要识别的对象有多种(迪迦奥特曼、泰罗奥特曼、赛文奥特曼等),那我们就会有多个AP,对其求均值即为mAP。

ROC曲线用于评估二分类器的性能,而mAP(mean Average Precision)是目标检测任务中的一个重要指标,用于评估模型对多个类别目标检测的精度。

2. 图像分割性能指标

这类指标是用于评估图像分割的准确性:能准确分割目标图像,描述预测对象位置和实际位置的差距。

我们还举一个奥特曼的例子:

这里蓝色框A是奥特曼的真实位置,已事先标注出来。红色框B是模型给奥特曼分割的边界。

2.1 交并比(IoU, Intersection over Union)

IoU是预测区域和真实区域的交集和并集的比:

IoU = \frac{A\bigcap B}{A\bigcup B}

mIoU(Mean Intersection over Union)是对所有类别的IoU计算平均值,用于评估多分类分割模型的表现。

2.2 准确率(Precision)&召回率(Recall)&F1值(F1 score)

这3个指标和上面分类问题的定义思路一样,所以一起来讲,其数学定义为:

Precision = \frac{A\bigcap B}{B}

Recall = \frac{A\bigcap B}{A}

F1 score = \frac{2\times Precision\times Recall }{Precision+Recall}

2.3 Dice系数(Dice coefficient)

Dice系数是预测区域和真实区域的交集与两者加和的比:

Dice = \frac{2A\bigcap B}{A+B}

相关文章:

详解机器视觉性能指标相关概念——混淆矩阵、IoU、ROC曲线、mAP等

目录 0. 前言 1. 图像分类性能指标 1.1 混淆矩阵(Confusion Matrix) 1.2 准确率(Precision) 1.3 召回率(Recall) 1.4 F1值(F1 score) 1.5 ROC曲线(接收者工作特征曲线,Receiver Operating Characteristic curve) 1.6 mAP(mean Average Precision) 2. 图像分…...

想要精通算法和SQL的成长之路 - 预测赢家

想要精通算法和SQL的成长之路 - 预测赢家 前言一. 预测赢家二. 石子游戏(预测赢家的进阶版)2.1 博弈论 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 预测赢家 原题链接 主要思路: 我们定义dp[i][j]:在区间 [i, j] 之间先…...

高精度PWM脉宽调制信号转模拟信号隔离变送器1Hz~10KHz转0-5V/0-10V/1-5V/0-10mA/0-20mA/4-20mA

主要特性: >>精度等级:0.1级。产品出厂前已检验校正,用户可以直接使用 >>辅助电源:8-32V 宽范围供电 >>PWM脉宽调制信号输入: 1Hz~10KHz >>输出标准信号:0-5V/0-10V/1-5V,0-10mA/0-20mA/4-20mA等&…...

Vue路由和Node.js环境搭建

文章目录 一、vue路由1.1 简介1.2 SPA1.3 实例 二、Node.js环境搭建2.1 Node.js简介2.2 npm2.3 环境搭建2.3.1 下载解压2.3.2 配置环境变量2.3.3 配置npm全局模块路径和cache默认安装位置2.3.4 修改npm镜像提高下载速度 2.4 运行项目 一、vue路由 1.1 简介 Vue 路由是 Vue.js…...

【Vue】使用vue-cli搭建SPA项目的路由,嵌套路由

一、SPA项目的构建 1、前期准备 我们的前期的准备是搭建好Node.js,测试: node -v npm -v2、利用Vue-cli来构建spa项目 2.1、什么是Vue-cli Vue CLI 是一个基于 Vue.js 的官方脚手架工具,用于自动生成vue.jswebpack的项目模板,它可以帮助开发者…...

Excel 通过条件格式自动添加边框

每录入一次数据就需要手动添加一次边框,非常麻烦,这不是我们想要的。 那么有没有办法,在我们录入数据后,自动帮我们加上边框呢? 选中要自动添加边框的列,然后按箭头流程操作 ↓ ↓ ↓ ↓...

mysql 备份和还原 mysqldump

因window系统为例 在mysql安装目录中的bin目录下 cmd 备份 备份一个数据库 mysqldump -uroot -h hostname -p 数据库名 > 备份的文件名.sql 备份部分表 mysqldump -uroot -h hostname -p 数据库名 [表 [表2…]] > 备份的文件名.sql ## 多个表 空格隔开,中间…...

ELK日志分析系统+ELFK(Filebeat)

本章结构: 1、ELK日志分析系统简介 2、Elasticsearch介绍(简称ES) 3、Logstash介绍 4、Kibana介绍 5、实验,ELK部署 一、ELK日志分析系统简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logst…...

ULID 在 Java 中的应用: 使用 `getMonotonicUlid` 生成唯一标识符

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

实用的嵌入式编码技巧:第三部分

每个触发器都有两个我们在风险方面违反的关键规格。“建立时间”是时钟到来之前输入数据必须稳定的最小纳秒数。“保持时间”告诉我们在时钟转换后保持数据存在多长时间。 这些规格因逻辑设备而异。有些可能需要数十纳秒的设置和/或保持时间;其他人则需要少一个数量…...

8个很棒的Vue开发技巧

1.路由参数解耦 通常在组件中使用路由参数,大多数人会做以下事情。 export default { methods: {getParamsId() {return this.$route.params.id} } } 在组件中使用 $route 会导致与其相应路由的高度耦合,通过将其限制为某些 URL 来限制组件的灵活性。…...

Python - 小玩意 - 文字转语音

import pyttsx3 from tkinter import *def recognize_and_save():try:say pyttsx3.init()rate say.getProperty(rate) # 获取当前语速属性的值say.setProperty(rate, rate - 20) # 设置语速属性为当前语速减20text text_var.get()# 语音识别say.say(text)say.runAndWait()…...

聚焦数据库和新兴硬件的技术合力 中科驭数受邀分享基于DPU的数据库异构加速方案

随着新型硬件成本逐渐降低,充分利用新兴硬件资源提升数据库性能是未来数据库发展的重要方向之一,SIGMOD、VLDB、CICE数据库顶会上出现越来越多新兴硬件的论文和专题。在需求侧,随着数据量暴增和实时性的要求越来越高,数据库围绕处…...

哨兵模式(sentinel)

为什么需要哨兵模式 redis的主从复制模式能够缓解“读压力”,但是存在两个明显问题。 主节点发生故障,进行主节点切换的过程比较复杂,需要人工参与,导致故障恢复时间无法保障主节点通过主从复制模式将读压力分散出去&#xff0c…...

b站老王 自动驾驶决策规划学习记录(十二)

自动驾驶之速度规划详解:SL与ST迭代 上一讲:b站老王 自动驾驶决策规划学习记录(十一) 接着上一讲学习记录b站老王对自动驾驶规划系列的讲解 参考视频: 自动驾驶决策规划算法第二章第七节(上) 速度规划详解:SL与ST迭代…...

服务器租用机房机房的类型应该如何选择

服务器租用机房机房的类型应该如何选择 1.单电信机房 单电信服务器机房业务模式比较固定,访问量也不是很大,适合新闻类网站或政务类网站。如果网站的PV流量持续增加,建议后期采用租赁CDN的方式解决非电信用户访问网站速度过慢的问题。 2.双线…...

大数据运维一些常见批量操作命令

大数据运维中,批量操作是一项常见的任务。在使用flume进行数据采集的过程中,有时会出现故障导致采集停止,此时积累了大量的文件。如果想要将这些文件迁移到新的目录,直接使用"mv"命令可能会因为文件数目过多而报错。为了…...

测试人职场生存必须避开的5个陷阱

在互联网职场的工作发展道路上,软件测试人员其实在公司中也面临着各种各样的职场陷阱,有些可能是因为项目业务不熟练造成的,有些可能是自身技术能力不足导致的...等等。软件测试入门相对来说比较容易些,但是想要在测试行业长久发展…...

力扣538 补9.18

538.把二叉搜索树转换为累加树 可以做,主要还是分类讨论并找规律。 当前结点如果是左节点的话,root.valroot.valpre.valdfs(root.right); 如果是右结点的话, root.valpre.val-preval-dfs(root.left); 都和前一个结点有关系,如…...

[Linux入门]---Linux编译器gcc/g++使用

文章目录 1.背景知识2.gcc如何完成编译运行工作预处理(进行宏替换)编译(生成汇编)汇编(生成机器可识别代码)链接(生成可执行文件) 3.函数库动态库静态库动静态库的区别 4.gcc选项 1.…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...

算术操作符与类型转换:从基础到精通

目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...