目标检测 — 评价指标

  评价指标:

  准确率 (Accuracy),混淆矩阵 (Confusion Matrix),精确率(Precision),召回率(Recall),平均正确率(AP),mean Average Precision(mAP),交除并(IoU),ROC + AUC,非极大值抑制(NMS)。

1、准确率 (Accuracy)

  分对的样本数除以所有的样本数 ,即:准确(分类)率 = 正确预测的正反例数 / 总数。

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

2、混淆矩阵 (Confusion Matrix)

  混淆矩阵中的横轴是模型预测的类别数量统计,纵轴是数据真实标签的数量统计。

  对角线表示模型预测和数据标签一致的数目,所以对角线之和除以测试集总数就是准确率。对角线上数字越大越好,在可视化结果中颜色越深,说明模型在该类的预测准确率越高。如果按行来看,每行不在对角线位置的就是错误预测的类别。总的来说,我们希望对角线越高越好,非对角线越低越好。

3、精确率(Precision)与召回率(Recall)

  

  一些相关的定义。假设现在有这样一个测试集,测试集中的图片只由大雁和飞机两种图片组成,假设你的分类系统最终的目的是:能取出测试集中所有飞机的图片,而不是大雁的图片。

  • True positives : 正样本被正确识别为正样本,飞机的图片被正确的识别成了飞机。
  • True negatives: 负样本被正确识别为负样本,大雁的图片没有被识别出来,系统正确地认为它们是大雁。
  • False positives: 假的正样本,即负样本被错误识别为正样本,大雁的图片被错误地识别成了飞机。
  • False negatives: 假的负样本,即正样本被错误识别为负样本,飞机的图片没有被识别出来,系统错误地认为它们是大雁。

  Precision其实就是在识别出来的图片中,True positives所占的比率。也就是本假设中,所有被识别出来的飞机中,真正的飞机所占的比例。

  

  Recall 是测试集中所有正样本样例中,被正确识别为正样本的比例。也就是本假设中,被正确识别出来的飞机个数与测试集中所有真实飞机的个数的比值。

  

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

  如果一个分类器的性能比较好,那么它应该有如下的表现:在Recall值增长的同时,Precision的值保持在一个很高的水平。而性能比较差的分类器可能会损失很多Precision值才能换来Recall值的提高。通常情况下,文章中都会使用Precision-recall曲线,来显示出分类器在Precision与Recall之间的权衡。

4、平均精度(Average-Precision,AP)与 mean Average Precision(mAP)

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

  mAP是多个类别AP的平均值。这个mean的意思是对每个类的AP再求平均,得到的就是mAP的值,mAP的大小一定在[0,1]区间,越大越好。该指标是目标检测算法中最重要的一个。

5、IoU

  IoU这一值,可以理解为系统预测出来的框与原来图片中标记的框的重合程度。 计算方法即检测结果Detection Result与 Ground Truth 的交集比上它们的并集,即为检测的准确率。

  IOU正是表达这种bounding box和groundtruth的差异的指标:

  

6、ROC(Receiver Operating Characteristic)曲线与AUC(Area Under Curve)

    

  ROC曲线:

  • 横坐标:假正率(False positive rate, FPR),FPR = FP / [ FP + TN] ,代表所有负样本中错误预测为正样本的概率,假警报率;
  • 纵坐标:真正率(True positive rate, TPR),TPR  = TP / [ TP + FN] ,代表所有正样本中预测正确的概率,命中率。

  对角线对应于随机猜测模型,而(0,1)对应于所有整理排在所有反例之前的理想模型。曲线越接近左上角,分类器的性能越好。

  ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

  ROC曲线绘制:

  (1)根据每个测试样本属于正样本的概率值从大到小排序;

  (2)从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本;

  (3)每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。

  当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。

  AUC(Area Under Curve)即为ROC曲线下的面积。AUC越接近于1,分类器性能越好。

  物理意义:首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

 7、非极大值抑制(NMS)

  Non-Maximum Suppression就是需要根据score矩阵和region的坐标信息,从中找到置信度比较高的bounding box。对于有重叠在一起的预测框,只保留得分最高的那个。

  (1)NMS计算出每一个bounding box的面积,然后根据score进行排序,把score最大的bounding box作为队列中首个要比较的对象;

  (2)计算其余bounding box与当前最大score与box的IoU,去除IoU大于设定的阈值的bounding box,保留小的IoU得预测框;

  (3)然后重复上面的过程,直至候选bounding box为空。

  最终,检测了bounding box的过程中有两个阈值,一个就是IoU,另一个是在过程之后,从候选的bounding box中剔除score小于阈值的bounding box。需要注意的是:Non-Maximum Suppression一次处理一个类别,如果有N个类别,Non-Maximum Suppression就需要执行N次。

