目标检测常用评价指标
本文主要参考陈恺大佬在B站商汤账号的介绍mmdetection的视频。
检测结果的正确/错误类型
真阳性(Ture Positive):算法检测到了某类物体(Positive),而实际图中也确实有这个物体,检测结果正确(True)。
假阳性(False Positive):算法检测到了某类物体(Postive),但是图中没有这个物体,检测结果错误(False)。 又称为误检
假阴性(False Negtive):算法没有检测到某类物体(Negtive),但是图中有这个物体,检测结果错误(False)。 又称为漏检
左下实线框中确实有只猫,也检测到了,即TP。
右下实线框内没有物体,但是检测到了,即FP。
右上虚线框内有屏幕,但是没有检测到,即FN。
实际上,二元的混淆矩阵是这样的:
一定要注意:初次面对这些概念时,两个字母表示四种可能性,可能会自然而然地认为前后字母分别代表真实值和预测值的真假,但实际上不是这样的。
P/N确实是表示预测值是真或假,而T/F可不是表示真实值的真或假。T/P 和 F/N 的真正含义是:
T/F:表示预测的对不对,代表的是预测值与真实值之间的关系P/N:表示预测值是真还是假,代表模型对某个样本的预测结果
这个一定要弄清楚,别被混淆矩阵把自己搞“混淆”了。
准确率Precision与召回率Recall
召回率=正确结果总数真值框总数,即Recall=TPTP+FN召回率=\frac{正确结果总数}{真值框总数}, \ \ 即\ \ \ Recall=\frac{TP}{TP+FN} 召回率=真值框总数正确结果总数,即Recall=TP+FNTP
准确率=正确结果总数检测框总数,即Precision=TPTP+FP准确率=\frac{正确结果总数}{检测框总数}, \ \ 即\ \ \ Precision=\frac{TP}{TP+FP} 准确率=检测框总数正确结果总数,即Precision=TP+FPTP
真值框总数与检测算法无关,因此只需将检测结果区分为正确(TP)和误检(FP)即可计算recall和precision。
两种极端的情况:
检测器将所有的锚框都判断为物体,此时召回率 Recall≈100%Recall\approx100\%Recall≈100% ,但是大量的背景都被误检为物体,FP很高,导致准确率很低。检测器只将置信度最高的一个框检测为物体,当然有很大的几率是正确的,准确率 Precision≈100%Precision\approx100\%Precision≈100% ,但是大量的物体被漏检为背景,FN很高,导致召回率很低。
最理想的情况当然是召回率和准确率都为 100%,但在算法能力有限的现实情况下,我们应当尽可能地平衡二者。
通常做法是将检测框按照置信度排序,并设置一个置信度阈值,仅输出置信度大于该阈值的若干个框。
PR曲线和AP值
以上的做法无疑会受到阈值的选取的影响,为了得到和阈值无关的评分,我们可以遍历阈值,并对召回率和准确率求平均。
具体做法:
检测框按照置信度排序,取前 KKK 个框计算Precision和Recall。
遍历 KKK 从1到全部检测框,将得到的Precision和Recall绘制在坐标系上,得到PR曲线。
定义 Average Precision = Precision对Recall的平均值,即PR曲线下的面积,作为检测器的性能衡量指标。
AP=∫01P(R)dRAP = \int_0^1P(R)dR AP=∫01P(R)dR
Mean AP
分类别统计AP,并按类别平均得到Mean AP。
Mean AP的完整计算流程:
将数据集中全部图像的预测框按预测类别分类。对于某一类别的所有检测框,计算AP: 按置信度将该类别所有检测框排序逐一与真值框比较,判定TP或FP,并绘制PR曲线对PR曲线插值,计算AP 求所有类别的AP的平均,得到Mean AP。
mAP=1C∑i=1C∫01P(R)dRmAP=\frac{1}{C}\sum_{i=1}^C\int_0^1P(R)dR mAP=C1i=1∑C∫01P(R)dR CCC 是全部类别数。
部分数据集(如COCO),还需要在不同的IOU阈值下计算Mean AP并平均,作为最终评分,这可以衡量检测器在不同定位精度要求下的性能。
AP、AP50、AP75
以上我们讨论的是在固定 IOU 下的 mAP 结果,我们也提到,有时会对不同的 IOU 也做测试,并记录性能。我们经常在论文中见到 AP、AP50、AP75 这样的指标就是指的在不同的 IOU 下的 mAP 结果。
具体来说:
AP50、AP75:这样在 AP 后面带数字的,很好理解,即分别是在 IOU 为 50、75 下的 mAP 值。AP:这样不带数字的 AP 指标通常指的是 AP@50:5:95,表示 IOU 从 50 ,取到95,步长为5(即50, 55, 60, 65, …, 90, 95),分别计算这些 IOU 值下的 mAP,再求平均。
如果觉得《错误类型 混淆矩阵及目标检测常用评价指标》对你有帮助,请点赞、收藏,并留下你的观点哦!