再战IOU | 总结分析IOU/GIOU/CIOU局限,提出Focal EIOU进一步提升目标检测性能

简介: 再战IOU | 总结分析IOU/GIOU/CIOU局限,提出Focal EIOU进一步提升目标检测性能

6b44978c7faa2b032ba4900a2fed429d.png

在目标检测中,框回归(BBR)是决定目标定位性能的关键步骤。然而,作者发现大多数以前的BBR损失函数有两个主要缺点:


基于范数和IOU的损失函数都不能有效地描述BBR的目标,这导致收敛速度慢和回归结果不准确。


大多数损失函数忽略了BBR中的不平衡问题,即与目标框具有小重叠的大量目标框对BBR的优化贡献最大。


为了减轻由此造成的不利影响,在本文中进行了深入研究,以挖掘BBR损失的潜力。首先,提出了一种有效的Efficient Intersection over Union(EIOU)损失,它明确地测量了BBR中3个几何因子的差异,即重叠面积、中心点和边长。之后,陈述了Effective Example Mining(EEM)问题,并提出了Focal loss的回归版本,以使回归过程专注于高质量的Anchor boxes。最后,将上述两部分结合起来,得到一个新的损失函数,即Focal EIOU Loss。在合成和真实数据集上进行了大量实验。与其他BBR损失相比,可以在收敛速度和定位精度上实现显著的优势。

1、简介

目标检测包括两个子任务:目标分类和目标定位,一直是计算机视觉中最基本的问题之一。当前最先进的目标检测器(例如,Cascade R-CNN、Mask R-CNN、Dynamic R-CNN和DETR)依赖于边界回归(BBR)模块来定位目标。基于这一范式,精心设计的损失函数对于BBR的成功至关重要。

迄今为止,BBR的大部分损失函数可以分为两类:

  • -范数损失可以统一为等式:

7c0958393ad0082a54a96dfe3e6e5ae2.png

其中x是预测框和目标框之间的差。传统的Smooth L1损失可以形成为1675310602823.png范数损失被批评为不仅忽略了BBR变量(x,y,w,h)中的相关性,还忽略了对大边界框的固有偏差(由于非规范化形式)。然而,如图1所示以前基于IOU的损失,例如CIOU和GIOU,无法有效地测量目标框和Anchor之间的差异,这导致BBR模型优化中的收敛速度慢和定位不准确。

b0e884c2b5b31c1b6031a77659d92b66.png

  • 基于 IOU 的损失可以统一为等式:

e503bbc27849bd490ecaaf0ee9a15d65.png

其中1675310677392.png是预测框和目标框。附加惩罚1675310634599.png旨在补充原始IOU的收益。这些损失共同回归所有BBR变量作为一个整体。它们也是标准化的,对边界框的比例不敏感。然而,大多数算法都存在收敛速度慢和定位不准确的问题。更重要的是,现有的基于 IOU 的损失忽略了信息Anchor的重要性。


在本文中进行了深入的研究,以挖掘当前BBR损失的潜力,实现精确的目标检测。首先,提出了一种有效的IOU损失(EIOU)来提高收敛速度和定位精度,该方法使用额外的惩罚项1675310634599.png来明确测量BBR中3个关键几何因素的差异,包括重叠区域、中心点和边长。其次,阐述了BBR中的有效实例挖掘(EEM)问题。受最初用于测量分类误差的 Focal loss 的启发,作者设计了 Focal loss 的回归版本,以增强具有大IOU的高质量Anchor在BBR模型优化过程中的贡献。


最后,将所提出的两种方法组合为一种新的BBR损失函数,即Focal EIOU,以实现高效和准确的目标检测。通过对合成和真实数据集的广泛评估,验证了所提出损失函数的有效性和优势。此外,当将Focal EIOU损失与几种最先进的目标检测模型(包括Faster R-CNN、Mask R-CNN,RetinaNet、ATSS、PAA和DETR)相结合时,可以在大规模COCO 2017数据集上实现检测精度的一致和显著提高,这说明了提出的损失功能的潜在潜力。

