Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >YOLOv8、v7、v5优化:Powerful-IoU更好、更快的收敛IoU | 2024年最新IoU

YOLOv8、v7、v5优化:Powerful-IoU更好、更快的收敛IoU | 2024年最新IoU

原创
作者头像
AI小怪兽
发布于 2024-01-25 11:58:56
发布于 2024-01-25 11:58:56
2.1K18
代码可运行
举报
文章被收录于专栏:YOLO大作战YOLO大作战
运行总次数:8
代码可运行

💡💡💡本文独家改进:Powerful-IoU更好、更快的收敛IoU,是一种结合了目标尺寸自适应惩罚因子和基于锚框质量的梯度调节函数的损失函数

💡💡💡MS COCO和PASCAL VOC数据集实现涨点

1.Powerful-IoU介绍

链接:https://www.sciencedirect.com/science/article/abs/pii/S0893608023006640

摘要:边界框回归(Bounding box regression, BBR)是目标检测中的核心任务之一,而BBR的损失函数对其性能影响很大。然而,我们观察到现有的基于iou的损失函数受到不合理的惩罚因素的影响,导致锚框在回归过程中膨胀,显著减缓了收敛速度。为了解决这个问题,我们深入分析了锚框增大的原因。为此,我们提出了一种结合了目标尺寸自适应惩罚因子和基于锚框质量的梯度调节函数的强效iou (PIoU)损失函数。PIoU损耗引导锚框沿着有效路径回归,从而比现有的基于iou的损耗更快地收敛。此外,我们还研究了聚焦机制,并引入了一个非单调注意层,将其与PIoU结合,得到了一个新的损失函数PIoU v2。PIoU v2损耗增强了对中等质量锚框的聚焦能力。通过将PIoU v2整合到流行的目标检测器(如YOLOv8和DINO)中,我们在MS COCO和PASCAL VOC数据集上实现了平均精度(AP)的提高和性能的改进,从而验证了我们提出的改进策略的有效性。

图1所示。基于不同iou的损失函数指导下的锚框回归过程。彩色框是在回归过程中由不同损失函数引导的锚框。很明显,以PIoU损失为导向的锚盒是最快回归到接近目标盒的。此外,除PIoU损失外,所有损失函数引导的锚盒都存在面积扩大问题,而PIoU损失引导的锚盒则不存在面积扩大问题。

图2所示。基于IoU的损失。(a)和(b)中的损失函数都使用诸如锚框和目标框的最小外部边界框(灰色虚线框)的对角线长度或面积等维度信息作为损失因子的分母。相反,(c)中的PIoU损耗仅使用目标盒的边缘长度作为损耗因子的分母。

图3所示。一个扩展锚框的例子。在左图中,锚框的中心位置为(4,4),宽度为4,高度为2。在右图中,锚框的中心位置也是(4,4),但宽度为6,高度为3。可以观察到,尽管锚盒尺寸增大,但𝑅𝐺𝐼𝑜𝑈、𝑅𝐷和𝛥减小。然而,𝑅P𝐼𝑜𝑈并没有表现出这样的行为。

1.1 PIoU v2损失

在本节中,我们将探讨聚焦机制在我们提出的损失函数中的应用。为了解决第2.2节中提到的Focal EIoU (Zhang, Ren et al., 2022)和WIoU (Tong et al., 2023)的局限性,我们设计了一个由单个超参数控制的非单调注意函数与PIoU相结合。PIoU v2损耗在PIoU损耗上增加注意层后得到,增强了对中高质量锚盒的聚焦能力,提升了目标检测器的性能。注意函数和PIoU v2损失定义为:

1.3 实验结果

2.Powerful-IoU如何将入到YOLOv8

2.1修改ultralytics/utils/metrics.py

核心代码 # Intersection area

代码语言:python
代码运行次数:8
运行
AI代码解释
复制


    # PIoU
    dw1 = torch.abs(b1_x2.minimum(b1_x1) - b2_x2.minimum(b2_x1))
    dw2 = torch.abs(b1_x2.maximum(b1_x1) - b2_x2.maximum(b2_x1))
    dh1 = torch.abs(b1_y2.minimum(b1_y1) - b2_y2.minimum(b2_y1))
    dh2 = torch.abs(b1_y2.maximum(b1_y1) - b2_y2.maximum(b2_y1))
    P = ((dw1 + dw2) / torch.abs(w2) + (dh1 + dh2) / torch.abs(h2)) / 4
    L_v1 = 1 - iou - torch.exp(-P ** 2) + 1

    if PIoU:
        return L_v1

    if PIoU2:
        q = torch.exp(-P)
        x = q * Lambda
        return 3 * x * torch.exp(-x ** 2) * L_v1
   

