在人工智能领域,机器学习的效果需要用各种指标来评价。当一个目标检测模型建立好了之后,即模型训练已经完成,我们就可以利用这个模型进行分类识别。那么该如何去评价这个模型的性能呢?

今天我们从交并比,准确率,精度,召回率,FPR, F1-Score, PR曲线,ROC曲线,AP的值,AUC的值以及很重要的mAP指标,模型的检测速度和非极大值抑制的相关方面来学习下目标检测中的评价指标。

1. 交并比 — IoU

交并比IoU是英文intersection over union的简写,意思是检测结果的矩形框与样本标注的矩形框的交集与并集的比值。如下图:

上图中假设A为模型的检测结果,BGround Truth即样本的标注结果,那么AB相交的区域即为A∩B,而AB的并集即为AB共有的区域A∪B,那么IoU的计算公式即为: IoU = (A∩B) / (A∪B)

这个还是很简单就能理解的,反应到样本图上就如下图:

其中上图蓝色框框为检测结果,红色框框为真实标注。

一般情况下对于检测框的判定都会存在一个阈值,也就是IoU的阈值,一般可以设置当IoU的值大于0.5的时候,则可认为检测到目标物体。

2. 准确率/精度/召回率/FPR/F1指标

不管是看论文,博客啥的,都会经常看到一堆简写,TP,TN,FP,FN,这些简写经常见到,怎么能够很好的记住呢?其实是这样的:

预测值为正例,记为P(Positive)
预测值为反例,记为N(Negative)
预测值与真实值相同,记为T(True)
预测值与真实值相反,记为F(False)

那么从上面可以知道:

TP -- 预测值和真实值一样,预测值为正样本(真实值为正样本)
TN -- 预测值和真实值一样,预测值为负样本(真实值为负样本)
FP -- 预测值和真实值不一样,预测值为正样本(真实值为负样本)
FN -- 预测值和真实值不一样,预测值为负样本(真实值为正样本)

这样记起来是不是就好记了呢?知道了这几个定义,下面就好理解了。

2.1 准确率

准确率accuracy是我们最常见的评价指标,这个很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好,如下:

accuracy = (TP+TN)/(TP+TN+FP+FN)

上公式中的TP+TN即为所有的正确预测为正样本的数据与正确预测为负样本的数据的总和,TP+TN+FP+FN即为总样本的个数。

2.2 精度

精度precision是从预测结果的角度来统计的,是说预测为正样本的数据中,有多少个是真正的正样本,即“找的对”的比例,如下:

 precision = TP/( TP+FP)

上公式中的TP+FP即为所有的预测为正样本的数据,TP即为预测正确的正样本个数。

2.3 召回率/TPR

召回率recallTPR(灵敏度(true positive rate))是一个概念,都是从真实的样本集来统计的,是说在总的正样本中,模型找回了多少个正样本,即“找的全”的比例,如下:

recall/TPR  = TP/(TP+FN)

上公式中的TP+FN即为所有真正为正样本的数据,而TP为预测正确的正样本个数。

2.4 FPR

FPR(false positive rate),它是指实际负例中,错误的判断为正例的比例,这个值往往越小越好,如下:

FPR = FP/(FP+TN)

其中,FP+TN即为实际样本中所有负样本的总和,而FP则是指判断为正样本的负样本。

2.5 F1-Score

F1分数(F1-score)是分类问题的一个衡量指标。F1分数认为召回率和精度同等重要, 一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。计算公式如下:

F1 = 2TP/(2TP+FP+FN)

此外还有F2分数和F0.5分数。F2分数认为召回率的重要程度是精度的2倍,而F0.5分数认为召回率的重要程度是精度的一半。计算公式为:

更一般地,我们可以定义precisionrecall权重可调的F1 score):

Fβ = ((1+β*β)*precision*recall) / (β*β*precision + recall)

常用的如F2F0.5

3. PR曲线—AP值/ROC曲线-AUC值

上面学习了关于精度,召回率,FPR,和F1-Score的知识,但是通常,只有那些往往不能够直观的反应模型性能,所以就有了PR曲线,ROC曲线,AUC值。

3.1 PR曲线和AP的值

PR曲线,就是precisionrecall的曲线,PR曲线中precision为纵坐标,recall为横坐标,如下图:

评估能力

