深度学习、目标检测情景中常见的模型评价指标

作者:RayChiu_Labloy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处


目录

一些前提概念

二分类混淆矩阵:

图: 

贴心的给出中文图:

四种情况的解释

常见指标

准确率ACC(accuracy)

概念: 

公式:

精确率precision和recall召回率

目标检测中精确率precision和交并比IoU的关系

精确率precision:

召回率recall:

精准率 VS 召回率

Precision-recall 曲线

AP

mAP

上边说的一些定义的总结

FPS帧率


一些前提概念

二分类混淆矩阵:

图: 

贴心的给出中文图:

四种情况的解释

        假设我们现在要做从有狗有猫的样本集中预测是狗的任务,自然狗就是正例 Positive,猫就是反例 negative,我们预测结果会出现以下四种情况对应上图的混淆矩阵:

TP 正类预测为正类(预测出狗的图片实际标注也是狗)
FN 正类预测为负类(预测出猫的图片实际标注是狗)
FP 负类预测为正类(预测出狗的图片实际标注是猫)
TN 负类预测为负类(预测出猫的图片实际标注是猫)

T、F就是预测对了或者是错了 

P、N就是正例和反例

常见指标

        目标检测器使用多种指标来评价检测器的性能,如:FPS、准确率ACC、精确率precision、召回率recall,以及最常用的mAP。

准确率ACC(accuracy)

概念: 

        准确率accuracy常见的评价指标,被分对的预测对的样本数除以所有的样本数,就拿上边预测猫狗的例子来说,预测对狗的数目和预测对猫的数目相加再除以狗和猫总的样本数就是准确率了,很容易理解。

        通常来说,准确率越高,分类器越好。

        准确率一般用来评估模型的全局准确程度,不能包含太多信息,无法全面评价一个模型性能。

        准确率有一个明显的缺点,就是数据的样本不均衡,这个指标是不能评价模型的性能优劣的。假如一个测试集有正样本99个,负样本1个。我们设计的模型是个无脑模型,即把所有的样本都预测为正样本,那么模型的Accuracy为99%,看评价指标,模型的效果很好,但实际上模型没有任何预测能力。

公式:

精确率precision和recall召回率

目标检测中精确率precision和交并比IoU的关系

        precision由IoU推导出来,后者的定义是预测边框和GT之间的交并比。然后,设定一个IoU阈值,结合一下混淆矩阵来判定检测结果是否正确:如果IoU大于阈值,则该结果分类为True Positive(TP),如果小于阈值,则分类为False Positive(FP)。如果模型没有检测出GT中存在的目标,则这些目标分类为False Negative(FN)。

精确率precision:

        针对预测,又称为查准率 

 

        TP+FP: 也就是模型预测出来的全体Positive, 也就是预测的图片中是正类的图片的数目

        TP: 也就是正类也被预测为正类的图片的个数

        总之:预测正确的图片个数占总的正类预测个数的比例(从预测结果角度看,有多少预测是准确的)

        特点:分类阈值较高,需要尽可能地把所需的类别检测准确,而不在乎这些类别是否都被检测出来。比如对于罪犯的预测,我们希望预测结果是非常准确的,即使放过了一些真正的罪犯,也不能错怪一个好人。其实从公式角度看就是尽量不要出现FP,不要出现判错的正例。

召回率recall:

        针对原始样本真实数据的一个评价指标,又称为查全率 

        TP+FN: 也就是全体完全满足图片标注的图片的个数

        TP:正类被预测为正类的图片个数

        总之:确定了正类被预测为正类图片占所有标注图片的个数(从标注角度看,有多少被召回)

特点:召回率分类阈值较低。尽量检测数据,不遗漏数据,所谓的宁肯错杀一千,不肯放过一个。比如对于地震的预测,希望每次地震都能被预测出来,这个时候可以牺牲precision。假如一共发生了10次地震,我们情愿发出1000次警报。从公式角度看就是尽量不要出现FN,也就是不能出现本来要地震就预测称不会出现地震

精准率 VS 召回率

关注点不同:

        召回率是覆盖面的度量,度量有多个真实正例被预测为正例。精度是精确性的度量,表示被预测为正例的示例中实际为正例的比例。

        不同的应用场景下,我们的关注点不同

