目标检测评价指标

混淆矩阵(confusion matrix)可谓是贯穿了整个目标检测评价体系,衍生了一系列的目标检测评价指标,如精确率(precision),准确率(accuracy),召回率(recall),F1-score,ROC-AUC指标,Ap(平均正确率),MAp(mean average precisioon),IOU(intersect over union)等一系列常见评价指标。下面将会针对这些评价指标展开一一介绍。

混淆矩阵(Confusion matrix)


TP:真实为正样本,预测也为正样本。又称(真阳性)
FN:真实为正样本,预测为负样本。又称(假阴性)
FP:真实为负样本,预测为正样本。又称(假阳性)
TN:真实为负样本,预测为负样本。又称(真阴性)

通常情况下,我们希望TP+TN越大越好(预测正确的概率),FP+FN越小越好(预测错误的概率)

精确率(Precision)召回率(Recall)

Precision:预测为正的样本(TP+FP)中,真实为正(TP)的比例 == TPTP+FP\dfrac{TP}{TP+FP}TP+FPTP​

Recall:真实为正(TP+FN)的样本中,预测为正(TP)的比例==TPTP+FN\dfrac{TP}{TP+FN}TP+FNTP​

true positives:TP(真实为正,预测为正)
false positives:FP(真实为负,预测为正)
false negatives:FN(真实为正,预测为负)
true negatives:TN(真实为负,预测为负)

Recall=100%,表示真实为正的样本中,全部被检测出来了。举个栗子:现在有100个人,经过检测我们完美的检测出100个人,这样我们的召回率就为100%,表示任一目标都没有漏检。
Precision=100%,表示预测为正的样本同时也真实为正。现在我们预测出100个人,后来经过与真实样本对比,发现真实数据中也恰好100个人。表示我们成功识别出所有目标,没有发生虚警。
这两个指标我们都希望越大越好,都处于【0,1】之间。

准确率(Accuracy)

Accuracy:将正、负样本(TP+TN)分别检测出来与总体样本(TP+FP+FN+TN)的比例==TP+TNTP+FP+FN+TN\dfrac{TP+TN}{TP+FP+FN+TN}TP+FP+FN+TNTP+TN​

F1–score

F1−score=21P+1R=2PRP+RF1-score=\dfrac{2}{\frac{1}{P}+\frac{1}{R}}=2\dfrac{PR}{P+R}F1−score=P1​+R1​2​=2P+RPR​
通常我们采取精确率与召回率两个指标来衡量一个模型的好坏,因为有两个指标的参与,我们需要对其分配权重,通常我们采取0.5/0.5的权重方式。但在实际情况中两个指标呈现相互冲突的情况。在增大样本的情况下,recall往往呈现越来越高的趋势,而precision往往却呈现出逐渐降低的趋势

ROC-AUC

在目标检测任务中,ROC曲线使用尤为广泛。ROC曲线横纵坐标系由FPR(假阳性率)与TPR(真阳性率)构成。

FPR=FPFP+TN,TPR=TPTP+FNFPR=\dfrac{FP}{FP+TN},TPR=\dfrac{TP}{TP+FN}FPR=FP+TNFP​,TPR=TP+FNTP​
这里就引入了一个问题,前面我们已经引入了多几种评价指标,为何还要使用ROC曲线呢,其横纵坐标系其实与上述指标极为相近。这里ROC不易受样本波动的优越性能便表现出来了。

实际问题中,我们往往受到样本不均衡带来的干扰。很多曲线由于正负样本的分布情况不同而产生了诸多的变动,但ROC
曲线却能很好的抵消掉这一干扰。假设我们现在增大负样本,来造成一种样本不均衡的情况。TPR只考虑预测为正样本
的目标,因此不受影响,FPR中,FP与TN随着负样本的增加总体呈现出等比例增加的情况,因此大体上FPR也呈现出不变
的情形。因此ROC曲线即使在样本出现不均衡的情况依旧具有较好的鲁棒性。

AUC指标指ROC曲线与横纵坐标所围成的面积,是一个0-1的概率值。面积大小反映了模型的分类能力,面积越大分类效果越好。
AUC=1:理想分类器
AUC∈[0.7,1]:较好分类器
AUC=0.5:乱猜
AUC<0.5:还不如乱猜

