目标检测的评价标准mAP, Precision, Recall, Accuracy

目录

  • metrics 评价方法

    • TP , FP , TN , FN

      • 概念
      • 计算流程
    • Accuracy , Precision ,Recall
    • Average Precision
    • PR曲线
    • AP计算 Average Precision
      • mAP
    • 参考资料

metrics 评价方法

注意,在多分类问题中,评价方法是逐个类计算的,不是所有类一起算,是只针对一个类算,每个类别有自己的指标值!

TP , FP , TN , FN

概念

TP = 预测为positive 且ground-truth和预测一致 FP= 预测为positive 且ground-truth和预测不一致

TN=预测为negative 且ground-truth和预测一致 FN=预测为negative 且ground-truth和预测不一致

计算流程

在所有预测为猫咪类的框中, 具有怎么样的特征的框才是 TP 和 FP 呢?

计算流程

  1. 猫咪类别的 Prediction下,对于某一确定 score threshold
  • 将 Prediction 按照 score 排序
  • score 大于 score threshold 的 Prediction 的定义为 Positive
  1. 猫咪类别的 Positive Prediction下,对于某一确定 IOU threshold
  • 猫咪类别的 GT的 IOU 大于 threshold 的 Prediction, 并且 该GT是未被其它Prediction 匹配的,标记为 True Positive(TP),对应的GT标记为已匹配
  • 猫咪类别的 GT的 IOU 小于 threshold 的 Prediction, 或是该GT已经被匹配,则标记为 False Positive(FP)

Accuracy , Precision ,Recall

设样本 \(i\) 的真实标签 \(x_i\),网络输出的置信度为 $ y_i $

准确率Accuracy

\[
\frac{CorrectNum}{TotalNum}=\frac{TP+TN}{TotalNum}
\]

精确率Precision 判断对了多少个【都被模型判断为positive,其中判对了多少个】

\[
p(t)=P(x_i \in C\ |\ y_i \ge t ) = \frac{TP}{TP+FP}=\frac{TP}{all\ detections}
\]

召回率Recall positive找到了多少个 【在真实标签为positive的所有样本中,找到了多少个】

\[
r(t)=P(y_i \ge t \ | \ x_i \in C) = \frac{TP}{TP+FN}=\frac{TP}{all\ groundtruth}
\]

https://blog.csdn.net/asasasaababab/article/details/79994920 这里有解释为什么不能直接用准确率accuracy:

  • 主要是因为类别不平衡问题,如果大部分是negative的 而且大部分模型都很容易判别出来,那准确率都很高, 没有区分度,也没有实际意义(因为negative不是我们感兴趣的)

Precision vs Accuracy

Precision 查准率,针对某一类别,没有说明具体类别的precision是没有意义的,在二分类问题中默认是正样本的precision (比如在目标检测里面针对的是positive类别)

Accuracy 准确率,计算的是分类正确个数占全体样本的比例,针对的是所有类别

Average Precision

平均精确率Average Precision

\[
AP = \frac{1}{11}\sum_{r\in \{0, 0.1, 0.2, ..., 1\}} p_{interp}(r) \p_{interp}(r) = max_{\hat r:\hat r \ge r} p(\hat r)
\]

  • 解释第二个式子:r的取值从 0到1 以0.1为间距,共11个取值。从某个r开始 从所有比r大的值中选择某个作为阈值t 计算精度,返回精度的最大值
  • \(AP_{2D}\): 在图像平面上计算的AP 记为\(AP_{2D}\)

3D detection中还会涉及到以下指标:

  • \(AP_{BV}\):将3D检测投影到BEV视角,然后计算\(AP_{BV}\) ,能够避免不同物体投影到2D可能会重叠的情况
  • \(AP_{3D}\):直接计算3D bbox和ground-truth bbox的IoU,但是仍然无法精确衡量bbox方向的精确率

PR曲线

Precision-Recall Curve

  • Recall是横轴, Precision是纵轴,随着Recall的增大,Precision会下降,因为为了使模型找得更全(high recall),可能需要检测更多物体,从而可能有很多false positive(使得precision下降)
  • 以rank为例,计算 每新增一个样本之后,当前序列的precision和recall https://blog.csdn.net/asasasaababab/article/details/79994920 这里有给出图片例子
  • 怎么画的?插值
  • 【局限】只比较不同模型的曲线有时候很难分辨,因为不同的曲线可能经常会交叉,考虑用AP(其实就是曲线和坐标轴围成的面积,是一个数值,可以更直观比较)

AP计算 Average Precision

两种方式:11点插值,或是计算面积(AUC Area Under Precision-Recall Curve)

  • 11点插值:把recall从 0~1 每隔 0.1 取端点 共11个,每个端点对应 \(p_{interp}(r)\) 计算公式如上
  • 计算面积:将曲线平滑成直角折线,从而计算曲线与坐标轴的面积近似于对每小块矩形面积求和

https://github.com/rafaelpadilla/Object-Detection-Metrics

?

mAP

目标检测中衡量识别精度的指标是mAP(mean average precision)

多个类别物体检测中每一个类别都可以根据recall和precision绘制一条曲线,AP就是该曲线下的面积,mAP是多个类别AP的平均值

?
?
?


参考资料

