目标检测指标AP和mAP.

一、准确率&回归率

  • 术语表:
- 预测正例 预测反例
真值正例 TP FN
真值反例 FP TN
  • 准确率Precision公式表示:

P r e c i s o n = T P T P + F P Precison=\frac{TP}{TP+FP} Precison=TP+FPTP

  • 回归率Recall公式表示:

R e c a l l = T P T P + F N Recall=\frac {TP}{TP+FN} Recall=TP+FNTP

​ Precision表示预测为正例的结果中有多少是对的,比如100个样本,预测正例为50个,正确的样本有TP=25个,预测错误的有FP=25个。那么Precision就等于50%。但考虑极端情况下,只使用准确率是不合适的,比如100个样本,预测正例1个,恰好真值为正例也是TP=1个,FP=0个,那么Precision=100%,但是有99个都被预测成了反例。Recall指标就是为了权衡这个问题,进而更好衡量真值正例的预测情况,还需要计算预测正例在真值正例(=TP+FN)中的比例。只有两个指标都很高的时候,说明结果才是好的。

二、AP的概念

  • P-R图

    以Recall为横轴,Precision为纵轴,并将每次的值画出连线,就可以得到P-R图。随着Recall增加,Precision会逐渐降低,并在某个值附近上下波动。

  • AP(Average Precision)

    AP为平均精度,使用积分的方式来计算PR曲线与坐标轴围成的面积:
    ∫ 0 1 f ( r )   d r \int_{0}^{1}f(r)\,{\rm d}r 01f(r)dr
    实际操作不计算积分,而是对其进行平滑操作来简化计算,对PR曲线上的每个点,Precision取该点右侧最大的值,如图所示:

目标检测指标AP和mAP._第1张图片

​ 计算出AP后,对所有类别的AP加和求平均就得到整个数据集上的mAP。

三、目标检测中的mAP

​ 不同的数据集会给出不同的mAP计算方法。

​ 目标检测算法最终会得到score1和bbox,按照score降序排序,通过设定score阈值来分出正类例和反类例(带有对类别的预测),因此评价mAP可以是在多个阈值尺度下分开的正反例来计算的:

  1. 【训练时】使用区域选择算法得到候选区域
  2. 【训练时】对于候选区,计算每一个候选区和标定框(真值)之间的IoU
  3. 【训练时】设定一个IoU阈值,大于这个阈值的候选区标定为正例,小于的标定为反例。得到一组测试集,及训练好的权重模型。
  4. 【预测时】将上面得到的测试集,通过分类器权重模型,算出每一个图片是正样本的score。
  5. 【预测时】设定一个score阈值,大于等于这个值的方框类别视为预测正例,反之为预测反例。
  6. 【预测时】根据第五步的结果算出Precision和Recall。
  7. 调整score的阈值,得到某个类别对应Recall从0到1对应的Precision值,计算出所有类的AP后就可以计算mAP了。
Score Threshold TP/FP/FN/TN Recall Precision Impact on Impact on Impact on Indirectly Impact Indirectly Impact Score Threshold TP/FP/FN/TN Recall Precision
  • Interplolated AP(略)

  • MS COCO mAP

      A P 50 \ AP_{50}  AP50:IoU阈值为0.5时的AP测量值

      A P 75 \ AP_{75}  AP75:IoU阈值为0.75时的AP测量值

      A P S \ AP_{S}  APS: 像素面积小于   3 2 2 \ 32^{2}  322的目标框的AP测量值(小尺度)

      A P M \ AP_{M}  APM:像素面积在   3 2 2 − 9 6 2 \ 32^{2}-96^{2}  322962之间的目标框的AP测量值(中尺度)

      A P L \ AP_{L}  APL:像素面积大于   9 6 2 \ 96^{2}  962的目标框的AP测量值(大尺度)

Reference

目标检测的指标AP与mAP - 知乎 (zhihu.com)


  1. 每一个预测框都对应着N+1个score,也就是对应着N个类别预测和一个background,选择score得分最高的那个作为这个框的类别。 ↩︎

你可能感兴趣的:(机器学习与深度学习,目标检测,机器学习,人工智能)