【3D目标检测】常见相关指标说明

一、mAP指标

mean Average Precision(平均精度均值),它是目标检测和信息检索等任务中的重要性能指标。mAP 通过综合考虑精度和召回率来衡量模型的总体性能。

1.1 精度(Precision)

表示检索到的目标中实际为正确目标的比例,计算公式为

1.2 召回率(Recall)

表示所有目标中成功被检索到的比例,计算公式为

1.3 平均精度(AP)

  • 平均精度表示的是在不同的召回率阈值下,计算模型的平均精度。通常通过绘制 PR 曲线(Precision-Recall 曲线)计算。

  • PR 曲线的横轴为召回率,纵轴为精度AP 是 PR 曲线下的面积,即对该曲线进行积分的结果。

1.4 mAP的计算

  • mAP 是对多个类别的 AP 求平均得出的数值。

  • 如果目标检测任务中包含 N 个类别,则计算每个类别的 AP,并对所有类别的 AP 取平均,即:\mathrm{mAP}=\frac{\sum_{i=1}^N\mathrm{AP}_i}{N}

1.5 mAP在2D目标检测的计算

在目标检测中,通常设定一个置信度阈值,用于判定检测结果是否被认为是正例(即预测的目标)。常见的阈值有0.5,即 IOU(交并比)≥ 0.5 被视为有效检测。

比如mAP@0.5表示将IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均得到mAP;

mAP@.5:.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。

def ap_per_class(tp, conf, pred_cls, target_cls, eps=1e-16):i = np.argsort(-conf)tp, conf, pred_cls = tp[i], conf[i], pred_cls[i]unique_classes, nt = np.unique(target_cls, return_counts=True)nc = unique_classes.shape[0]ap = np.zeros((nc, tp.shape[1]))p, r = np.zeros((nc, 1000)), np.zeros((nc, 1000))for ci, c in enumerate(unique_classes):i = pred_cls == cn_l = nt[ci]n_p = i.sum()if n_p == 0 or n_l == 0:continuefpc = (1 - tp[i]).cumsum(0)tpc = tp[i].cumsum(0)recall = tpc / (n_l + eps)precision = tpc / (tpc + fpc)for j in range(tp.shape[1]):ap[ci, j], _, _ = compute_ap(recall[:, j], precision[:, j])return ap.mean(0)

结合YOLO仓库中的代码进行说明,

np.argsort: 按检测置信度对预测框排序。

unique_classes: 获取数据集中存在的目标类别。

compute_ap 函数:计算PR曲线,并从中得到每个类别的平均精度。通过曲线下面积得到AP,计算上是使用插值方法在固定的召回率点(例如 [0, 0.01, 0.02, ..., 1])计算精度值,并通过梯形法则对这些点进行积分,得到 AP。

def compute_ap(recall, precision):mrec = np.concatenate(([0.0], recall, [1.0]))mpre = np.concatenate(([1.0], precision, [0.0]))mpre = np.flip(np.maximum.accumulate(np.flip(mpre)))method = "interp"if method == "interp":x = np.linspace(0, 1, 101)ap = np.trapz(np.interp(x, mrec, mpre), x)else:i = np.where(mrec[1:] != mrec[:-1])[0]ap = np.sum((mrec[i + 1] - mrec[i]) * mpre[i + 1])return ap, mpre, mrec

输入参数:recall: 一个列表或数组,表示不同阈值下的召回率值。precision: 一个列表或数组,表示不同阈值下的精确度值。

输出值:返回三个值:平均精确度(AP),处理过的精确度曲线,以及处理过的召回率曲线。

选择一种计算PR曲线下面积的方法,函数中提供了两种方法:

  • interp:使用插值方法,在 [0, 1] 范围内将召回率分为 101 个点,然后使用 np.interp 进行插值计算,并通过 np.trapz 计算面积,这是COCO 评价标准下的插值方法。

  • continuous:直接根据召回率变化的点计算面积。

