【旋转框目标检测】2201_The KFIoU Loss For Rotated Object Detection

paper with code

paper

code:

Jittor Code: https://github.com/Jittor/JDet
PyTorch Code: https://github.com/open-mmlab/mmrotate
TensorFlow Code: https://github.com/yangxue0827/RotationDetection

摘要:

        得益于计算友好且与检测评价指标适配的基于IoU的损失的使用,水平框目标检测领域获得了良好的发展。而旋转检测器通常采用更复杂的SkewIoU(斜IoU),对基于梯度的训练并不友好。论文提出了基于高斯建模和高斯积有效近似SkewIoU的损失。其包括两项。一是尺度不敏感的中心点损失,用于快速缩短两个边界框中心点的距离。二是距离无关项,采用高斯分布的乘积来模仿SkewIoU的机制。在一定距离内(例如9像素内)其与 SkewIoU 损失在趋势水平上对齐。这不同于最近基于高斯建模的旋转检测器,例如GWD损失和KLD损失,他们采用了人工指定的距离分布指标,需要针对不同数据集和检测器额外的超参数调整。得益于其处理非重叠情况的可区分性和能力,KFIoU损失更加容易实现,并且相比精确的SkewIoU损失更好。进一步将该方法扩展到3-D情况,在不同的检测器上均更有效。

1 简介

        旋转框目标检测是相对新兴但有挑战的领域。大长宽比目标之间的斜交并比(SkewIoU)对目标位置的偏差敏感。这导致评价指标(SkewIoU)与回归损失(例如ln-norms)产生不一致性,其在水平框检测中很常见,并在旋转框检测中进一步被放大。图1展示了SkewIoU和Smooth L1 Loss的不一致性。例如,当角度偏差固定(红色箭头方向),随着长宽比的增加SkewIoU会急剧下降,而Smooth L1损失则保持不变。

         在水平框检测中,这种指标与回归损失的不一致性已经被广泛研究,例如GIoU损失和DIoU损失。但由于旋转目标IoU的复杂性,这些方法难以被分析应用到旋转框检测中。特别是其包含一些特殊操作(两条边的交点、顶点排序等)的求导函数在现有的深度学习框架中还未被实现。除此之外,当两个边界框的相交点超过8个时SkewIoU的计算不可微,例如两个边界框完全一致,或一条边一致,这会导致无法获得非常精确的预测结果。因此发展易于实现且完全可微的近似SkewIoU损失有重要意义,多个相关工作已经被开展。

        论文设计了一种基于高斯乘积的新型高效SkewIoU替代方法,即KFIoU损失。其可以被现有深度学习框架的操作直接实现,而无需额外的加速(例如C++/CUDA)。具体而言,首先将旋转边界框转换为高斯分布,避免了旋转框检测中的边界不连续和方形问题。然后采用中心点损失来缩小两个高斯分布中心的距离,并通过高斯分布的乘积计算重叠面积。通过计算误差变化和比较不同方法的表现,发现与SkewIoU损失趋势水平的对齐是解决指标与损失不一致性的关键,并进一步提升了效果。同最佳调参的基于高斯距离指标方法相比,论文方法在无需调参的情况下实现了更佳结果。亮点包括:

1)对于旋转框检测,论文提出一种易于实现的近似损失KFIoU损失,其完全可微且能处理非重叠情况,因此表现更好。其对目标采用高斯建模,使用高斯乘积在宽松的距离上模拟SkewIoU计算机制。

2)相较于其他通过指定距离参数的基于高斯的损失(GWD, KLD),论文方法是在机制层次对SkewIoU的模拟,更加可解释和自然,且无需调参。

3)在特定距离下,KFIoU损失相比GED、KLD损失与SkewIoU损失具有更好的趋势水平的对齐。在扩展基准(航空图像、文本、面部)中取得了SOTA。

4)进一步将KFIoU损失从2-D扩展到3-D,实现了第一个基于高斯建模的3-D旋转检测器。

