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

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

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)

准确率的数学定义为:

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

1.3 召回率(Recall)

召回率的数学定义为:

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

1.4 F1值(F1 score)

F1值的数学定义为:

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

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,对其求均值即为mAP。


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


2. 图像分割性能指标

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


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


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

2.1 交并比(IoU, Intersection over Union)

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

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

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

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

2.3 Dice系数(Dice coefficient)

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


相关文章
|
算法 计算机视觉
计算机视觉目标检测性能指标
目标检测是计算机视觉领域中的一个重要任务,其目标是在图像或视频中识别出物体的位置和类别。为了评估目标检测算法的性能,需要使用一系列指标来量化模型的准确性、召回率、精确率以及对不同类别的处理能力。本文将详细介绍常见的目标检测性能指标,包括精确率、召回率、F1分数、IoU、AP、mAP、P-R曲线等,同时提供相关公式和案例。
1388 0
|
人工智能 机器人 测试技术
使用LM Studio在本地运行LLM完整教程
GPT-4被普遍认为是最好的生成式AI聊天机器人,但开源模型一直在变得越来越好,并且通过微调在某些特定领域是可以超过GPT4的。
8035 1
|
4月前
|
机器学习/深度学习 人工智能 编解码
大模型应用:CLIP 模型全维度解析:理解理论基础强化基础范例.16
CLIP是OpenAI提出的跨模态模型,通过对比学习将图像与文本映射至统一语义空间,实现零样本图文对齐。无需微调即可完成图像分类、图文检索等任务,显著降低标注成本,成为多模态AI的核心基础。
2657 21
|
7月前
|
存储 Ubuntu 数据安全/隐私保护
Ubuntu 24.04 安装 Docker
本文详细介绍在 VMware 中的 Ubuntu 24.04 服务器上安装 Docker 的完整流程,包括环境准备、配置阿里云镜像源、添加国内加速器及用户权限配置,确保高效、安全地部署并使用 Docker。
4614 3
Ubuntu 24.04 安装 Docker
|
9月前
|
机器学习/深度学习 传感器 编解码
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
DINOv3是Meta推出的自监督视觉模型,支持冻结主干、仅训练轻量任务头即可在分割、深度估计等任务上达到SOTA,极大降低训练成本。其密集特征质量优异,适用于遥感、工业检测等多领域,真正实现“一个模型走天下”。
5799 2
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
|
机器学习/深度学习 数据可视化 计算机视觉
YOLOv11改进策略【注意力机制篇】| 2024 SCSA-CBAM 空间和通道的协同注意模块
YOLOv11改进策略【注意力机制篇】| 2024 SCSA-CBAM 空间和通道的协同注意模块
1743 2
YOLOv11改进策略【注意力机制篇】| 2024 SCSA-CBAM 空间和通道的协同注意模块
|
机器学习/深度学习 编解码 计算机视觉
YOLOv11改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点
YOLOv11改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点
1574 0
YOLOv11改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
5075 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目DWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取分为区域残差化和语义残差化两步,提高了特征提取效率。它引入了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,优化了不同网络阶段的感受野。在Cityscapes和CamVid数据集上的实验表明,DWRSeg在准确性和推理速度之间取得了最佳平衡,达到了72.7%的mIoU,每秒319.5帧。代码和模型已公开。
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
|
机器学习/深度学习 人工智能 算法
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
```markdown # ROC曲线与AUC详解:评估分类模型利器 本文深入浅出解释ROC曲线和AUC,通过实例和代码帮助理解其在模型评估中的重要性,旨在提升对分类模型性能的理解和应用。 ```
2918 13
算法金 | 一文彻底理解机器学习 ROC-AUC 指标