本文的贡献总结如下:

  1. 考虑到基于IOU的损失和1675310694121.png范数损失的缺陷,提出了一种有效的IOU损失,以解决现有损失的困境,并获得更快的收敛速度和更好的回归结果。
  2. 考虑到BBR中高质量Anchor和低质量Anchor之间的不平衡,设计了一个 Focal loss 的回归版本,以增强最有希望的Anchor在模型优化中的贡献,同时抑制不相关的Anchor。
  3. 对合成数据和真实数据进行了大量实验。出色的实验结果验证了所提出方法的优越性。详细的消融研究显示了损失函数和参数值的不同设置的影响。

2、IOU Loss的局限性分析

ab287e649668dd242c2ed89f0074868e.png

2.1、IOU Loss的局限

测量两个任意形状(体积)之间相似性1675310713545.png的IOU损失为:

889495aa20b38a7c4d838945025c7f95.png

它具有非负性、对称性、三角形不等式和尺度不敏感性等良好的性质。它已被证明是一个度量标准。然而,它有两个主要的缺点:

  • 如果两个box没有任何交集,IOU Loss将始终为零,这不能正确反映这两个box之间的紧密程度。
  • IOU Loss的收敛速度较慢。

2.2、GIOU Loss的局限

为了解决IOU Loss的缺点,提出了GIOU损失,定义如下:

ebd31d1b2e4fc5f88580ec4c1a3aee02.png

其中1675310738674.png是两个任意的box。C是包含A和B的最小凸盒1675310752155.png1675310765900.pngGIOU Loss在1675310791236.png时有效,但它仍然有两个缺点:

  • 当时,1675310791236.pngGIOU损失打算增加边界框的面积,使其与目标框重叠(见图1),这与减少空间位置差异的直觉相反。
  • 1675310818165.png时,|C−A∪B|的面积总是一个小数或等于零(当A包含B时,该项将为零,反之亦然)。在这种情况下,GIOU损失退化为 IOU 损失。因此,GIOU损失的收敛率仍然很慢。

2.3、CIOU Loss的局限

CIOU损失考虑了三个重要的几何因素,即重叠面积、中心点距离和长宽比。给定一个预测框 B 和一个目标框1675310836693.png,CIOU损失的定义如下:

1e1a22ec0f4f273d0ce3b6d40031423b.png

其中1675310850742.png分别表示和的中心点。1675310862213.png表示欧几里得距离。是覆盖两个box的最小封闭box的对角线长度。1675310883567.png1675310894791.png测量宽高比的差异。

v关于w和h的梯度计算如下:

57fccfbf641788fd0113ca53b7462b8d.png

在之前的工作中,实验结果表明,与以前的损失函数相比,CIOU损失的收敛速度和检测精度都有显著提高。然而,1675310911591.png最后一项的v仍然没有得到很好的定义,这从3个方面减缓了CIOU的收敛速度:

  1. 在等式(5)中, V仅反映纵横比的差异,而不是1675310934833.png之间的实际关系。即,所有具有属性1675310949728.png具有V=0,这与现实不符。
  2. 在等式(6)中,有1675310978314.png有相反的符号。因此,在任何时候,如果这两个变量(w或h)中的一个增加,另一个将减少。这是不合理的,尤其是当1675310997187.png时。
  3. 由于v仅反映纵横比的差异,因此CIOU损失可能以不合理的方式优化相似性。如图1所示,目标框的尺度设置为1675311017932.png。Anchor的初始尺度设置为w=1和h=2.4。Anchor尺度在50次迭代后回归为w=1.64和h=2.84。这里,CIOU损失确实增加了纵横比的相似性,但它阻碍了模型有效地减少1675311036762.png之间的真实差异。

2.4、本文提出的方法

为了解决上述问题,对CIOU损失进行了修正,并提出了一个更有效的IOU损失版本,即EIOU损失,其定义如下。

e15e8242a02c589ddae3ab2876be290b.png

