其他分享
首页 > 其他分享> > 【如何通俗易懂的理解mAP】——mAP理解

【如何通俗易懂的理解mAP】——mAP理解

作者:互联网

【如何通俗易懂的理解mAP】——mAP理解

明确问题:

大背景是object detection, 我就以正在学的RetinaNet应用背景为例, 识别出来的每一个框都有N+1个score, 对应着N个class和1个background, 我们会选score最高的那个作为最终的判断基本定义: precision和recall的含义, preicision是在你认为的正样本中, 有多大比例真的是正样本, recall则是在真正的正样本中, 有多少被你找到了。

问题核心:

我们需要一个对于score的threshold, 为什么呢? 比如在一个bounding box里, 我识别出来鸭子的score最高, 可是他也只有0.1, 那么他真的是鸭子吗? 很可能他还是负样本。 所以我们需要一个阈值, 如果识别出了鸭子而且分数大于这个阈值才真的说他是正样本, 否则他是负样本那么threshold到底是怎么影响precision和recall的呢?
我们还是用鸭子的例子

这样我们就明确了threshold确实对鸭子的precision和recall产生影响和变化的趋势, 也就带来了思考, precision不是一个绝对的东西,而是相对threshold而改变的东西, recall同理, 那么单个用precision来作为标准判断, 就不合适。 这是一场precision与recall之间的trade off, 用一组固定值表述不够全面, 因为我们根据不同的threshold, 可以取到不同(也可能相同)的precision recall值。 这样想的话对于每个threshold,我们都有(precision, recall)的pair, 也就有了precision和recall之间的curve关系

有了这么一条precision-recall curve, 他衡量着两个有价值的判断标准, precision和recall的关系, 那么不如两个一起动态考虑, 就有了鸭子这个class的Average Precision, 即curve下的面积, 他可以充分的表示在这个model中, precision和recall的总体优劣。

最后, 我们计算每个class的Average Precision, 就得到了mean Average Precision

标签:mAP,score,recall,样本,precision,通俗易懂,理解,鸭子,threshold
来源: https://blog.csdn.net/m0_45388819/article/details/111824669