[机器视觉]目标检测评价指标及其实现

news2025/1/12 6:45:01

一、模型分类目标

        数据的分类情况为两类正例(Postive)和负例(Negtive),分别取P和N表示。

        同时在预测情况下,分类正确表示为T(True),错误表示为F(False);便有了以下四类表示:

TP:(True Positive

        正确的判断为正例

        实际正例)

TN:(True Negtive

        正确的判断为负例

        实际负例)

FP:(Fasle Positive

        错误的判断为正例

        实际负例)

FN:(False Negtive

        错误的判断为负例

        实际正例)

        Ps.其中的P和N为分类器认为的正例和负例,实际的正例和负例要结合分类是否正确来看

二、分类评估指标

        ①精确度(Precision)

                (TP在所有判断为正例中占的比例)

                Precision = TP / ( TP +FP )                   

        ②召回率(Recall)

                (TP在实际正例中占的比例)

                Recall = TP / ( TP + FN ) = TP / P        

        ③F1 Score

                F_1=2*\frac{P*R}{P+R}        P = Precision        R = Recall

        ④support

                支持度:原始的真实数据中属于该类的个数

        ⑤准确率(Acc)

                预测为正确类的在总数中的比例

                accuracy=\frac{TP+TN}{P+N} 

        ⑥加权平均(weighted avg)

                weighted avg = \frac{(P1*support1+P2*support2)}{support1+support2}

                        权重为该样本的support

三、目标检测评估指标

       ①IoU

                交并比,即预测框(prediction)和实际目标(ground truth)的交集和并集的比值。用以确定预测目标的置信度,当一个预测框的IoU大于某个阈值时才认定其为正分类(一般为0.5或0.3)

                 即  IoU=\frac{A\cap B}{A\cup B}        通俗点理解就是重叠面积总面积之比

        ②AP

                平均精确度(Average Precision),表示PR曲线下的面积。PR曲线即分别以PrecisionRecall为XY轴的曲线,获得方法如下:

                        1.将模型预测结果按照预测值置信度降序排列

                        2.依据Recall分别选取11组不同的数据(Recall = [0,0.1...0.9,1.0])

                        3.以这11组数据绘制图像

                而 AP=\frac{1}{11} \sum P_{interp}(r)

                在目标检测的情况下,Precision和Recall可以简化为以下公式:

                        Precision=\frac{TP}{all \quad detections}         Recall=\frac{TP}{all \quad ground \quad truths}

            以下放的图像为例(绿色为ground truth,红色为prediction)

                 1.处理时将预测框按照置信度从高低到排列,绘制下表(其中ACC表示累加)

                         例如对于对象K,ACC TP = K前面所有TP的个数(含K), ACC FP同理;而对象K的求解PrecisionRecall的公式可以简化为:

                Precision=\frac{ACC \quad TP}{ACC \quad TP+ACC \quad FP}=\frac{6}{6+11}

                Recall=\frac{TP}{all \quad ground \quad truths}=\frac{6}{15}        (15为实际存在的目标个数)

                2.处理完成后将所有的点绘制为PR图

                 3.计算AP

                         AP = A1+A2+A3+A4,对于每组Recall,取P值最大的一个计算即可,例如图形A3=(0.4-0.13333)x0.4285=0.1142

        ③mAP

                所有类别的AP求和取平均

                mAP仅作为一个相对较好的度量指标,用以对比目标检测算法新旧之间的差别。

三、代码实现

        参见:mAP的绘制,绘制时需要以下两个txt文件作为数据源:

                detection-results:预测结果的坐标(第一维为置信度)

                ground-truth:真实目标的坐标

                可以自己编写程序,将VOC库的xml文件转换为 ground-truth且将预测结果输出为detection-results

         如果需要绘制所有类的混合mAP图则需要修改

                 修改循环,将所有类依次绘制到同一张图中,最后再保存,涉及到清除plt控件(plt.cla)和保存图片(plt.savefig),详见plt控件的应用

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

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

相关文章

投入式水位计工作原理及应用介绍

1、设备介绍: 投入式水位计采用国外进口传感器芯体,将液位压力信号转换成对应的数字信号,再通过数字电路处理,输出 RS485 两线制的标准信号。一体式设计是将隔离式传感器和数字处理电路封装在探头内,通过特种电缆直接…

前端性能优化(八):性能优化问题指南

目录 一:从输入 URL 到页面加载显示完成都发生了什么 二:首屏加载优化 三:JavaScript 内存管理 一:从输入 URL 到页面加载显示完成都发生了什么 UI 线程会判断输入的地址地址是搜索的关键词还是访问站点的 URL 接下来 UI 线程…

[数据结构] 详解链表(超详细)

链表可是很重要的知识,是面试时常考的知识点,这次让我们系统的学习一下吧 文章目录1. 链表的定义2. 链表的创建2.1 基础创建2.2 尾插法创建头节点2.3 头插法3. 链表的基础方法3.1 获取链表长度3.2 是否包含某个节点3.3 在任意坐标处插入节点3.4 删除第一个值为key的节点3.5 删除…

【qsort函数实现】

