首页 > 其他分享 >深度学习(IoU、GIoU、DIoU、CIoU)

深度学习(IoU、GIoU、DIoU、CIoU)

时间:2024-11-15 11:20:10浏览次数:1  
标签:GIoU frac text IoU DIoU CIoU

目录



在计算机视觉领域,特别是在目标检测任务中,损失函数用于衡量预测边界框与真实边界框之间的差异。常用的损失函数包括 IoU(Intersection over Union)GIoU(Generalized Intersection over Union)DIoU(Distance Intersection over Union)CIoU(Complete Intersection over Union)



1. IoU

IoU 是一种经典的衡量两个矩形框重叠程度的指标。它表示预测框与真实框的交集与并集的比值。计算公式为:

\[\text{IoU} = \frac{|A \cap B|}{|A \cup B|} \]

其中,\(A\) 和 \(B\) 分别是预测框和真实框的面积,\(\cap\) 表示交集,\(\cup\) 表示并集。

  • 优点:简单易理解,广泛用于目标检测任务中的评估。
  • 缺点:当预测框与真实框的重叠较少时,IoU 会变得非常小,这对于训练来说可能不是非常有效。


2. GIoU

GIoU 是对 IoU 的改进,旨在解决 IoU 在一些特殊情况下(如两个框没有交集时)无法提供有效梯度的问题。GIoU 在 IoU 的基础上引入了一个额外的项,来惩罚没有交集的情况。计算公式为:

\[\text{GIoU} = \text{IoU} - \frac{|C - (A \cup B)|}{|C|} \]

其中,\(C\) 是包含 \(A\) 和 \(B\) 的最小外接矩形(即最小闭包矩形)。该公式通过考虑两个框的周围区域来改进原始的 IoU。

  • 优点:
    • 相比于IoU,GIoU考虑了目标框的几何形状,不仅考虑它们的重叠部分,还考虑它们之间的空隙。
    • GIoU的值范围为[-1, 1],当预测框完全包含真实框时,GIoU值为1,当预测框与真实框完全不相交时,GIoU值为-1。
  • 缺点:计算略为复杂,且当两个框完全没有交集时,仍然可能存在较大的惩罚。


3. DIoU

DIoU 是 GIoU 的进一步改进,专注于优化框之间的距离,而不仅仅是重叠区域。它引入了框中心之间的欧几里得距离,并通过该距离来惩罚预测框与真实框的相对位置差异。计算公式为:

\[\text{DIoU} = \text{IoU} - \frac{\rho^2(\mathbf{b}, \mathbf{b}_{gt})}{d^2 + \epsilon} \]

其中,\(\rho(\mathbf{b}, \mathbf{b}_{gt})\) 是预测框和真实框中心之间的欧几里得距离,\(d\) 是边界框的对角线长度,\(\epsilon\) 是一个小的常数用于避免除零错误。

  • 优点:通过引入框之间的距离信息,DIoU 能够更好地衡量框的相对位置,避免了单纯依赖于重叠区域的局限。
  • 缺点:当两个框非常远时,距离项可能会使得损失值较大。


4. CIoU

CIoU 是 DIoU 的进一步改进,综合了 IoU、框中心的距离、宽高比等信息。CIoU 通过惩罚预测框与真实框的宽高比差异,以及框中心的距离来提供更精细的损失计算。计算公式为:

\[\text{CIoU} = \text{IoU} - \frac{\rho^2(\mathbf{b}, \mathbf{b}_{gt})}{d^2 + \epsilon} - \alpha v \]

其中,\(v = \frac{4}{\pi^2} \left(\arctan\left(\frac{w_{gt}}{h_{gt}}\right) - \arctan\left(\frac{w}{h}\right)\right)^2\) 是宽高比的差异项,\(\alpha\) 是一个权重因子。

  • 优点:
    • CIoU不只是考虑重叠面积和形状,还将中心点之间的距离、长宽比等因素纳入损失函数,使得框的定位更加精确。
    • 相比于IoU和GIoU,CIoU能够更好地处理框的缩放问题,并且提供了对长宽比的惩罚,减少了框形状的偏差。
  • 缺点:计算较为复杂,且在某些情况下可能对不同的任务具有不同的优化效果。


5. 区别总结

指标 优势 缺点
IoU 简单直观,易于计算 对于无交集的框,无法提供有效信息
GIoU 即使没有交集也能提供梯度,解决了 IoU 的问题 计算较复杂,可能对一些任务的效果不好
DIoU 引入了中心点的距离,能更精确地度量框的相对位置 对于框相距较远的情况,可能效果不佳
CIoU 综合了 IoU、距离和宽高比,提供更全面的框匹配度量 计算最复杂,可能对不同任务影响不同