说明一下这里的细节:

  • 翻转精确度曲线: 使用 np.flip 将精确度曲线倒置。假设原始精确度数组是 [0.5, 0.6, 0.4, 0.7],翻转后为 [0.7, 0.4, 0.6, 0.5]。

  • 计算累积最大值: 倒置后的精确度数组作为输入,传递给 np.maximum.accumulate 计算累积最大值。该函数在遍历输入数组时,将输出元素设置为从当前索引开始到数组末尾范围内的最大值。np.maximum.accumulate 的计算结果是 [0.7, 0.7, 0.7, 0.7],确保所有值都大于或等于前一个值。

  • 翻转回原始顺序: 最后再使用 np.flip 将累积最大值的数组翻转回原始顺序,得到 [0.7, 0.7, 0.7, 0.7],这样得到的曲线就是非递减的包络线。在现实情况下,精确度曲线有时可能会因为某个特定的召回率阈值而出现波动,使得曲线有时会上升,有时会下降。然而,在计算PR曲线下面积时,为了使结果更具稳定性和准确性,需要将这些下降的部分“填平”以形成一个包络线,确保整个曲线是平滑和非递减的。

1.6 mAP在3D目标检测的计算

在3D目标检测任务中,为了顾及小目标物体,不再适用2D中基于IoU的mAP计算方式,而是计算框在BEV视图下的2D中心点之间的欧氏距离。

设置一个阈值(如2米),如果预测框和真实框的中心点距离小于这个阈值,则认为这两个框匹配。

这种方法特别有利于提高小物体的匹配率。在3D环境中,小物体的IoU可能由于深度和遮挡问题而较难计算或得到较低的匹配度。使用中心点距离作为匹配标准简化了匹配过程,使得评估对于各种尺寸的物体都更为公平。

\text{mAP}=\frac1{|\mathbb{C}||\mathbb{D}|}\sum_{c\in\mathbb{C}}\sum_{d\in\mathbb{D}}\text{AP}_{c,d}

通过BEV的2D中心距离d来计算。这样解耦了物体的尺寸和方向对AP计算的影响。d设置为{0.5,1,2,4}米。在计算AP时,去除了低于10%的recall和precision并用0来代替这些区域(所以这里的PR曲线表示10%以上的召回率和精度,以降低噪声影响)。不同类C以及不同距离难度D用来计算mAP。

二、NDS

2.1 mATE(Average Translation Error)

平均平移误差(ATE)衡量的是预测的物体中心点与真实物体中心点之间的平均欧几里得距离,单位为米。

\mathrm{mATE}=\frac1N\sum_{i=1}^N\sqrt{(x_i^\mathrm{pred}-x_i^\mathrm{true})^2+(y_i^\mathrm{pred}-y_i^\mathrm{true})^2}

2.2 mASE(Average Scale Error)

平均尺度误差(ASE)衡量的是预测的物体尺寸与真实物体尺寸之间的一致性,通过计算1减去角度对齐后的三维交并比(IoU)。

\mathrm{mASE}=1-\mathrm{IoU}

2.3 mAOE(Average Orientation Error)

平均角度误差(AOE)衡量的是预测物体方向与真实物体方向之间的最小偏航角差异。所有角度均在整个360度周期内测量,但障碍物除外,它们是在180度周期内测量的。

\mathrm{mAVE}=\frac1N\sum_{i=1}^N\sqrt{(v_{x,i}^\mathrm{pred}-v_{x,i}^\mathrm{true})^2+(v_{y,i}^\mathrm{pred}-v_{y,i}^\mathrm{true})^2}

2.4 mAVE(Average Velocity Error)

平均速度误差(AVE)是预测物体速度与真实物体速度之间的二维L2范数差(m/s)。

\mathrm{mAAE=1-acc}

其中 vx 和 vy 表示速度在x轴和y轴上的分量。

2.5 mAAE(Average Attribute Error)

平均属性错误(AAE)被定义为类别分类的错误率,即1减去分类准确度。

\mathrm{mAAE=1-acc}

其中 acc 是分类的准确度,即正确分类的样本数占总样本数的比例。

2.6 NDS计算

