YOLOv8改进 | 损失函数篇 | QualityFocalLoss质量焦点损失(含代码 + 详细修改教程)

简介: YOLOv8改进 | 损失函数篇 | QualityFocalLoss质量焦点损失(含代码 + 详细修改教程)

一、本文介绍

本文给大家带来的改进机制是QualityFocalLoss,其是一种CLS分类损失函数,它的主要创新是将目标的定位质量(如边界框与真实对象的重叠度量,例如IoU得分)直接融合到分类损失中,形成一个联合表示。这种方法能够解决传统目标检测中分类与定位任务之间存在的不一致性问题。QFL通过为每个类别的得分赋予根据定位质量调整的权重,使得检测模型在训练过程中能够更加关注那些难以定位或分类的样本。

在开始之前给大家推荐一下我的专栏,本专栏每周更新3-10篇最新前沿机制 | 包括二次创新全网无重复,以及融合改进(大家拿到之后添加另外一个改进机制在你的数据集上实现涨点即可撰写论文),还有各种前沿顶会改进机制 |,更有包含我所有附赠的文件(文件内集成我所有的改进机制全部注册完毕可以直接运行)和交流群和视频讲解提供给大家。

欢迎大家订阅我的专栏一起学习YOLO!

image.png


专栏目录:YOLOv8改进有效系列目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制
专栏回顾:YOLOv8改进系列专栏——本专栏持续复习各种顶会内容——科研必备

二、Quality Focal Loss原理


image.png

2.1 Quality Focal Loss的基本原理

Quality Focal Loss (QFL) 是一种用于目标检测的改进损失函数。它的主要创新是将目标的定位质量(如边界框与真实对象的重叠度量,例如IoU得分)直接融合到分类损失中,形成一个联合表示。这种方法能够解决传统目标检测中分类与定位任务之间存在的不一致性问题。QFL通过为每个类别的得分赋予根据定位质量调整的权重,使得检测模型在训练过程中能够更加关注那些难以定位或分类的样本。

Quality Focal Loss(QFL)的基本原理可以分为以下几个要点:

1. 联合表示法: QFL将定位质量(如IoU分数)与分类得分融合为一个联合表示,这种表示在训练和推理过程中保持一致性,有助于解决在训练和测试阶段对质量估计和分类得分使用不一致的问题。

2. 连续标签支持: 传统的Focal Loss仅支持离散的{0, 1}标签,而QFL扩展了这一概念,支持连续的标签(如IoU分数),从0到1的浮点数,更好地反映了实际数据中的情况。

3. 动态调整难度: QFL通过动态调整损失函数,使得模型在训练过程中更多地关注难以分类或定位的样本,从而提高模型的整体性能。

2.2 联合表示法

联合表示法是Quality Focal Loss中的核心概念,它将分类得分和定位质量(例如IoU得分)整合到单一的预测向量中。这种表示方法解决了传统目标检测方法中训练和推理阶段质量估计与分类评分分离使用的不一致性问题。具体来说,它允许模型在预测分类的同时,估计每个检测框的定位质量,从而在非最大抑制(NMS)处理中提供更准确的排序得分,改善检测性能。

下图展示了传统方法(Existing Work)和我们的方法之间在分类和定位质量估计方面的不同表示形式的对比:

image.png

图(a)中,即现有工作,训练和测试阶段分别独立处理分类得分、边界框回归和IoU/centerness得分,这导致了训练和推理之间的不一致性。

而在图(b)中,我们的方法则将分类得分和IoU得分结合为一个联合表示,即在训练和测试时都使用的分类与IoU联合得分。这种联合表示提高了训练和推理之间的一致性,与Quality Focal Loss的基本原理中提到的“联合表示法”紧密相关。在Quality Focal Loss中,通过这种方式,模型能够在训练过程中考虑到每个样本的定位质量,使得损失函数能够更加关注那些定位或分类困难的样本。

2.3 连续标签支持

连续标签支持是指在质量焦点损失(Quality Focal Loss, QFL)中,分类的输出标签不再是传统的0或1(如在one-hot编码中),而是可以取任意在0到1之间的连续值。这些连续值代表了目标定位的质量,通常是指与真实边界框的交并比(IoU)。通过这种方式,QFL可以直接在损失函数中整合定位质量,使得损失函数能够对定位不准确的样本施加更大的权重,从而激励模型学习更准确地预测边界框。

下面这张图比较了传统目标检测方法和提出的广义焦点损失(GFL)方法之间的差异:

image.png

