当前位置: 首页 > news >正文

计算机视觉知识点(一)——交并比(IoU)及其若干改进

交并比(IoU)

  • 前言
  • IoU
    • 公式及示意图
    • IoU Loss
    • 缺点
  • GIoU Loss
    • 公式及示意图
    • 缺点
  • DIoU
    • 公式及示意图
  • CIoU


前言

目标检测是一个常见的计算机视觉任务,在目标检测任务中,交并比作为评判检测框的标准具有很重要的意义,在实际的应用中,人们又对最初的IoU进行了诸多的改进。本文将对IoU以及他的改进形式的思路以及公式进行详细通俗的介绍。

IoU

IoU是最早的用于评价预测框与实际框差距的标准,并被用于设置关于预测框回归的损失函数,其思路就是计算预测框与实际框相交区域的面积以及相并区域的面积

假设我们是在这样一张图片上进行目标检测
在这里插入图片描述

那么我们令蓝框为真实框,绿框为预测框,以这个图片的人脸检测为例介绍IoU

公式及示意图

IoU=T∩PT∪P,其中T为实际框,P为预测框IoU=\frac{T \cap P}{T \cup P},其中T为实际框,P为预测框IoU=TPTP,其中T为实际框,P为预测框

通俗来看
在这里插入图片描述
从直观上讲,就如上图,我们假设蓝框是真实框,绿框为预测框,上下红色阴影部分的面积之比就是IoU

示意图
在这里插入图片描述

IoU Loss

IoU越大说明真实框与预测框的重合度越高,即越好,所以我们可以使用IoU重建损失函数,一般有两种方式
IoULoss=1−IoU或IoULoss=−lnIoUIoU \space Loss =1-IoU或IoU\space Loss=-lnIoUIoU Loss=1IoUIoU Loss=lnIoU

缺点

失效情况我们首先来看图
在这里插入图片描述
如果真实框与预测框没有重合区域,就会出现这样的情况
在这里插入图片描述
这种情况并不是少数,因为在模型训练初期,模型的参数趋近于混乱,所以基本上预测框和乱标的没什么太大差别,如果真实框与预测框没有相重合,拟合会较为困难,因为所有的没有重合的损失值都为1,并且没有指明梯度下降的合理方向。他的问题是只考虑了真实框与预测框的相交情况,并没有考虑框的位置关系

GIoU Loss

公式及示意图

GIoULoss=1−IoU+∣C−T∪P∣∣C∣,其中T为真实框,P为预测框,C为两个框的最小边界GIoU\space Loss=1-IoU+\frac{|C-T \cup P|}{|C|},其中T为真实框,P为预测框,C为两个框的最小边界GIoU Loss=1IoU+CCTP,其中T为真实框,P为预测框,C为两个框的最小边界
在这里插入图片描述
如果是上述不相交的情况
在这里插入图片描述
此时虽然1-IoU仍然为1,但是加入的一项会使得两个不相交的框距离越远损失越大,这样可以通过新加入的这一项继续进行梯度下降,这里的GIoU Loss可以大于1

缺点

当一个框被另一个框框住的时候,被框住的框无论在哪个位置,得出的GIoU Loss的值都是完全相同的,这种情况下又会影响梯度下降的方向
在这里插入图片描述
在这里插入图片描述
在这种情况下,绿框在蓝框里面,无论绿框如何移动,只要它还在蓝框内部,他的损失值就不变,显然这也是不利于框的拟合的,为了解决这种情况,可以采用DIoU

DIoU

公式及示意图

DIoULoss=1−IoU+ρ2(cT,cP)d2其中ρ2(cT,cP)是真实框中心(cT)与预测框中心(cP)的欧氏距离d2是两框对角线距离的平方DIoU \space Loss=1-IoU+\frac{\rho^2(cT,cP)}{d^2} \\其中\rho^2(cT,cP)是真实框中心(cT)与预测框中心(cP)的欧氏距离 \\ d^2是两框对角线距离的平方DIoU Loss=1IoU+d2ρ2(cT,cP)其中ρ2(cT,cP)是真实框中心(cT)与预测框中心(cP)的欧氏距离d2是两框对角线距离的平方
在这里插入图片描述
使用DIoU时,不仅可以解决框不相交的问题,又解决了框在内部情况下遇到的问题,此时我们考虑了框的重合度和中心点的距离,还只剩下高宽比这种评价指标。如果深入理解DIoU可以发现在DIoU中,通过IoU和中心距离比的协调,高宽比实际上已经隐含在里边了,不过为了更加容易收敛,仍然可以在多考虑高宽比这一条件并加到损失函数中去

