广告位

gwd

本文详细阐述了旋转目标检测的主要问题,将旋转回归目标定义为高斯分布,用Wasserstein距离度量高斯分布之间的距离进行训练。目前,在常规目标检测中,将回归转换成概率分布函数的方法有很多。这篇论文有异曲同工之

本文详细阐述了旋转目标检测的主要问题,将旋转回归目标定义为高斯分布,用Wasserstein距离度量高斯分布之间的距离进行训练。目前,在常规目标检测中,将回归转换成概率分布函数的方法有很多。这篇论文有异曲同工之妙,值得一读。

来源:肖飞算法工程笔记微信官方账号

论文:用高斯wasserstein距离损失重新思考旋转物体检测

论文地址:https://arxiv.org/abs/2101.11952论文代码:https://github.com/yangxue0827/RotationDetectionIntroduction

具有任意方向的目标在检测数据集中无处不在。与水平目标检测相比,旋转目标检测还处于起步阶段。目前大部分SOTA研究集中在回归目标的旋转角度,但求解旋转角度带来了新的问题:I)指标与损失不一致。Ii)旋转角度的回归区间是不连续的。三)平方问题。实际上,上述问题并没有很好的解决方法,这将极大地影响模型的性能,尤其是当角度处于范围的边界时。

为了解决上述问题,本文提出了GWD方法。首先用二维高斯分布对旋转目标建模,然后用高斯瓦瑟斯坦距离(GWD)代替不可微的旋转IoU,根据GWD计算损耗值,从而使模型训练与测量标准对准。
本文的主要贡献如下:

总结了旋转目标检测的三个主要问题。使用Gaussian Wasserstein Distance(GWD)描述旋转bbox间的距离,再用GWD计算代替IoU损失的loss,且是可微的。GWD-based损失能够解决旋转角度范围不连续问题和方形问题,且对bbox的定义方式没有要求。在多个公开数据集上进行测试,论文的方法均有不错的表现。Rotated Object Regression Detector RevisitBounding Box Definition

图2给出了旋转bbox的两种定义:OpenCV形式和长边形式,其中前者的角度为与横坐标的夹角,后者的角度为长边与横坐标的夹角。这两种定义可以相互转换(不考虑中心点):

这两种表示法的主要区别在于边的顺序和角度。同一个bbox用不同的方式表达,可能需要将边的顺序或角度交换90°。在许多研究中,模型的设计与bbox的定义相耦合,以避免特定的问题:例如,可以避免平方问题,可以避免边交换问题。

Inconsistency between Metric and Loss(指标与损失不一致问题)

IoU是检测领域的重要评价指标,但实际训练中使用的回归损失函数(如-范数)往往与评价指标不一致,即损失值越小并不意味着性能越高。目前,在水平目标检测领域已经出现了一些处理不一致性问题的措施,如欧弟和吉欧。在旋转目标检测领域,由于角度回归的加入,不一致性问题更加突出,但仍然没有很好的解决方法。本文还列举了一些例子来比较欠条损失和平滑L1损失:

Case 1: 角度差值与损失值之间的关系,曲线几何都是单调的,但只有ooth L1曲线是凸曲线,能优化到全局最优解。Case 2:长宽比差异与损失值之间的关系,ooth-l1损失值是固定的(主要来自于角度差异),而IoU损失则随着横轴剧烈变化。Case 3:中心点偏移对损失值的影响,曲线都是单调的,但ooth L1曲线与差值大小没有高度一致。

从上面的分析可以看出,在旋转目标检测领域,IoU损耗可以更好的填补评价标准和回归损耗的差异。不幸的是,在旋转目标检测领域,两个旋转bbox之间的IoU的计算是不可微的,并且不能用于训练。因此,本文在Wasserstein距离的基础上,提出了一种可微损失代替IoU损失,同样可以解决旋转角回归区间的不连续问题和平方问题。

Boundary Discontinuity and Square-Like Problem(旋转角度回归区间不连续以及方形问题)

上图中的案例1-2总结了旋转角度回归区间的不连续性。以OpenCV形式的案例2为例,anchor和GT有两种回归方法:

way1逆时针旋转一个小角度即可,预测结果为,但由于角度的周期性(PoA)和边顺序交换(EoE),若使用ooth L1损失函数,这个结果与GT间会产生巨大的损失值。另外,这个角度也超出了预定的角度范围。选择way2则需要在缩放宽高的同时,顺时针旋转一个大的角度。

