计算机视觉目标检测性能指标
目录
精确率(Precision)和召回率(Recall)
F1分数(F1 Score)
IoU(Intersection over Union)
P-R曲线(Precision-Recall Curve)和 AP
mAP(mean Average Precision)
目标检测是计算机视觉领域中的一个重要任务,其目标是在图像或视频中识别出物体的位置和类别。为了评估目标检测算法的性能,需要使用一系列指标来量化模型的准确性、召回率、精确率以及对不同类别的处理能力。本文将详细介绍常见的目标检测性能指标,包括精确率、召回率、F1分数、IoU、AP、mAP、P-R曲线等,同时提供相关公式和案例。
精确率(Precision)和召回率(Recall)
精确率和召回率是评估目标检测模型性能的重要指标,它们通常在二分类任务中使用。在目标检测中,精确率表示模型正确识别出的目标数与所有被模型预测为目标的框的数量之间的比例。召回率表示模型正确识别出的目标数与总目标数之间的比例。

公式如下:
准确率(Accuracy):Acc = ( TP + TN ) / ( P +N )
精确率( precision ):TP / ( TP+FP ) = TP / P
召回率(recall)):TP / (TP + FN ) = TP / T
案例: 假设我们有一个目标检测模型在一组图像上进行测试,其中涉及10个目标物体。模型识别出了8个目标,其中6个是真实目标(真阳性),2个是错误识别的(假阳性),而实际上还有2个目标未被识别(假阴性)。那么,精确率为6 / (6 + 2) = 0.75,召回率为6 / (6 + 2) = 0.75。
F1分数(F1 Score)
F1分数是精确率和召回率的调和平均,用于综合考虑模型的准确率和召回率。F1分数对于处理不平衡数据集或需要权衡精确率和召回率的情况非常有用。
公式如下:

案例: 假设一个目标检测模型的精确率为0.8,召回率为0.7。那么,F1分数为2 * (0.8 * 0.7) / (0.8 + 0.7) = 0.7619。
IoU(Intersection over Union)
IoU是衡量预测边界框和真实边界框之间重叠程度的指标,常用于评估目标检测框的质量。IoU通过计算预测框和真实框的交集面积除以它们的并集面积来衡量。
公式如下:

通常,如果IoU大于某个阈值(例如0.5),则将预测框视为正确预测。
案例: 考虑一个目标检测任务,真实框的位置为[20, 30, 100, 150],预测框的位置为[25, 35, 95, 145]。交集面积为(95 - 25) * (145 - 35) = 6000,真实框面积为(100 - 20) * (150 - 30) = 9000,预测框面积为(95 - 25) * (145 - 35) = 6000。并集面积为9000 + 6000 - 6000 = 9000。因此,IoU为6000 / 9000 = 0.6667。
P-R曲线(Precision-Recall Curve)和 AP
PR 曲线是用于衡量模型在不同召回率下的准确性的一种图形化表示方式。在目标检测中,召回率是指正确检测出的正样本数量与所有实际正样本数量的比率,而精确率是指正确检测出的正样本数量与所有被模型预测为正样本的样本数量的比率。
用一个简单的例子来演示平均精度(AP)的计算。假设数据集中总共有5个苹果。我们收集模型为苹果作的所有预测,并根据预测的置信水平(从最高到最低)对其进行排名。第二列表示预测是否正确。如果它与ground truth匹配并且loU≥0.5,则是正确的。

表中,Rank一列表示框按置信度由高到低排列后的序号,correct表示该框是否正确,Precision表示计算出的精确率,Recall表示计算出的召回率。
精确率和召回率的计算是一个不断累计的过程,而不是每个框独立的。
例如:
在第一个框时,精确率 = 1/1 =1.0,召回率 =1/5 = 0.2;
在第二个框时,精确率 = 2/2 = 1.0,召回率 = 2/5 = 0.4;
在第三个框时,精确率 = 2/3 = 0.67,召回率 = 2/5 = 0.4;
……
这时,我们根据精确率和召回率,就能绘制出PR曲线:

