ᕕ( ᐛ )ᕗ Jimyag's Blog

目标检测评估指标

检测精度
混淆矩阵(confusion matrix)

confusion matrix是用来总结一个分类器(classifier)结果的矩阵。对于k元分类,其实它就是一个k x k的表格,用来记录分类器的预测结果。

对于最常见的二元分类来说,我们的模型最终需要判断样本的结果是0还是1,或者说是positive还是negative。我们通过样本的采集,能够直接知道真实情况下,哪些数据结果是positive,哪些结果是negative。同时,我们通过用样本数据跑出分类型模型的结果,也可以知道模型认为这些数据哪些是positive,哪些是negative。

我们可以得到四个数据:

将这四个数据(指标)呈现在表格中,可以得到如下的矩阵

Precision精确率

在模型预测是positive的所有结果中,预测正确的比重。用你预测出来的正确的数量除以所有实际样本的数量。

​ $$ precision = \frac {TP}{TP+FP}$$

Recall召回率(sensitivity 敏感度)

真实值是positive的所有结果中,预测正确的比重。就是用你预测出来的正确的数量除以所有实际正确的数量。评估模型预测的全不全。

$$ recall = \frac {TP}{TP+FN}$$

Accuracy正确率

$$Accuracy = \frac {TP+TN}{TP+FN+FP+TN}$$

分类模型中所有判断正确的结果占总观测值的比重。

F1-Score

$$F1-Score = \frac{2}{(\frac{1}{Precision}+\frac{1}{Recall})}= \frac{2PrecisionRecall}{Precision+Recall}$$

F1-Score选择了调和平均数算法进行计算

F1-Score是对精确率与召回率进行平均的一个结果,指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差。

IoU(Intersection over Union)交并比

Iou为1则表示predicated和GT的bounding boxes完全重合。

在实际检测中我们可以设置一个IoU的阈值(threshold)来判断检测是有效的。

我们设置IoU为0.5

AP(Average Precision) And mAP

AP衡量学习出来的模型在每一个类别上的好坏。

mAP衡量的是学习出来的模型在所有类别上的好坏,mAP是取所有类别上AP的平均值。

AP计算,假设我们的数据集中共有五个待检测的物体,我们的模型给出了10个候选框,我们按照模型给出的置信度(confidence)由高到低对候选框进行排序。第二列表示预测是否正确,如果他与GT匹配且IoU>=0.5,则是正确的。FN在是有几个物体没有被检测出来

Rank Correct? TP FP FN Precision Recall
1 True 1 0 4 $\frac{TP}{TP+FP} = \frac{1}{1+0} = 1$ $\frac{TP}{TP+FN} = \frac{1}{1+4} = 0.2$
2 True 2 0 3 $\frac{TP}{TP+FP} = \frac{2}{2+0} = 1$ $\frac{TP}{TP+FN} = \frac{2}{2+3} = 0.4$
3 False 2 1 3 $\frac{TP}{TP+FP} = \frac{2}{2+1} = 0.67$ $\frac{TP}{TP+FN} = \frac{2}{2+3} = 0.4$
4 False 2 2 3 $\frac{TP}{TP+FP} = \frac{2}{2+2} = 0.5$ $\frac{TP}{TP+FN} = \frac{2}{2+3} = 0.4$
5 False 2 3 3 $\frac{TP}{TP+FP} = \frac{2}{2+3} = 0.4$ $\frac{TP}{TP+FN} = \frac{2}{2+3} = 0.4$
6 True 3 3 2 $\frac{TP}{TP+FP} = \frac{3}{3+3} = 0.5$ $\frac{TP}{TP+FN} = \frac{3}{3+2} = 0.6$
7 True 4 3 1 $\frac{TP}{TP+FP} = \frac{4}{4+3} = 0.57$ $\frac{TP}{TP+FN} = \frac{4}{4+1} = 0.8$
8 False 4 4 1 $\frac{TP}{TP+FP} = \frac{4}{4+4} = 0.5$ $\frac{TP}{TP+FN} = \frac{4}{4+1} = 0.8$
9 False 4 5 1 $\frac{TP}{TP+FP} = \frac{4}{4+5} = 0.44$ $\frac{TP}{TP+FN} = \frac{4}{4+1} = 0.8$
10 True 5 5 0 $\frac{TP}{TP+FP} = \frac{5}{5+5} = 0.5$ $\frac{TP}{TP+FN} = \frac{5}{5+0} =1$

我们可以看到:随着预测的增多Recall越来越大,Percision会上下波动

)

​ 在我们的例子里$AP = \frac{1}{11}(50.1+40.57+20.5) = 0.753$

#YOLOV5