其中1675311068788.png是覆盖两个box的最小封闭盒子的宽度和高度。即,将损失函数分为三部分:1675311094182.png这样就可以保留 CIOU Loss的有益特性。同时,EIOU Loss直接使目标框和Anchor的宽度和高度的差异最小化,从而产生更快的收敛速度和更好的定位结果。

3、Focal Loss For BBR

在BBR中,也存在训练实例不平衡的问题,即由于图像中目标目标的稀疏性,回归误差较小的高质量例子的数量远少于低质量例子(异常值)。最近的研究表明,离群值会产生过大的梯度,这对训练过程有害。因此,制作高质量的例子对网络训练过程贡献更多的梯度是至关重要的。

在最近的研究中试图基于SmoothL1的损失来解决上述问题。在本节中,还从Smooth L1损失开始,并提出Focal L1损失,以增加高质量例子的贡献。此外,作者还发现,简单的方法不能直接适用于基于IOU的损失。因此,最终提出了Focal-EIOU损失来提高EIOU损失的性能。

3.1、Focal L1 Loss

首先,列出了理想损失函数的性质如下:


当回归误差趋于零时,梯度幅度的极限应该为零。


梯度幅度应在小回归误差附近迅速增大,在大回归误差区域逐渐减小。


应该有一些超参数来灵活地控制低质量实例的抑制程度。


对于超参数的变值,梯度函数家族应该有一个标准化的尺度,例如,(0,1],这有助于在高质量和低质量的例子之间的平衡。

9864fc3705ff66c49fe3f2fb4d576403.png

根据上述条件,随着边界框回归误差的变化,可以假设一个梯度幅度的期望函数曲线,如图5(a)所示该函数是1675311120797.png,满足性质1和2。接下来,构造了一个带有参数β的函数族来控制曲线的形状,如图5(b)所示随着β的增加,异常值的梯度幅度将被进一步抑制。然而,高质量的例子的梯度幅度也会减少,这不是所期望的。因此,添加另一个参数α,根据属性4的要求,将不同β的梯度大小归一化为[0,1]。最后,梯度大小函数的族可以表示如下:

77233175344d6aa72713af8df531936b.png

这里,由于以下原因获得了β的值范围。当1675311138302.png,这意味着g(x)是具有全局最大值的凹函数。求解1675311152926.png,可以得到1675311165726.png。作为1675311182289.png。还必须确保1675311200112.png,那么1675311216168.png。为了满足性质4,设置最大值1675311229672.png得到α与β的关系1675311243227.png。通过积分上述梯度公式,可以得到BBR的Focal L1损失:

47763f7d78c15cade00dc062807df6ad.png

其中C是一个常数值。以确保在等式中的1675311258602.png在x = 1处是连续的,有1675311273403.png

06894e0d7cd3aab83989d48f6076bd58.png

图4(b)显示,根据β,提出的Focal L1损失可以增加内值梯度的值,抑制异常值的梯度值。较大的β要求内部有很少的回归误差,并快速抑制异常值的梯度值。


同样,在图4(a)中,蓝色的曲线表示β的最大值。随着回归误差的增加,蓝色曲线的损失首先迅速增加,然后趋于稳定。β值最小的橙色曲线增长得越来越快,在x = 1左右达到峰值。现在可以通过Focal L1损失,1675311296077.png来计算定位损失,其中B是回归结果,1675311316812.png是回归目标。

3.2、Focal-EIOU Loss

为了使EIOU损失集中于高质量的示例,自然可以考虑在等式中替换 x 与EIOU的损失联系在一起。然而,作者观察到上述组合的效果不太好。分析结果如下:


给定偏移量1675311339716.png,Focal L1损失的梯度为1675311356359.png,其中1675311369413.png等于1或者-1,因此即使偏移很小,1675311387766.png还可以带来足够的梯度以使模型持续优化。然而,如果用1675311414199.png替换偏移量1675311428238.png,梯度可以计算为1675311397883.png


