深度学习中的mAP

embedded/2024/11/20 23:17:16/

      在深度学习中,mAP是指平均精度均值(mean Average Precision),它是深度学习中评价模型好坏的一种指标(metric),特别是在目标检测中。

      精确率和召回率的概念:

      (1).精确率(Precision):预测阳性结果中实际正确的比例(TP / Total Predictions),预测正确的百分比,取值范围是[0, 1]。

      (2).召回率(Recall):实际正样本中被正确预测的比例(TP / Total Ground Truths),取值范围是[0, 1]。在目标检测任务中,mAP能够综合考虑模型在不同召回率下的性能,从而更全面地评估模型的检测能力。

      P-R曲线就是表示召回率和精确率之间关系的曲线图:如下图所示

      它们的数学定义如下:

      IoU(Intersection over Union,交并比):是量化两个区域重叠程度的指标,取值范围[0, 1]。我们用它来测量预测边界与真实(ground truth)目标边界的重叠程度,如下图所示:借助IoU阈值,我们可以判断预测是真阳性、假阳性还是假阴性(True Positive, False Positive, or False Negative)。在目标检测中,预测(TP、FP或FN)的正确性是在IoU阈值的帮助下决定的。而在目标分割中,它是通过参考Ground Truth像素来决定的。Ground Truth表示已知目标。

      AP(Average Precision,平均精度):计算召回率在0到1之间的平均精度值。Average Precision is not the average of Precision。为简单起见,我们可以说它是精度率--召回率曲线(precision-recall curve)下的面积AP是按类别计算的

      (1).11点插值法计算AP:11点插值法是在2007年PASCAL VOC挑战赛中引入的。其中,精确率值记录在11个等距召回率值中。以这种方式对精确率/召回率曲线进行插值的目的是减少由于样本排名(ranking of examples)的细微变化而导致的精确率/召回率曲线中的"摆动(wiggles)"的影响。实际上,评估数据集(evaluation dataset)非常巨大,当我们绘制所有预测的图表时,相邻点之间的差异将非常小。因此,11个点插值足以比较两个模型。

      (2).101点插值法计算AP:MS COCO于2014年引入了101点插值AP。它是P-R曲线下AUC(Area Under the Curve)的更好近似值。

      目标检测中计算AP步骤

      (1).使用模型生成预测分数(置信度)

      (2).将预测分数转换为类标签

      (3).由TP、FP、FN计算精确率和召回率

      (4).计算精度率--召回率曲线下的面积。

      (5).计算AP。

      mAP:在多类别的目标检测任务中,还会计算所有类别AP的平均值,即mAPmAP = 1/n * sum(AP),n是类别数

      (1).mAP50:IoU阈值为0.5时的mAP值。

      (2).mAP50-95:IoU阈值从0.5到0.95(步长为0.05)范围内的mAP值,然后计算平均值。

      注:以上整理内容及原图主要来自于以下博文

      https://jonathan-hui.medium.com

      https://learnopencv.com

      GitHub:https://github.com/fengbingchun/NN_Test


http://www.ppmy.cn/embedded/139210.html

相关文章

百度AI人脸检测与对比

1.注册账号 打开网站 https://ai.baidu.com/ &#xff0c;注册百度账号并登录 2.创建应用 3.技术文档 https://ai.baidu.com/ai-doc/FACE/yk37c1u4t 4.Spring Boot简单集成测试 pom.xml 配置&#xff1a; <!--百度AI--> <dependency> <groupId>com.baidu.…

第8章:TDengine 开发、测试、生产三大环境中数据库创建指南

TDengine 开发、测试、生产三大环境中数据库创建指南 TDengine3.0社区版在开发、测试、以及生产三大环境中数据库创建SQL语句以及相应参数的说明文档。 一、概述 TDengine3.0社区版是一款开源、高性能、云原生的时序数据库,支持SQL语法,并针对时序数据进行了优化。在开发、…

React Native 全栈开发实战班 - 网络与数据之数据缓存策略SWR、Query

在移动应用中&#xff0c;数据缓存 是提升应用性能和用户体验的重要手段。通过缓存数据&#xff0c;可以减少网络请求次数&#xff0c;降低延迟&#xff0c;提高应用在离线或网络不稳定情况下的可用性。React Native 提供了多种数据缓存策略&#xff0c;包括内存缓存、异步存储…

#渗透测试#SRC漏洞挖掘#蓝队基础之网络七层杀伤链04 终章

网络杀伤链模型&#xff08;Kill Chain Model&#xff09;是一种用于描述和分析网络攻击各个阶段的框架。这个模型最初由洛克希德马丁公司提出&#xff0c;用于帮助企业和组织识别和防御网络攻击。网络杀伤链模型将网络攻击过程分解为多个阶段&#xff0c;每个阶段都有特定的活…

Spring Boot 中 Druid 连接池与多数据源切换的方法

Spring Boot 中 Druid 连接池与多数据源切换的方法 在Spring Boot项目中&#xff0c;使用Druid连接池和进行多数据源切换是常见的需求&#xff0c;尤其是在需要读写分离、数据库分片等复杂场景下。本文将详细介绍如何在Spring Boot中配置Druid连接池并实现多数据源切换。 一、…

ssm144基于SSM的校园二手物品交易平台+vue(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;校园二手物品交易平台设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本校园二手物品…

[STM32]从零开始的vs code 连接keil教程

一、前言 相信现在正在学习嵌入式或者是正在学习STM32的大家对keil都不陌生&#xff0c;keil是一款集成了多款芯片的嵌入式联合编译器。因为keil强大的芯片支持和及其易用的调试功能使其广受人们喜爱。但同时keil在某些方面也存在一定的问题。目前来说keil虽然有非常多好用的功…

安卓APK安装包arm64-v8a、armeabi-v7a、x86、x86_64有何区别?如何选择?

在GitHub网站下载Android 安装包&#xff0c;Actions资源下的APK文件通常有以下版本供选择&#xff1a; 例如上图是某Android客户端的安装包文件&#xff0c;有以下几个版本可以选择&#xff1a; mobile-release.apk&#xff08;通用版本&#xff0c;体积最大&#xff09;mobi…