IoU的及其变体

《计算机视觉之目标检测》IOU详解及代码 今天在改模型的时候刚好用到了IOU,因此将IOU说说,记录一下代码,方便以后复用。 1、什么IOU IoU 的全称为交并比(Intersection over Union),它的计算也比较简单,就是两个目标proposal框重叠的区域比总体的区域。如下图所表示的,着就是所谓的IOU。 2、为什么需要Iou? 在做目标检测的过程中有一个指标来评价这个模型的好坏,也就mAP。这个指标我下次再说,用检测出来的框和ground-truth之间计算IOU,如果IOU大于0.5或者其它的一个阈值,那么就认为 阅读详情

1. IoU是什么

IoU(Intersection over Union)是一个衡量两个边界框(bounding box)重叠度的指标,常用于目标检测和实例分割任务中。公式如下:IoU=交集区域并集区域IoU = \frac{交集区域}{并集区域}IoU=并集区域交集区域​以下图小狗做例子,假设我们要预测狗狗叼着的玉米的位置,则我们就可以通过最小化IoU损失来使得预测的Bounding Box更接近GT在这里插入图片描述
通过计算IoU loss而不是计算 l2\mathbf l_2l2​损失 优点和缺点:

  1. 相比于l2\mathbf l_2l2​损失更能反应重合程度,且具有尺度不变性
  2. 但是,当两个边界框不相交时,其IoU值为0,就无法进行反向传播

2. GIoU

GIoU=IoU−Ac−uAc     −1≤GIoU≤1GIoU = IoU - \frac{A^c - u}{A^c} ~~~~~ -1 \leq GIoU \leq 1GIoU=IoU−AcAc−u​     −1≤GIoU≤1 其中AcA^cAc是能框住两个边界框的最小矩形的面积,如下图蓝色的框框
而uuu代表了两个边界框的并集的面积
在这里插入图片描述
通过GIoU的这种改进能一定程度的解决IoU中两个框不相交时无法反向传播的问题,同时,GIOU还关注了其他非重合区域,能更好地反映两者的重合度。但是其性能提升并不高,而且当两个边界框具有同样的宽或者高时,Ac=uA^c = uAc=u 导致GIoU退化为IoU

3. DIoU

这个D顾名思义distance,即是一个引入了距离的影响,其公式如下:
DIoU=IoU−d2c2     −1≤DIoU≤1DIoU = IoU - \frac{d^2}{c^2} ~~~~~ -1 \leq DIoU \leq 1DIoU=IoU−c2d2​     −1≤DIoU≤1其中这里的d就是对应了两个边界框的中心点之间的欧氏距离
而c是框住两个边界框的最小矩形的左上顶点和右下顶点之间的欧氏距离,如论文中的例子图
在这里插入图片描述
由于DIoU损失能最小化两个bounding box之间的距离,所以其收敛速度会快很多,而且相比与前面提到的IoU和GIoU能更准确的反应两个边界框的重合程度

4. CIoU

Complete-IoU 即是考虑了重叠面积、长宽比、中心点距离三个因素,其公式如下:CIoU=IoU−(b2c2+av)其中                v=4π2(arctanwgthgt−arctanwh)2a=v(1−IoU)+vCIoU = IoU - (\frac{b^2}{c^2} + \mathbf {a v}) \\ 其中~~~~~~~~~~~~~~~~\mathbf v = \frac{4}{\pi^2}(arctan{\frac{w^{gt}}{h^{gt}} - arctan{\frac{w}{h}}})^2 \\ \mathbf a = \frac{\mathbf v}{(1 - IoU) + \mathbf v}CIoU=IoU−(c2b2​+av)其中                v=π24​(arctanhgtwgt​−arctanhw​)2a=(1−IoU)+vv​当IoU小于0.5时,CIoU退化为DIoU,只考虑预测框和真实框之间的中心点距离;当IoU大于等于0.5时,CIoU同时考虑中心点距离和长宽比的相似程度

我们可以看到由于考虑更多的因素,其计算效率会比另外两个低


上面所说的IoU几种变体在不同的情况下会有不同的效果,所以不能以偏概全,最好实际场景中试试哪一个更合适!!

