论文阅读笔记:Theoretically Achieving Continuous Representation of Oriented Bounding Boxes

论文:https://arxiv.org/pdf/2402.18975v2.pdf
代码:https://github.com/514flowey/jdet-cobb

1 背景

如图1a-1b,常用的旋转包围框OBB表示方法存在不连续性问题,将相似的OBB编码成不同的向量,这给神经网络训练带来了挑战,因为对相似输入特征的回归目标可能会有很大的差异,这会造成混乱并阻碍训练。两个OBB之间的关系可以概念化为一个通过几何操作转化为另一个,如平移,旋转,缩放和纵横比变化。虽然旋转和纵横比变化是不连续的主要来源。
在这里插入图片描述

一些方法通过重新编码OBB的表示来解决旋转和纵横比不连续问题,但在将OBB编码到回归目标的过程中,仍然出现了不连续现象。因此,它们可以被称为编码不连续性。

比如OrientedRCNN中的编码方式,当OBB变成水平框时就会遇到不连续问题:
在这里插入图片描述

此外,现有方法在解决编码不连续性问题的同时,往往会带来编码不连续,即解码不完整性和解码模糊性。当Obb不能被精确表示时,解码不完整性就会出现,如图1c所示的CSL,将旋转角度分成多个类别,但两个类别之间的OBB不能被准确表示。

CSL论文中对于离散化类别的误差评估如下,如果以1度为1类,最大误差为0.5°,期望误差为0.25°。
在这里插入图片描述

另一方面,解码模糊性属于不同的OBB共享相似的实例,使得预测的OBB对模型输出中的轻微扰动敏感,如图1d中的GWD,由于不同旋转角度的正方形可以对应相同的高斯,解码后的正方形方向会有歧义。

2 创新点

  1. 系统地分析了现有的用于OOD的OBB表示方法中固有的不连续性问题,并引入了形式化度量来评估它们的连续性。

  2. 引入了COBB,一种OBB的完全连续表示。

  3. 构造了一个新的基准来公平地比较OOD方法。在该基准上的实验验证了方法的有效性,突出了其在高精度OOD中的优势。

3 方法

为了解决不连续性问题,作者引入了形式化的连续性度量,使用这个基准来评估之前的方法,作为不连续性问题的综合解决方案,提出了连续旋转包围框COBB,一种新颖的,满足所有定义度量的连续OBB表示。COBB采用了基于HBB和OBB面积的连续函数导出的9个参数,保证了HBB和OBB区域在形状变化过程中的连续性。通过简单替换原有的OBB表示,本文的COBB可以很容易的集成到现有方法中。

4 模块

4.1 连续性度量

为了形式化的定义连续性,作者引入 f E n c f_{Enc} fEnc 作为从OBB到 R n R^n Rn 的映射函数, f D e c f_{Dec} fDec 作为从 R n R^n Rn 的子集到OBB的逆映射。 R ( x , θ ) R(x,\theta) R(x,θ) 表示通过将初始OBB x x x 沿着顺时针旋转 θ \theta θ 生成OBB y y y 的变换, A ( x , r ) A(x,r) A(x,r) 表示分别调整OBB x x x 的其中一条边为其原始长度的 r r r 倍,并生成一组 OBBs { y , z } \{y,z\} { y,z} 。称 S S S 为 OBBs 的集合, L L L 表示损失函数。模型利用 f E n c f_{Enc} fEnc 将OBBs转化为回归目标,利用 f D e c f_{Dec} fDec 将预测结果转化为估计的OBBs。

连续性度量包含如下定义:

  • 目标旋转连续性:微小的旋转应该对回归目标产生最小的影响。
    在这里插入图片描述

  • 目标纵横比连续性:纵横比的微小变化对回归目标的影响应该是最小的。
    在这里插入图片描述

  • 损失旋转连续性:较小的旋转应该对损失值影响最小。
    在这里插入图片描述

  • 损失纵横比连续性:较小的纵横比变化应该最小地改变损失值。
    在这里插入图片描述

  • 解码完整性:每一个OBB都可以被精确的表示出来。
    在这里插入图片描述

  • 解码鲁棒性:解码后的OBB应该对其表示中的轻微错误具有鲁棒性。
    在这里插入图片描述

    解码率鲁棒性等价于避免解码歧义,如图1d所示。