在传统方法(Existing Work)中,分类分支使用one-hot标签进行正类和负类的区分,而回归分支则采用Dirac delta分布进行边界框的预测。相比之下,GFL方法引入了质量焦点损失(QFL)和分布焦点损失(DFL)。QFL通过软one-hot标签(IoU标签)进行学习,这些标签反映了边界框的定位质量。同时,DFL使用一般分布

image.png

来模拟边界框位置的概率分布。


2.4 动态调整难度

动态调整难度是质量焦点损失(Quality Focal Loss, QFL)的一个特点,它允许模型在训练过程中更多地关注那些难以分类或定位的样本。这是通过调整损失函数中的一个参数来实现的,该参数会增加对模型预测不确定性较高的样本的损失值,使得模型更加集中于这些难以预测的样本上。这种方法旨在提高模型对困难样本的敏感性,帮助模型更加精确地进行分类和定位,尤其是在面对复杂或模糊的检测场景时。

下面这张图展示了Quality Focal Loss (QFL)在不同β参数下的损失曲线,以及不同分布对于相同积分目标的表示和实际边界框回归目标的分布直方图:

image.png


图(a)展示的QFL损失曲线与基本原理中的“动态调整难度”相关,因为它展示了如何通过调整β参数来调节模型对于难以预测样本的关注度。

图(b)展示了不同的概率分布如何针对相同的积分目标(即回归目标)进行调整,这与“表示任意分布的边界框位置”的原理有关。

图(c)则是实际数据集中回归目标的分布,这有助于我们理解和验证QFL在实际应用中的效果。

目录
相关文章
|
3月前
|
算法 计算机视觉
YOLOv8改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
YOLOv8改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
124 2
|
3月前
|
机器学习/深度学习 算法 计算机视觉
YOLOv5改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
YOLOv5改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
82 1
|
3月前
|
机器学习/深度学习
YOLOv8改进 | 损失函数篇 | 更加聚焦的边界框损失Focaler-IoU、InnerFocalerIoU(二次创新)
YOLOv8改进 | 损失函数篇 | 更加聚焦的边界框损失Focaler-IoU、InnerFocalerIoU(二次创新)
225 0
|
3月前
|
数据挖掘 计算机视觉
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
158 1
|
3月前
|
机器学习/深度学习
YOLOv5改进 | 损失函数篇 | 更加聚焦的边界框损失Focaler-IoU | 二次创新Inner-FocalerIoU
YOLOv5改进 | 损失函数篇 | 更加聚焦的边界框损失Focaler-IoU | 二次创新Inner-FocalerIoU
322 2
|
2月前
|
机器学习/深度学习 算法 网络架构
大模型开发:什么是梯度消失和梯度爆炸问题?如何解决这些问题?
深度学习中的梯度消失和爆炸问题影响模型学习和收敛。梯度消失导致深层网络参数更新缓慢,而梯度爆炸使训练不稳。解决方法包括:使用ReLU类激活函数、权重初始化策略(如He或Xavier)、残差连接、批量归一化。针对梯度爆炸,可采用梯度裁剪、权重约束和优化器如RMSProp、Adam。结合这些技术能改善网络训练效果和稳定性。
332 3
|
2月前
|
机器学习/深度学习
大模型开发: 解释批量归一化以及它在训练深度网络中的好处。
批量归一化(BN)是2015年提出的加速深度学习训练的技术,旨在解决内部协变量偏移、梯度消失/爆炸等问题。BN通过在每层神经网络的小批量数据上计算均值和方差,进行标准化处理,并添加可学习的γ和β参数,保持网络表达能力。这样能加速训练,降低超参数敏感性,对抗过拟合,简化初始化。BN通过稳定中间层输入分布,提升了模型训练效率和性能。
44 3
|
3月前
|
机器学习/深度学习 网络架构 计算机视觉
YOLOv8改进 | 主干篇 | 12月最新成果UniRepLknet特征提取网络(附对比试验效果图)
YOLOv8改进 | 主干篇 | 12月最新成果UniRepLknet特征提取网络(附对比试验效果图)
64 0
|
5月前
|
存储 数据可视化 计算机视觉
基于YOLOv8的自定义数据姿势估计
基于YOLOv8的自定义数据姿势估计
|
6月前
|
机器学习/深度学习 自然语言处理 算法
【网安AIGC专题11.1】11 Coreset-C 主动学习:特征选择+11种采样方法+CodeBERT、GraphCodeBERT+多分类(问题分类)二元分类(克隆检测)非分类任务(代码总结)
【网安AIGC专题11.1】11 Coreset-C 主动学习:特征选择+11种采样方法+CodeBERT、GraphCodeBERT+多分类(问题分类)二元分类(克隆检测)非分类任务(代码总结)
104 0