YOLO是最先进的目标检测模型之一。目标检测问题相比分类问题要更加复杂,因为目标检测不仅要把类别预测正确,还要预测出这个类别具体在哪个位置。

我将目标识别的评估指标总结为两部分,一部分为预测框的预测指标,另一部分为分类预测指标。

预测框的预测指标——IOU(交并比)

预测框的准确率用IOU来反映。交并比是目标检测问题中的一项重要指标,它在训练阶段反映的是标注框与预测框的重合程度,用于衡量预测框的正确程度。

如上图所示,绿色框为标注框,是在标注数据集时人为标注的框;红色框为预测框,是训练的模型预测出的预测框;中间的橙色区域则为两个框的重合区域。而判断这个模型预测框预测的准不准,就要看IOU了。

如上图所示,IOU指的就是两框的重叠部分的面积,与两框总共部分的面积之比。IOU又称交并比,从字面意思也可以理解,IOU就是两框交集与并集之比。IOU越接近于0,两框重叠越少;IOU越接近于1,两框的重叠程度越高,当IOU等于1时,两框完全重叠。

IOU要搭配IOU阈值一起使用。

IOU阈值一般被定为0.5,当两框的IOU大于阈值时,则判断预测框预测正确。IOU阈值可以修改,IOU阈值越高,则判断预测框预测正确的条件越严格。

分类预测指标

混淆矩阵

在机器学习和深度学习中,将分类任务的预测结果分为以下四种,被称作混淆矩阵:

True Positive(TP):预测出的为正例,标签值也为正例,预测正确

False Negative(FN):预测出的为负例,标签值为正例,预测错误

False Positive(FP):预测出的为正例,标签值为负例,预测错误

True Negative(TN):预测出的为负例,标签值为负例,预测正确

我在学习这块知识的时候,一直有一个疑问。在多分类的任务中,如何界定某个类别是正例或负例?后来才理解,这里的正例和负例其实只是针对某一类别而言的。例如,coco数据集有80个类别,针对person类而言,person类别就是正例,其他79个类别就是负例;针对car类而言,car类别就是正例,其他79个类别就是负例。

Precision(精度)

Precision指的是精度,Precision的定义如下:

根据定义,Precision的分母是TP与FP之和,TP是预测为正例,真实值也为正例的个数;FP是预测为正例,实际为负例的个数。

分析式子可知,Precision关心的是预测的正例,以及真实的正例和负例。当Precision越大时,FP越小,此时将其他类别预测为本类别的个数也就越少,可以理解为预测出的正例纯度越高。

Recall(召回率)

Recall指的是召回率,Recall的定义如下:

根据定义,Recall的分母时TP与FN之和,TP是预测为正例,真实值也为正例的个数;FN是预测为负例,实际是正例的个数。

分析式子可知,Recall关心的是预测的正例和负例,以及真实的正例。当Recall越大时,FN越小,此时将正例预测为负例的个数越少,可以理解为把全部的正例挑出来的越多。

P-R曲线

P-R曲线即为分别以Precision与Recall为坐标围成的曲线。如下图所示,这是一张我自己训练过程中产生的P-R曲线:

P-R曲线与坐标轴围成的面积,可作为衡量一个模型预测结果的参考。若一个模型的P-R曲线完全将另一模型的P-R曲线包裹,那么这个模型预测结果一定优于另一模型。

F1-score

如果有不同的几个模型,他们有着不同的Precision与Recall,那么我们应该如何挑最优的模型?

最直接的办法就是取Precision与Recall的平均值,但取平均值并不可取。因为有时二者有一个极高,一个极低时,这样平均值是高的,但实际的效果并不会好。这时就要用F1-score来权衡Precision与Recall的平均值。

化简得

根据F1-score的定义式可知,F1-score也是取平均值,只不过强调的是二者之间的较小值。通过F1-score的方式来权衡Precision与Recall,可以有效的避免短板效应,这在数学上被称为调和平均数。

mAP@0.5

有了预测框的预测指标与分类预测的指标,接下来将二者结合即为评价目标检测模型的指标。

AP

AP(average precision 平均精度):虽然名为平均精度,但AP的计算方法并不是计算Precision的平均值,而是计算每个类别的PR曲线与坐标轴围成的面积,可以用积分的方法进行计算。如果一个模型的AP越大,也就是说PR曲线与坐标轴围成的面积越大,Precision与Recall在整体上也相对较高。

mAP

mAP(mean of Average Precision) : 对所有类别的AP值求平均值。AP可以反映每个类别预测的准确率,mAP就是对所有类的AP求平均值,用于反映整个模型的准确率。

mAP@0.5

在YOLO模型中,你会见到mAP@0.5这样的表现形式,这种形式表示在IOU阈值为0.5的情况下,mAP的值为多少。当预测框与标注框的IOU大于0.5时,就认为这个对象预测正确,在这个前提下再去计算mAP。一般来说,mAP@0.5即为评价YOLO模型的指标。

mAP@[0.5:0.95]