2 相关工作

        旋转目标检测。

        旋转目标检测是一个新兴方向,其通过采用旋转边界框表达将传统水平检测器扩展到旋转情况下。航空图像和场景文本是旋转检测器的主要应用场景。对于航空图像,目标通常是任意方向、密集分布且具有大长宽比。当前,两阶段方法包括ICN (Azimi et al., 2018), ROI-Transformer
(Ding et al., 2019), SCRDet (Yang et al., 2019), Mask OBB (Wang et al., 2019), Gliding Vertex (Xu et al., 2020), ReDet (Han et al., 2021b)等,一阶段方法包括DRN (Pan et al., 2020), DAL (Ming et al., 2021c), R3Det (Yang et al., 2021b), RSDet (Qian et al., 2021a;b) and S2A-Net (Han et al., 2021a)。对于场景文本检测,方法包括RRPN (Ma et al., 2018)、TextBoxes++ (Liao et al., 2018a)、RRD (Liao et al., 2018b)。由于SkewIoU的实现复杂,以上算法的回归损失极少采用SkewIoU损失。

        基于IoU损失的变体。

        指标和回归损失的不一致性是水平框检测和旋转框检测的共性问题。针对这种不一致性,基于IoU的水平框解决方案已被广泛研究。例如Unitbox (Yu et al., 2016)、GIoU (Rezatofighi et al., 2019)、DIoU (Zheng et al., 2020b)。然而,由于SkewIoU难以实现使得这些方法难以应用到旋转检测中。最近,一些SkewIoU损失的近似方法被提出,基于Box/Polygon:SCRDet (Yang et al., 2019)、projection operation(Zheng et al., 2020a)、PolarMask (Xie et al., 2020)、CFA (Guo
et al., 2021)。基于Pixel:PIoU (Chen et al., 2020)。基于高斯:GWD (Yang et al., 2021c) 、KLD (Yang et al., 2021d)。

3 高斯建模介绍

        本章介绍如何将任意方向2-D/3-D边界框转换成高斯分布G(\mu , \Sigma )

 其中,R代表旋转矩阵,\Lambda代表特征值的对角矩阵。

        对于2-D目标B(x,y,w,h,\theta)

        对于3-D目标B(x,y,z,w,h,l,\theta) 

 其中,l,w,h分别代表3-D边界框的长度、宽度和高度。

         GWD和KLD也是基于高斯建模的方法。与本文工作不同的是,其使用分布距离的非线性变换来近似SkewIoU损失。考虑到高斯建模方法在避免边界不连续和方形问题的天然优势,本文采用另一种角度的近似来更好的训练检测器,而无需额外参数,与SkewIoU更加一致。表1比较了不同损失的特性。

4 方法 

        图2给出了基于高斯乘积的SkewIoU损失的近似流程。a)将边界框转换成高斯分布;b)使用中心损失减小两个高斯分布的距离;c)通过高斯乘积获取重叠区域的分布函数;d)将获取的重叠区高斯分布函数转换成旋转边界框,作为新重叠区并计算SkewIoU(矩形重叠区面积/(两个旋转框的面积-重叠区面积))和损失。

 4.1 基于高斯乘积的SkewIoU

        首先,基于协方差v可以容易的计算相应旋转框的容积,对于一个新的高斯分布:

 (4)

其中,n代表维度。

        获取SKewIoU的关键是计算重叠区域面积。对于两个高斯分布,可以使用高斯分布的乘积获得重叠区域的高斯分布:

(5)

其中,a写作:

(6)

 

