0
点赞
收藏
分享

微信扫一扫

目标检测性能指标(完全版)

月白色的大狒 2022-01-16 阅读 82

目标检测任务的性能指标通常分为两大类,一方面要判断检测是否准确,另外一方面要评估算法是否足够高,具体如下:

  • 检测精度:PrecisionRecallAccuracyF1 ScoreIoU(Intersection over Union)P-R curve(Precision-Recall curve)AP(Average Precision)mAP(mean Average Precision)
  • 检测速度:前传耗时每秒帧数FPS(Frames Per Second)浮点运算量(FLOPS floating-point operations per second)

接下来,本文将会逐一对其解释并做比较。

先我们给出混淆矩阵示意图(confusion matrix):T、F、P、N分别是Ture(实际为真)、False(实际为假)、Positive(预测为真)、Negative(预测为假)的缩写,其中TP和TN都是正确的预测。有了混淆矩阵,我们就可以给出相应指标的计算公式,如图右所示。

  •  Precision即精度,用来评估预测的准不准,又称为查准率。其看的是预测列即图中蓝色圆圈。
  • Recall即召回率,用来评估预测的全不全,又称为查全率。其看的是预测行即图中红色圆圈。
  • Accuracy即准确度,是用正确检测框的个数(绿色的格子)除以全部检测框(所有格子相加)所得值。
  • F1 ScorePrecisionRecall调和平均。用调和平均数算法PrecisionRecall产出的结果进行平均,其取值范围为从0到1,1代表模型的输出结果最好,0代表模型的输出结果最差。
  • 通常情况下,我们将与Ground Truth的IoU≥0.5的检测框叫做TP(True Positive),将与Ground Truth的IoU<0.5的检测框叫做FP(False Positive)。如果网络没有检测到已存在的Ground Truth,则会给网络分配一个FN。TN是网络没有给出左边框的除了Ground Truth外图片的其他部分,而这部分对目标检测通常没有用处,因此我们通常不考虑TN。

接着我们说明AP(Average Precision) mAP(mean Average Precision),其在PASCAL VOC数据集和CoCo数据集中的含义是不一样的,对于PASCAL VOC数据集而言

  •  AP是网络在每个类别上的好坏。
  • mAP是网络在所有类别上的好坏,即所有类别的AP加和再除以类别数

接下来是重点:

  • 为什么有要有AP:因为仅仅通过PrecisionRecall无法评判目标检测网络的好坏。
  • 对于PASCAL VOC数据集而言,如果IoU>0.5,则预测框为TP。如果同一目标有多个IoU>0.5的检测框,则仅将其中一个作为TP,其余为FP(这一条CoCo也适应)。
  • 对于CoCo数据集而言,AP@0.5即为IoU=0.5时求出来的AP。AP@0.75即为IoU=0.75时求出来的AP。但是这个AP的含义是所有类别的AP,即PASCAL VOC中的mAP,而CoCo数据集中的mAP又有自己的定义。在CoCo数据集中,首先有一个定义:AP@[.5:.95],其含义是IoU有0.5、0.55、0.6、···、0.95一共十个值,因此可以求出10个CoCo所定义的AP(PASCAL VOC中的mAP)。最终,CoCo中所定义的mAP公式如下:

接下来用一个例子演示AP的计算

设数据集一共有5个目标,网络有10个预测,有正确的,也有错误的。根据预测的置信度对其进行排名,Rank1代表置信度最高,Rank2代表置信度最低。表中的第二列表示预测是否正确,且IoU≥0.5为正确的预测,否则为错误的预测。

  •  首先第一个预测为正确预测,因为只有一个预测,那么根据Precision的计算公式,分子为1,分母也为1,则其值为1。而Recall的分子为1,分母为5,因此其值为0.2。以此类推,可以计算所有的Precision和Recall。
  • Recall随着包含更多的预测而不断的增加,Precision会上下的波动。因此可以画出PR曲线如下图所示:

  •  AP在概念上可以视为在precision-recall曲线下方的面积。当然这个面积的计算有之前的11点法,也有2010年之后也就是现在默认的积分法(AUC曲线法)。如下图所示,其实就是补全为一个一个的矩形,然后算面积,这样算被认为更准确

  • 当然,整个AP计算表的顺序是按照置信度从上向下排列的,如果统计期间有更高的置信度,则要在中间插入。如下图所示,其中num_ob是数据集中的目标个数,GTID是标注框的索引,OB是检测是否正确(按IoU为0.5划分)。

  •  另外要注意的是:以上所提到的检测框均是通过非极大值抑制后所得到的检测框

检测速度评价指标

  • 前传耗时(ms):从输入一张图像到输出结果所耗费的时间。其包括前处理耗时(图像归一化),前向推理耗时和后处理耗时(非极大值抑制)。
  • 每秒帧数FPS(Frames Per Second):每秒钟能处理的图片的数量。
  • 浮点运算量(FLOPS floating-point operations per second):处理一张图像所需要的浮点运算数量。

其中,前传耗时和每秒帧数与软硬件的配置有很大的关系,而浮点运算量和具体的软硬件无关,因此可以公平地比较不同算法之间的检测速度。

最后给出CoCo评价指标的含义

  •  AP IoU=0.5即AP@0.5,也就是PASCAL VOC数据集中的mAP(所有类别AP加和再除以类别数),因为PASCAL VOC数据集中默认的IoU为0.5。
  • AP,即CoCo数据集所定义的mAP,是CoCo数据集中最中药的评价指标。其是10个AP的均值,也就是前面的那个公式:

  •  AP IoU=0.75即AP@0.75,是一个比较严格的指标,也就是目标的定位必须非常准。
  • AP Small即按尺度划分AP,如果应用场景是小目标检测则更应关注这个值
  • AR max=xx代表每张图片最多只提供xx个检测框时的查全率。其实很多时候max=10和max=100差别不大,因为所有图片不可能都有很多目标。
  • AR Small,同理AP Small。
举报

相关推荐

0 条评论