平均正确率(AP)

image cites from https://blog.csdn.net/Gentleman_Qin/article/details/84519388

AP:average precision,平均正确率,就是P(Precision)-R(Recall)曲线所包围的面积。0-1区间,面积越大,分类器模型效果越好。Ap计算的是单个类别的平均正确率。
MAP:mean average precision,如上图所示,A,B,C三个类别,有三个Ap,MAP=APa+APb+APc3MAP=\dfrac{AP_a+AP_b+AP_c}{3}MAP=3APa​+APb​+APc​​

在Pascal VOC 挑战中,还采取了另外一种Ap计算方式。就是我们论文上常见的top-N评估方式。通过事先设定N个Recall阈值,通过绘制P-R曲线。在每一个召回阈值下都对应着一个最高的Precision,这样我们就可以得到N个Precision。最终将Precision求和再与样本数N取均值得到该类别的AP值。(VOC2007中使用,VOC2012采取计算面积的方式)

补充

在COCO数据中,还有APsmall、APmedium、APlargeAP^{small}、AP^{medium}、AP^{large}APsmall、APmedium、APlarge,针对于样本中不同大小的目标分别计算其AP值。
small:<32232^2322
medium:322<96232^2<96^2322<962
large:962>96^2>962>

IOU(Intersect over union)

在进行目标检测任务中,我们预测出的目标边界框几乎不可能与真实边界框完全一致。通常情况下我们只需要让我们预测的边界框与真实的边界框有较大的的重合度即可。

IOU:0处于0-1之间,IOU=A⊓BA⊔BIOU=\dfrac{A\sqcap{B}}{A\sqcup{B}}IOU=A⊔BA⊓B​,与杰卡德系数有异曲同工之处。

def calculate_iou(pre_bbox,groud_bbox):"""calculate intersection over union between pre_bbox and ground_bboxparams:pre_bbox:{'xmin':xxx,'ymin':xxx,'xmax':xxx,'ymax':xxx}groud_bbox:{'xmin':xxx,'ymin':xxx,'xmax':xxx,'ymax':xxx}return :iou"""# 检测xmin,ymin,xmax,ymax是否符合实际情况assert pre_bbox['xmin']<pre_bbox['xmax'] and groud_bbox['xmin']<groud_bbox['xmax']assert pre_bbox['ymin']>pre_bbox['ymax'] and groud_bbox['ymin']<groud_bbox['ymax']# 获取intersection area coordinatesx_min = max(pre_bbox['xmin'],groud_bbox['xmin'])y_min = max(pre_bbox['ymin'],groud_bbox['ymin'])x_max = min(pre_bbox['xmax'],groud_bbox['xamx'])y_max = min(pre_bbox['ymax'],groud_bbox['ymax'])# calculate areasintersection_area = (x_max-x_min)*(y_max-y_min)pre_bbox_area = (pre_bbox['max']-pre_bbox['xmin']+1)*(pre_bbox['ymax']-pre_bbox['ymin']+1)groud_bbox_area = (groud_bbox['max']-groud_bbox['xmin']+1)*(groud_bbox['ymax']-groud_bbox['ymin']+1)# calculate iouiou = intersection_area/(pre_bbox_area+groud_bbox_area-intersection_area)assert iou>=0.0 and iou<=1.0return iou
上述function简单计算了两个bbox之间的IOU,有一个细节需要注意一下,我们计算pre_bbox与groud_bbox时
需要坐标之间有+1的操作。这里的+1操作其实就是和python索引有关,比如1080P像素度为1920*1080,索引从
(0-1919,0-1079)因此我们在计算覆盖的像素面积时需要+1.
如计算(0,0)与(1919,1079)整张1080P面积时,应为(1919-0+1)*(1079-0+1) = 1920*1080

