首页 > 编程语言 >如何衡量目标检测算法的优劣

如何衡量目标检测算法的优劣

时间:2023-05-25 21:12:42浏览次数:40  
标签:mAP 预测 样本数 优劣 IoU 衡量 算法 负例 TP

如何衡量目标检测算法的优劣

目标检测(object detection)问题相对于一般AI分类问题更加复杂,不仅检测出目标,输出目标的类别,还要定位出目标的位置。分类问题中的简单accuray指标已经不能反映出目标检测问题结果的准确度,而mAP (Mean Average Precision)就是被用来衡量目标检测算法优劣的常用指标。

要理解什么是mAP,需要先澄清什么是Precision(查准率)和Recall(查全率)。

1. mAP相关概念

1.1 正例与负例

假设我们的分类目标只有两类,计为正例(positive)和负例(negtive)。T表示预测正确,F表示预测错误。

然后我们就能得到如下的四种情况:

(1)True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数);

(2)False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;

(3)False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;

(4)True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

1.2 P(精确率)

P 代表 precision,即精确率,又称为查准率。精确率表示预测样本中实际正样本数占所有正样本数的比例,计算公式为:

精确率 = 正确预测样本中实际正样本数 / 所有的正样本数

precision = TP/(TP+FP)

1.3 R(查全率)

R 代表 recall ,即召回率,召回率表示预测样本中实际正样本数占所有预测的样本的比例,计算公式为:

召回率 = 正确预测样本中实际正样本数 /实际的正样本数

Recall = TP/(TP+FN)

一般来说,召回率越高,准确率越低。

查全率和查准率通常是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

1.4 IoU指标

目标检测问题中,算法通常输出一个预测框来标识检出目标的位置,要衡量这个预测框与目标的实际位置(ground truth)的准确度,可以使用IoU指标。

交并比IoU(Intersection over union):交并比IoU衡量的是两个区域的重叠程度,是两个区域重叠部分面积占二者总面积(重叠部分只计算一次)的比例。目标检测中IoU就是预测框与实际框的交集除以并集。

我们可以设置一个IoU阈值(threshold),通常是0.5,预测结果可以分为:

(1)如果IoU >= 0.5

如果预测类别也正确,认为是一个好的预测,分类为TP

如果预测类别错误,认为是一个坏的预测,分类为FP

(2)如果IoU < 0.5, 认为是一个坏的预测,分类为FP

如果一个目标出现在图像中,但是算法未检出,分类为FN

TN(图像上所有不包含实际框和检测框的部分)通常计算中用不到。

1.4 ACC(准确率)

ACC 代表 Accuracy,即准确率,准确率表示预测样本中预测正确数占所有样本数的比例,计算公式为:

准确率 = 预测样本中所有被正确分类的样本数 / 所有的样本数

ACC = (TP+TN)/(TP+FP+TN+FN)

1.5 AP(平均精确度)

AP 代表 *Average Precision*,即平均精确度,是单个类别平均精确度

对于目标检测任务而言,每一个类都可以计算出其Precision和Recall,通过合理的计算,每个类都可以得到一条P-R曲线曲线下的面积就是AP的值。

img

计算面积:

img

即:AP = A1 + A2 + A3 + A4

2. mAP

2.1 mAP简介

而mAP是 Mean Average Precision 的缩写,是所有类别的平均精确度mAP ,即 均值平均精度

作为目标检测中衡量检测精度的指标。

计算公式为:mAP = 所有类别的平均精度求和除以所有类别。

2.2 mAP_0.5

即将IoU阈值设为0.5时求出的mAP。

2.3 mAP_0.5:0.95

表示在不同IoU阈值(从0.5到0.95,步长0.05)上的平均mAP。

标签:mAP,预测,样本数,优劣,IoU,衡量,算法,负例,TP
From: https://www.cnblogs.com/qqsj/p/17432937.html

相关文章

  • 选择排序算法之泛型优化
    选择排序算法工作原理:每一次从待排序的数据元素中选中最小的一个元素,然后,再从剩余未排序元素中继续寻找最小元素,将2个元素交换位置,就达到了已排序的元素一直是从小到大了。这个算法的时间复杂度为O(n²),空间复杂度为O(1)。/***@Author:翰林猿*@Description:选择排序*......
  • 代码随想录算法训练营第十五天|102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二
    【参考链接】102.二叉树的层序遍历 【注意】1.队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。而这种层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。2.遍历的时候要记录队列的大小。就可以知道哪些元素是第几层......
  • 2-3 改写二分搜索算法
    设a[0:n-1]是已排好序的数组。请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素的位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。测试数据(自己写的):61234567输出:i=5,j=-16123456-1输出:i=-1,j=......
  • PPO算法的一个简单实现:对话机器人
    综上,PPO算法是一种具体的Actor-Critic算法实现,比如在对话机器人中,输入的prompt是state,输出的response是action,想要得到的策略就是怎么从prompt生成action能够得到最大的reward,也就是拟合人类的偏好。具体实现时,可以按如下两大步骤实现首先定义4个模型:Actor(action_logits)、SFT(s......
  • 算法导论阅读记录
    \(\color{red}{不正确的算法如果其错误率可以被控制的情况下肯是很有用的}\)动态图解排序算法插入排序对少量元素的排序较为有效,每次选择一个待排序元素,依次与已排序集合比较伪代码```//从第2个元素开始比较for(i=2;i<length(arr);i++)在单个循环中保存每次的值,保证数据......
  • 衡量搜索相关性
    [Howintheheckdoyoumeasuresearchrelevance?](https://www.reddit.com/r/RedditEng/comments/te0gfz/how_in_the_heck_do_you_measure_search_relevance/)[MeasuringSearchRelevance,Part2:nDCGDeepDive](https://www.reddit.com/r/RedditEng/comments/y6idrl/......
  • 文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及
    文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)1.项目介绍目标:输入一篇文档,将文档进行关键信息提取,进行结构化,并最终组织成图谱组织形式,形成对文章语义信息的图谱化展示。如何用图谱和结构化的方式,即以简洁的方式对......
  • 非极大值抑制(NMS)算法详解
    NMS(nonmaximumsuppression)即非极大值抑制,广泛应用于传统的特征提取和深度学习的目标检测算法中。NMS原理是通过筛选出局部极大值得到最优解。在2维边缘提取中体现在提取边缘轮廓后将一些梯度方向变化率较小的点筛选掉,避免造成干扰。在三维关键点检测中也起到重要作用,筛选掉特......
  • 哈希算法
    哈希算法哈希算法哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。哈希算法最重要的特点就是:相同的输入一定得到相同的输出;不同的输入大概率得到不同的输出。哈希算法的目的就是为了验证原始数据是否被篡改。Java字符串......
  • 某验图片混淆算法还原
    文章只供技术交流使用,不放任何成品,如有侵害贵公司权益行为,联系我,立即予以删除抓包先完整的抓一次包简单分析register-slide----时间戳---->返回gt,challengegettype.php?----gt---->返回一串,包含各个js地址get.php?----gt,challenge,w---->返回一串json,里面有可疑......