以往的研究涵盖了前4个指标,但对后两个指标的探索较为有限、表1中总结了现有的处理不连续性的方法。然而这些方法并不是普遍连续的。为了综合解决不连续问题,作者提出了COBB,即保证了编码连续性,又保证了解码连续性。
在这里插入图片描述

4.2 COBB表示

值得注意的是,在形状转变过程中,外层HBB和OBB的面积会发生连续变化。因此,作者使用用一个五维向量 ( x c , y c , w , h , r a ) (x_c,y_c,w,h,r_a) (xc,yc,w,h,ra) 来表示一个OBB。其中 ( x c , y c ) , w , h (x_c,y_c),w,h (xc,yc),w,h 分别表示外接水平框的中心点,宽度和高度。 r a r_a ra 表示OBB相对于外接HBB的面积比。

可以证明只有一对对称的OBB共享一个 ( x c , y c , w , h , r a ) (x_c,y_c,w,h,r_a) (xc,yc,w,h,ra) 。然而从 ( x c , y c , w , h , r a ) (x_c,y_c,w,h,r_a) (xc,yc,w,h,ra) 中去直接计算OBBs是一个复杂的过程,为了解决这个问题,作者引入了一个滑动比例 r s r_s rs 来估计 r a r_a ra
在这里插入图片描述

其中OBB的四个顶点的横坐标从小到大的顺序为 x 1 , x 2 , x 3 , x 4 x_1,x_2,x_3,x_4 x1,x2,x3,x4,纵坐标排序为 y 1 , y 2 , y 3 , y 4 y_1,y_2,y_3,y_4 y1,y2,y3,y4。可以证明 r s r_s rs 可以计算为 r s = f ( m i n ( r a , 1 − r a ) ) r_s=f(min(r_a,1-r_a)) rs=f(min(ra,1ra)),其中 f : [ 0 , 0.5 ] → [ 0 , 0.5 ] f:[0,0.5]→[0,0.5] f:[0,0.5][0,0.5] 是连续严格递增映射,这意味着 r s r_s rs 随着OBBs变换而连续变化。

这里说 f f f 是严格递增的,不代表 r s r_s rs 是递增的,自己画了一下 r s r_s rs 在[0,90°]的变化过程,可以发现是连续的([90°,180°]同理):
在这里插入图片描述
图中第三列的状态就是 r a = 1 − r a r_a=1-r_a ra=1ra 的状态。

同时也会发现这个过程是不适定的,即在确定 w w w h h h 的情况下,一个 r s r_s rs 会对应着不止一个OBB,如89°和91°。

然而,如图2所示,共有4个不同的OBB可以编码到同一个 ( x c , y c , w , h , r s ) (x_c,y_c,w,h,r_s) (xc,yc,w,h,rs) 中,导致潜在的编码歧义。为了减轻歧义,坐这里用目标OBB和四个OBB之间的交并比作为分类的分数,重要的是,这些IoU可以直接使用 ( x c , y c , w , h , r s ) (x_c,y_c,w,h,r_s) (xc,yc,w,h,rs) 和目标0BB计算,从而省去了任意OBB之间的复杂计算。IoU的计算过程见附录9.5。

在这里插入图片描述

同一个 ( x c , y c , w , h , r s ) (x_c,y_c,w,h,r_s) (xc,yc,w,h,rs) 只可能存在4个OBB,以正方形中心点为圆心,以真值OBB的对角线长度为直径画圆。这样 y 1 y_1 y1 只会出现 y 11 y_{11} y11 y 12 y_{12} y12 的位置, y 2 y_2 y2 只会出现在 y 21 y_{21} y21 y 22 y_{22} y22 的位置,所以共 KaTeX parse error: Undefined control sequence: \* at position 2: 2\̲*̲2=4 种OBBs。因为这样 ∠ y 2 y 1 y 3 ∠y_2y_1y_3 y2y1y3 才是直角。
在这里插入图片描述
在这里插入图片描述

最后 ( x c , y c , w , h , r s , s 0 , s 1 , s 2 , s 3 ) (x_c,y_c,w,h,r_s,s_0,s_1,s_2,s_3) (xc,yc,w,h,rs,s0,s1,s2,s3) 认为是OBB的连续表示,其中 s 0 , s 1 , s 2 , s 3 s_0,s_1,s_2,s_3 s0,s1,s2,s3 是目标OBB与具有相同 ( x c , y c , w , h , r s ) (x_c,y_c,w,h,r_s) (xc,yc,w,h,rs) 的4个OBB之间的IoU。