https://blog.csdn.net/asasasaababab/article/details/79994920

https://github.com/rafaelpadilla/Object-Detection-Metrics

原文地址:https://www.cnblogs.com/notesbyY/p/11565102.html

时间: 2024-08-27 03:58:08

目标检测的评价标准mAP, Precision, Recall, Accuracy的相关文章

目标检测方法——SSD

SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot MultiBox Detector) 目录 作者 文章的选择原因 方法概括 方法细节 相关背景补充 实验结果 与相关文章的对比 总结 作者 文章的选择原因 性能好,single stage 方法概括 文章的方法介绍 SSD主要用来解决目标检测的问题(定位+分类),即输入一张待测图像,输出多个box的位置信息和类别信息 测试时,输入一张图像到SSD中,网络输出一个下图最右边的tensor(多维矩阵),对该矩阵进行

通过Precision/Recall判断分类结果偏差极大时算法的性能

当我们对某些问题进行分类时,真实结果的分布会有明显偏差. 例如对是否患癌症进行分类,testing set 中可能只有0.5%的人患了癌症. 此时如果直接数误分类数的话,那么一个每次都预测人没有癌症的算法也是性能优异的. 此时,我们需要引入一对新的判别标准:Precision/Recall来进行算法的性能评判,它们的定义如下: 可以看出,Precision表示:预测一件事件发生,它实际发生的概率是多少.换言之:预测准的概率如何. Recall表示:一件事情实际发生了,能把它预测出来的概率是多少.

目标检测中的precision,recall,AP,mAP计算详解

交并比IoU衡量的是两个区域的重叠程度,是两个区域重叠部分面积占二者总面积(重叠部分只计算一次)的比例.如下图,两个矩形框的IoU是交叉面积(中间图片红色部分)与合并面积(右图红色部分)面积之比. Iou的定义 在目标检测任务中,如果我们模型输出的矩形框与我们人工标注的矩形框的IoU值大于某个阈值时(通常为0.5)即认为我们的模型输出了正确的 精准率与召回率(Precision & Recall) 大雁与飞机 假设现在有这样一个测试集,测试集中的图片只由大雁和飞机两种图片组成,如下图所示:  假

平均精度均值(mAP)——目标检测模型性能统计量

在机器学习领域,对于大多数常见问题,通常会有多个模型可供选择.当然,每个模型会有自己的特性,并会受到不同因素的影响而表现不同. 每个模型的好坏是通过评价它在某个数据集上的性能来判断的,这个数据集通常被叫做“验证/测试”数据集.这个性能由不同的统计量来度量,包括准确率( accuracy ).精确率( precision ).召回率( recall )等等.选择我们会根据某个特定的应用场景来选择相应的统计量.而对每个应用来说,找到一个可以客观地比较模型好坏的度量标准至关重要. 在本文,我们将会讨论

我收集的一些目标检测、跟踪、识别标准测试视频集和图像数据库

一个网友收集的运动目标检测,阴影检测的标准测试视频 http://blog.csdn.net/sunbaigui/article/details/6363390 很权威的change detection检测视频集,里面有将近20种主流算法在这个测试集上的运行结果和ROC,PRA曲线 http://changedetection.net/ VIVID Tracking Evaluation Web Site http://vision.cse.psu.edu/data/vividEval/data

信息检索的评价指标(Precision, Recall, F-score, MAP)

之前写过一篇blog叫做机器学习实战笔记之非均衡分类问题:http://blog.csdn.net/lu597203933/article/details/38666699其中对Precision和Recall及ROC都有所讲解,其中区别在于Precision,Recall, F-score, MAP主要用于信息检索,而ROC曲线及其度量指标AUC主要用于分类和识别,ROC的详细介绍见上面的blog,这里的Precision.Recall和上篇blog的计算结果其实是一样的,只是这里从检索的角度

分类和目标检测的性能评价指标

对于深度学习的网络模型,希望其速度快,内存小,精度高.因此需要量化指标来评价这些性能,常用的指标有:mAP(平均准确度均值,精度指标), FPS(每秒处理的图片数量或每张图片处理需要时间,同样硬件条件下的速度指标) , 模型参数大小(内存大小指标). 1.mAP (mean Avearage Precision) mAP指的是各类别的AP平均值,而AP指PR曲线的面积(precision和Recall关系曲线),因此得先了解下precision(精确率)和recall(召回率),以及相关的acc

目标检测 — 评价指标

评价指标: 准确率 (Accuracy),混淆矩阵 (Confusion Matrix),精确率(Precision),召回率(Recall),平均正确率(AP),mean Average Precision(mAP),交除并(IoU),ROC + AUC,非极大值抑制(NMS). 1.准确率 (Accuracy) 分对的样本数除以所有的样本数 ,即:准确(分类)率 = 正确预测的正反例数 / 总数. 准确率一般用来评估模型的全局准确程度,不能包含太多信息,无法全面评价一个模型性能. 2.混淆矩

目标检测网络之 YOLOv2

YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体. 每个格子预测B个bounding box及其置信度(confidence score),以及C个类别概率.bbox信息(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,均被归一化.置信度反映是否包含物体以及包含物体情况下位置的准确性,定义为\(Pr(Object) \times IOU^{truth}_{pred},