文章目录

  • IOU、precision、 recall、 accurancy
  • PR曲线
  • ROC曲线
  • F-score
  • AP、mAP
  • 验证指标的选择



  深度学习测试模型效果的时, 经常会使用一些特定的评价指标. 根据数据集的分布情况以及使用侧重的效果可以选择不同的指标进行评价. 一般常用的评价指标有F-score、mAP、ROC/AUC. 在介绍这三种评价指标之前首先了解下准确率、召回率、精准率、IOU等指标的概念和计算方式.

IOU、precision、 recall、 accurancy


目标检测自有数据集转coco格式 目标检测score_python

  Precision,准确率/查准率。Recall,召回率/查全率。这两个指标分别以两个角度衡量分类系统的准确率。目标检测中计算查准率和召回率之前需要需要计算检测框的IOU值, 并根IOU值判断是否预测正确.

  1. IoU这一值,可以理解为系统预测出来的框与原来图片中标记的框的重合程度。 计算方法即检测结果Detection Result与 Ground Truth 的交集比上它们的并集,即为检测的准确率。
      IOU是这种Detect box和Ground truth的差异的指标:
      目标检测自有数据集转coco格式 目标检测score_人工智能_02
      
       针对目标检测任务中会设定一个IOU threshold, 当预测的box和真实的box之间的IOU大于IOU threshold可以判定为预测正确, 反之预测错误.
  2. Precision针对的是某一类样本,如果没有说明类别,那么Precision是毫无意义的(有些地方不说明类别,直接说Precision,是因为二分类问题通常说的Precision都是正样本的Precision)。
    目标检测自有数据集转coco格式 目标检测score_深度学习_03
  3. Recall和Precision一样,脱离类别是没有意义的。说道Recall,一定指的是某个类别的Recall。Recall表示某一类样本,预测正确的与所有Ground Truth的比例。
    目标检测自有数据集转coco格式 目标检测score_深度学习_04
  4. 准确率=预测正确的样本数/所有样本数,即预测正确的样本比例(包括预测正确的正样本和预测正确的负样本,不过在目标检测领域,没有预测正确的负样本这一说法,所以目标检测里面没有用Accuracy的)。
    目标检测自有数据集转coco格式 目标检测score_深度学习_05

PR曲线

Precision-recall曲线(PR曲线), PR曲线的横轴Recall也就是TPR,反映了分类器对正例的覆盖能力。而纵轴Precision的分母是识别为正例的数目,而不是实际正例数目。Precision反映了分类器预测正例的准确程度。那么,Precision-recall曲线反映了分类器对正例的识别准确程度和对正例的覆盖能力之间的权衡。对于随机分类器而言,其Precision固定的等于样本中正例的比例,不随recall的变化而变化。
多分类中每个类别可以绘制出一条PR曲线, 曲线中为依次改变置信度为10%-100%得到一组由precision和recall组成的坐标, 连接这些值就是PR曲线.

ROC曲线

ROC曲线,是以FPR为横轴、TPR为纵轴,衡量二分类系统性能的曲线。
目标检测自有数据集转coco格式 目标检测score_深度学习_06
目标检测自有数据集转coco格式 目标检测score_机器学习_07
  同样依次取置信度10%-100%, 会得到一组不同的FPR、TPR组成的坐标连接两者就能得到ROC曲线, ROC曲线与X轴围成的图形面积可以作为一个综合衡量指标,即AUC(Area Under Curve,曲线下面积)。AUC越大,曲线就越凸,分类器的效果也就越好。
  ROC曲线反映了分类器对正例的覆盖能力和对负例的覆盖能力之间的权衡。

F-score

F1分数,它被定义为查准率和召回率的调和平均数, 具体的计算方式为:

目标检测自有数据集转coco格式 目标检测score_人工智能_08

当业务需求, 需要给予准确率和召回率不同的权重的时候可以使用目标检测自有数据集转coco格式 目标检测score_机器学习_09

目标检测自有数据集转coco格式 目标检测score_机器学习_10

q其中目标检测自有数据集转coco格式 目标检测score_机器学习_11目标检测自有数据集转coco格式 目标检测score_python_12在统计学中经常使用, 并且目标检测自有数据集转coco格式 目标检测score_机器学习_11分数中, 召回率权重大于查准率, 而目标检测自有数据集转coco格式 目标检测score_python_12分数则刚好相反.

多分类中F-score是先计算每个类别的F-score然后在求平均

AP、mAP

与AUC相似,AP就是PR曲线与X轴围成的图形面积.
对于连续的PR曲线,有:语句为目标检测自有数据集转coco格式 目标检测score_python_15
对于离散的PR曲线,有:
目标检测自有数据集转coco格式 目标检测score_目标检测自有数据集转coco格式_16
在多个分类中, 可以通过求平均得到mAP
目标检测自有数据集转coco格式 目标检测score_深度学习_17

验证指标的选择

  一般在查全率和查准率上有偏向的时候, 会选用F-SCORE, 例如推荐系统中,如果希望更精准的了解客户需求,避免推送用户不感兴趣的内容,precision 就更加重要;在疾病检测的时候,我们不希望查漏任何一项疾病,这时 recall(TPR) 就更重要。当两者都需要考虑时,F-score 就是一种参考指标。
  当面临数据 class imbalance 问题,即正负样本比例失衡,而且测试数据中的正负样本的分布也可能随着时间变化。根据计算公式可以推知,在测试数据出现imbalance 时 ROC 曲线能基本保持不变,而 PRC 则会出现大变化, 此时选用AUC指标作为评价指标会更理想.

例如yolov3中出现下来的指标

目标检测自有数据集转coco格式 目标检测score_python_18


除了AP以外还有其他的评价指标. 其中:

目标检测自有数据集转coco格式 目标检测score_机器学习_19: IOU阈值为0.5时AP测量值

目标检测自有数据集转coco格式 目标检测score_人工智能_20: IOU阈值为0.75时AP测量值

目标检测自有数据集转coco格式 目标检测score_深度学习_21: 像素面积小于 目标检测自有数据集转coco格式 目标检测score_人工智能_22的目标框的AP测量值

目标检测自有数据集转coco格式 目标检测score_目标检测自有数据集转coco格式_23: 像素面积在目标检测自有数据集转coco格式 目标检测score_python_24之间目标框的AP测量值

目标检测自有数据集转coco格式 目标检测score_python_25: 像素面积大于 目标检测自有数据集转coco格式 目标检测score_目标检测自有数据集转coco格式_26的目标框的AP测量值