其中,K是卡尔曼增益,

         协方差\Sigma只与两个高斯分布的协方差相关,意味着无论两个高斯分布如何移动,只要协方差是固定的,那么公式4计算的面积就不会变(距离无关)。这显然与直觉不一致:当两个高斯分布距离变远时,重叠面积应该变小。主要原因是a不是标准的高斯分布(概率之和不为1),不考虑a时,我们不能直接通过公式4使用协方差\Sigma来计算当前重叠的面积。公式6显示a与两个高斯分布中心点的距离相关。基于以上发现,可以先使用中心点损失来缩小两个高斯分布中心的距离。这样,a可以被近似为一个常数,同时中心损失的引入使得总体损失能够在非重叠情况下优化检测器。然后在新的位置使用公式4计算重叠面积。如图2所示,重叠区域损失计算如下:

         在附录中,我们证明KFIoU的上限在n维空间是。对于2-D/3-D检测,n=2和3,上限分别是1/3和 。我们可以根据上限,简单的通过线性变换将KFIoU的范围拉伸到[0, 1],以能够同IoU进行一致性的比较(例如图3中 1-3KF就是进行了拉伸,方便比较)。

        图3a-3b展示了五种损失形式在相同中心点不同场景下的曲线。注意,这里对KFIoU乘以3倍以使得范围变为[0, 1]。图3a描述了角度差异与损失函数的关系。尽管都呈现单调性,显然Smooth L1损失曲线更加不同。图3b展示了五种损失函数在不同长宽比下的变化。Smooth L1损失是常数,而其他损失都随着长宽比而大幅变化。图3c显示,变化小于5个像素时,KFIoU损失可以获得与SKewIoU损失最佳的趋势级对齐。在9个像素时,该结论依然成立。

         为了进一步分析不同SKewIoU损失近似的特性,设计了误差均值(EMean)和误差方差(EVar)指标。

其中,EVar度量设计损失与SKewIoU损失的趋势级一致性 。

        表1中的EVar比较显示:EVar(Lkfiou+Lc) < EVar(Lkld) < EVar(Lgwd)。结合三个数据集的结果来看,EVar越小精度越高。当EVar足够小时,即实现了充分的一致性,不同方法(例如KLD损失和KFIoU损失)的表现很接近。因此,我们获得结论,解决指标与回归损失一致性的关键在于趋势级的一致性而不是数值级的一致性基于高斯的损失之所以表现比直接使用SkewIoU损失更好,是因为更先进的参数优化机制、对非重叠情况的有效度量和完整的求导。超参数的引入使得KLD损失和GWD损失相比KFIoU损失不稳定。KFIoU损失在物理意义上更加合理(与SkewIoU的计算过程一致)和简单,同时更加有效。同时,KFIoU的实现比原始的SkewIoU更加简单并能容易的使用现有深度学习框架的操作实现。

4.2 KFIoU损失

        论文以2-D目标检测为例,采用RetinaNet (Lin et al., 2017b)作为基准。旋转框采用(x, y, w, h, \theta)表达。网络没有直接预测高斯分布的输出,因此没有改变原始表达分支的输出。整个训练过程总结如下:1)预测x, y, w, h, \theta的偏移;2)解码预测框;3)转换预测框和真值框为高斯分布;4)计算两个高斯分布的Lc和Lkf。所以推理过程和时间保持不变。x, y, w, h的回归如下:

 其中,x, y, w, h分别是框的中心坐标和宽高。x, xa, x*分别是真值框、锚框和预测框。

        对角度的回归,采用两种形式作为基准:

1)直接回归,模型直接预测角度偏移:

2)间接回归,模型预测sin\theta和cos\theta的偏移: 

 为了保证满足:

 进行归一化处理:

        多任务的损失为: 

 

其中,N和Npos分别代表所有锚框的数量和正锚框的数量。bn代表预测的第n个框,gtn是第n个真值框。G是高斯变换函数。tn代表第n个目标的标签,pn代表通过sigmoid函数计算类别的第n个概率分布。\lambda1和\lambda2是平衡参数,分别设为0.01和1。分类损失采用focal损失。回归损失是:

         对于 中心点损失,论文提供两种形式:

1)Faster RCNN (Lin et al., 2017a)采用的损失:

2)KLD中的损失,具有更好的中心点优化机制:

 

 5 实验

5.3 SOTA比较

        在DOTA1.0数据集上,一阶段、refine阶段和两阶段方法精度分别达到77.35%、81.03%、80.93%。

 6 讨论

        限制:高斯建模不能被直接应用于多边形(quadrilateral/polygon)检测中。其是航空图像、场景文字检测的另一类重要任务。并且方形目标的高斯分布接近于圆形,不适合用于目标头部检测。

        结论:论文提出了对梯度训练不友好的SkewIoU损失的一种趋势级一致性的近似。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值