YOLO模型中还存在mAP@[0.5:0.95]这样一种表现形式,这形式是多个IOU阈值下的mAP,会在q区间[0.5,0.95]内,以0.05为步长,取10个IOU阈值,分别计算这10个IOU阈值下的mAP,再取平均值。

YOLO 模型的评估指标——IOU、Precision、Recall、F1-score、mAP相关推荐

  1. 性能评估指标(Precision, Recall, Accuracy, F1-measure)

    文章目录 一个例子 Precision 精准率 召回率 其他 Reference 一个例子 首先我们看下面的一个表格,也是经典的二分类问题,常常会看见的表格: 如上表所示,行表示预测的label值,列 ...

  2. 机器学习模型常用评价指标(Accuracy, Precision, Recall、F1-score、MSE、RMSE、MAE、R方)

    前言 众所周知,机器学习分类模型常用评价指标有Accuracy, Precision, Recall和F1-score,而回归模型最常用指标有MAE和RMSE.但是我们真正了解这些评价指标的意义吗? ...

  3. 【Pytorch-从一团乱麻到入门】:3、模型效果评估指标:ROC、AUC、precision、recall

    在构建模型中,我们经常会用到AUC.ROC等指标来进行模型效果评估 ROC全称是"受试者工作特征"(Receiver Operating Characteristic).ROC曲线 ...

  4. R语言使用yardstick包的pr_curve函数评估二分类(binary)模型的性能、并使用autoplot函数可视化模型的PR曲线(precision recall)

    R语言使用yardstick包的pr_curve函数评估二分类(binary)模型的性能.并使用autoplot函数可视化模型的PR曲线(precision recall) 目录

  5. 目标检测模型的评估指标mAP详解(附代码)

    https://zhuanlan.zhihu.com/p/37910324 对于使用机器学习解决的大多数常见问题,通常有多种可用的模型.每个模型都有自己的独特之处,并随因素变化而表现不同. 每个模型在 ...

  6. 模型效果评估指标(ROC、AUC/KS、Lift、PSI)

    以二分类问题为例 混淆矩阵(Confusion Matrix) 对测试集数据进行预测,得到下列混淆矩阵中的数据 注:TP.FN.FP.TN以预测的结果是否准确来命名. 预测模型评估指标的本质是从模型预 ...

  7. 关于模型的评估指标(超详细)

    文章目录 正负样本的选择 标准评估指标 回归问题的评估指标 SSE 和方差 均方误差(MSE) 均方根误差(RMSE) R Squared 分类问题的评估指标 错误率 召回率(查全率) 精确率(查准率 ...

  8. [机器学习与scikit-learn-51]:模型评估-图解回归模型的评估指标MSE、MAE、RMSE、R2、RSS与代码示例

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  9. 模型常用评估指标详解

    简介 模型评估通常作为建模的最后一步,用于评估模型效果,判别该模型是否达到预期.但实际模型评估指标需要在建模的第一步确定,即确定目标函数.凡事都得有个目标,才知道努力的(拟合)方向,否则枉然. 连续值 ...

最新文章

  1. 高德地图markevents_GitHub - mingxuWang/Map: 高德地图API二次封装
  2. Tensorflow框架是如何支持分布式训练的?
  3. 德国虚拟主机 linux,细说Linux虚拟主机的搭建及配置
  4. ASP.NET之父强烈推荐,无可争议的圣经级巨著
  5. Codeforces Beta Round #17 D. Notepad (数论 + 广义欧拉定理降幂)
  6. count/distinct/group by的用法总结
  7. Content-type的说明即HTTP请求头的类型整理
  8. 交换两个局部变量Integer的值
  9. python sql语句生成_python Django 生成sql语句
  10. python语言语句块标记是_Python的基本语法——语句块
  11. ip_conntrack: table full, dropping packet的问题
  12. 强迫症告辞!三星Galaxy S11这“凌乱”的后置5摄,感受下
  13. php 发送网络命令,linux命令经典用法与配置收录
  14. MapReduce在Map端的Combiner和在Reduce端的Partitioner
  15. mysql 全文所有_MySQL中的全文搜索
  16. 单包授权(spa)简介
  17. Node.js 读取图片
  18. 计算机毕业设计之java+ssm乐轩公司订餐系统
  19. android英雄无敌 中文版下载地址,英雄无敌3手机版
  20. 简析美颜sdk中的人脸识别算法

热门文章

  1. 计算机算法的控制结构顺序结构,第3章 算法与控制结构.pdf
  2. Virtualbox源码分析16 APIC虚拟化1 APIC概念和初始化
  3. 从数据库中查询列表倒序排列(按照时间顺序)
  4. 哔哩哔哩2020校园招聘算法笔试卷(二)
  5. ArcGIS构建缓冲区,合并两个重叠的面
  6. python程序设计思维导图_程序设计 思维导图
  7. 怎么给PPT文档加密
  8. 【10w字】超详细【百分百拿offer】的面试教程,集合5000多家软件测试公司面试题。
  9. 2022年中国互联网数据中心(IDC)行业产业链及市场现状分析(附国家绿色数据中心公示名单)[图]
  10. js点击左右按钮来切换多张图片