IoU、GIoU、DIoU IOU(Intersection over Union) 1. 特性(优点) IoU就是我们所说的交并比,是目标检测中最常用的指标,在anchor-based的方法中,他的作用不仅用来确定正样本和负样本,还可以用来评价输出框(predict box)和ground-truth的距离。 可以说它可以反映预测检测框与真实检测框的检测效果。 还有一个很好的特性就是尺度不变性,也就是对尺... 阅读详情

相关推荐

YOLOv8损失函数魔改指南:从IoU到Wise-IoU,一次搞懂所有变体

本文深入解析YOLOv8中七种主流IoU变体(GIoU、DIoU、CIoU、SIoU、EIoU、WIoU)的数学原理与实现方法,从基础IoU的局限性到Wise-IoU的动态权重调整机制,提供完整的损失函数魔改指南。通过代码示例和场景推荐,帮助开发者优化目标检测模型的边界框回归性能。

weixin_30342209的博客 441

目标检测算法回顾之IOU变体篇章

目标检测中IOU的发展一级目录二级目录三级目录 一级目录 二级目录 三级目录

xiaobaizaza_Ry的博客 2409

【目标检测】IoU(交并比)详解及代码实现

1. IOU概述        IoU的全称为交并比(Intersection over Union),是目标检测中使用的一个概念,IoU计算的是“预测的边框”和“真实的边框”的交叠率-,即它们的交集和并集的比值。最理想情况是完全重叠,即比值为1。 2. IoU计算        IoU等于“预测的边框”和“真实的边框”之间交集和并集的比值。IoU计算如下图,B1为真实

Roaddd的博客 2万+

目标检测从入门到精通——常见iou及变体算法介绍

在目标检测任务中,IoU 是评估模型性能的重要指标。随着研究的深入,许多 IoU 的变体被提出,以解决传统 IoU 在某些情况下的不足。每种 IoU 变体都有其独特的优点和适用场景,选择合适的 IoU 计算方法可以根据具体应用需求来决定。指标计算方式特点IoU交集面积 / 并集面积简单易懂,但在无重叠情况下无法提供有效反馈GIoUIoU - (最小外接框面积 - 并集面积) / 最小外接框面积解决了 IoU 的不足,考虑了框之间的距离DIoU。

swpucwf的博客 3052

目标检测的Tricks | 【Trick3】IoU loss与focal loss(包含一些变体介绍)

如有错误,恳请指出。 这里介绍一下IoU loss与focal loss函数,之前的文章也有提及到,这里就不再过多的细说了。简单来说: IoU loss:用来计算pred box与ground true之间的差异,用来边界框损失函数的计算; focal loss:用来平衡正负样本不均衡的问题,由RetinaNet提出使用与One-Step目标检测算法上的一个技巧 关于这两部分的详细介绍可以见之前的博文:YOLOv4中的tricks概念总结——Bag of freebies 然后,后续有不少大佬对fo.

Clichong 3249

019、IoU损失函数变体分析:从调参血泪史到工程选型指南

本文系统分析了目标检测中IoU损失函数的演进与工程实践。从基础IoU的梯度消失问题出发,介绍了GIoU、DIoU、CIoU、EIoU和SIoU等改进方法的特点:GIoU通过闭包惩罚解决不相交问题,DIoU加速中心点对齐,CIoU加入宽高比约束,EIoU分离宽高损失,SIoU考虑角度对齐。作者结合实践经验指出,DIoU在大多数场景下已足够高效,小目标检测推荐EIoU,实时系统需平衡速度与精度,数据质量差时GIoU更鲁棒。强调应根据具体业务需求而非盲目追求最新方法选择损失函数,并警示自定义损失时需注意梯度稳定性

qq_44101455的博客 24

各种 IoU 损失变体-GIoU、DIoU、CIoU、EIoU、α-IoU、SIoU、MPDIoU、Inner/Shape/Focaler-IoU...

IoU损失及其各种变体已经在密集预测任务中展现出了优异的效果。这里做一个简单的罗列与梳理。

画心 5895

LVGL多线程编程避坑指南:从音乐播放器项目看UI与后台任务如何安全协作

