当前位置: 首页 > 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.…...

用o1-preview构建端到端水质分类系统

1. 项目概述:用 o1-preview 构建端到端水质分类系统的真实复现手记 我做机器学习项目快十年了,从最早手动调参、写 Makefile 编译模型,到后来用 MLflow 跟踪实验、用 Flask 封装 API,再到如今用 Docker 打包上云——整个流程早已刻…...

ctf show web 入门46

这道题目是上一题的升级版,过滤条件变得更加苛刻了。我们来分析一下新增的限制以及应对方案。 代码审计与变化 相比之前,正则过滤 preg_match 新增了以下内容: [0-9]:禁止使用任何数字。这意味着 $IFS$9 这种绕过方式失效了。 \$&…...

Fusion 360 数据迁移与路径重定向实战

1. 为什么需要迁移Fusion 360数据? 很多设计师朋友都遇到过这样的困扰:C盘空间莫名其妙被占满,系统开始频繁提示存储空间不足。打开磁盘分析工具一看,发现Fusion 360的缓存和用户数据竟然占用了数十GB空间。这种情况在长期使用Fus…...

OpenClaw 接入微信 / 企业微信完整教程

本文介绍如何通过 OpenClaw 框架,将个人微信和企业微信接入 AI Agent,实现「AI 自动回复」的功能。适用于树莓派、Mac/Windows 电脑、NAS 或云服务器等各类设备。 一、环境准备 1.1 安装 OpenClaw OpenClaw 是核心运行环境,负责加载插件、管…...

端到端AI安家助手:基于WhatsApp的多模态智能体系统架构与实践

1. 项目概述:一个为加拿大新移民设计的端到端AI安家助手如果你刚到一个陌生的国家,面对一堆看不懂的表格、复杂的申请流程和紧迫的截止日期,是不是会感到手足无措?这正是许多加拿大新移民面临的真实困境。49th项目就诞生于这种切身…...

Metz Connect工业连接器国产替代技术解析

在工业自动化、楼宇控制以及通信基础设施领域,连接器作为底层物理连接单元,直接影响系统的稳定性与长期可靠运行。Metz Connect作为德国知名连接技术厂商,其产品涵盖工业以太网连接器、PCB端子、RJ45模块化接口、M12工业连接器以及DIN导轨I/O…...

Midjourney咖啡印相落地实操:3步完成色彩校准、5种纸张适配方案与打印机ICC配置清单

更多请点击: https://intelliparadigm.com 第一章:Midjourney Coffee印相技术原理与工艺边界 Midjourney Coffee印相并非官方命名的技术标准,而是社区对一类融合生成式AI图像(如Midjourney输出)与传统咖啡渍显影工艺的…...

从零上手向量数据库:基于Pinecone官方示例构建AI应用实战指南

1. 项目概述:从零上手向量数据库与AI应用开发如果你对AI应用开发感兴趣,尤其是想了解如何让大语言模型(LLM)拥有“记忆”,或者想构建一个能理解语义而非关键词的智能搜索系统,那么你很可能已经听说过“向量…...

2026购物机器人操作指南:工作原理与使用教程

在电商自动化和AI技术不断发展的背景下,购物机器人(Shopping Bot)正在成为越来越多人关注的工具。无论是用于限量商品抢购、价格监控,还是电商数据采集,它都在改变传统的线上购物方式。本文将从基础概念出发&#xff0…...

大模型对话的端到端加密与隐私计算实战:基于CipherChat与TEE的架构解析

1. 项目概述:当大模型对话遇上“密码学”的硬核保护最近在折腾大语言模型(LLM)应用落地的朋友,估计都绕不开一个核心痛点:安全与隐私。无论是企业内部的知识库问答,还是面向用户的个性化AI助手,…...