那么PR曲线如何评估模型的性能呢?从图上理解,如果模型的精度越高,召回率越高,那么模型的性能越好。也就是说PR曲线下面的面积越大,模型的性能越好。绘制的时候也是设定不同的分类阈值来获得对应的坐标,从而画出曲线。

优缺点

PR曲线反映了分类器对正例的识别准确程度和对正例的覆盖能力之间的权衡。

PR曲线有一个缺点就是会受到正负样本比例的影响。比如当负样本增加10倍后,在racall不变的情况下,必然召回了更多的负样本,所以精度就会大幅下降,所以PR曲线对正负样本分布比较敏感。对于不同正负样本比例的测试集,PR曲线的变化就会非常大。

平均准确率AP

APAverage Precision,称为平均准确率,是对不同召回率点上的准确率进行平均,在PR曲线图上表现为PR曲线下面的面积。AP的值越大,则说明模型的平均准确率越高。

3.2 ROC曲线和AUC值

ROC的全称是Receiver Operating Characteristic Curve,中文名字叫“受试者工作特征曲线”,对于ROC来说,横坐标就是FPR,而纵坐标就是TPR,因此可以想见,当TPR越大,而FPR越小时,说明分类结果是较好的。如下图:

优缺点

ROC曲线有个很好的特性,当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。

ROC曲线可以反映二分类器的总体分类性能,但是无法直接从图中识别出分类最好的阈值,事实上最好的阈值也是视具体的场景所定。ROC曲线一定在y=x之上,否则就是一个不好的分类器。

AUC

AUCArea under curve的首字母缩写,即ROC曲线下的面积,介于0和1之间。计算方式即为ROC曲线的微积分值,其物理意义可以表示为:随机给定一正一负两个样本,将正样本排在负样本之前的概率,因此AUC越大,说明正样本越有可能被排在负样本之前,即正样本分类结果越好。

4. 平均精度均值 — mAP

mAP是英文mean average precision的缩写,意思是平均精度均值,这个词听起来有些拗口,我们来仔细捋一捋。上面我们知道了什么是APAP就是PR曲线下面的面积(如下图),是指不同召回率下的精度的平均值。

然而,在目标检测中,一个模型通常会检测很多种物体,那么每一类都能绘制一个PR曲线,进而计算出一个AP值。那么多个类别的AP值的平均就是mAP.

mAP衡量的是学出的模型在所有类别上的好坏,是目标检测中一个最为重要的指标,一般看论文或者评估一个目标检测模型,都会看这个值,这个值是在0-1直接,越大越好。

一般来说mAP针对整个数据集而言的,AP针对数据集中某一个类别而言的,而percisionrecall针对单张图片某一类别的。

5. 模型的检测速度

检测速度,这个很好理解,简单的说就是一秒钟能够检测多少张图片。不同的目标检测技术往往会有不同的mAP和检测速度,如下图(后面我们将逐一学习):

图6 不同模型的准确率与检测速度

目标检测技术的很多实际应用在准确度和速度上都有很高的要求,如果不计速度性能指标,只注重准确度表现的突破,但其代价是更高的计算复杂度和更多内存需求,对于全面行业部署而言,可扩展性仍是一个悬而未决的问题。

在实际问题中,通常需要综合考虑mAP和检测速度等因素。

6. 非极大值抑制(NMS)

非极大值抑制虽然一般不作评价指标,但是也是目标检测中一个很重要的步骤,因为下期就要步入经典模型的介绍了,所以这里随着评价指标简单介绍下。

单个预测目标

NMS的英文为Non-Maximum Suppression,就是在预测的结果框和相应的置信度中找到置信度比较高的bounding box。对于有重叠在一起的预测框,如果和当前最高分的候选框重叠面积IoU大于一定的阈值的时候,就将其删除,而只保留得分最高的那个。如下图:

图7 单个目标极大值抑制

计算步骤:

1). NMS计算出每一个bounding box的面积,然后根据置信度进行排序,把置信度最大的bounding box作为队列中首个要比较的对象;

2). 计算其余bounding box与当前最大scoreIoU,去除IoU大于设定的阈值的bounding box,保留小的IoU预测框;

3). 然后重复上面的过程,直至候选bounding box为空。

多个预测目标

