【精选】第一时间送达目标检测:目标分类+目标定位

精选文章,第一时间送达

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

通过定义边界框回归损失函数,计算回归损失值Loss迭代尺度算法中的w收敛,然后进行反向梯度下降,实现对预测边界框位置的连续细化。用于定义边界框回归的损失函数仍然基于 L1、L2 距离范数。基于 L1 范数定义的边界框损失函数是指四个点 P (

,

) 坐标和四个点 G 对应于真正的边界框 (

,

横坐标和纵坐标的绝对值之差分别计算后相加。基于 L2 范数定义的边界框损失函数是指四个点 P (

,

) 坐标和四个点 G 对应于真正的边界框 (

,

) 横坐标和纵坐标分别计算平方和的差,然后将它们相加。

L1范数和L2范数定义的边界框回归的损失函数Loss是分别计算预测的bbox和真实的bbox的四个点的损失值,然后将它们相加,而不考虑两者之间的相关性坐标。

如下图,绿色框为ground-truth box,黑色框为预测的bounding box。先忽略GIOU的线,可以看出预测框和真实框在三个不同位置和不同区域的交集,最后基于L1范数和L2范数定义的bounding box回归损失函数计算出的边界框回归损失 Loss 的值都是一样的。

在肉眼观察中,图(a)和(b)中最后的预测框和真实框的重叠明显好于前两者,这是基于L1范数和L2范数定义的bounding box回归损失函数。计算出的边界框回归损失值是无法区分的。这可以通过 IOU 定义的损失函数计算的损失值来清楚地区分。因此,后来提出了一种由IOU定义的基于交并比的bounding box回归损失函数。

开始前

注意本文中使用的词语:完全重合(预测框与ground-truth框大小完全相同)、部分重合(相交)、水平和垂直方向重合(闭合,包含预测框在真实框内),不相交(完全不重合)。

1 IOU计算和损失函数

**Bounding box回归损失函数(IoU Loss)**,将bounding box的4个点组成的box作为一个整体进行回归,同时考虑坐标之间的相关性。IoU的全称是Intersection over Union,它的计算是“预测边界”和“真实边界”的交集和并集的比值。IoU计算公式如下:

Iou-loss本身是从人脸检测论文()中引入的,如下图所示:

IOU回归损失Loss算法计算过程

在,

是预测边界框的面积,

是真实边界框的面积,

是两个区域的交集,

是两个区域的联合。

是 IOU 的交叉熵损失函数,是 IOU -ln 的负对数。

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

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

IOU 回归的优缺点

1.当预测框和真实框完全不相交时,IOU=0,损失函数-lnIOU不可导,所以IoU Loss无法优化两个框不相交的情况。此时,IOU 无法反映真实框与预测边界框之间的距离。也因为不可引导,没有梯度回归,无法进行下一次训练。

2.预测框和ground-truth框不能反映交集的大小和质量。如下图,当三个预测框和真实框重叠时,三个的IOU值是一样的,IOU不能反映两个框是如何相交的。直觉上,第三种重叠方法是最差的,但 IOU 是无法区分的。

3.IOU Loss解决了L1和L2范数定义的bounding box回归损失函数的系列变量(bounding box的四个点)相互独立,没有尺度不变性的两大问题。相互独立是指L1范数和L2范数定义的损失函数:先独立计算4个点的损失,然后将它们相加。这种做法假设bounding box的4个点是相互独立的,但实际上应该是有一些相关性的,因为bounding box的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计算公式如下:

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

GIOU边界框回归损失函数:

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

GIOU边界框回归的优缺点

1.GIoU可以更好的反映预测帧和真实帧的交集,如下图,虽然两种情况下计算的IOU是一致的,但是(a)中两帧的交集比较多整齐,因此 (a) GIOU 比 (b) 中的大。

GIoU考虑了IoU不考虑的预测帧和真实帧的非重叠区域,可以反映真实帧A和预测帧B的重叠方式。

2.当预测帧和真实帧不重合时,错位度越高,GIOU值越接近-1.此时的GIOU等于

,而最大化GIOU就是不断逼近预测框和真实框,从而达到回归和优化边界框的目的。

3.当预测帧和真实帧完全重合时(预测帧在真实帧内部),IoU和GIoU的loss值相同,GIoU退化为IoU,GIOU=IOU,最后无法区分预测框和真实框的位置关系,也导致此时边界框回归收敛非常慢。

3 DIOU计算和损失函数

基于GIoU的缺点(当预测帧和ground-truth帧完全重合时,GIOU=IOU,导致此时bounding box回归收敛慢),所以提出了DIoU。他的论文是:Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression。

DIOU计算公式

d=

迪欧=

其中d表示预测框与ground truth中心点之间的欧几里得距离,c表示覆盖预测框和ground truth的最小封闭框的对角线长度。

上图中,绿色框为真实框,黑色框为预测框,灰色框为能包含预测框和真实框的最小外部矩形。乐队

分别表示ground-truth box和predicted box的中心点,

表示计算预测框中心点与边界框的欧几里得距离。

DIOU回归损失函数

类似于IOU和GIoU定义的损失函数loss,Loss(DIOU)= 1-DIOU,计算公式如下:

这里

, 表示预测框到边界框中心点的欧几里得距离的平方。当预测帧和真实帧完全重叠时,L(GIOU)=L(GIOU)=L(DIOU)=0;完全重叠意味着预测帧和真实帧的大小完全相同。

DIOU边界框回归的优缺点

1.当预测框和真实框不重叠时,即不相交时,DIOU=

,它可以通过最小化预测框和ground-truth框的两个中心点之间的距离来为预测框提供移动方向。

2.DIoU loss通过最小化预测框到真实框中心点的距离来收敛,而GIOU loss优化了预测框和真实框之间的区域(减少了外边界框的面积) ) 收敛,所以 DIOU 损失比 GIoU 损失回归收敛得快得多。即使预测帧和真实帧在水平和垂直方向都重合(即预测帧在真实帧内部时),通过最小化中心之间的距离,可以继续水平和垂直方向的预测帧点。返回。这时GIOU=IOU这种情况下,GIOU loss退化为IOU loss,基本很难收敛。