上述指标称为True Positive 指标。所有TP指标都是在匹配时使用 d=2 米中心距计算的,并且都被设计为正标量。如果特定类别未实现10%以上召回率,则该类别的所有 TP 错误都将设置为1。同时,忽略了一些类别的测量。

  • AVE(平均速度误差):不适用于路标锥和障碍物,因为它们是固定不动的,没有速度可测量。

  • AOE(平均角度误差):不适用于路标锥,因为它们没有明确的方向或朝向,无法评估其角度误差。

  • AAE(平均属性误差):不适用于路标锥和障碍物,因为这些类别没有定义明确的属性,无法计算属性相关的错误率。

\mathrm{NDS}=\frac{1}{10}[5 \mathrm{mAP}+\sum_{\mathrm{mTP}\in\mathbb{TP}}(1-\mathrm{min}(1, \mathrm{mTP}))]

NDS 的一半基于检测性能,而另一半则根据框位置、大小、方向、属性和速度来量化检测质量。由于 mAVE、mAOE 和 mATE 可能大于 1 ,因此会将每个指标限制在 0 和 1 之间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3014796.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习之基于Vgg16卷积神经网络乳腺癌诊断系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于VGG16卷积神经网络的乳腺癌诊断系统项目是一个结合深度学习技术和医学图像处理的创新项目,旨在提高…

Golang | Leetcode Golang题解之第67题二进制求和

题目&#xff1a; 题解&#xff1a; func addBinary(a string, b string) string {ans : ""carry : 0lenA, lenB : len(a), len(b)n : max(lenA, lenB)for i : 0; i < n; i {if i < lenA {carry int(a[lenA-i-1] - 0)}if i < lenB {carry int(b[lenB-i-1…

vue3—win7搭建vue3环境

背景 vue3环境要求node.js18.3及以上版本&#xff0c;所以我们需要安装更高版本node.js&#xff0c;然而win7无法支持高版本node.js。下面我介绍一种安装方法。 步骤 1、下载 node-v13.14.0-x64.msi 安装&#xff0c;默认安装即可。安装完成后&#xff0c;进入cmd&#xff0c…

勾股定理 口诀

def t_o(a):t int(a/2)b t*t-1c t*t1f (a*ab*bc*c)print(f,ou,a,b,c,a*ab*b,c*c)def t_j(a):t a*abint(t/2)c t-bf (a*ab*bc*c)print(f,j-,a,b,c,f,a*ab*b,c*c)for i in range(2,100,2):t_o(i)t_j(i1) 奇数平方写连续 偶数半方加减一

引入OSS

前置条件 AccessKey 引入依赖 都是官网上的&#xff1a;https://help.aliyun.com/zh/oss/developer-reference/java-installation?spma2c4g.11186623.0.i16 <!--若是创建项目的时候这个依赖勾选了就不用了--><!--不加启动会报错No active profile set, falling back…

JETBRAINS IDES 分享一个2099通用试用码!IDEA 2024 版 ,支持一键升级

文章目录 废话不多说上教程&#xff1a;&#xff08;动画教程 图文教程&#xff09;一、动画教程激活 与 升级&#xff08;至最新版本&#xff09; 二、图文教程 &#xff08;推荐&#xff09;Stage 1.下载安装 toolbox-app&#xff08;全家桶管理工具&#xff09;Stage 2 : 下…

Python深度学习基于Tensorflow(4)Tensorflow 数据处理和数据可视化

文章目录 构建Tensorflow.data数据集TFRecord数据底层生成TFRecord文件数据读取TFRecord文件数据图像增强 数据可视化 构建Tensorflow.data数据集 tf.data.Dataset表示一串元素&#xff08;element&#xff09;&#xff0c;其中每个元素包含一个或多个Tensor对象。例如&#xf…

公钥私钥?一文搞懂非对称加密

非对称加密 非对称加密&#xff1a; 通信双方分别创建公钥和私钥&#xff0c;并且保证公钥所加密的信息&#xff0c;只有配对的私钥可以解密&#xff0c;接下来&#xff0c;双方公开交换公钥&#xff0c;通信时&#xff0c;使用对方的公钥进行加密&#xff0c;如此&#xff0…