当存在多目标预测时,如下图,先选取置信度最大的候选框B1,然后根据IoU阈值来去除B1候选框周围的框。然后再选取置信度第二大的候选框B2,再根据IoU阈值去掉B2候选框周围的框。

图8 多个目标极大值抑制

至此,我们已经学习了交并比,准确率,精度,召回率,FPR, F1-Score, PR曲线,ROC曲线,AP的值,AUC的值以及很重要的mAP指标,模型的检测速度和非极大值抑制的相关知识,希望大家有所收获。

详解目标检测的评价指标相关推荐

  1. 深度学习(十四)——Softmax详解, 目标检测, RCNN

    https://antkillerfarm.github.io/ Softmax详解 首先给出Softmax function的定义: yc=ζ(z)c=ezc∑Cd=1ezd for c=1,-,C ...

  2. YOLO系列详解 目标检测

    yolo v1 前言 相比同年的fast-rcnn和ssd都没有优势 详解 B=2,Pr(Object)为0或者1 在v1中没有anchor的概念,预测的xywh是直接预测的box的位置,不像fast ...

  3. 万字长文详解目标检测算法,超大超全(2022最新)

    摘要 1 概述 2 目标检测回顾 2.1 two-stage 2.2 one-stage 3 目标检测配方 3.1 基础概念 3.1.1 损失函数 3.1.2 Anchor-based 和 Keypo ...

  4. 详解目标检测之Neck选择

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨曲終人不散丶@知乎(已授权) 来源丨https://zhua ...

  5. 收藏 | 详解目标检测(MMdetection)-Runner

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨却道@知乎 来源丨https://zhuanlan.zhihu.com/p/268571921 编辑丨极 ...

  6. 【深度学习】:详解目标检测YOLO V1(You Only Look Once)算法

    YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法.Yolo系列算法属于One-Stage算法,是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速 ...

  7. 错误类型、混淆矩阵及目标检测常用评价指标

    目标检测常用评价指标 本文主要参考陈恺大佬在B站商汤账号的介绍mmdetection的视频. 检测结果的正确/错误类型 真阳性(Ture Positive):算法检测到了某类物体(Positive), ...

  8. 【目标检测】目标检测的评价指标(七个)

    目录:目标检测的评价指标 一.正样本与负样本 二.真正(TP).假正(FP).真负(TN).假负(FN) (1)正确的正向预测(True Positive,TP):正样本被正确检测的数量 (2)错误的 ...

  9. 目标检测的评价指标P,R,mAP

    目标检测的评价指标P,R,mAP 1 基本概念 1.1 IOU(Intersection over Union) 1.2 TP TN FP FN 2. 各种率 2.1 根据IOU计算Precision ...

最新文章

  1. 13Flyweight(享元)模式
  2. 第一百零二节,JavaScript函数
  3. 第四周实践项目6 循环双链表应用
  4. Arduino MEGA 2560找不到驱动怎么办
  5. 一种无限循环轮播图的实现原理
  6. canvas绘制圆环
  7. Flink 流批一体在阿里的落地
  8. css之限制文本行数,超出部分显示 “...“
  9. 操作文件读写JSON的建议工具类
  10. Java创建多线程的方法总结
  11. 杭州小伙逆行-没有生活,只有活着
  12. 莱布尼兹其实离开我们并不遥远
  13. 你的身份证,到底绑定了多少微信账号?
  14. 鸿蒙系统需要备份,华为鸿蒙系统正式发布之后,还需要面临三个问题
  15. C51蜂鸣器演奏两只老虎
  16. 香港电影中的演员:B字头(持续更新中)
  17. R studio caret package 安装
  18. How to Read Scientific Paper??
  19. java怎么设置cookie?java设置cookie教程
  20. android画直角坐标系,用Android画个五角星

热门文章

  1. HTML+CSS鼠标悬停效果
  2. Linux crash调试(一)
  3. c语言编写万年历课程设计,用C语言编写万年历 C课程设计.pdf
  4. 【运筹学】指派问题匈牙利法
  5. 美化滚动条的一个插件 vue3-perfect-scrollbar
  6. C/C++结构体内存对齐问题
  7. IOS面试攻略(1.0)
  8. 资料共享库 | ApacheCN(apache中文网)
  9. Clickhouse基本函数( 转载)
  10. 如何在电脑上下载python中文版_Python下载-Python中文版官方下载