上述问题通常发生在锚与GT的角度处于角度范围的边界位置时,而当锚与GT的角度不在边界位置时,way1不会产生巨大的损失值。因此,对于光滑L1,边界角和非边界角的最优处理会过于一致,这也会阻碍模型的训练。

正方形问题主要出现在使用长边形状的检测方法中。因为正方形目标没有绝对的长边,所以长边形式对正方形目标本身的表达并不唯一。以案例3为例,有anchor和GT,way1可以顺时针旋转一个小角度,使其位置与GT一致。但由于角度差距较大,way1会产生较高的回归损耗。所以需要像way2一样逆时针旋转一个大角度。造成平方问题的主要原因不是上面说的PoA和EoE,而是度量标准和损失计算的不一致。

The Proposed Method

经过以上分析,本文希望新的旋转目标检测方法的回归损失函数满足以下几点:

Requirement1: 与IoU度量标准高度一致。Requirement2: 可微,允许直接学习。Requirement3: 对角度回归范围的边界场景更为平滑。Wasserstein Distance for Rotating Box

目前,大多数IoU损耗可以看作是距离函数。基于此,本文提出了一种新的基于Wasserstein距离的回归损失函数。首先,旋转bbox被转换成二维高斯分布:

是旋转矩阵和特征值的对角向量。对于上任意两个概率度量的和,Wasserstein距离可以表示为:

公式2计算所有随机向量组合,代入高斯分布,转换为:

请特别注意:

考虑到可交换的情况(水平目标检测),等式3可以转换成:

对于Frobenius范数,这里的bbox是水平的,等式5类似于-范数损失,说明Wasserstein距离与水平检测任务中常用的损失一致,可以用于回归损失。这里的公式计算比较复杂,有兴趣可以看看参考文献。

Gaussian Wasserstein Distance Regression Loss

本文采用非线性变换函数将GWD映射为,得到一个类似于IoU损耗的函数:

前面的图也描述了不同非线性函数下的损失函数曲线。可以看出,公式6非常接近IoU损耗曲线,也可以测量非交叉bbox。所以公式6显然可以满足Requirement1和Requirement2。让我们开始分析需求3,首先给出公式1的特征:

根据特性1,GWD损失函数等于OpenCV形式和长边形式,即模型不需要固定一个特定的bbox表达式进行训练。以情况2的方式1为例,GT和forecast具有相同的均值和方差,GWD损失函数不会输出较大的损失值。根据特征2和3,情况2和情况3的方式1不会产生大的损失值,因此GWD损失函数也满足要求3。
总体而言,GWD在旋转目标检测方面的优势如下:

GWD使得bbox的不同定义形式相等,保证模型能够专注于准确率提升,不需要顾忌bbox的定义形式。GWD是可微的IoU损失替代方案,与检测指标高度一致。而且,GWD可以度量无相交bbox间的距离,类似于GIoU和DIoU的特性。GWD避免了旋转角度回归区间不连续问题和方形问题,降低了模型的学习难度。Overall Loss Function Design

本文采用RetinaNet作为基本检测器,bbox表示为OpenCV,回归目标定义为:

变量的分布,,代表GT,锚和预测结果,最终的多任务损失函数为:

是锚号,前景或背景的指示器,预测bbox,GT,GT的标签,预测标签,超参数,焦损。

Experiments

针对具体问题比较其他解决方案。

在DOTA数据集上比较多个模型,文中还有很多其他的实验,有兴趣可以去看看。

Conclusion

本文详细阐述了旋转目标检测的主要问题,将旋转回归目标定义为高斯分布,用Wasserstein距离度量高斯分布之间的距离进行训练。目前,在常规目标检测中,将回归转换成概率分布函数的方法有很多。这篇论文有异曲同工之妙,值得一读。

参考内容Wasserstein distance between two Gaussians – https://djalil.chafai.net/blog/2010/04/30/wasserstein-distance-between-two-gaussians/    

如果这篇文章对你有帮助,请喜欢或者观看~
更多内容请关注微信微信官方账号【肖飞的算法工程笔记】。

工作生活平衡。

本文来自网络,不代表本站立场。转载请注明出处: https://www.djladysyren.com/a-150881.html
1
上一篇经度纬度
下一篇 胡志明市英文

为您推荐

联系我们

联系我们

186 2726 9593

在线咨询: QQ交谈

邮箱: 120632399@qq.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部