AP是PR曲线下的面积,会设定采样点,一般在横轴0~1范围内平均分为10或者100段,最后采样的值相加除以采样点数。当然还有别的方法。
mAP(mean Average Precision)
mAP是所有类别AP的平均值,通常用于衡量多类别目标检测任务的整体性能。它对模型在各个类别上的性能进行综合评估,能够准确反映模型在不同类别上的表现。
案例: 假设我们有一个多类别目标检测模型,对于每个类别计算得到的AP如下:
| 类别 | AP |
|---|---|
| 狗 | 0.85 |
| 猫 | 0.75 |
| 车辆 | 0.90 |
| 行人 | 0.70 |
则mAP为(0.85 + 0.75 + 0.90 + 0.70) / 4 = 0.80。
目标检测性能指标在评估模型在不同数据集和任务上的性能时起着重要作用。精确率、召回率、F1分数、IoU、AP、mAP以及P-R曲线等指标能够综合考虑模型在不同方面的表现,帮助我们更好地理解模型的优势和局限性。在实际应用中,根据任务的特点和需求,选择适合的指标来评估模型的性能是至关重要的。
相关文章:
计算机视觉目标检测性能指标
目录 精确率(Precision)和召回率(Recall) F1分数(F1 Score) IoU(Intersection over Union) P-R曲线(Precision-Recall Curve)和 AP mAP(mean…...
什么是webpack?如何在项目中安装配置webpack?
webpack 是前端项目工程化的具体解决方案。 它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端 JavaScript 的兼容性、性能优化等强大的功能。 让程序员把工作的重心放到具体功能的实现上,提高了前端开发效率和项目的可维护性。目前企业…...
linux两台服务器互相备份文件(sshpass + crontab)
crontab crontab是linux系统自带的定时调度软件,可用于设置周期性被执行的指令,一般用在每天的非高峰负荷时间段运行作业,可在无需人工干预的情况下运行作业。支持在一周或一月中的不同时段运行。 crontab命令允许用户提交、编辑或删除相应的…...
Flask框架-配置日志(1):flask使用日志
一、项目结构 study_flask --| apps/ --| __init__.py --| base/ --| logger.py --| __init__.py --| app.py 二、配置日志功能 1、base/logger.py import os import logging from datetime import datetime,date,timedelta from logging.handlers import RotatingFileHandl…...
每天一道leetcode:1192. 查找集群内的关键连接(图论困难tarjan算法)
今日份题目: 力扣数据中心有 n 台服务器,分别按从 0 到 n-1 的方式进行了编号。它们之间以 服务器到服务器 的形式相互连接组成了一个内部集群,连接是无向的。用 connections 表示集群网络,connections[i] [a, b] 表示服务器 a …...
解决Windows系统远程登陆后vscdoe无法输入字符,键盘没有反应,鼠标可以点击,没有反应
文章目录 前言操作过程 前言 使用vscode编译器时,通过远程登录或者屏幕锁屏解锁后,vscode出现无法输入字符内容,但vscode没有死机,切换到其他软件的窗口再切换回来后,可以使用鼠标点击,但是只要使用键盘输…...
axios同一个接口,同时接收 文件 或者 数据
1、前端代码 const service axios.create({baseURL: "http://192.168.2.200:8080/api",timeout: 180000 })// 响应拦截 service.interceptors.response.use(async response > {if(response){// 请求时设置返回blob, 但是实际上可能返回的是json的情况if (respon…...
【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云
【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云 serverless服务是腾讯云自研的新一代云原生关系型数据库TDSQ L-C的无服务器架构版,是全Serverless架构的云原生数据库 前言 体验了一下腾讯云刚出的TDSQL-C Serverless,使用…...
算法通关村第九关 | 二叉树查找和搜索树原理
1. 二分查找的扩展问题 1.1山脉数组的巅峰索引 LeetCode852:题目核心意思是在数组中,从0到i是递增的,从i1到数组最后是递减的,让你找到这个最高点。 三种情况: mid在上升阶段的时候,满足arr[mid] > a…...
jenkins gitlab 安装
目录 一 准备安装环境 二 安装gitlab软件 三 配置gitlab 四 重新加载配置启动gitlab 五 修改密码 五 创建用户组 一 准备安装环境 sudo yum update sudo yum install -y curl policycoreutils-python openssh-server安装 Postfix 邮件服务器,以便 Git…...
Vue2(组件开发)
目录 前言一,组件的使用二,插槽slot三,refs和parent四,父子组件间的通信4.1,父传子 :父传子的时候,通过属性传递4.2,父组件监听自定义事件 五,非父子组件的通信六&#x…...
(二)结构型模式:8、代理模式(Proxy Pattern)(C++示例)
目录 1、代理模式(Proxy Pattern)含义 2、代理模式的UML图学习 3、代理模式的应用场景 4、代理模式的优缺点 5、C实现代理模式的实例 1、代理模式(Proxy Pattern)含义 代理模式(Proxy),为…...
代码审计-ASP.NET项目-未授权访问漏洞
代码审计必备知识点: 1、代码审计开始前准备: 环境搭建使用,工具插件安装使用,掌握各种漏洞原理及利用,代码开发类知识点。 2、代码审计前信息收集: 审计目标的程序名,版本,当前环境(系统,中间件…...
爬虫逆向实战(十四)--某培训平台登录
一、数据接口分析 主页地址:某培训平台 1、抓包 通过抓包可以发现登录是表单提交到j_spring_security_check 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个j_password加密参数 请求头是否加密? 无响应是…...
GT Code - 图译算法编辑器(集成QT、C++、C、Linux、Git、java、web、go、高并发、服务器、分布式、网络编程、云计算、大数据项目)
目录 项目概述 发文意义 项目介绍 功能分析 设计概要 功能展示 项目文档 项目概述 “GT Code 图译算法编辑器”是一款跨平台、轻量级的代码编辑器,主要面向软件开发人员,它实现了编辑、编译、绘制代码流程图、生成调试演示动画等功能,以…...
# 快速评估立功科技基于S32K324的TMS方案
文章目录 1.前言2.立功科技的TMS方案介绍2.1 介绍资料2.2 简要介绍 3.S32K3_TriMotor评估板测试3.1 环境搭建S32 Design Studio for S32 Platform 3.4安装RTD 2.0.0安装Freemaster 3.2 3.2 例程测试3.3 例程适配3.4 双核烧录3.5 测试 1.前言 最近和一些做汽车水泵/风机的客户交…...
docker+haror
docker 2013年诞生,推荐单容器只运行一个程序或进程,形成一个分布式的应用模型。 总结下来就是:docker带来启动流程更快,运行效率较高、资源损耗较小,属于轻量级的服务。 docker的安装 推荐的一键化安装的脚本&#…...
Shell编程——弱数据类型的脚本语言快速入门指南
目录 Linux Shell 数据类型 变量类型 运算符 算术运算符 赋值运算符 拼接运算符 比较运算符 关系运算符 控制结构 顺序结构 条件分支结构 if 条件语句 case 分支语句 循环结构 for 循环 while 循环 until 循环 break 语句 continue语句 函数 函数定义 …...
iOS textView支持超链接跳转
将某些文字变成高量可以点击的超链接核心功能代码 attri.addAttribute(NSAttributedString.Key.link, value:NSURL.init(string: "dctt:p/userPrivacy.html")!, range: NSRange.init(location: s.count - 4, length: 4) )textView.linkTextAttributes [NSAttributed…...
大牛分析相机镜头光学中疑难问题
1、变焦和对焦有什么区别? 变焦就是改变镜头的焦距(准确说是像距),以改变拍摄的视角,也就是通常所说的把被摄体拉近或推远。例如18-55mm和70-200mm镜头就是典型的变焦镜头。焦距越长,视角越窄。 对焦通常指调整镜片组和底片(传感器平面)之间的距离,从而使被摄物在CC…...
力扣算法面试150题——个人笔记——复习用
双指针 第一题: 125. 验证回文串https://leetcode.cn/problems/valid-palindrome/ 题目内容 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母…...
Windows 11终极优化指南:使用Win11Debloat实现专业级系统调校
Windows 11终极优化指南:使用Win11Debloat实现专业级系统调校 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter…...
Spring事件驱动:从@EventListener源码到高并发实践
1. Spring事件驱动机制入门 第一次接触Spring事件驱动时,我完全被各种Listener和Event搞晕了。直到在电商项目中遇到用户注册后需要执行多个后续操作的需求,才真正理解它的价值。想象一下,用户注册成功后需要发送短信、发放优惠券、记录行为日…...
Speakeasy安全研究:仿真环境中的反调试与反仿真技术对抗
Speakeasy安全研究:仿真环境中的反调试与反仿真技术对抗 【免费下载链接】speakeasy Windows kernel and user mode emulation. 项目地址: https://gitcode.com/gh_mirrors/spe/speakeasy Speakeasy作为一款强大的Windows恶意代码仿真框架,通过模…...
终极指南:如何用免费C工具快速管理天龙八部单机版游戏数据
终极指南:如何用免费C#工具快速管理天龙八部单机版游戏数据 【免费下载链接】TlbbGmTool 某网络游戏的单机版本GM工具 项目地址: https://gitcode.com/gh_mirrors/tl/TlbbGmTool 还在为《天龙八部》单机版的数据管理而烦恼吗?TlbbGmTool是一款专为…...
Oryx 2部署与运维手册:生产环境配置完全解析
Oryx 2部署与运维手册:生产环境配置完全解析 【免费下载链接】oryx Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning 项目地址: https://gitcode.com/gh_mirrors/or/oryx 想要在生产环境中稳定运行大…...
《龙虾OpenClaw系列:从嵌入式裸机到芯片级系统深度实战60课》060、未来趋势与芯片设计者的思考
OpenClaw系列总结:未来趋势与芯片设计者的思考 昨晚调试一块RISC-V核的cache一致性,波形里看到一条store指令被莫名其妙地重复执行了两次。我盯着GTKWave看了半小时,最后发现是写缓冲的valid信号在复位释放后没有清零——一个典型的“芯片级”bug,在嵌入式裸机里永远不会遇…...
破解人类微生物组数据分析难题:curatedMetagenomicData的完整解决方案
破解人类微生物组数据分析难题:curatedMetagenomicData的完整解决方案 【免费下载链接】curatedMetagenomicData Curated Metagenomic Data of the Human Microbiome 项目地址: https://gitcode.com/gh_mirrors/cu/curatedMetagenomicData 宏基因组数据分析在…...
【笔记】旧AI,新人类
AI擅长"旧",人类擅长"新" 关于人机分工的一点思考 不久前,一场颇具戏剧性的"人机对决"在餐饮界引起了不小的波澜。"美膳狮"智能炒菜机器人与湘菜厨师杨孙同台竞技,共同炒制三道菜:XO酱笋…...
实时商业情报不再滞后,Perplexity新闻搜索配置全拆解,从入门到日均处理200+信源
更多请点击: https://codechina.net 第一章:实时商业情报不再滞后,Perplexity新闻搜索配置全拆解,从入门到日均处理200信源 为什么传统RSS与Google Alerts已失效 现代商业情报对时效性、语义准确性与信源可信度提出更高要求。Pe…...