本文深入探讨LVGL在多线程环境下的安全协作问题,以音乐播放器项目为例,解析UI与后台任务(如mplayer音频播放器)的典型冲突场景。提供全局互斥锁规范、任务队列异步处理等核心策略,并分享mplayer进程集成方案与进度条优化技巧,帮助开发者规避界面卡顿、内存损坏等常见问题。

weixin_42531494的博客 134

YOLO深度解读:IOU变体系列解析

🔍🏆🎉本文深度剖析目标检测核心指标IOU及其变体的技术演进,从基础IoU到SIoU的完整技术脉络,结合数学原理与YOLO实战代码,详解GIoU、DIoU、CIoU、EIoU、SIoU的创新点与适用场景。通过可视化对比和PyTorch代码实现,揭示不同变体在梯度优化、收敛速度、方向感知等方面的优劣,最后给出YOLO系列模型的选型建议和调优技巧。适合目标检测领域开发者收藏细读!

极限突破者的博客 1792

GSview5.0安装步骤及问题

GSview5.0安装步骤及问题安装步骤遇到的问题 尝试过很多对图片去白边的方法,感觉最好用最有效的还是用GSview比较好操作。本文针对gsview安装及安装过程中踩过的坑记录下来。 安装步骤 在官网下载gsv50w64.exe(或32位的),直接双击安装即可。 安装Ghostscript;注意:GSview5.0不支持最新版的Ghostscript9.54,这里用到是9.27的版本可以在Github中找到,下载gs927w64.exe,一定要安装在GSview的安装目录Ghostgum下 Gho

LilianLYN的博客 1万+

避坑指南:麒麟系统ARM架构下PostGIS离线安装常见问题解析

本文深度解析了在国产麒麟系统ARM64架构下进行PostGIS离线安装的完整路径与核心避坑点。通过对比Docker容器化与源码编译两种部署方式的优劣,详细阐述了离线Docker环境搭建、ARM64镜像获取验证、容器化配置及常见故障排查的全流程,为在特殊环境下稳定部署空间数据库提供了一套可靠的实践指南。

Python的专栏 287

目标检测中的IoU及其变体深度解析

