AP和mAP是图像分类任务中的评价方法,可以用于检测任务。

分类任务中的AP,mAP,PRC(PR曲线)

为什么需要PR曲线

Precision and Recall (PR曲线):用于稀有事件检测,如目标检测、信息检索、推荐系统。

负样本非常多(?_很大),因此??? = FP⁄(FP+TN)很小,比较TPR和FPR没有太大意义(ROC曲线中只有左边很小一部分有意义)
因此只讨论正样本

Precision and Recall (PR曲线):阈值变化时的P和R。

  • Precison=TP/(TP+FP), 精度、准确率:预测结果为真的样本中真正为真的比例
  • TPR/Recall=TP/(TP+FN) 召回率:预测结果召回了多少真正的真样本
    特征:
    PR曲线越往往右上角越好。
    在这里插入图片描述

AP

  • 首先,AP也是对所有图片内的某一类来说的。
  • AP: 对不同召回率点上的精度进行平均(即PR曲线下的面积)
    A P = ∫ 0 1 P ( R ) d R = ∑ k = 0 n P ( k ) Δ R ( k ) A P=\int_{0}^{1} P(R) d R=\sum_{k=0}^{n} P(k) \Delta R(k) AP=01P(R)dR=k=0nP(k)ΔR(k)

分类任务的AP就是P—R曲线下的面积,我们需要做的就是根据不同的置信度阈值 (p_threshold),计算出这模型得到的对某个类别的(R,P),然后作出P—R曲线,并求解面积,就能得到分类模型对该类别的AP。

mAP

物体检测中经常用mAP(Mean Average Percision, mAP)评价模型性能:

  • mAP是针对多类来说的
  • mAP:多个物体类别的AP的平均
  • mAP的对象是所有类的所有图片,衡量的是学出的模型在所有类别上的好坏。
    计算如下所示,其中C为类别数目.
    在这里插入图片描述

AP的计算方法:

分类任务的AP就是P—R曲线下的面积,我们需要做的就是根据不同的置信度阈值 (p_threshold),计算出这模型得到的对某个类别的(R,P),然后作出P—R曲线,并求解面积,就能得到分类模型对该类别的AP。

1、首先使用训练好的模型获得所有测试样本的confideutnce score(预测概率),每个类别(如person、car等)都会获得一组confidence score,假设现在共有20个测试样本,如下给出这20个样本的id、confidence score、真实标签ground truth label。
在这里插入图片描述

2、按照上图中的score值从大到小对所有样本进行排序,排序后结果如下图所示:
在这里插入图片描述

3、计算precision和recall值

在计算之前首先举个例子通俗地解释一下什么是precision和recall。

Precison=TP/(TP+FP), 精度、准确率:预测结果为真的样本中真正为真的比例
TPR/Recall=TP/(TP+FN),正确的结果有多少被你给出来了。

假设一个不透明的盒子里有8个红球和3个蓝球,现在让你取出了所有红球,你取出来了5个球,但里面有3个红球,2个蓝球。
precision=3/5 指你取出来的5个球里面只有3个是正确的。
recall=3/8 指8个红球只有3个被你取出来了。

在这里插入图片描述

用(True Positive+False Positive)来表示分类任务中我们取出来的结果,如在测试集上取出Top-5的结果为(即:我们将概率最大的5个样本预测为正样本,但这5个里可能有False Positive
在这里插入图片描述

其中id为4和2的样本图片为True Positive,id为13、19、6的样本为False Positive。剩余排在Top-5之外的元素时我们没有取出来的。如下:
在这里插入图片描述

这个例子中precision=2/5,recall=2/6。

实际的任务中通常不会满足只用Top-5来衡量模型的好坏,可以按照情况选择不同的阈值,任意将TOP1或 TOPK…或TOPN预测为正样本。

4、计算AP

设总数为N的样本,其中中总共有M个正样本,分别将Top-1,TOP2,…Top-N预测为正样本,可以获得N对{precision,recall},其中有M个recall值,分别为(1/M,2/M,…,M/M),
对于每个recall值r,可以从对应的{precision,recall}中计算出一个最大的precision,对这M个precision求平均得到AP
,如下图所示:
在这里插入图片描述

在上图所示中,共有6个正例,因此共有6个recall值,分别为1/6、2/6、3/6、4/6、5/6、6/6,

当recall=1/6时,r’为1/6、2/6、3/6、4/6、5/6、6/6,最大的precision=1;

当recall=2/6时,r’为2/6、3/6、4/6、5/6、6/6,最大的precision=2/2=1;

当recall=3/6时,r’为3/6、4/6、5/6、6/6,最大的precision=4/7

当recall=4/6时,r’为4/6、5/6、6/6,最大的precision=4/7;

当recall=5/6时,r’为5/6、6/6,最大的precision=5/11;

当recall=6/6时,r’为6/6,最大的precision=6/16。

在这里插入图片描述

此时AP表示训练出来的模型在当前类别上的好坏。

P-R曲线的绘制方法

设总数为N的样本,其中中总共有M个正样本,分别将**Top-1,TOP2,…Top-N预测为正样本,可以获得N对{precision,recall}。
以precision值为纵坐标,以对应的recall值为横坐标,将这20对{precision,recall}在图上画出来,就是P-R曲线,如下图:
在这里插入图片描述

mAP计算方法

AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。

参考:https://blog.csdn.net/xw_2_xh/article/details/88190806
https://blog.csdn.net/qq_41994006/article/details/81051150

检测任务中的AP与AP@50, AP@75

AP就是P—R曲线下的面积,我们需要做的就是根据不同的置信度阈值 (p_threshold),计算出这模型得到的预测框的(R,P),然后作出P—R曲线,并求解面积,就能得到目标检测模型对该检测种类的AP。

  • 在分类任务中,预测的正样本是true positive还是false positive很好确定。
  • 而在检测任务中,什么叫检测到的结果是true positive还是false positive?这里需要一个评判标准:
    如果检测框与groud-truth框的IOU区域大于某个阈值,我们就可以认为是true positive了
    如果IoU阈值=0.5,则为AP@50,
    如果IoU阈值=0.75,则为 AP@75,以此类推

常见机器视觉国际会议论文出现的目标识别评价标准:AP,AP50,AP75等,权威解释如下:
其中的"AP",它是AP@50…AP@95的均值,其阈值步进为0.05
在这里插入图片描述

例如:
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