computer vision笔记:AP和mAP

本文紧接前一篇文章machine-learning笔记:准确率和召回率,具体到目标检测中来谈一谈两个指标:AP和mAP。AP即average precision平均准确率,而mAP即mean average precision,翻译成平均平均准确率…不太好听,我且称它为均匀平均准确率吧。


目标检测中的P和R

在目标检测中,TP、FP、FN、TN有更加具体的定义,比如我们可以这样定义:
TP:IoU大于或等于阈值的检测框。
FP:IoU小于阈值的检测框。
FN:未被检测到的(没有被标注的)ground truth。
TN:由于在实验中一般不会去标注负类,因此不关心这项,可以忽略不计。
关于IoU,也就是交集比上并集的比值,如果没理解可以看看computer-vision笔记:non-max suppression这篇文章。


AP

比如有这样一个例子,总共有7个图像,其中用绿色框表示15个ground truth,用红色框表示24个我们预测的对象,并用字母标记和给出confidence。

补充:在YOLO中,confidence是这样定义的:

这里的$Pr(Object)$指的是物体先验概率,如果框内包含物体则其值为1,否则其值为0。$IoU_{pred}^{truth}$为预测框与GTbox的交并比,取值在0到1之间。因此confidence的取值范围也在0到1之间。
由该公式可知confidence反应了两个信息:

  1. 预测框内包含物体的置信度。
  2. 预测框预测的准确度。

然后我们用上面的方法判断每一个标注出来的预测对象预测得是正确的(TP)还是不正确的(FP),并根据confidence从大到小进行排列。注意,这里的Acc TP和Acc FP指的是累计的正确个数和错误个数。准确率是利用累计的正确个数比上已经统计的个数,召回率是利用累计的正确个数去比上总的正确个数(也就是15)。至于为什么这么计算,可以看看我前一篇文章的理解。

在统计完所有预测红框的准确率和召回率之后,接下来我们计算AP。利用前面计算得出的数据,我们可以画出如下统计图。

上面这种方法称为11点插值法,就是从召回率为0开始,以0.1为间隔计算准确率,因此共有11项。
如上图右下角的公式所示,我们定义这11个点中每一个点的准确率等于大于该召回率的所有点中准确率的最大值。最后累加求平均即为该分类的AP值。这种方法的缺点是它的估算有点粗糙,因此后来作了如下改进。在2012年之后(还好没有世界末日),又出现了用面积来逼近AP值的方法。

如上图中的公式所示,这里做得改变就是把插值点的精确度替换成了当前点的精确度,也就是把离散变成连续,从而可以计算面积,使得最后的平均更加有意义。


mAP

以上就是AP的两种计算方法,那么怎么来计算mAP呢?
其实AP针对的是某一类比如说人,而数据集中往往还有其他的许多类别比如说汽车、汽车人。那么分别计算每一个类的AP再求平均就得到了mAP。
注意,mAP针对的是多分类任务。mAP越高,代表精度越高。


碰到底线咯 后面没有啦

本文标题:computer vision笔记:AP和mAP

文章作者:高深远

发布时间:2020年01月30日 - 13:04

最后更新:2020年02月01日 - 21:24

原始链接:https://gsy00517.github.io/computer-vision20200130130437/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%