数学定义: IoU=∣A∩B∣∣A∪B∣=Area of OverlapArea of Union \text{IoU} = \frac{|A \cap B|}{|A \cup B|} = \frac{\text{Area of Overlap}}{\text{Area of Union}} IoU=∣A∪B∣∣A∩B∣​=Area of UnionArea of Overlap​计算复杂度: T(n)=O(1)对于轴对齐矩形 T(n) = O(1) \quad \text{对于轴对齐矩形} T(n)=O(

2401_86968005的博客 960

activemq_CVE-2015-5254_漏洞复现_源码分析

ActiveMQ-CVE-2015-5254

qq_51550750的博客 940

【IoU变体对比:WIOU、SIOU、EIOU、GIOU、CIOU】

IoU变体对比:WIOU、SIOU、EIOU、GIOU、CIOU

dally2的博客 2682

Windows本地部署Ollama+qwen本地大语言模型Web交互界面并实现公网访问

本文主要介绍如何在Windows系统快速部署Ollama开源大语言模型运行工具,并安装Open WebUI结合cpolar内网穿透软件,实现在公网环境也能访问你在本地内网搭建的大语言模型运行环境。近些年来随着ChatGPT的兴起,大语言模型 LLM(Large Language Model)也成为了人工智能AI领域的热门话题,很多大厂也都推出了自己的大语言模型,并或多或少的开源了自己的大语言模型,今天就来分享一个最近很火,且对于小白来说比较好上手本地部署的运行本地LLM的工具Ollama。

迪之的博客 1652

阅文集团大数据面试题及参考答案

在 Flink 中,watermark 是一种用于处理乱序事件时间的机制。实现接口:通常需要实现 AssignerWithPeriodicWatermarks 或 AssignerWithPunctuatedWatermarks 接口。前者会周期性地生成 watermark,后者则是基于某些特定事件来生成 watermark ,比如接收到某个特定值的消息时。定义位置:可以在数据源处或者在流处理的中间操作中定义 watermark。在数据源定义时,能更精准地根据数据的产生特性设置 watermark;

大模型大数据攻城狮的专栏 1089

IoU已经out了,试试这几个变体:GIoU、DIoU和CIoU介绍与对比分析

GIoU、DIoU和CIoU这三个变体都有各自的独到之处,它们在一定程度上弥补了普通IoU在处理不重叠、距离较远或形状差异较大的边界框时的不足。这些新的指标不仅仅给出一个量化的分数,它们的各项组成部分还能告诉我们,预测结果好坏的原因究竟是什么。虽然本文主要聚焦在训练阶段,但请注意,这些指标实际上可以用于所有三个场景:训练、评估和推理。所以建议在所有场合都使用CIoU,但在评估时,可能还需要一些时间来建立对其数值的直观理解。

deephub 5132

µC/OS-II---任务就绪表

意思是:将变量OSRdyGrp中最低位为1的位数赋给y,那么,y就是最高优先级任务所在就绪表的行号,那么最高优先级的任务就在OSRdyGrp[y]行中,再根据。

weixin_45880844的博客 1649

使用chatGPT写的IoU及IoU变体的代码实现

Intersection over Union(IoU)是计算两个边界框的重叠程度的常用指标。这些变体都是用于计算两个边界框的重叠度量,目的是为了提高目标检测等任务的精度。在实际应用中,我们可以根据任务的需要选择适当的重叠度量。

南城以北的博客 783

CGAL 网格等高线计算

CGAL 网格等高线计算

dayuhaitang1的博客 452

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

GIoU、CIoU和DIoU对比:IoU的变体及其优缺点

GIoU、CIoU和DIoU对比:IoU的变体及其优缺点

阿旭的博客 1039

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

目标检测新思路:Focaler-IoU与其他IoU变体的对比实验报告

本文深入评测了目标检测领域的新型边界框回归损失函数Focaler-IoU。通过对比实验,分析了其借鉴Focal Loss思想、通过动态调整样本权重来聚焦难易样本的核心机制,并与GIoU、DIoU、CIoU等主流IoU变体进行性能横向对比,为不同场景下的损失函数选型提供了实战指南。

weixin_29061425的博客 280

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

手把手教你实现YOLOv5中的IoU Loss变体(附代码详解)

本文提供了一份详细的YOLOv5实战指南,手把手教你集成GIOU、CIOU、EIOU、SIOU等新一代IoU损失函数变体。通过剖析代码结构、提供核心函数实现与修改步骤,并分享训练调参技巧,旨在帮助开发者针对不同目标检测场景优化模型定位精度,解决传统IoU损失在无重叠或困难样本上的局限性。

c6d7e8f9g的博客 624

从YOLOv5 → YOLOv13中所用到的IoU变体

YOLO系列目标检测模型的框回归损失函数演变:Ultralytics家族的v5/v7/v8/v11均采用CIoU;YOLOv6根据模型规模分别使用SIoU(小模型)和GIoU(大模型);社区主导的v12和v13则分别切换为SIoU和EIoU作为默认选项,其中v13特别强调EIoU对微小目标定位的改进效果。整体呈现从传统CIoU向新型IoU变体过渡的趋势。

qq_39697468的博客 286

手把手教你实现YOLOv5中的IoU Loss变体(附代码)

本文详细解析了YOLOv5中IoU Loss的多种变体(GIoU、CIoU、EIoU、SIoU)的数学原理与实现方法,并提供了完整的代码示例。通过对比不同变体在目标检测中的性能表现,帮助开发者选择最适合的损失函数,提升模型精度与训练效率。特别适合需要优化边界框回归的计算机视觉工程师。

j0k1l2m3n的博客 198

YOLOv8目标检测调参实战:如何根据你的数据集选择最合适的IoU变体?

本文深入探讨了YOLOv8目标检测中不同IoU变体(如CIoU、DIoU、EIoU等)的选择策略,帮助开发者根据数据集特性优化模型性能。通过工业质检、遥感影像和自动驾驶等实际案例,详细分析了各IoU变体的适用场景和调参技巧,提升目标检测精度和效率。

weixin_30797199的博客 191
上一篇: 模型训练中哪些指标是关键性能?
下一篇: 生成对抗网络GAN学习笔记
美味不是堡
博客等级 码龄6年 2010粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值