对于目标检测中[email protected]的理解

前言

一直不是很理解目标检测中的mAP是如何的,今天具体来写一下,加深一下理解。

[email protected]

[email protected]:mean Average Precision
通俗来说,就是给每一类分别计算AP,然后做mean平均。
那AP是什么呢,之前我一直以为是Average Precision,没错,就是平均精确度,可是这个怎么定义呢?

AP是Precision-Recall Curve(PRC)下面的面积!!!

对于目标检测中[email protected]的理解

PRC怎么看:先看平滑不平滑(蓝线明显好些),在看谁上谁下(同一测试集上),一般来说,上面的比下面的好(绿线比红线好)。

接下来来想一下Precision和Recall怎么定义。
之前都知道:

Precision=TPTP+FPPrecision = {TP \over TP + FP }

Recall=TPTP+FNRecall = {TP \over TP + FN}

其中:
True Positive区域:与Ground truth区域的IoU>=0.5的
False Positive区域:IoU < 0.5的
False Negative区域:遗漏的Ground truth区域
True Negative区域:没法算,为啥呢?因为没有标框的地方无法界定啊。

理一下思路

在目标检测中,Precision就是检测出来的框的数目(或者是面积吧),除以一共画出来的框。比如说有时候你预测出来10个框,只有5个是正确的,那Precision就是5/10 = 50%。这个只是简单的比喻,可能里面会有细节上的错误。
然后Recall就是预测出来的正确的框,除以正确的框再加上没有预测出来的ground truth的框。距离来说就是,假设你有10个类别,你预测了6个框,6个框全中了,但是还有4个没框的,这时候Recall就是6/10=60%。

另外一个点就是,为什么Precision和Recall值是矛盾的呢? 我理一下思路,来个极端的例子,假如有10个物体需要被检测出来,我只预测出一个框,并且是正确的,那我的Precision就是100%,但是recall值却很低为1/10 = 10%。

参考

  1. https://blog.csdn.net/otengyue/article/details/89426004
  2. https://www.zhihu.com/question/19645541