通过反转上述过程,将一个9维向量解码成单个OBB,不失一般性,假设 w ≥ h w≥h wh,利用相似三角形的性质,可以计算 x 2 − x 1 x_2-x_1 x2x1 y 2 − y 1 y_2-y_1 y2y1
在这里插入图片描述

IoU得分最高的分类决定了生成的OBB的风格,再利用HBB, x 2 − x 1 x_2-x_1 x2x1 y 2 − y 1 y_2-y_1 y2y1 可以计算出OBB的4个顶点的坐标。计算过程见附录9.2。

4.3 COBB在旋转目标检测模型中的应用

大多数模型使用GT和proposal之间的偏差作为回归目标,以利用proposal的先验信息。在本文方法中,对于水平建议区域 ( x p , y p , w p , h p ) (x_p,y_p,w_p,h_p) (xp,yp,wp,hp),回归目标的计算方式与FasterRCNN相同:
在这里插入图片描述

其中 b o x t = ( t x , t y , t w , t h ) box_t=(t_x,t_y,t_w,t_h) boxt=(tx,ty,tw,th) 是目标的外接HBB, Δ x = x c − x p \Delta{x}=x_c-x_p Δx=xcxp Δ y = y c − y p \Delta{y}=y_c-y_p Δy=ycyp

根据式(7), r s r_s rs 的值在 [0, 0.5]。为了利用这个性质,一个有效的方法是限制预测结果的范围,如使用Sigmoid函数,在这种情况下, r s r_s rs 的回归目标是:
在这里插入图片描述

另一种方法是对 r s r_s rs 的定义域进行扩展:
在这里插入图片描述

r s i g r_{sig} rsig 相比,当 r a r_a ra 较小时, r l n r_{ln} rln 表现出对 r s r_s rs 更高的敏感性,有助于检测器对倾斜较小的物体的精确预测,根据对 r s r_s rs 回归目标的定义,可以将方法分为 COBB-sig 和 COBB-ln 两类。

r l n ∈ ( 0 , 1 ) r_{ln}∈(0,1) rln(0,1) ,从而使得 r s ∈ 2 r l n − 1 ∈ ( 0 , 0.5 ) r_s∈2^{r_{ln}-1}∈(0,0.5) rs2rln1(0,0.5)

IoU分数的回归目标定义为:
在这里插入图片描述

其中 λ \lambda λ 是一个预定义的常数,用来放大真实值和其他类别之间的差距。

对于使用旋转建议区域的模型,作者将建议区域和目标OBB围绕建议区域的中心旋转,直到其旋转角度变为0,随后训练过程同上,按照水平建议区域训练模型。推理时,同样将proposal旋转至水平,然后预测出结果后,再逆时针旋转回来即可,具体见附录9.3。
在这里插入图片描述

最终损失函数如下:
在这里插入图片描述

其中 b o x p , r p , s p box_p,r_p,s_p boxp,rp,sp 表示预测的外接水平框,预测的 r s r_s rs 和预测的IoU分数。 r t r_t rt 作为 r s r_s rs 的回归目标,即 COBB-sig 中的 r s i g {r_{sig}} rsig 和 COBB-ln 中的 r i n r_{in} rin L c l s L_{cls} Lcls 代表分类损失,与基准模型的分类损失(如FasterRCNN的交叉熵)对齐。 L b o x L_{box} Lbox L r L_r Lr L s L_s Ls 是 smooth L1 损失。超参 w 1 , w 2 , w 3 , w 4 w_1,w_2,w_3,w_4 w1,w2,w3,w4 是预定义的常数。

5 效果

5.1 与SOTA方法对比

使用Jittor object DETection模型库(JDet)与SOTA方法在DOTA-v1.0的对比。
在这里插入图片描述

5.2 消融实验

使用IoU分数和One-hot编码来对4种OBB情况分类的消融实验。使用One-hot编码会带来不连续性。
在这里插入图片描述

在水平提案和有向提案上使用COBB的消融实验。
在这里插入图片描述

r s r_s rs 代替 r a r_a ra 的消融实验。
在这里插入图片描述

不同数据集和检测器上使用COBB的效果。
在这里插入图片描述