声明:以下内容全是我的个人见解,如有问题,欢迎指正!
AP(Average Precision)即平均精度,是目标检测中的一个常用指标。
一、准确率和召回率
说道AP,那不得不提准确率和召回率。首先我们来看他们的计算公式
准确率:
召回率:
其中,TP,FP,FN出自一个混淆矩阵,这里我们不展示这个混淆矩阵的定义,我们直接说这些变量的定义。
TP:检测器输出的结果中正确的个数
FP:检测器输出的结果中错误的个数
FN:ground truth中未被找出的个数,FN = ground truth总数 - TP
可以看出,准确率的分母部分即检测器检测出该类别的框的总数;召回率的分母部分即ground truth给出的该类别的框总数。
那么通俗的说:准确率表示检测器找出的框有多少是对的,衡量误检程度。召回率表示检测器找出的正确框占ground truth的百分之多少,衡量漏检程度。
举个例子:
对于某一个类别,检测器输出有5个框,其中有3个框是正确的,有2个框是错误的。而这张图像中该类别共有10个框。
可得:TP = 3,FP = 2,FN = 7
准确率
召回率
我们可以试想一下以下两个极端情形:
当一个检测器给出了数量巨多的目标框,它将很容易找出所有的ground truth,即广撒网。那么它的召回率将是100%,而它的准确率将会非常低。
当一个检测器只检测出了一个目标,并且这个目标是正确的,但是ground truth有10个目标。那么它的准确率将是100%,而它的召回率将会很低。
通过这两个情形可以知道,准确率和召回率是有一定矛盾的存在。
那么有没有什么指标能够综合一下准确率和召回率呢,那么AP就登场啦~
二、PR曲线
很多AP的定义中都有说,AP是PR曲线的曲线下面积,那么PR曲线是什么呢?它是怎么绘制出来的呢?
PR曲线即准确率-召回率曲线,它的绘制过程我们用一个实例来说明会更简单些,这个例子来自(目标检测中的AP,mAP),下面例子相关的图片也来自这里,如有侵权,我删了自己画……
假设一张图像中有5个待检测目标,而我们的检测器给出了10个框,根据框的置信度由高到低进行排序,得到下表(图):
表中,Rank一列表示框的序号,correct表示该框是否正确,Precision表示计算出的准确率,Recall表示计算出的召回率。
准确率和召回率的计算是一个不断累计的过程,而不是每个框独立的。
例如:
在第一个框时,准确率 = 1/1 =1.0,召回率 =1/5 = 0.2;
在第二个框时,准确率 = 2/2 = 1.0,召回率 = 2/5 = 0.4;
在第三个框时,准确率 = 2/3 = 0.67,召回率 = 2/5 = 0.4;
……
这时,我们根据准确率和召回率,就能绘制出PR曲线:
这时我们需要求准确率的平均值,就等于该曲线的曲线下面积取平均。
三、AP计算
通过上面的讲解,AP的计算应该就很简单了,求曲线下面积就类似积分。因为数据是离散的,所以一般会设定采样点,一般在横轴0~1范围内平均分为10或者100段,最后采样的值相加除以采样点数即可。在大多数标准中还会对曲线做平滑处理方便计算,可以免去插值的烦恼。
四、mAP
在多类别的目标检测任务中能看到mAP这个指标,m是mean平均值,它是指所有类别的AP的平均值。
版权声明:本文为CSDN博主「星辰辰大海」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_19313495/article/details/115030614
暂无评论