3.DIoU也可以替代常见的IoU评价策略,应用于NMS,使得NMS得到的结果更加合理有效。

4 CIOU计算和损失函数

虽然 DIOU 在预测框和 ground-truth 框相交(部分重叠)并且预测框包含在 ground-truth 框内时解决了预测框的回归收敛问题迭代尺度算法中的w收敛,但这是通过最小化框的两个中心点来完成的。预测框和真实框。距离达到了,所以为了加快预测框回归在这两种情况下的收敛速度更快更准确,提出了CIOU。

图片[1]-【精选】第一时间送达目标检测:目标分类+目标定位-老王博客

CIOU计算公式

一个好的目标框回归损失应该考虑三个重要的几何因素:重叠区域、中心点距离和纵横比。预测框和目标框的纵横比的一致性也非常重要,所以CIOU在DIOU的基础上增加了边界框纵横比的惩罚项

,CIOU的损失函数计算公式如下:

所以CIOU等于

CIOU边界框损失函数

CIOU的损失函数设置与IOU、GIOU、CIOU相同,所以CIOU的损失函数为Loss(CIOU)=1-CIOU

其中α是用于平衡尺度的参数,v用于衡量预测框和ground-truth框的宽度和高度之间的尺度一致性。b代表预测框,

代表真正的盒子,

,

表示ground truth box的宽度和高度,w和h表示预测框的宽度和高度。

CIOU边界框回归的优点

从CIOU边界框损失函数可以看出,它包括预测框和真实框重叠区域的IOU损失,预测框和真实框中心点的归一化距离损失,以及预测框和真实框的宽度之和。高纵横比会损失三个部分。CIOU边界框损失函数可以通过迭代不断地将预测框移动到真实框,同时也保证了预测框和真实框的纵横比更接近宽高,加快了回归收敛速度的预测框。

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

CIOU Loss虽然考虑了bounding box回归:预测框与真实框的重叠区域,预测框与真实框中心点的距离,预测框高宽的纵横比盒子和真正的盒子。

从上面的公式我们可以看出,CIoU使用的是预测框和真实框的宽高的相对比例,而不是宽高的值。根据纵横比v的定义可以看出,只要预测框的宽高与真实框的比例满足:

然后在 CIoU 中添加的相对比例惩罚项不再起作用。根据预测框相对于 v 的宽度和高度的公式:

可以推导出:

表示预测框w和h的梯度值

是相反的符号。这个相反的标志是训练过程中的一个大问题。表示在预测框的回归过程中,当w和h的一个值增大时,另一个值必然减小。在预测框的回归过程中,它的w和h不能同时保持相同的增减。

CIOU总结:CIOU在bounding box损失函数中加入bounding box的纵横比作为惩罚项,可以在一定程度上加快预测box的回归收敛过程,但是一旦收敛到预测框和真实框,会出现线对线比。当 时,回归时预测框的宽度和高度不能同时增加或减少。

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

下图展示了几种IoU损失函数在不同迭代下的回归误差曲线:

由于IoU loss只有在预测帧和真实帧重叠时才有效,所以收敛很慢,得到的预测帧和真实帧的误差也很大;

GIoU 损失通过增加预测框的大小并缓慢移动到与真实框重叠的区域来帮助处理非重叠情况。迭代过程收敛缓慢,尤其是当预测框和真实框的纵横比相差很大时。这种情况下,GIoU回归得到的预测帧与真实帧的误差也比较大。

DIoU和CIoU损失可以比IoU和GIoU更快地收敛,尤其是CIoU的收敛速度和回归精度都优于使用其之前的损失函数得到的结果。

