目标检测(OD)——性能指标

网上关于目标检测的性能指标介绍还挺多的,可是真心很难找到一篇令人满意的文章。换句话说,当我看完这些文章对指标的介绍时(比如FP),我仍然不知道在一个具体问题中我应该怎么算。究其原因,有些文章的指标介绍是直接从“分类问题”指标计算生搬硬套到“检测问题”上的,或者有些是作者本身也并不太理解。这里我推荐一个github上的资源,里面的解释十分清晰合理(英文版):Object-Detection-Metrics

1. 基本指标
  • TP:正确检测(IOU>threshold)
  • FP:错检虚检(IOU<threshold);值得注意的是,若多个detections与一个ground truth 重叠且IOU>threshold,那么仅最大IOU对应detection为TP,其余均为FP~
  • FN:漏检(没有被检测的ground truth)
  • TN:并不应用,因为从含义上讲,TN是对负样本(一般为背景)的正确判断,也急速“corrected misdetection”;这在目标检测任务中是数不清的;也正是因此,我们并不计算TN~
  • threshold:一般为50%、75%、95%等
2. 进阶指标
  • Precision:精确度(查准率),“所识别目标”的正确率
    在这里插入图片描述
  • Recall:召回率(查全率),“识别所有目标”的能力
    在这里插入图片描述
3. 终极指标
  • PR 曲线:PR曲线是以Precision为纵坐标、Recall为横坐标、改变score阈值来获得不同的(recall,precision)点,从而绘制出的拟合曲线。PR曲线的使用是希望模型在Precision和Recall之间权衡;或者说,FP过大或FN过大都不是一个好模型~
    这里再多说两句,在检测任务中,我们会输出检测框的置信度(confidence score);我们假定置信度阈值σscore=0.9,那么我们只保留score>0.9的detections,并得到一对儿(recall, precision);当我们改变σscore,我们保留下的detections或许会变多,并得到新的(recall, precision)… …;通过不断进行此项工作,我们可以得到足够多的点,从而拟合出PR曲线 ~(另外需要注意的是,通过precision和recall的公式我们可以看出来,随着改变σscore,precision的分母是在不断变化(增大)的,而recall的分母一直恒定为ground truth)
    (下图原图在周志华老师《机器学习》中31页)
    在这里插入图片描述
  • AP:Average Precision,即在不同recall下,最大 precision的均值。
    • 11点插值:11点插值是在recall上等距取11个点 [0, 0.1, … , 1],在每个
      r上,取 “maximum precision whose recall value is greater than r”
      在这里插入图片描述
    • 所有点插值:类似地,我们可以使用所有点来替代“11点”;这时,我们可以用PR曲线的AUC(area under the curve)来近似代替AP。(见下图,红色虚线所谓面积即AUC)
      在这里插入图片描述
      在这里插入图片描述
      关于这部分内容,本文暂时介绍这么多,更多内容可以参见文章开头给出的github链接,里面有十分简单有意义的例子,以及源码、说明等~
发布了52 篇原创文章 · 获赞 4 · 访问量 2161

猜你喜欢

转载自blog.csdn.net/qq_42191914/article/details/103375512