前言: 首先在进行讲解之前,我们先进行对函数的一些相关介绍,方便大家更好的理解它。 目录函数介绍函数实现函数介绍 第一步: 我们可以先查询知道函数的使用方法: void qsort (void* base, size_t num, size_t size,i…

二级路由器的设置上网

设置步骤 (简单记录一下) 前提条件:一级路由器网络正常,这里主要是使用 lan 口,需要确保各个 lan 口正常,我家里是移动公司的路由器,有一个 lan 端口专门给电视用的,选择它来接二级…

ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-5-01:片上资源详解

【源码、文档、软件、硬件、技术交流、技术支持,入口见文末】 【所有相关IDE、SDK和例程源码均可从群文件免费获取,免安装,解压即用】 持续更新中,欢迎关注! 前面《ZigBee 3.0实战教程-Silicon Labs EFR32EmberZnet-2…

一个无线鼠标的HID Report Desc

HID设备是USB规范定义的设备类型之一,其分类号为0x03. 关于USB设备类型定义,可参见本站:USB设备类型定义 - USB中文网 HID设备除了用于专门的输入输出设备外,有时也与其它的设备类型组合成一个复杂的设备。如对于UVC摄像头设备&a…

干货!数据智能作为先进生产力,如何助力销售效能提升?

存量竞争市场中,企业需要通过精细化运营提升客户价值与 ROI。数据智能作为先进生产力,在搜索、广告、推荐业务方面已经足够成熟,那么它是如何助力销售提升效能呢?本文将详细介绍。点击文末“阅读原文”即可观看完整版直播回放&…

中科大2007年复试机试题

中科大2007年复试机试题 文章目录中科大2007年复试机试题第一题问题描述解题思路及代码第二题问题描述解题思路及代码第三题问题描述解题思路及代码第四题问题描述解题思路及代码第一题 问题描述 编写程序,判断给定数字是否是回文数。 示例 1 输入:12…

博主的心肝宝贝

写的不错的文档 Sql(Structured Query Language)语句笔记_sky wide的博客-CSDN博客常用sql语句总结https://blog.csdn.net/qq_44652591/article/details/127545318Linux samba服务配置_sky wide的博客-CSDN博客_linux samba配置但是,注意后面公司的需求,…

Docker部署Jenkins

系列文章目录 Docker部署 registry Docker搭建 svn Docker部署 Harbor Docker 部署SQL Server 2017 Docker 安装 MS SqlServer Docker部署 Oracle12c Docker部署Jenkins Docker部署Jenkins系列文章目录前言一、启动docker,下载Jenkins镜像文件二、创建Jenkins挂载目…

fastjson 1.2.24漏洞复现

原理 fastjson由于没有对type进行安全性验证,使攻击者传入危险的类,通过rmi服务指定的攻击机上的恶意class文件,导致命令执行。 版本 1.2.24 环境准备 靶机:ubuntu,192.168.52.129 攻击机:kali&#…

数组的定义和使用

一、一维数组的定义、初始化 1. 一维数组的定义 元素类型 数组名[常量表达式]; (1)一维数组是由元素类型、数组名和长度组成的构造类型。 (2)数组名必须符合C标识符规则。 (3)常量表…

【ONE·C || 初识C语言 】

总言 C语言初步认识。 文章目录总言1、main函数的三种写法2、常见数据类型:内置类型、自定义类型2.1、内置类型总述2.2、内置类型大小计算(32/64)2.3、计算机基本存储单位3、常量、变量3.1、变量3.1.1、变量的分类:全局变量、局部变量3.1.2、变量的作用域…

XL1278-SMT无线模块介绍

XL1278-SMT无线模块简介XL1278-SMT无线模块是采用SEMTECH公司最新的LoRaTM调制技术的无线芯片,该模块除传统的GFSK调制技术外,还采用了LoRa(远程)扩频技术,具有超远距离扩频通讯,高抗干扰性和最大限度的减小…

SAP 成本组件分割价格详解

本文整理CKM3中“CV成本组件”视图下各项成本的价格取值逻辑。 SELECTTCKH3~ELEMT ”成本构成号TCKH3~EL_HV ”全部成本TCKH1~TXELE ”成本构成名称TKEVA04~WERTKOMP1 ”字段名FROM TCKH3INNER JOIN TCKH1 ON TCKH1~ELEHK TCKH3~ELEHKAND T…

JavaScript 比较 和 逻辑运算符

文章目录JavaScript 比较 和 逻辑运算符比较运算符如何使用逻辑运算符条件运算符JavaScript 比较 和 逻辑运算符 比较和逻辑运算符用于测试 true 或者 false。 比较运算符 比较运算符在逻辑语句中使用,以测定变量或值是否相等。 x5,下面的表格解释了比较…

笔记本电脑连接不上wifi怎么办?看下面4种方法

WIFI可以让我们的网络运行得更快,尤其是对于工作来说,它是不可或缺的。但是有时候,我们明明在笔记本电脑上看到WIFI,但就是连接不上,笔记本电脑连接不上wifi怎么办?方法主要有下面4个! 演示机型…

剖析valueOf方法,深入探究Integer缓存实现机制

一. 问题展现我们在面试的时候,面试官经常会给面试者洒出一些迷雾,用来迷惑面试者,这时往往就需要面试者掌握底层源码,才能对问题进行较好的回答。接下来壹哥就以Integer的缓存数组为例,通过分析其源码来教会大家该如何…

Linux串口测试例程

嵌入式Linux开发过程中,进行Linux串口测试,需要针对串口进行回环测试或者指定串口接收一定的数据或者指定串口发送一定的数据使用该测试用例很快验证硬件串口的稳定性和正确性。使用代码连接如下Linux串口测试例程,进行Linux串口测试&#xf…