相互矛盾:

  • recall和precision是相互矛盾的。如果想要更高的recall,那么就要让模型的预测能覆盖到更多的样本,但是这样模型就更有可能犯错,也就是说precision会比较低。如果模型很保守,只能检测出它很确定的样本,那么其precision会很高,但是recall会相对低。
  • recall(TPR)的分母是样本中正类的个数,因此样本一旦确定,其分母即为定值,也就是说recall的变化随分子增加而单调递增;precision的分母是样本中预测为正类的个数,其会随着分类阈值的变化而变化,因此Precision的变化受TP和FP的综合影响,不单调,变化情况不可预测。

Precision-recall 曲线

        改变识别阈值,使得系统依次能够识别前K张图片,阈值的变化同时会导致Precision与Recall值发生变化,从而得到曲线。

        如果一个分类器的性能比较好,那么它应该在Recall值增长的同时,Precision的值保持在一个很高的水平。而性能比较差的分类器可能会损失很多Precision值才能换来Recall值的提高。

        通常情况下,文章中都会使用Precision-recall曲线,来显示出分类器在Precision与Recall之间的权衡。

  PR曲线中precision为纵坐标,recall为横坐标,如果模型的精度越高,召回率越高,那么模型的性能越好。也就是说PR曲线下面的面积越大,模型的性能越好,面积也就是下边说的AP

 

         因此我们说,PR曲线反映了分类器对正例的识别准确程度和对正例的覆盖能力之间的权衡。

AP

   AP就是Precision-recall,称为平均精准率,是对不同召回率点上的准确率进行平均,在PR曲线图上表现为PR曲线下面的面积AP的值越大,则说明模型的平均准确率越高。

        AP就是Precision-recall 曲线下面的面积,通常来说一个越好的分类器,AP值越高。

mAP

        基于上边的定义,average precision(AP)是每一类的平均精度。然后,为了对比不同检测器,将所有类的AP平均,即可得到mAP这个单一指标。

mAP = 所有类别的平均精度求和除以所有类别

        mAP衡量的是的模型在所有类别上的好坏,是目标检测中一个最为重要的指标,一般看论文或者评估一个目标检测模型,都会看这个值,这个值是在0-1直接,越大越好。

mAP 的计算大致可以分解为以下几步:

mAP常见这样写:mAP@0.5  mAP@0.5:0.95

mAP@0.5即将IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均,即mAP

mAP@0.5:0.95 就更进了一步,表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP

上边说的一些定义的总结

  • mAP: mean Average Precision, 即各类别AP的平均值
  • AP: PR曲线下面积
  • PR曲线: Precision-Recall曲线
  • Precision: TP / (TP + FP)
  • Recall: TP / (TP + FN)
  • TP: IoU>0.5的检测框数量(同一Ground Truth只计算一次)
  • FP: IoU<=0.5的检测框,或者是检测到同一个GT的多余检测框的数量
  • FN: 没有检测到的GT的数量

FPS帧率

        每秒传输帧数(Frames Per Second)。
        FPS”也可以理解为我们常说的“刷新率(单位为Hz)”,例如我们常在CS游戏里说的“FPS值”。我们在装机选购显卡和显示器的时候,都会注意到“刷新率”。
        电影以每秒24张画面的速度播放,也就是一秒钟内在屏幕上连续投射出24张静止画面。有关动画播放速度的单位是fps,其中的f就是英文单词Frame(画面、帧),p就是Per(每),s就是Second(秒)。用中文表达就是多少帧每秒,或每秒多少帧。电影是24fps,通常简称为24帧。

        模型的fps指数就是模型每秒可以推理的图片帧率、图片的个数。

参考:【深度学习】Precision 和 Recall 评价指标理解 - pprp - 博客园

深度学习评价指标 - 贝壳里的星海 - 博客园

【如果对您有帮助,交个朋友给个一键三连吧,您的肯定是我博客高质量维护的动力!!!】 

版权声明:本文为CSDN博主「RayChiu_Labloy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/RayChiu757374816/article/details/121907614

RayChiu_Labloy

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

【深度学习】目标检测之评价指标

评价指标 时隔一年,又重新开始了学习之路。哈哈哈废话不多说,开始我最近整理的一些内容叭。今天要整理的知识点是目标检测领域常用的几个评价指标,准确率Precision,召回率Recall&

深度学习之目标检测YOLOv5

一.简介 YOLOV4出现之后不久,YOLOv5横空出世。YOLOv5在YOLOv4算法的基础上做了进一步的改进,检测性能得到进一步的提升。虽然YOLOv5算法并没有与YOLOv4算法进行性能比较与分析&#xff0