目标检测评价指标合集相关推荐

  1. 轻量级目标检测大合集

    目录 YOLOX Yolov5-Lite yolo-fastest Yolo-FastestV2 YOffleNet nanodet PPYOLO Tiny 轻量级目标检测GiraffeDet!阿里最 ...

  2. CVPR2023 目标检测论文合集

    国际计算机视觉与模式识别会议(CVPR)是计算机科学领域中的顶级会议之一,也是图像处理.机器学习.人工智能等多个领域的交叉学科会议. 每年的CVPR会议都会有大量的论文投稿和学术交流活动,其中涵盖了包 ...

  3. Python 深度学习目标检测评价指标 :mAP、Precision、Recall、AP、IOU等

    目标检测评价指标: 准确率 (Accuracy),混淆矩阵 (Confusion Matrix),精确率(Precision),召回率(Recall),平均正确率(AP),mean Average P ...

  4. 信度和效度经典例子_浅析经典目标检测评价指标--mmAP(一)

    大家好,我是旷视科技南京研究院研究员赵博睿,主要研究领域为目标检测.今天和大家聊聊mmAP的那些事- 目标检测是计算机视觉领域的一项基础问题,在许多智能场景的落地应用中目标检测通常都是视觉感知的第一步 ...

  5. 目标检测评价指标(一文看懂)

    目标检测评价指标之--Precision,Recall,IOU,AP,mAP   看了一些介绍目标检测评价指标的文章,在此做一个小总结,供大家参考. 文章目录 目标检测评价指标之--Precision ...

  6. 【目标检测评价指标】

    目标检测评价指标 1.正例和负例的定义 2.混淆矩阵(Confusion Matrix) 3.PR曲线 4.F1 score 参考资料: https://github.com/rafaelpadill ...

  7. 目标检测系列1—目标检测评价指标IOU

    目标检测评价指标IOU 什么是IOU IOU的特点 全部实现 什么是IOU 神经网络的应用还有许多,目标检测就是其中之一,目标检测中有一个很重要的概念便是IOU. IOU是一种评价目标检测器的一种指标 ...

  8. 目标检测评价指标mAP

    目标检测评价指标 mAP是目标检测中常用的评价指标之一,在论文中可以经常看到.全称是mean average precision (mAP)即各个类别AP的平均值.常用的评测指标有: mAP: mea ...

  9. 目标检测评价指标汇总—mAP,PR曲线,F1分数,FPPI,log-average miss rate等

    对于了解目标检测的评价指标是很重要的,否则自己不懂这个代表什么意思,如何调参.网上有太多资料,可是杂乱,甚至有一乱说,记录下自己所学,总结下,也分享出来,也便于自己自己复习. 分为三块,1.解释相关概 ...

最新文章

  1. 传统计算机视觉技术落伍了吗?不,它们是深度学习的「新动能」
  2. 【在还原SQL Server数据库时发生对于服务器“XXX”操作系统错误】很实用的解决方案...
  3. python获取系统信息模块psutil
  4. tf.placeholder使用错误
  5. Tex2Word vs Word2Tex
  6. Buildroot构建指南——Linux内核
  7. 流媒体服务器搭建实例——可实现录音,录像功能
  8. SAP License:SAP ECC6安装系列二:安装前的准备工作
  9. 详解印染产品纬斜疵病产生原因及如何预防
  10. java:高速排序算法与冒泡排序算法
  11. 吴恩达教授机器学习课程笔记【八】- Part 8 感知器和大间隔分类器(在线学习感知器算法错分类次数上界及其证明)
  12. mysql passwor authen_Navicat连接虚拟机的MySQL时 提示“Password authentication failed”
  13. 【PyQt5与Requests爬虫】设计图形界面(GUI)实现小说下载器-进度条显示
  14. 使用Python构造数据包
  15. js和vue调用百度地图,实现搜索功能
  16. SQL SERVER(32)Transact-SQL概述
  17. 更改Windows桌面位置为D盘
  18. English--辅音
  19. 五大常用项目管理工具软件-也支持敏捷开发
  20. Hadoop安装准备

热门文章

  1. 【问链-Eos公开课】第一课 EOS简介
  2. 微信小程序中箭头函数的使用实例
  3. 读吴宇虹之《泥板上不朽的苏美尔文明》
  4. 运动蓝牙耳机推荐,五款适合运动健身的运动蓝牙耳机推荐
  5. mesa调用主线分析与理解
  6. 次时代游戏场景制作方法(干货)
  7. 四、Zabbix监控-SNMP方式监控网络设备、服务器
  8. 手机调试 H5 vue-devtools weinre fiddler
  9. 竟是这4个人创造了全世界80%的软件bug!
  10. 水滴软件 智商测试,“首发水滴”的小米play,听说是用来检测智商的“妈妈机”?...