YOLOV5改进-Focal-EIoU

一、Focal-EIoU介绍

论文地址:Focal and Efficient IOU Loss for Accurate Bounding Box Regression

        论文提出了一种新的损失函数,用于目标检测任务中的精确边界框回归。改进 (IOU) 损失。

该损失通常用于评估预测边界框的质量。

        总结了现有回归 loss 的问题:最重要的是没有直接优化需要优化的参数
        提出了现有方法收敛速度较慢的问题,低质量样本贡献了大部分的梯度,限制了框的回归。
        提出了 Focal-EIoU,平衡高质量样本和低质量样本对 loss 的贡献,也就是提升高质量(IoU 大)样本的贡献,抑制低质量(IoU 小)样本的贡献

  1. Focal IOU Loss:解决了目标检测中类不平衡的问题,与用于分类任务的Focal Loss类似,Focal IOU loss为具有挑战性的样本,即IOU值较低的样本分配更高的权重,以强调它们在训练过程中的重要性。

  2. Efficient IOU Loss:为了提高效率,提出了Efficient IOU loss,它使用平滑函数来近似IOU计算。与传统的 IOU 损失计算相比,这种近似降低了计算复杂度和内存需求。

  3. Focal IOU loss 和 Efficient IOU loss,本文展示了精确边界框回归任务的性能改进,尤其是在存在类不平衡和具有挑战性的样本的情况下。

二、回归loss介绍

       回归通过确定(梯度信号)损失函数减小的方向,梯度是损失函数关于参数的导数,它表示了损失函数在参数空间中的变化率。损失函数是描述模型预测结果与真实标签(ground truth)之间的关系。通过计算损失函数对参数的梯度,我们可以确定梯度的方向,并沿着负梯度方向更新参数,使得损失函数逐步减小。回归loss主要有两种loss函数,ln​-norm函数和IoU-based函数

        IoU-based函数中的四个loss

        01--IoU loss 的问题:两个边界框不相交时,IoU损失函数将无法提供有效的梯度更新,且无法反映它们之间的距离远近,导致收敛速度较慢。
        02-- GIoU loss 的问题:加入惩罚项(用于衡量预测边界框与真实边界框之间的位置和大小差异)网络倾向于选择更大的与真实边界框相交的锚框,并且收敛速度较慢,当两框为包含关系时,退化为 IoU loss。
        03--DIoU loss 的问题:在计算边界框之间的距离差异时考虑了中心点距离。存在较大纵横比差异的情况下,loss无法提供足够的梯度信号来引导网络的学习。
        04--CIoU loss 的问题:CIoU损失函数通过在DIoU损失函数中引入了纵横比项来考虑边界框的纵横比差异,但它的纵横比项(αv)并没有直接考虑宽度和高度与其置信度的真实差异。同样CIoU损失函数无法提供足够的梯度信号来引导网络正确地调整边界框的宽度和高度。

CIoU = IoU - (center_distance2 / diagonal_distance2 + alpha * v)

        IoU通过增大IoU来确定回归方向,当真实预测框不相交,无法确认。GIoU增加惩罚项,通过减小真实预测框的最小凸多边形的面积来回归,收敛慢,包含无法减小凸面积。DIoU考虑了边界框中心点之间的距离差异,通过减去归一化的中心点距离的平方来惩罚边界框之间的距离差异。CIoU增加了一个纵横比项来惩罚纵横比差距,提供更准确的梯度信号。

        但 CIoU只是更期望提升两个框纵横比的相似性,而非真实的长和宽。

三、使用方法

3.1 EIoU

   EIoU Loss的公式

\begin{aligned} & L_{E I O U}=L_{I O U}+L_{d i s}+L_{a s p} \\ & \quad=1-I O U+\frac{\rho^2\left(\mathbf{b}, \mathbf{b}^{\mathrm{gt}}\right)}{\left(w^c\right)^2+\left(h^c\right)^2}+\frac{\rho^2\left(w, w^{g t}\right)}{\left(w^c\right)^2}+\frac{\rho^2\left(h, h^{g t}\right)}{\left(h^c\right)^2}, \end{aligned}

其中w^ch^c是最小包围框的宽和长
EIoU分为 3 部分的loss:IoU loss+距离loss+纵横比loss
EIoU最小化anchor和gt的w和hh的差异,使得收敛速度更快,定位效果更好。

3.2 Focal EIoU Loss