原文地址:https://www.cnblogs.com/eilearn/p/9071440.html

时间: 2024-08-30 00:18:13

目标检测 — 评价指标的相关文章

目标检测评价指标

召回率(Recall),精确率(Precision),平均正确率(AP),交除并(IoU) 详见https://blog.csdn.net/syoung9029/article/details/56276567 有点代码在 https://blog.csdn.net/gubenpeiyuan/article/details/80284755 https://blog.csdn.net/qq_17550379/article/details/79875784 更详细的见https://blog.c

分类和目标检测的性能评价指标

对于深度学习的网络模型,希望其速度快,内存小,精度高.因此需要量化指标来评价这些性能,常用的指标有:mAP(平均准确度均值,精度指标), FPS(每秒处理的图片数量或每张图片处理需要时间,同样硬件条件下的速度指标) , 模型参数大小(内存大小指标). 1.mAP (mean Avearage Precision) mAP指的是各类别的AP平均值,而AP指PR曲线的面积(precision和Recall关系曲线),因此得先了解下precision(精确率)和recall(召回率),以及相关的acc

深度学习之目标检测常用算法原理+实践精讲

第1章 课程介绍本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 第2章 目标检测算法基础介绍本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-stage.two-stage.多任务网络).相关算法的基本流程.算法性能的评价指标.不同算法的优缺点和性能比较等,并结合实际的应用场景和案例来介绍目标检测算法的重要性和实用

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络 资源获取链接:点击这里 第1章 课程介绍 本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 1-1 课程导学 第2章 目标检测算法基础介绍 本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-sta

小目标检测相关资料备忘

1.评价指标 mean Average Precision(mAP) https://blog.csdn.net/zl3090/article/details/82740727 https://www.cnblogs.com/eilearn/p/9071440.html https://blog.csdn.net/yangzzguang/article/details/80540375 https://blog.csdn.net/wangdongwei0/article/details/8303

目标检测方法——SSD

SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot MultiBox Detector) 目录 作者 文章的选择原因 方法概括 方法细节 相关背景补充 实验结果 与相关文章的对比 总结 作者 文章的选择原因 性能好,single stage 方法概括 文章的方法介绍 SSD主要用来解决目标检测的问题(定位+分类),即输入一张待测图像,输出多个box的位置信息和类别信息 测试时,输入一张图像到SSD中,网络输出一个下图最右边的tensor(多维矩阵),对该矩阵进行

基于深度学习的目标检测研究进展

前言 开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么位置?这还不简单,图中有一个猫和一个人,具体的位置就是上图右侧图像两个边框(bounding-box)所在的位置.其实刚刚的这个过程就是目标检测,目标检测就是"给定一张图像或者视频帧,找出其中所有目标的位置,并给出每个目标的具体类别". 目标检测对于人来说是再简单不过的任务,但是对于计算机来说,它看到的是一些值为0~255的数组,因而很难直接得到图像中有人或者猫这种高层语义概念,也不清楚目标出现在

caffe框架下目标检测——faster-rcnn实战篇操作

原有模型 1.下载fasrer-rcnn源代码并安装 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 1)  经常断的话,可以采取两步: git clone https://github.com/rbgirshick/py-faster-rcnn.git 2)  到py-faster-rcnn中,继续下载caffe-faster-rcnn,采取后台跑: git submodule update --in

机器视觉中的目标检测

今天撇去不同目标追踪算法的框架,比如KCF.TLD.Mean Shift等,忽略它们繁琐的公式,看了对目标检测的基本理解.这里做一个简单的总结,目标检测的框架一般是下图这样的: 目标检测分为以下几个步骤: 1. 训练分类器所需样本的创建 训练样本一般包括正样本和负样本,正样本是指第一帧图中框定的待检测的目标,负样本是指其它不包含目标的任意图片(比如背景),所有的样本图片都被归一化同样的尺寸大小(比如20C20). 2. 特征提取 我们一般通过图像.视频或者波形获得的数据量是很巨大的,比如一个简单