总的来说,IoU 是最基础的指标,GIoUDIoU 在 IoU 的基础上做了改进,解决了 IoU 的一些缺点。而 CIoU 则在这两者的基础上进一步考虑了宽高比的差异,是最全面的框匹配度量。对于不同的应用任务,可以根据需要选择合适的损失函数来优化目标检测模型。



标签:GIoU,frac,text,IoU,DIoU,CIoU
From: https://www.cnblogs.com/keye/p/18547618

相关文章

  • ffmpeg Code behaviour
    CorrectnessThecodemustbevalid.Itmustnotcrash,abort,accessinvalidpointers,leakmemory,causedataracesorsignedintegeroverflow,orotherwisecauseundefinedbehaviour.Errorcodesshouldbecheckedand,whenapplicable,forwardedtotheca......
  • [BUUCTF]Mysterious
    [BUUCTF]Mysterious分析下载得到可执行文件,随便输入一些,没得反应解题PE..L..说明其为32位的exe文件,放入IDAPE…d…是64位程序shift+F12检索字符串,看到welldone,点进去原因:大佬说这可能表示该程序输入成功后的情况类似于答案的文字左侧401090进去,接着F5进行反编译将......
  • Model the various vehicles in the city.
    Assignment4ProgramDescription:Thisassignmenttestsyourunderstandingofinheritance,polymorphism,interfaces,andabstractclasses. Theprogramisasimulatorofcitystreets,trafficlights,andvehicles. Yourtaskistowritetheclassestomode......
  • YOLOv6-4.0部分代码阅读笔记-iou2d_calculator.py
    iou2d_calculator.pyyolov6\assigners\iou2d_calculator.py目录iou2d_calculator.py1.所需的库和模块2.defcast_tensor_type(x,scale=1.,dtype=None): 3.deffp16_clamp(x,min=None,max=None): 4.defiou2d_calculator(bboxes1,bboxes2,mode='iou',is_align......
  • Breeze - Advanced Character Behaviour
    一个适用于各类项目的高级行为系统工具,旨在提供优化的特性和功能,以创建多样化的角色行为。该工具能够处理射击、近战、NPC和漫游等多种角色类型,不仅提供行为系统解决方案,还具备可扩展的模板功能。主要特性包括:简易设置向导:通过编辑器窗口快速创建系统。内置设置指南:系统自动检......
  • 【YOLOv10改进[损失函数]】使用结合InnerIoU和Focaler的各种损失函数助力YOLOv10更优
    目录一损失函数二改进v10的损失函数1总体修改①ultralytics/utils/metrics.py文件② ultralytics/utils/loss.py文件③ ultralytics/utils/tal.py文件2各种机制的使用3训练一损失函数【DL】损失函数:IOU|GIOU|DIOU|CIOU|EIOU|MPDIoU|SIOU|InnerIoU|Focaler......
  • YOLOv11性能评估指标 AP、mAP、Precision、Recall、FPS、IoU、混淆矩阵、F1等YOLO相关
    开始讲解之前推荐一下我的专栏,本专栏的内容支持(分类、检测、分割、追踪、关键点检测),专栏目前为限时折扣,欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。 专栏回顾:YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科......
  • “Celebrating National Day: A Glorious Chapter“
    Thewindofgoldenautumnbringsdelicatefragrance.Thechrysanthemumsinfrostofferbloomingbeautyforaseason.Kissingtheafterglowofthesettingsun,loveoverflowsfromgentleeyes.Lookingatthepeacefulfieldsallaround,passionfliesintov......
  • 虚假唤醒(Spurious Wakeup)详解:从概念到实践
    你有没有想过,在复杂的多线程编程世界中,有一种看不见却极具破坏力的“幽灵”悄然潜伏?它们不会发出任何警告,却能在你最不经意的时候打乱程序的节奏。这些“幽灵”就是我们今天要讨论的主题:虚假唤醒(SpuriousWakeup)。听起来有点玄乎,但别担心,今天我们将深入浅出地揭开它的神秘面......
  • CF1648D Serious Business题解
    题目链接关键:DP状态的设计\(dp[i]\)表示走到\((2,i)\)的最小价值。转移分类讨论只用一个区间\(i\)从\([li,x]\)选择位置向下拐\(dp[i]=max_{li\lek\lex}(sum[1][k]+sum[2][x]-sum[2][k-1]+v[i])\)使用别的区间显然转移点小于\(li\),不然用一个区间即可。\(dp[i]=max_......