3.2.1 Focal L1 Loss

        在框回归问题中,高质量的anchor远少于低质量的anchor,这对训练过程有害无利。所以,需要研究如何让高质量的ancho起到更大的作用。

        损失函数的特性要求如下:

01-当回归的误差趋于 0 时,梯度的模值也会趋于 0

        这是因为梯度是目标函数对参数的变化率,当误差趋近于0时,参数的微小变化对目标函数的影响也趋近于0,因此梯度的模值(是指梯度向量的长度或模长,它表示了在多维空间中某一点的梯度的大小或强度。)会趋近于0。

02-梯度的模值应该在小回归误差处快速上升,在大回归误差处逐步下降

        这是因为在回归任务中,通常使用损失函数来衡量预测值与真实值之间的误差。当回归误差较小时,梯度的模值较大,说明参数的微小变化对损失函数的影响较大,因此需要较大的梯度更新参数。而当回归误差较大时,梯度的模值较小,说明参数的微小变化对损失函数的影响较小,因此需要较小的梯度更新参数。

03-需要有一些超参数来控制低质量 anchor 灵活性的抑制程度

        在目标检测等任务中,使用锚框(anchor)来生成候选框,并根据预测框与真实框之间的IoU(Intersection over Union)来评估锚框的质量。对于质量较低的锚框,其预测结果可能不准确,因此需要通过调节超参数来抑制低质量锚框的灵活性,以减少其对最终结果的影响。

04-梯度函数需要在 (0, 1] 之间,来平衡高质量和低质量 anchor

        在目标检测等任务中,通常会使用损失函数来衡量预测结果与真实结果之间的差异。梯度函数的设计需要平衡高质量锚框和低质量锚框对损失函数的贡献,使得梯度在不同质量锚框上的变化适度,通常将梯度函数限制在(0, 1]之间,以平衡不同质量锚框的重要性。

        满足 1 和 2 条件的函数如图 5a 所示,当添加了一个超参数 β 时,如图 5b 所示,随着 β 的增大,虽然难样本的梯度模值会被很大程度的抑制,但高质量样本的梯度模值会降低,这并非期望的结果。

        所以,又添加了一个参数 α,将梯度模值归一化到 [0, 1],所以,梯度模值可以被写为:

g(x)=\frac{\partial L_f}{\partial x}= \begin{cases}-\alpha x \ln (\beta x), & 0<x \leq 1 ; 1 / e \leq \beta \leq 1 \\ -\alpha \ln (\beta), & x>1 ; 1 / e \leq \beta \leq 1\end{cases}

        所以,得到能够对边界框进行回归监督的 Focal L1 Loss 如下:

L_f(x)= \begin{cases}-\frac{\alpha x^2(2 \ln (\beta x)-1)}{4}, & 0<x \leq 1 ; 1 / e \leq \beta \leq 1 \\ -\alpha \ln (\beta) x+C, & x>1 ; 1 / e \leq \beta \leq 1\end{cases}

如图 4b 所示,Focal L1 Loss 可以提高 inliers 的梯度值,并根据 β \betaβ 抑制 outliers 的梯度值:β越大,则 inliers 会有小的回归误差,并且快速抑制 outliers 的梯度值
如图 4a 所示:

蓝色线是 β 的最大值,随着回归误差的增大,蓝色线会先很快增大,然后稳定
橘色线是 β 是在 β 最小时,会快速增长,然后在 x=1 时达到峰值
经过消融实验,最后选择 β = 0.8 ,即红线所示

3.2.2 Focal-EIoU Loss

        为了让 EIoU Loss 更关注高质量样本,可以使用 EIoU loss 来代替上面公式中的 x,但效果不太好。所以作者就通过分析之后,提出了下面的最终形式:

L_{\text {Focal-EIOU }}=I O U^\gamma L_{E I O U}

\gamma=0.5

        这里以 IoU loss 的形式来分析一下 Focal 形式的曲线(EIoU 曲线不太好画),蓝线为 ( 1 −IoU) 曲线I o U^{0.5}(1-I o U),所以在 IoU 小的时候(0-0.8),I o U^{0.5}(1-I o U)会被拉低,在 IoU 大的时候(0.8-1),I o U^{0.5}(1-I o U)基本保持不变,从下图曲线可以看出,Focal-EIoU loss 能够通过降低难样本的 loss 来让网络更关注简单样本。

     

  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值