PCB仿真:如何模拟PCB设计

当有人在学习如何驾驶汽车时,驾校老师会在模拟器上对他们进行培训,然后教他们如何在路上驾驶真正的汽车。在制造或使用产品或机器之前了解或测试其行为总是很好的。这样可以知道产品的外观和行为,如果它没有按照期望工作,总是可以做出改变。当不当操作的成本很高时,实际控…

ASP.NET MVC(三) 路由问题(一)

如果是int数据类型不传递id&#xff0c;则会报错&#xff0c;可以改成string id

电脑(爱好者) :基础知识1 了解你的电脑

读懂cpu 您想了解关于您的电脑的信息吗&#xff1f;CPuz是一款常用的系统信息工具&#xff0c;可以提供关于CPU、主板、内存等硬件信息的详细情况。您可以下载并运行该软件&#xff0c;然后查看您的电脑硬件配置信息。 图片来源于网络 CPU-Z 简介 CPU-Z 是一款功能强大且易于使…

flask网站开发计划

我想写一个flask开发网站的合集文章&#xff0c;该网站主要是采集网络上的文章&#xff08;不同站点&#xff0c;用Python识别出正文内容&#xff09;&#xff0c;然后做成长图形式&#xff0c;发布到flask站点&#xff0c;并提供“下载”按钮&#xff0c;点击下载按钮&#xf…

python-正则表达试-实践1

匹配html标签中的任意标签内数据 匹配所有包含’oo’的单词 import re text "JGood is a handsome boy, he is cool, clever, and so on..." re.findall(r\w*oo\w*, text) 匹配 html中title里面的内容 原文&#xff1a; import re file r./202304.html f open(…

Java设计模式 _结构型模式_享元模式

一、享元模式 1、享元模式 享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型模式。主要用于减少创建对象的数量&#xff0c;以减少内存占用和提高性能。主要解决有大量对象时&#xff0c;有可能会造成内存溢出&#xff0c;我们把其中共同的部分抽象出来&#x…

洛谷 P3391:文艺平衡树 ← Splay树模板题

【题目来源】https://www.luogu.com.cn/problem/P3391【题目描述】 您需要写一种数据结构&#xff08;可参考题目标题&#xff09;&#xff0c;来维护一个有序数列。 其中需要提供以下操作&#xff1a;翻转一个区间&#xff0c;例如原有序序列是 5 4 3 2 1&#xff0c;翻转区间…

录屏软件哪个好用?这4款不容错过!

在现代社会中&#xff0c;信息的传递和分享变得越来越重要。一个好的录屏软件能够帮助我们将想要分享的信息快速直观地展示给他人。 通过下文推荐的4款录屏软件&#xff0c;我们可以轻松地分享自己的知识、经验和见解&#xff0c;让更多的人受益。 方法一&#xff1a;QQ软件进…

创意自我介绍视频制作软件有哪些?

创意自我介绍视频制作软件 在制作创意自我介绍视频时&#xff0c;有许多软件可供选择。以下是一些推荐的软件&#xff1a; 乐秀视频剪辑&#xff1a;这是一个被8亿用户选择的视频剪辑、视频制作与Vlog剪辑工具。它提供了丰富的视频编辑功能&#xff0c;帮助用户制作出高质量的…

Android iw 工具

代码位置:Android/external/iw 查看支持的命令: console:/ # iw help Usage: iw [options] command Options:--debug enable netlink debugging--version show version (4.1) Commands:help [command]Print usage for all or a specific command, e.g."…

长难句打卡5.7

In December 2010 America’s Federal Trade Commission (FTC) proposed adding a “do not track” (DNT) option to Internet browsers, so that users could tell advertisers that they did not want to be followed. 2010年12月&#xff0c;美国美国联邦贸易委员会(FTC)提…

(双指针)移动零 复写零 快乐数 盛水最多的容器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 文章目录 前言 一、移动零 1.1、题目 1.2、讲解算法原理 1.3、编写代码 二、复写零 2.1、题目 2.2、讲解算法原理 2.3、编写代码 三、快乐数 3.1、题目 3.…