目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

点击上方码农的后花园“, 选择星标公众号

精选文章,第一时间送达

目标检测分为:目标分类+目标定位两个任务。目标分类就是要对该目标进行分类以确定该目标属于什么类别以及其属于该类别的置信度。目标定位是要在图像中确定目标的位置,输出其在图像中的坐标信息。目标定位依赖一个 边界框回归模块去定位目标。边界框回归是指使用矩形边界框去预测目标对象在图像中的位置,然后不断细化 预测边界框的位置。

不断细化预测的边界框的位置是通过定义边界框回归损失函数、计算回归损失值Loss然后进行反向梯度下降实现的。一开始定义计算边界框回归的损失函数使用的还是基于L1、L2距离范数。基于L1范数定义的边界框损失函数是指预测边界框的四个点P(,)坐标和真实边界框对应的四个点G(,横坐标和纵坐标分别计算绝对值之差然后相加。基于L2范数定义的边界框损失函数是指预测边界框的四个点P(,)坐标和真实边界框对应的四个点G(,)横坐标和纵坐标分别计算平方和之差然后相加。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

L1范数和L2范数定义的边界框回归的损失函数Loss都是将 预测的bbox真实框bbox的四个点分别求loss值然后相加,并没有考虑靠坐标之间的相关性。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

开始之前

注意本文中的用词: 完全重合(预测框和真实框大小一模一样)、部分重合(相交)、水平和垂直方向上的重合(闭包,预测框包含在真实框内部)、不相交(完全不重合)。

1 IOU计算和损失函数

边界框回归损失函数(IoU Loss),它是将边界框的4个点构成的box看成一个整体进行回归,考虑到了坐标之间的相关性。IoU 的全称为交并比(Intersection over Union),其计算是 “预测的边框” 和 “真实的边框” 的交集和并集的比值,IOU计算公式如下所示:

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

Iou-loss本身是是从人脸检测的paper引入进来的(https://arxiv.org/pdf/1608.01471.pdf),如下图所示:

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

在实际使用中,实际很多IoU的损失Loss常常被定义为Loss(IoU) = 1-IoU。它们完全重合时,IoU就是1,那么对于Loss来说,Loss是越小越好,说明他们重合度高,所以IoU Loss就可以简单表示为 1- IoU。

边界框box位置的 修正是通过对IOU的损失函数的损失值loss进行反向传播迭代计算的。

IOU回归的优缺点

  • 1.当预测框和真实框完全不相交时,IOU=0,此时损失函数-lnIOU不可导,因此IoU Loss 无法优化两个框不相交的情况。这时的IOU不能反映真实框和预测的边界框 距离的远近。也因为不可导,所以没有梯度回传,无法进行下一步训练。
    目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU
  • 3.IOU Loss解决了L1和L2范数定义的边界框回归损失函数的系列变量(边界框的四个点)相互独立和不具有尺度不变性的两大问题。 相互独立是指L1范数和L2范数定义的损失函数:先独立地求出4个点的损失Loss,然后进行相加,这种做法假设了边界框的4个点是相互独立的,但实际上应该是有一定相关性的,因为边界框的4个点都依赖于同一个目标。 尺度不变性则指基于L1范数和L2范数的大边界框的L2损失通常会大于小边界框的损失,这使得在网络训练过程中,网络会更加注重大边界框的定位,忽视小边界框的定位,最终导致模型对小目标的检测性能比较差。

2 GIOU计算和损失函数

GIOU的诞生就是为了解决IOU定义的损失函数无法优化预测框和真实框不相交的情况、和不知道预测框和真实框如何相交的两个问题。斯坦福学者在2019年的文章《Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression》中提出了GIOU Loss,在IOU的基础上引入了预测框和真实框的最小外接矩形。

GIOU定义:

如下图,假设紫色A为真实框,B为预测的边界框,则GIOU计算公式如下:

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

其中蓝色闭包框C为能包含预测框和真实框最小的外接矩形框。这里C \ (A ∪ B)的意思是闭包框C的面积-A∪B的面积所剩余的面积。从计算公式可以看出GIOU不仅关注重叠区域,还关注其他的非重合区域,能更好的反映预测框和真实框的重合度。

GIOU边界框回归损失函数:

GIoU和IoU一样,可以作为损失函数,Loss(GIoU) = 1 – GIoU。我们知道IOU的值域为[0,1],而GIoU有对称区间,取值范围[-1,1]。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

GIOU边界框回归的优缺点

  • 1.GIoU能够更好地反映预测框和真实框相交的情况,如下图所示,虽然两种情况下计算得到的IOU一致,但是(a)中两个框相交的更为整齐,因此(a)GIOU要比(b)中大。 GIoU考虑到了 IoU 没有考虑到的预测框和真实框的非重叠区域,能够反映出真实框A,预测框B重叠的方式。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

3 DIOU计算和损失函数

基于GIoU的缺点(当预测框和真实框完全重合时,GIOU=IOU,导致此时的边界框回归收敛很慢),因此DIoU被提出。其论文为:Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression。

DIOU计算公式

d=
DIOU =

其中d表示预测框与真实框中心点的欧式距离,c表示覆盖预测框与真实框的最小闭合框的对角线长度。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

DIOU回归损失函数

与IOU、GIoU 定义损失函数loss类似,Loss(DIOU)= 1-DIOU,计算公式如下所示:

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

DIOU边界框回归的优缺点

  • 1.当预测框和真实框不重叠时,也就是不相交时,DIOU=,可以通过最小化预测框和真实框的两个中心点的距离为预测框提供移动方向。
  • 2.DIoU loss通过最小化预测框和真实框中心点的距离来进行收敛,而GIOU loss优化的是预测框和真实框之间的面积(减少外界包围框的面积)来进行收敛,因此DIOU loss 比GIoU loss回归收敛要快得多。即使预测框和真实框在水平和垂直两个方向上同时重合时(即预测框在真实框内部的时候),也可以通过最小化中心点的距离,来继续进行水平方向和垂直方向的预测框回归。而此时这种情况下的GIOU=IOU,GIOU损失退化为了IOU损失,基本上很难收敛。
  • 3.DIoU还可以替换普通的IoU评价策略,应用于NMS中,使得NMS得到的结果更加合理和有效。

4 CIOU计算和损失函数

虽然DIOU解决了当预测框和真实框相交(部分重叠)、预测框包含在真实框内部两种情况下的预测框回归收敛问题,但是这都是通过最小化预测框和真实框两个中心点的距离实现的,因此为了加快这两种情况下的预测框回归收敛更快、更准确,因此提出了CIOU。

CIOU计算公式

一个好的目标框回归损失应该考虑三个重要的几何因素:重叠面积、中心点距离、长宽比。预测框和目标框之间的长宽比的一致性也是极其重要的,因此CIOU在DIOU的基础上添加了一个边界框box长宽比的惩罚项,CIOU的损失函数计算公式如下:

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

CIOU边界框损失函数

CIOU和IOU、GIOU、CIOU损失函数设置一样,因此CIOU的损失函数为Loss(CIOU)=1-CIOU

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

其中 α是用于平衡比例的参数, v用来衡量预测框和真实框的宽和高之间的比例一致性。b代表预测框,代表真实框,、代表真实框的宽和高,w和h代表预测框的宽和高。

CIOU边界框回归的优点

  • 从CIOU边界框损失函数可以看出,它包含了预测框和真实框重叠区域面积的IOU损失、预测框和真实框中心点之间归一化后的距离损失、预测框和真实框的宽和高的纵横比损失三个部分。CIOU边界框损失函数通过迭代可以将预测框不断向真实框移动,还尽可能的保证了预测框和真实框的宽和高的纵横比更为接近,加快了预测框的回归收敛速度。

CIOU边界框回归的问题(缺点)

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU
目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

CIOU总结:CIOU将边界框的纵横比作为惩罚项加入到边界框损失函数中,一定程度上可以加快预测框的回归收敛过程,但是一旦收敛到预测框和真实框的宽和高呈现线行比例时,就会导致预测框回归时的宽和高不能同时增大或者减少。

5 IOU、GIOU、DIOU、CIOU损失函数对比

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU
  • 由于IoU损失只有在预测框与真实框有重叠的情况下才有效,因此收敛得很慢,得到的预测框与真实框之间的误差也很大;
  • GIoU损失通过增加预测框的大小慢慢移动到与真实框重叠的区域来帮助处理非重叠的情况,其迭代过程收敛得比较缓慢,尤其是预测框与真实框的纵横比相差很大的时候,这种情况下GIoU回归得到的预测框与真实框之间的误差也比较大。
  • DIoU 和 CIoU损失可以收敛得比IoU和GIoU更快,特别是CIoU收敛速度和回归的精度都比使用它之前几种损失函数得到的结果更好。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

总结

  • IOU解决了L1、L2初步预测框和真实框三种不同位置和不同区域的相交时的判断,但是没有解决预测框和真实框无法反映相交程度的大小和好坏。当预测框在真实框内部时的不同位置时,IOU是一样的,无法继续优化。预测框和真实框不相交时,IOU=0,也没有办法继续进行优化。
  • GIOU通过预测框和真实框的最小外接闭包矩形解决了IOU,当预测框和真实框不相交时无法继续优化问题,但是没有解决当预测框在真实框内部不同位置时的优化问题。
  • DIOU通过直接优化预测框和真实框两个中心点的距离和两个框的最小外接矩形对角线的距离解决了GIOU,当预测框在真实框内部不同位置时的回归收敛问题。
  • CIOU通过在DIOU的基础上添加了预测框和真实框的宽高纵横比的惩罚项,加快了预测框和真实框回归收敛的速度。

6 EIOU计算和损失函数

CIOU损失,在DIOU损失的基础上添加了衡量预测框和真实框纵横比 v,在一定程度上可以加快预测框的回归速度,但是存在的问题是预测框回归过程中,一旦预测框和真实框的宽高纵横比呈现线性比例时,预测框w和h就不能同时增加或者减少,就不能继续进行回归优化了。

2021年中科院提出了EIOU,论文:《Focal and Efficient IOU Loss for Accurate Bounding Box Regression》, EIOU是在CIOU的惩罚项基础上将预测框和真实框的纵横比的影响因子拆开,分别计算预测框和真实框的长和宽,来解决CIOU存在的问题。

EIOU回归损失函数

CIOU回归损失Loss(CIOU):

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOUEIOU回归损失Loss(EIOU):目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU其中 和 是覆盖预测框真实框的最小外接框的宽度和高度。

EIOU损失函数公式我们可以看出,EIOU损失函数包含三个部分:预测框和真实框的重叠损失,预测框和真实框的中心距离损失,预测框和真实框的宽和高损失。EIOU损失的前两部分延续CIOU中的方法,但是宽高损失直接使预测框与真实框的宽度和高度之差最小,使得收敛速度更快。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

EIOU回归损失的优点

  • 1.将纵横比的损失项拆分成预测的宽高分别与最小外接框宽高的差值,加速了预测框的收敛、提高了预测框的回归精度。

此外在这篇论文《Focal and Efficient IOU Loss for Accurate Bounding Box Regression》中引入的 Focal-EIoU Loss,是指对EIOU损失(Loss(EIOU)中进行加权处理。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

Focal-EIoU Loss传统的Focal Loss有一定的区别,传统的Focal Loss针对越困难的样本损失越大,起到的是困难样本挖掘的作用;而Focal-EIoU Loss:和真实框IOU越高的,预测框的损失越大。这就相当于加权作用,给越好的回归目标一个越大的损失,有助于提高预测框的回归精度。

因为在目标检测中,大部分最开始根据 预先设定的锚框得到的 预测框都和 ground truth(真实框)的IoU不大,这一部分叫做低质量样本,而在低质量样本上的训练容易造成损失值的剧烈波动。而Focal-EIoU Loss的提出目标便是解决高低质量样本类别不平衡的问题,也就是说减少与真实框重叠较少的大量预先设定的锚框而得到的预测框的损失值,减少其对预测框回归优化过程中的贡献,使预测框回归过程专注于高质量锚框->(也就是和真实框IOU比较大的预先设定的锚框得到的预测框)。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

终极总结

预测框回归的三大几何因素:预测框和真实框的重叠面积、预测框和真实框的中心点距离、预测框和真实框的宽和高的纵横比(宽和高的比例、还要考虑宽和高的差异)。

  • IOU Loss:考虑了重叠面积,归一化坐标尺度;
  • GIOU Loss:考虑了重叠面积,基于IOU解决边界框不相交时loss等于0的问题;
  • DIOU Loss:考虑了重叠面积和中心点距离,基于IOU解决GIOU收敛慢的问题;
  • CIOU Loss:考虑了重叠面积、中心点距离、纵横比,基于DIOU提升回归精确度;
  • EIOU Loss:考虑了重叠面积,中心点距离、长宽边长真实差,基于CIOU解决了纵横比的模糊定义,并添加Focal Loss解决预测框回归中的样本不平衡问题。

目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

参考资料:

https://blog.csdn.net/c2250645962/article/details/106053242 https://blog.csdn.net/weixin_41560402/article/details/106007224 https://blog.csdn.net/m0_53114462/article/details/117398110 https://blog.csdn.net/qiu931110/article/details/103330107 https://blog.csdn.net/lovep1/article/details/114449861 https://zhuanlan.zhihu.com/p/270663039 https://zhuanlan.zhihu.com/p/416550548 https://zhuanlan.zhihu.com/p/94799295 https://blog.csdn.net/neil3611244/article/details/113794197 https://www.it610.com/article/1453500272809689088.htm https://zhuanlan.zhihu.com/p/375745293 https://mp.weixin.qq.com/s/jMWTFeDh6_0rhCzcYjw7sg https://zhuanlan.zhihu.com/p/266023273 https://zhuanlan.zhihu.com/p/394892530

——The End——

如果觉得有用,就请分享到朋友圈吧!

觉得有用麻烦给个在看啦~

Original: https://blog.csdn.net/weixin_45192980/article/details/123540586
Author: 码农的后花园
Title: 目标检测中的预测框回归优化之IOU、GIOU、DIOU、CIOU和EIOU

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/617769/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球