CIoU

这个损失函数画图并不是很好表示,所以只对公式进行讲解,如果理解不了也可以使用DIoU,DIoU也已经达到了很好的效果了
CIoULoss=1−IoU+ρ2(cT,cP)d2+αv其中ρ2(cT,cP)是真实框中心(cT)与预测框中心(cP)的欧氏距离d2是两框对角线距离的平方CIoU \space Loss=1-IoU+\frac{\rho^2(cT,cP)}{d^2}+ \alpha v \\其中\rho^2(cT,cP)是真实框中心(cT)与预测框中心(cP)的欧氏距离 \\ d^2是两框对角线距离的平方CIoU Loss=1IoU+d2ρ2(cT,cP)+αv其中ρ2(cT,cP)是真实框中心(cT)与预测框中心(cP)的欧氏距离d2是两框对角线距离的平方
v=4π2(arctanwThT−arctanwPhP)2v=\frac{4}{\pi ^2}(arctan\frac{wT}{hT}-arctan\frac{wP}{hP})^2v=π24(arctanhTwTarctanhPwP)2
α=v1−IoU+v\alpha=\frac{v}{1-IoU}+vα=1IoUv+v
其中wT,hT是真实框的高宽,wP,hP是预测框的高宽其中wT,hT是真实框的高宽,wP,hP是预测框的高宽其中wThT是真实框的高宽,wPhP是预测框的高宽

相关文章:

计算机视觉知识点(一)——交并比(IoU)及其若干改进

交并比(IoU)前言IoU公式及示意图IoU Loss缺点GIoU Loss公式及示意图缺点DIoU公式及示意图CIoU前言 目标检测是一个常见的计算机视觉任务,在目标检测任务中,交并比作为评判检测框的标准具有很重要的意义,在实际的应用中…...

一篇文章教你从零到一搭建自动化测试框架(附视频教程+源码)

目录 前言 1. 什么是自动化测试框架? 2. 没有万能的测试框架,适合自己项目的,能提高工作效率的就是好框架。 3. 设计框架的思路: 4.如何开展自动化测试 前言 关于测试框架的好处,比如快速回归提高测试效率&#x…...

【备战蓝桥杯】----01背包问题(动态规划)

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...

Golang1.18新特性介绍——泛型

社区长期高呼的泛型特性在Golang 1.18中终于正式发布,Go泛型实现与传统的C有较大差异,更像Rust的泛型实现。本文详细介绍Golang泛型及其特性,包括泛型语法、类型参数、类型约束、类型近似以及constraints包提供内置类型等。 最近写Dao代码&am…...

【SpringBoot17】SpringBoot中使用Quartz管理定时任务

定时任务在系统中用到的地方很多,例如每晚凌晨的数据备份,每小时获取第三方平台的 Token 信息等等,之前我们都是在项目中规定这个定时任务什么时候启动,到时间了便会自己启动,那么我们想要停止这个定时任务的时候&…...

杨辉三角形 (蓝桥杯) JAVA

目录题目描述:暴力破解(四成):二分法破解(满分):题目描述: 下面的图形是著名的杨辉三角形: 如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如…...

AI制药 - AlphaFold Multimer 的 MSA Pairing 源码

目前最新版本是v2.3.1,2023.1.12 AlphaFold multimer v1 于 2021 年 7 月发布,同时发表了一篇描述其方法和结果的论文。AlphaFold multimer v1 使用了与 AlphaFold 单体相同的模型结构和训练方法,但增加了一些特征和损失函数来处理多条链。Al…...

TitanIDE:云原生开发到底强在哪里?

原文作者:行云创新技术总监 邓冰寒 引言 是一种新的软件开发方法,旨在构建更可靠、高效、弹性、安全和可扩展的应用程序。与传统的应用程序开发方式不同,云原生是将开发环境完全搬到云端,构建一站式的云原生开发环境。云原生的开…...

