目标检测算法的性能评估

目录

IoU和mAP

AP的计算方法(VOC2012)

另一种计算AP的方法(P-R图)

F1-Score


IoU和mAP

1. IoU

假设输入图像中只有一个物体,那么当我们对这个物体进行定位时,输出的结果应该是这个物体的长方形边界框。在下图中狗的实际位置是方形框B(面积定位B),如果定位不准可能是方形框A(面积定为A) 。而判断只有一个物体的图像定位的准确性,通常用交并比作为评价指标。IoU就是用A和B的交集,除以A和B的并集:IoU=\frac{A\cap B}{A\cup B} 。

如果定位准确,则方形框A和B完全重叠,则IoU=1。如果完全定位不到,方形框A和B完全没有重叠,则IoU在0-1内。通常如果IoU≥0.5,则认为定位比较准确。

目标检测算法的性能评估_第1张图片

 图1

2. mAP

在物体检测时,如果输入图像中有很多物体,就需要框出很多框,有些框可能准确的框住了一个物体,而有些框可能什么都没有。如果一个框框住了物体(IoU大于一定的阈值,如0.5)且分类正确,则认为该处图像检测准确。图像测试集中所有物体检测的准确性,通常由mAP来衡量。

某次检测的误差可以用以下两个指标来衡量:

召回率/查全率(Recall):选出的N个样本中,选对的k个正样本占总的M个正样本的比例,即:Recall=\frac{k}{M}=\frac{TP}{TP+FN} 。

精度/查准率(Precision):选出的N个样本中,选对的k个正样本的比例,即:Precision=\frac{k}{N}=\frac{TP}{TP+FP}

以一张图片的物体检测为例,假设检测算法框出来了N=1000个框,其中检测处理物体A的框有k=50个,而该图片中实际由M=100个物体A。根据定义,该例子中真正例为50,总正例为100,所有预测结果为1000。在该例子中,物体A的召回率为Recall=50/100=0.5,精度为Precision=50/1000=0.05。当增加框的数量时,可以提高召回率,但会降低精度。

而为了用一个指标来衡量测试集中不同类别的分类误差,同时既体现召回率,又体现精度,就需要用平均精度AP来表示。

假设有一个图像目标检测任务,有100张图像作为测试集,共有5种类别,其中已有25个已被人为标记好的类别为A的框,它的置信度由IoU来衡量,框的标记为1表示框内有物体,框的标记为0表示框内无物体。假设算法共检测出20个框,其置信度和标记如左图所示,按置信度排序后它的精度和召回率如右图所示:

目标检测算法的性能评估_第2张图片

 图2

AP的计算方法(VOC2012)

根据PASCAL Visual Object Classes Challenge 2012中平均精度AP的计算方法,对于每个召回率r,计算任意召回率\tilde{r}\geq r时的最大精度,作为召回率r对应的精度,如右表所示。

最终:

AP=(1+1+\frac{3}{4}+\frac{6}{13}+\frac{6}{13}+\frac{7}{17})*\frac{1}{25}=0.1819

mAP=\sum_{c=1}^{C}AP/c

(C表示总类别的个数)

另一种计算AP的方法(P-R图)

除了这种评估标准,我们还可以通过各召回率以及所对应的精度在坐标轴上画出P-R图。如下例所示(参考自网络):

目标检测算法的性能评估_第3张图片

 图3

然后便可以通过积分运算求出该类别下的AP:

AP=\int_{0}^{1}PdR

再对于总类别作平均即可:

mAP=\sum_{c=1}^{C}AP/c

F1-Score

除此之外,我们还可以用F1-Score来作为分类问题的一个衡量指标,它常作为多分类问题的最终指标,是精度和召回率的调和平均数,公式如下:

f1=2\tfrac{Recall*Precision}{Recall+Precision}

然后计算所有类别的平均值(记n为总类别的数量),记为F1,公式为:

F1=(\frac{1}{n}\sum f1)^{2}

部分参考:《智能计算系统》

你可能感兴趣的:(目标检测,算法,计算机视觉)