下图是几个bounding box回归损失函数在YOLOv3上的模型改进效果对比

总结

IOU解决了L1、L2初步预测框和真实框在三个不同位置不同区域的交集的判断,但没有解决预测框和真实框不能反映大小和交叉口的质量。当预测框在真实框内的不同位置时,IOU是相同的,无法进一步优化。当预测帧和真实帧不相交时,IOU=0,没有办法继续优化。

GIOU通过预测帧和真实帧的最小外接闭合矩形来求解IOU。当预测帧和真实帧不相交时,不能继续优化问题,但是当预测帧在真实帧内部的不同位置时,它并不能解决优化问题。

DIOU解决了GIOU的回归收敛问题,当预测帧在不同位置时,直接优化预测帧与真实帧的两个中心点的距离以及两帧的最小外接矩形对角线的距离。真实的框架。

CIOU在DIOU的基础上增加了预测框和ground truth box的纵横比

的惩罚项,加速了预测框和真实框回归的收敛。

6 EIOU计算和损失函数

CIOU loss,在DIOU loss的基础上,增加了预测帧和真实帧长宽比v的度量,可以在一定程度上加快预测帧的回归速度,但问题是在预测框的回归过程,一旦预测框与真实框的长宽比为 ,为线性时,预测框 w 和 h 不能同时增加或减少,无法继续进行回归优化。

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

EIOU回归损失函数

CIOU回归损失Loss(CIOU):

EIOU回归损失Loss(EIOU):

是覆盖预测框的真实框的最小边界框的宽度和高度。

EIOU损失函数公式我们可以看到EIOU损失函数由三部分组成:预测框和真实框的重叠损失

,预测框和真实框之间的中心距离损失

,预测框和真实框的宽度和高度损失

. EIOU loss的前两部分延续了CIOU中的方法,但是width和height loss直接最小化了预测框和真实框的宽高差,使得收敛更快。

下图是CIOU和EIOU损失预测框的迭代过程对比图。红框和绿框是预测框的回归过程,蓝框是真实框,黑框是预设锚框。CIOU的问题可见一斑。宽度和高度不能同时增加或减少,但EIOU可以。

EIOU回归损失的优势

1.将长宽比的损失项拆分为预测宽高与最小边界框宽高之差,加速了预测框的收敛,提高了预测框的回归精度。

另外,本文《Focal and Efficient IOU Loss for Accurate Bounding Box Regression》中介绍的Focal-EIoU Loss是指EIOU损失的加权(Loss (EIOU).

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

Focal-EIoU Loss 不同于传统的 Focal Loss。传统的Focal Loss对于难度较大的样本损失较大,起到挖掘难度样本的作用;而Focal-EIoU Loss:真实框的IOU越高,损失越大。,预测框的损失越大。这相当于一种加权效应,给更好的回归目标更大的损失,有助于提高预测框的回归精度。

因为在目标检测中,一开始从预先设定的anchor box得到的大部分预测框与ground truth(true box)的IoU并不相同。这部分被称为低质量样本,在低质量样本上训练很容易导致损失值的剧烈波动。Focal-EIoU Loss 的目标是解决高质量和低质量样本类别之间的不平衡问题,即通过减少大量与真实帧,减少其对真实帧的影响。预测框回归优化过程的贡献使得预测框回归过程专注于高质量的anchor box ->(即

传统Focal Loss:,点击跳转。Focal loss最初是由何玉明提出的,最初用于图像领域,用于解决数据不平衡导致的模型性能问题。传统的 Focal Loss 计算公式如下:

但是EIOU论文的作者试图直接替换EIOU

,发现不是很好,于是改成了Focal-EIoU Loss:

LEIOU的形式,也就是最终论文中出现的Focal-EIoU Loss。

终极总结

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

IOU Loss:考虑重叠区域,对坐标尺度进行归一化;

GIOU Loss:考虑重叠区域,基于IOU解决边界框不相交时loss等于0的问题;

DIOU Loss:考虑重叠区域和中心点距离,基于IOU解决GIOU收敛慢的问题;

CIOU Loss:考虑重叠区域、中心点距离、纵横比,基于DIOU提高回归精度;

EIOU Loss:考虑重叠区域,中心点之间的距离,长宽边长的真实差异,基于CIOU解决长宽比的模糊定义,加入Focal Loss解决问题预测框回归中的样本不平衡。

参考:

://blog.csdn.net/weixin_41560402/article/details/106007224://blog.csdn.net/qiu931110/article/details/103330107://zhuanlan.zhihu.com/p/270663039://zhuanlan.zhihu .com/p/94799295://www.it610.com/article/1453500272809689088.htm://mp.weixin.qq.com/s/jMWTFeDh6_0rhCzcYjw7sg://zhuanlan.zhihu.com /p/394892530

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论