单片机常用完整性校验算法

一、前言 单片机在开发过程中经常会遇到大文件传输,或者大量数据传输,在一些工业环境下,数据传输并不是很稳定,如何检验数据的完整性就是个问题,这里简单介绍一下单片机常用的几种数据完整性校验方法。 二、CheckSum校…...

Anaconda 的安装配置及依赖项的内外网配置

在分享anaconda 的安装配置及使用前,我们必须先明白anaconda是什么;Anaconda是一个开源的Python发行版本。两者区别在于前者是一门编程语言,后者相当于编程语言中的工具包。 由于python自身缺少numpy、matplotlib、scipy、scikit-learn等一系…...

p84 CTF夺旗-PHP弱类型异或取反序列化RCE

数据来源 文章参考 本课重点: 案例1:PHP-相关总结知识点-后期复现案例2:PHP-弱类型对比绕过测试-常考点案例3:PHP-正则preg_match绕过-常考点案例4:PHP-命令执行RCE变异绕过-常考点案例5:PHP-反序列化考题…...

2022财报逆转,有赞穿透迷雾实现突破

2022年,商家经营面临困难。但在一些第三方服务商的帮助下,也有商家取得了逆势增长。 2023年3月23日,有赞发布2022年业绩报告,它帮助许多商家稳住了一整年的经营。2022年,有赞门店SaaS业务的GMV达到425亿元&#xff0c…...

蓝桥杯 - 求组合数【C(a,b)】+ 卡特兰数

文章目录💬前言885. 求组合数 I C(m,n) 【dp】886 求组合数 II 【数据大小10万级别】 【费马小定理快速幂逆元】887. 求组合数 III 【le18级别】 【卢卡斯定理 逆元 快速幂 】888.求组合数 IV 【没有%p -- 高精度算出准确结果】 【分解质因数 高精度乘法 --只用一…...

膳食真菌在癌症免疫治疗中的作用: 从肠道微生物群的角度

谷禾健康 癌症是一种恶性肿瘤,它可以发生在人体的任何部位,包括肺、乳房、结肠、胃、肝、宫颈等。根据世界卫生组织的数据,全球每年有超过1800万人被诊断出患有癌症,其中约有1000万人死于癌症。癌症已成为全球范围内的主要健康问题…...

怎么将模糊的照片变清晰

怎么将模糊的照片变清晰?珍贵的照片每个人都会有,而遇到珍贵的照片变模糊了,相信会让人很苦恼的。那么有没有办法可以解决呢?答案是有的,我们可以用工具让模糊的照片变得清晰。下面就来分享一些让模糊的照片变清晰的方法,有兴趣…...

【软件测试】基础知识第一篇

文章目录一. 什么是软件测试二. 测试和调试的区别三. 什么是测试用例四. 软件的生命周期五. 软件测试的生命周期一. 什么是软件测试 软件测试就是验证软件产品特性是否满足用户的需求。 那需求又是什么呢?在多数软件公司,会有两种需求,一种…...

【百面成神】java web基础7问,你能坚持到第几问

前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:纯手打总结面试题,自用备用 🌰 文章简介:java web最基础、重要的8道面试题 文章目…...

Centos7安装、各种环境配置和常见bug解决方案,保姆级教程(更新中)

文章目录前言一、Centos7安装二、各种环境配置与安装2.1 安装net-tools(建议)2.2 配置静态网络(建议)2.1 修改Centos7的时间(建议)2.2 Centos7系统编码问题2.3 vim安装(建议)2.4 解决…...

【C++进阶】智能指针

文章目录为什么需要智能指针?内存泄漏什么是内存泄漏,内存泄漏的危害内存泄漏分类(了解)如何避免内存泄漏智能指针的使用及原理smart_ptrauto_ptrunique_ptrshared_ptr线程安全的解决循环引用weak_ptr删除器为什么需要智能指针&am…...

软件测试面试题 —— 整理与解析(3)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:🌎【Austin_zhai】🌏 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能&#xf…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

Python如何给视频添加音频和字幕

在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

Map相关知识

数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...