这里1675311445271.png不再是一个常量。此外,在实证研究中,随1675311466447.png着接近零,它将非常小,而1675311445271.png在当时也接近于零。因此,在乘法之后,整体梯度将更小,这削弱了对具有小1675311466447.png的Box进行重新加权的效果。为了解决这个问题,使用IOU的值来重新计算 1675311466447.pngloss的权重,并得到Focal-1675311466447.png,如下所示

8d34819d7ae5f553bfccfe3a7bb18642.png

其中,1675311497265.png是控制异常值抑制程度的参数。

3.3、算法流程

03931fd1cf182b8c0f2a1c4f6e75ba4a.png

4、实验

4.1、消融实验

1、IOU方法对比

ce0410f11ab98d5fe24ed7270ec38484.png

2、Tradeoff Weight的影响

8122cbdea27a39325204eb74379e4cf9.png

3、FocalL1 Loss

dea73959e6248b246c7f1ff202b187a4.png

4、Focal-EIOU Loss

7a2390d4352a76a119bfd43d1eb4ab1a.png

4.2、SOTA对比

65daae2f400debc67f039f2b2f091ee2.png

4.3、可视化对比

ee4de404b747aaa9197e7fc793c73e38.png

5、参考

[1].Focal and Efficient IOU Loss for Accurate Bounding Box Regression

6、推荐阅读

姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!

语义分割新SOTA | 当UNet与HRNet碰撞会产生怎样的火花?U-HRNet不做选择!!!

全新语义分割方法SegViT | 沈春华老师团队提出全新语义分割方法

相关文章
|
机器学习/深度学习 编解码 Go
YOLOv8改进 | Conv篇 | 利用YOLO-MS的MSBlock轻量化网络结构(既轻量又长点)
YOLOv8改进 | Conv篇 | 利用YOLO-MS的MSBlock轻量化网络结构(既轻量又长点)
637 0
|
机器学习/深度学习 计算机视觉 网络架构
改进YOLOv8:添加CBAM注意力机制(涨点明显)
改进YOLOv8:添加CBAM注意力机制(涨点明显)
7477 1
|
机器学习/深度学习 计算机视觉
YOLOv5改进 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数
YOLOv5改进 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数
2842 0
|
机器学习/深度学习 算法 PyTorch
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
这篇文章详细介绍了多种用于目标检测任务中的边界框回归损失函数,包括IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU和WIOU,并提供了它们的Pytorch实现代码。
2607 1
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
3487 2
|
12月前
|
算法 数据可视化 PyTorch
IoU已经out了,试试这几个变体:GIoU、DIoU和CIoU介绍与对比分析
本文探讨了目标检测中常用的交并比(IoU)及其变体,包括广义交并比(GIoU)、距离交并比(DIoU)和完全交并比(CIoU)。这些指标不仅提高了模型在处理不重叠、距离较远或形状差异大的边界框时的表现,还为模型的学习过程提供了更深入的洞察。文章详细解释了各指标的计算方法及应用场景,并提供了相应的代码示例,帮助读者更好地理解和应用这些先进的评估指标。
910 7
IoU已经out了,试试这几个变体:GIoU、DIoU和CIoU介绍与对比分析
|
机器学习/深度学习 计算机视觉
YOLOv5改进 | 2023 | InnerIoU、InnerSIoU、InnerWIoU、FocusIoU等损失函数
YOLOv5改进 | 2023 | InnerIoU、InnerSIoU、InnerWIoU、FocusIoU等损失函数
632 0
|
11月前
|
机器学习/深度学习 人工智能 API
【AI系统】昇腾异构计算架构 CANN
本文介绍了昇腾 AI 异构计算架构 CANN,涵盖硬件层面的达·芬奇架构和软件层面的全栈支持,旨在提供高性能神经网络计算所需的硬件基础和软件环境。通过多层级架构,CANN 实现了高效的 AI 应用开发与性能优化,支持多种主流 AI 框架,并提供丰富的开发工具和接口,助力开发者快速构建和优化神经网络模型。
796 1
|
数据挖掘 计算机视觉
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
1111 1
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
19437 0