by AI小怪兽

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
学习了。了解过一些。但确实是Powerful-IoU更好一些
学习了。了解过一些。但确实是Powerful-IoU更好一些
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
YOLOv8原创改进:提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好 | 2023.12.29收录
💡💡💡本文改进:一种新的Shape IoU方法,该方法可以通过关注边界框本身的形状和尺度来计算损失,解决边界盒的形状和规模等固有属性对边界盒回归的影响。
AI小怪兽
2024/01/15
1K1
YOLOv8改进:Inner-MPDIoU | Inner-IoU基于辅助边框的IoU损失,高效结合新型边界框相似度度量(MPDIoU) | 2023.11
本文独家改进:Inner-IoU引入尺度因子 ratio 控制辅助边框的尺度大小用于计算损失,新型边界框相似度度量(MPDIoU)MPDIoU损失进行有效结合
AI小怪兽
2023/11/16
2.2K0
YOLOv8损失函数改进:MPDIoU新型边界框相似度度量,效果秒杀GIoU 、 DIoU 、CIoU 、 EIoU等 | ELSEVIER 2023
摘要:边界框回归(BBR)已广泛应用于对象检测和实例分割,是对象定位的重要步骤。 然而,当预测框与真实框具有相同的长宽比,但宽度和高度值完全不同时,大多数现有的边界框回归损失函数无法优化。 为了解决上述问题,我们充分挖掘水平矩形的几何特征,提出了一种基于最小点距离的新型边界框相似度比较度量MPDIoU,它包含了现有损失函数中考虑的所有相关因素,即重叠 或非重叠区域、中心点距离、宽高偏差,同时简化计算过程。 在此基础上,我们提出了一种基于 MPDIoU 的边界框回归损失函数,称为 LMPDIoU 。 实验结果表明,MPDIoU 损失函数适用于在 PASCAL VOC、MS COCO 和 IIIT5k 上训练的最先进的实例分割(例如 YOLACT)和对象检测(例如 YOLOv7)模型优于现有的损失函数。
AI小怪兽
2023/10/10
2.7K0
YOLOv12涨点优化:IoU优化 | 一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好
💡💡💡现有IoU问题点:现有的边界盒回归方法通常考虑GT盒与预测盒之间的几何关系,利用边界盒的相对位置和形状来计算损失,而忽略了边界盒的形状和规模等固有属性对边界盒回归的影响。
AI小怪兽
2025/03/12
3290
YOLOv8、v7、v5优化:更加聚焦的IoU损失Focaler-IoU | 2024年最新IoU改进
💡💡💡本文独家改进:更加聚焦的IoU损失Focaler-IoU,能够在不同的检测任务中聚焦不同的回归样本,使用线性区间映射的方法来重构IoU损失
AI小怪兽
2024/01/24
1.6K0
YOLOv5学习总结(持续更新)「建议收藏」
首先感谢江大白大佬的研究与分享,贴上链接 深入浅出Yolo系列之Yolov5核心基础知识完整讲解 将yolov3-v5的变化讲的很清楚,思路很清晰,值得花时间好好从头到尾读一遍。
全栈程序员站长
2022/07/28
1.5K0
YOLOv5学习总结(持续更新)「建议收藏」
YoloV8改进策略:Inner-IoU+clou,YoloV8的涨点明珠
在分析现有IoU-based BBR的基础上,提出区分不同的回归样本并使用不同尺度的辅助边界框来计算损失,以有效加速边界框回归过程。对于高IoU样本,使用较小的辅助边界框计算损失可以加速收敛,而较大的辅助边界框则适合低IoU样本,作者将其命名为Inner-IoU。Inner-IoU通过使用一个可调整的缩放因子比率来控制计算损失的辅助边界框的尺度大小,以适应不同的数据集和检测器。将Inner-IoU集成到现有的基于IoU的损失函数中进行模拟和对比实验,结果表明该方法在检测性能方面有了进一步的提升,验证了Inner-IoU损失的有效性和泛化能力。
AI浩
2024/10/22
1850
YoloV8改进策略:Inner-IoU+clou,YoloV8的涨点明珠
改进YOLOX | Push-IOU+Dynamic Anchor进一步提升YOLOX性能
近年来,自动驾驶汽车不断走进我们的视野中,面向自动驾驶的目标检测算法也成为了国内外的研究热点之一。安全可靠的自动驾驶汽车依赖于对周围环境的准确感知,以便及时做出正确的决策。目标检测是自动驾驶系统的关键任务之一,其主要的功能是检测前方道路上出现的目标的空间位置和目标类别。
集智书童公众号
2023/02/26
1.7K1
改进YOLOX | Push-IOU+Dynamic Anchor进一步提升YOLOX性能
YoloV8改进策略:IoU改进|Iou Loss最新实践|高效涨点|完整论文翻译
<font color=Red size=5>涨点效果:在我自己的数据集上,mAP50 由0.986涨到了0.99,mAP50-95由0.737涨到0.753,涨点明显!</font>
AI浩
2024/08/27
2800
YoloV8改进策略:IoU改进|Iou Loss最新实践|高效涨点|完整论文翻译
Yolov8 源码解析(四十二)
ApacheCN_飞龙
2024/09/13
3840
【深度学习】RetinaNet 代码完全解析
本文就是大名鼎鼎的focalloss中提出的网络,其基本结构backbone+fpn+head也是目前目标检测算法的标准结构。RetinaNet凭借结构精简,清晰明了、可扩展性强、效果优秀,成为了很多算法的baseline。本文不去过多从理论分析focalloss的机制,从代码角度解析RetinaNet的实现过程,尤其是anchor生成与匹配、loss计算过程。
黄博的机器学习圈子
2020/12/11
1.4K0
【深度学习】RetinaNet 代码完全解析
YOLOv8红外小目标检测:Wasserstein Distance Loss,助力小目标涨点(1)
今日推荐:Spring AI 再更新:如何借助全局参数实现智能数据库操作与个性化待办管理
AI小怪兽
2024/11/11
7560
改进YOLOX | Push-IOU+Dynamic Anchor进一步提升YOLOX性能
近年来,自动驾驶汽车不断走进我们的视野中,面向自动驾驶的目标检测算法也成为了国内外的研究热点之一。安全可靠的自动驾驶汽车依赖于对周围环境的准确感知,以便及时做出正确的决策。目标检测是自动驾驶系统的关键任务之一,其主要的功能是检测前方道路上出现的目标的空间位置和目标类别。
AiCharm
2023/05/15
8850
改进YOLOX | Push-IOU+Dynamic Anchor进一步提升YOLOX性能
Focaler-IoU开源 | 高于SIoU+关注困难样本,让YOLOv5再涨1.9%,YOLOv8再涨点0.3%
目标检测是计算机视觉的基本任务之一,其目的是在图像中定位并识别物体。根据是否生成 Anchor 点,目标检测方法可以分为Anchor-based和 Anchor-Free两大类。Anchor-based算法包括FasterR-CNN,YOLO系列,SSD和 RetinaNet。 Anchor-Free的检测算法包括CornerNet,CenterNet 和 FCOS。在这些检测器中,边界框回归损失函数作为定位分支的重要组成部分,起着不可替代的作用。
集智书童公众号
2024/01/23
8320
Focaler-IoU开源 | 高于SIoU+关注困难样本,让YOLOv5再涨1.9%,YOLOv8再涨点0.3%
教程 | 从零开始PyTorch项目:YOLO v3目标检测实现(下)
选自Medium 作者:Ayoosh Kathuria 机器之心编译 参与:Panda 前几日,机器之心编译介绍了《从零开始 PyTorch 项目:YOLO v3 目标检测实现》的前 3 部分,介绍了 YOLO 的工作原理、创建 YOLO 网络层级和实现网络的前向传播的方法。本文包含了该教程的后面两个部分,将介绍「置信度阈值设置和非极大值抑制」以及「设计输入和输出流程」的方法。总体而言,本教程的目的是使用 PyTorch 实现基于 YOLO v3 的目标检测器,后者是一种快速的目标检测算法。 本教程使用的代
机器之心
2018/05/08
5.8K0
教程 | 从零开始PyTorch项目:YOLO v3目标检测实现(下)
YOLOV3 原理分析(全网资料整理)
首先通过特征提取网络对输入特征提取特征,得到特定大小的特征图输出。输入图像分成13×13的grid cell,接着如果真实框中某个object的中心坐标落在某个grid cell中,那么就由该grid cell来预测该object。每个object有固定数量的bounding box,YOLO v3中有三个bounding box,使用逻辑回归确定用来预测的回归框。
玖柒的小窝
2021/09/17
7440
YOLOV3 原理分析(全网资料整理)
CVPR2022 | Anchor-Free之Label Assignment全新范式,目标检测经典之作!!!
目标检测作为一项基本的视觉任务,几十年来一直受到研究人员的广泛关注。目前最先进的检测器大多通过使用一组预定义的Anchor来预测类标签和回归偏移量来执行密集检测。
集智书童公众号
2022/04/07
1.1K0
CVPR2022 | Anchor-Free之Label Assignment全新范式,目标检测经典之作!!!
实例分割新思路之SOLO v1&v2深度解析
实例分割一般有两种做法,一种是top-down,既先检测 bbox,后在每个bbox中进行mask的分割,例如Mask R-CNN。第二种为bottom-up做法,先分割出每一个像素,再进行归类。本文介绍的两篇论文另辟蹊径, 直接分割实例 mask,属于box-free的做法。正如YOLO大神Joseph Redmon所说“Boxes are stupid anyway though, I’m probably a true believer in masks except I can’t get YOLO to learn them“。本文就是摒弃了boxes进行实例分割,因此有必要对该论文进行深入分析。
lujohn3li
2020/09/24
3K0
实例分割新思路之SOLO v1&v2深度解析
Unified-IoU:用于高质量对象检测
https://arxiv.org/pdf/2408.06636 目标检测是计算机视觉领域的重要部分,而目标检测的效果直接由预测框的回归精度决定。作为模型训练的关键,交并比(IoU,Intersection over Union)极大地展示了当前预测框与真实框之间的差异。后续研究人员不断在IoU中加入更多考量因素,如中心距离、纵横比等。然而,仅仅细化几何差异存在上限;新的考量指标与IoU本身之间存在潜在联系,两者之间的直接加减可能导致“过度考量”的问题。基于此,我们提出了一种新的IoU损失函数,称为统一IoU(UIoU),它更关注于不同质量预测框之间的权重分配。具体来说,该损失函数以一种新颖的方式动态地将模型的注意力从低质量预测框转移到高质量预测框,以增强模型在高精度或密集型数据集上的检测性能,并在训练速度上实现平衡。我们的方法在多个数据集上取得了更好的性能,尤其是在高IoU阈值下,UIoU相比其他改进的IoU损失具有更显著的改进效果。我们的代码已公开可用,地址为:https://github.com/lxjdrifter/UIOU_files。
AI浩
2024/10/22
1610
Unified-IoU:用于高质量对象检测
YoloV8改进策略:Block改进|RFE模块|即插即用
本文介绍了一种基于YOLOv5的人脸检测方法,命名为YOLO-FaceV2。该方法旨在解决人脸检测中的尺度变化、简单与困难样本不平衡以及人脸遮挡等问题。通过引入一系列创新模块和损失函数,YOLO-FaceV2在WiderFace数据集上取得了优异的表现,特别是在小物体、遮挡和困难样本的检测上。
AI浩
2024/10/31
4670
YoloV8改进策略:Block改进|RFE模块|即插即用
推荐阅读
YOLOv8原创改进:提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好 | 2023.12.29收录
1K1
YOLOv8改进:Inner-MPDIoU | Inner-IoU基于辅助边框的IoU损失,高效结合新型边界框相似度度量(MPDIoU) | 2023.11
2.2K0
YOLOv8损失函数改进:MPDIoU新型边界框相似度度量,效果秒杀GIoU 、 DIoU 、CIoU 、 EIoU等 | ELSEVIER 2023
2.7K0
YOLOv12涨点优化:IoU优化 | 一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好
3290
YOLOv8、v7、v5优化:更加聚焦的IoU损失Focaler-IoU | 2024年最新IoU改进
1.6K0
YOLOv5学习总结(持续更新)「建议收藏」
1.5K0
YoloV8改进策略:Inner-IoU+clou,YoloV8的涨点明珠
1850
改进YOLOX | Push-IOU+Dynamic Anchor进一步提升YOLOX性能
1.7K1
YoloV8改进策略:IoU改进|Iou Loss最新实践|高效涨点|完整论文翻译
2800
Yolov8 源码解析(四十二)
3840
【深度学习】RetinaNet 代码完全解析
1.4K0
YOLOv8红外小目标检测:Wasserstein Distance Loss,助力小目标涨点(1)
7560
改进YOLOX | Push-IOU+Dynamic Anchor进一步提升YOLOX性能
8850
Focaler-IoU开源 | 高于SIoU+关注困难样本,让YOLOv5再涨1.9%,YOLOv8再涨点0.3%
8320
教程 | 从零开始PyTorch项目:YOLO v3目标检测实现(下)
5.8K0
YOLOV3 原理分析(全网资料整理)
7440
CVPR2022 | Anchor-Free之Label Assignment全新范式,目标检测经典之作!!!
1.1K0
实例分割新思路之SOLO v1&v2深度解析
3K0
Unified-IoU:用于高质量对象检测
1610
YoloV8改进策略:Block改进|RFE模块|即插即用
4670
相关推荐
YOLOv8原创改进:提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好 | 2023.12.29收录
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验