论文阅读笔记:Rethinking Boundary Discontinuity Problem for Oriented Object Detection
- [1 背景](#1 背景)
-
- [1.1 问题](#1.1 问题)
- [1.2 提出的方法](#1.2 提出的方法)
- [2 创新点](#2 创新点)
- [3 方法](#3 方法)
- [4 模块](#4 模块)
-
- [4.1 预备知识](#4.1 预备知识)
- [4.2 角度双重优化](#4.2 角度双重优化)
- [4.3 从复函数到极坐标映射](#4.3 从复函数到极坐标映射)
- [4.4 损失函数](#4.4 损失函数)
- [5 效果](#5 效果)
-
- [5.1 和SOTA方法对比](#5.1 和SOTA方法对比)
- [5.2 消融实验](#5.2 消融实验)
- [6 结论](#6 结论)
论文:https://arxiv.org/pdf/2305.10061v2.pdf
代码:https://github.com/Pandora-CV/cvpr24acm
1 背景
1.1 问题
在先前的工作中,边界不连续问题一直被认为是由于训练过程中角度边界处的突变损失引起的。为了解决这个问题,近期方法设计了一系列平滑损失函数来防止损失的急剧增加,这些方法可以分为两大类,即独立最优损失(如CLS等)和联合最优损失(以IoU-like损失为主)。由于损失与IoU评估一致性较低的负面影响,通过独立最优损失训练的检测器通常效果比IoU-like损失更差。因此,增加IoU-like损失成为旋转目标检测器的主流选择。然而,通过实验发现,即使使用最先进的IoU-like方法也不能真正解决边界不连续问题。具体来说,选取一幅仅包含单个物体的图像,以 1° 为间隔将其旋转 360° 的到一系列图像,这些图像依次输入到一个用IoU-like损失训练得很好的检测器中进行推理,如图2所示,在靠近角边界的某些情况下,预测框会以严重偏离的角度坍塌。
通过理论分析,作者发现解决问题的关键在于平滑函数的编码方式,而不是联合或独立优化。虽然两种优化范式都强调损失平滑,但联合优化方法有着与独立优化方法不同的技术细节,如图1所示,在联合优化方法中,检测器的输出 θ p \theta_p θp 在损失计算过程中被显式的应用了平滑函数。而在独立优化方法中,平滑函数被隐式的嵌入到模型中, θ p \theta_p θp 由检测器的输出 f p f_p fp 解码得到。例如典型的联合优化方法KLD中,高斯分布是通过预测角度和其他参数转换而来,而不是从模型直接输出,正是这个细节使得IoU-like方法没有入如他们所期望的那样真正解决边界不连续问题,尽管他们提高了检测性能。
具体来说,模型仍然试图拟合边界框和物体之间的角度关系,该关系实际上是一个分段函数,在角边界处有一个断点,这对于本质连续的神经网络来说是很难拟合
的。
1.2 提出的方法
在这种情况下,作者出现了一个直观的想法,让模型输出一个高斯模型。然而从高斯模型中恢复出包围框的原始旋转角度具有挑战性。所以必须找到一个同时满足平滑性、联合性和可逆性特征的编码函数。
2 创新点
-
从数学角度提炼和归纳了现有方法的优化逻辑,首次澄清了长期以来IoU-like方法解决边界问题的误解;
-
提出了一种新颖的角度双重优化范式,首次实现了同时修正角度边界和融合参数的目标,实现旋转等变性进行检测。
-
在多个数据集上的大量实验表明,边界不连续问题得到了很好的解决。此外,典型的IoU - like方法被改进到相同的水平,没有明显的性能差距。
3 方法
作者提出了一个角度的双重优化范式,如图4。将可逆性和联合最优性从单个平滑函数解耦成两个不同的实体 f f f 和 g g g。前者修正了角度边界,后者融合了角度与其他参数。在该范式中,模型输出角度编码 f p f_p fp,受到显式监督。在此基础上,对解码角度 θ p = f p − 1 \theta_p=f_p^{-1} θp=fp−1 施加了一个联合优化 g g g。显然, g g g 可以使用现有的联合优化方法。然而考虑到 f p − 1 f_p^{-1} fp−1 参与损失计算,必须保证 f p − 1 f_p^{-1} fp−1 是可微的,这对于许多现有的编码是不满足的,受PSC连续编码的启发,作者提出了一种基于复指数的编码函数。
4 模块
4.1 预备知识
将目标实例和边界框分别表示为 O ( x o b j , y o b j , w o b j , h o b j , θ o b j ) O(x_{obj},y_{obj},w_{obj},h_{obj},\theta_{obj}) O(xobj,yobj,wobj,hobj,θobj) 和 B ( x b o x , y b o x , w b o x , h b o x , θ b o x ) B(x_{box},y_{box},w_{box},h_{box},\theta_{box}) B(xbox,ybox,wbox,hbox,θbox)。 O O O 和 B B B 最大的区别在于 θ \theta θ,其中 θ o b j \theta_{obj} θobj 的取值范围是 [ 0 , 2 π ) [0,2\pi) [0,2π) , θ b o x \theta_{box} θbox 的取值范围是 [ 0 , π ) [0,\pi) [0,π) 。这是因为物体包含内容,需要旋转至少一整圈才能完全重叠,而包围框是一种没有任何内容的几何体,只需要旋转半圈就可以完全重叠。例如,在图3a中,旋转45 °和225 °的物体可以通过内容来区分,而相应的边界框却不能。
在这种设定下,包围框是真正对称的矩形,旋转 θ \theta θ 和 θ ± π \theta±\pi θ±π 是不可区分的。因此 θ b o x \theta_{box} θbox 和 θ o b j \theta_{obj} θobj 之间的关系表现为具有断点的分段函数。如图3b和式(1):
检测器以目标图像为输入,框为监督,这意味着检测器实际上是被强制去拟合方程。显然 θ b o x \theta_{box} θbox 在 θ o b j = π \theta_{obj}=\pi θobj=π 处存在一个阶跃点,这使得本质上为连续函数的检测器 F F F 很难对其进行精确拟合。
这里论文显然忽略了类方形问题,在物体包围框是正方形时, θ b o x = θ o b j m o d π 2 \theta_{box}=\theta_{obj}~mod~\frac{\pi}{2} θbox=θobj mod 2π
对于边界处的角度不连续问题,主流解决方法是对角度边界处的损失值进行平滑处理,然而通过实验发现即使是联合优化方法也没有真正解决边界不连续问题。为了理解这一背后的原因,作者将其进行重新表述,令 θ b o x \theta_{box} θbox 的真实值和预测值分别为 θ t \theta_t θt 和 θ p \theta_p θp,联合优化方法可以表述为:
其中模型拟合不连续的 θ p \theta_p θp, f f f 和 l l l 分别是角度的编码函数和编码值的度量函数。例如,在 KLD 中, f = G a u s s i a n x , y , w , h ( θ ) , l = l k l d f = Gaussian_{x,y,w,h}(θ),l = l_{kld} f=Gaussianx,y,w,h(θ),l=lkld 。 f f f 将角度和其他参数编码为一个平滑的高斯分布,而 l l l 只是度量预测和真实值之间高斯分布的距离。
作为对比,独立优化方法中的角度优化方式可以表示为:
其中模型拟合连续的 f p f_p fp, f − 1 f^{-1} f−1 是 f f f 的反函数,可以通过 θ p = f p − 1 \theta_p=f_p^{-1} θp=fp−1 得到角度。例如,在CSL中, f = o n e h o t ( θ ) , l = l f o c a l f=onehot(\theta),l=l_{focal} f=onehot(θ),l=lfocal, f f f 将角度编码成离散分布, l l l 衡量分类质量。
与 f f f 的多样化优化形式相比,更值得注意的是 f f f 的编码方式,注意到式(2)中的输出 θ \theta θ, f f f 被显式的应用于损失计算中,而在式(3)中,直接输出由 f f f 编码的值。对于检测器 F F F,前者的拟合目标仍然为带有断点的 θ b o x \theta_{box} θbox ~ $ \theta_{obj}$,而后者的拟合目标变为了 f b o x f_{box} fbox ~ f o b j f_{obj} fobj。得益于 f f f 的周期性聚集性质,框和目标之间的差异被消除,这将不再受困于拟合断点的困扰。
总的来说,模型直接拟合光滑值是一个更好的选择,而不是仅仅在损失计算中使用。至于联合优化方法之所以不采用这样的设计,最有可能的原因是难以从模型输出的联合编码中恢复角度。引人注目的是,联合优化的优点大于损失平滑的缺点,这最终误导了研究者们相信边界问题可以通过联合优化来解决。
4.2 角度双重优化
考虑到联合优化已成为目前的主流方案,一种方便的改进策略是采用可逆编码的独立优化进行角度矫正,以及基于矫正后的角度进行联合优化实现角度和其他参数的融合:
其中模型仍然适用于连续的 f p f_p fp, f f f 和 g g g 是独立/联合优化中的编码函数。
由于 f − 1 f^{-1} f−1 在联合优化中参与损失计算, f f f 不仅需要连续,可微和可逆(GWD/KLD/KFIoU/SkewIoU不能满足),而且其反函数 f − 1 f^{-1} f−1 也需要满足这些性质,像CSL这样的离散编码依赖于argmin使得 f − 1 f^{-1} f−1 不可微。
为此,作者提出了一种基于复指数函数的角度矫正模块ACM。该模块实现了上述 f f f 和 f − 1 f^{-1} f−1,可以很方便的插入到已有的旋转目标检测工作流中去修复角度预测。如图4,当ACM工作时,探测器需要输出角度编码,而不是角度本身,因为检测框和物体的一致属性而不会引起边界不连续问题,这意味着 f ( θ b o x ) = f ( θ o b j ) f(\theta_{box})=f(\theta_{obj}) f(θbox)=f(θobj),由于等式(1),等价于 f ( θ o b j m o d π ) = f ( θ o b j ) f(\theta_{obj}~mod~\pi)=f(\theta_{obj}) f(θobj mod π)=f(θobj),所以 f ( 0 ) = f ( π ) f(0)=f(\pi) f(0)=f(π),为了恢复盒子唯一的角度值, f f f 至少在 [0,π) 范围内,又因为 f f f 在 [0,π) 上是连续的,根据罗尔定理,它不仅在区间边界上,而且在其他点上也会产生多对一的对应关系,这个矛盾意味着不可能找到一个符合条件的 f f f。
然而上面提到的不可能仅限于最常见的 f f f 属于实数域 R R R 的情况。我们可以将视角扩展到复数域 C C C 中。通过最简单却最经典的复变换,即复指数变换来达到可逆变换的目的:
其中 z ∈ C z∈C z∈C 是编码值, j j j 为虚数单位, ω ∈ R + \omega∈R^+ ω∈R+ 为角频率。由于式(6)解码只能在复平面上的单个周期内取得唯一角度,且 ω θ \omega\theta ωθ 的范围 [ 0 , ω θ ) ⊆ [ 0 , 2 π ) [0,\omega\theta)⊆[0,2\pi) [0,ωθ)⊆[0,2π),因此 ω ≤ 2 \omega≤2 ω≤2。为了确定合适的 ω \omega ω, f b o x f_{box} fbox ~ f o b j f_{obj} fobj 的关系如下:
通过对公式的进一步推导,我们可以发现:
-
当 ω = 2 \omega=2 ω=2 时,式(7)可以简化为 f b o x = f o b j f_{box}=f_{obj} fbox=fobj, f f f 成为了包围框和物体都一致的属性。
-
当 ω = 1 \omega=1 ω=1 时,式(7)可以简化为 KaTeX parse error: Undefined control sequence: \* at position 16: f_{box}=f_{obj}\̲*̲sign(\pi-\theta..., f b o x f_{box} fbox 仍有断点
-
当 ω ≠ 2 \omega≠2 ω=2 时,式(7)难以化简。
综上,ACM模块中,选择 ω = 2 \omega=2 ω=2。
4.3 从复函数到极坐标映射
对于4.2中提出的基于复指数的编码,利用欧拉公式可以将其转换到极坐标系中,如下:
其中 ω ∈ R + \omega∈R^+ ω∈R+ 是角频率,arctan2 是 arctan 的另外一种形式,具有象限分配。 z r e z_{re} zre 和 z i m z_{im} zim 分别是复数编码 z ∈ Z z∈Z z∈Z 的实部和虚部。通过隐藏编码的复杂标记,可以将其视为2D极坐标编码,具体如下:
z x z_x zx 和 z y z_y zy 分别是二维向量 z ∈ R 2 z∈R^2 z∈R2 的 x x x 轴和 y y y 轴的分量。这种形式类似于连续的PSC编码,但PSC无法进行上述转换。
在这个角度上,编码对应于一个单位向量的笛卡尔坐标,而解码对应于一个单位向量的极坐标表示,如图6a所示,给定一个二维空间中的极角为 ϕ \phi ϕ 和半径为 ρ \rho ρ 的向量,在笛卡尔坐标中可以分解为 ( ρ c o s ( ϕ ) , ρ s i n ( ϕ ) ) (\rho cos(\phi),\rho sin(\phi)) (ρcos(ϕ),ρsin(ϕ))。当半径 ρ \rho ρ 固定时,只考虑单周期内的 ϕ \phi ϕ 时,极角和笛卡尔坐标系是一一对应的,如图6b。
从极坐标的角度理解可以看到这种编码方式是连续且无歧义的。
4.4 损失函数
如图4所示,给定一批图像,检测器输出类别 c p c_p cp,位置 ( x p , y p ) (x_p,y_p) (xp,yp) ,尺度 ( w t , h t ) (w_t,h_t) (wt,ht),和角度编码 f p f_p fp。对应的真值为 c t c_t ct , ( x t , y t ) (x_t,y_t) (xt,yt) , ( w t , h t ) (w_t,h_t) (wt,ht) 和 θ t \theta_t θt。首先,计算角度编码的损失,即:
然后,联合优化解码角度 θ p = f p − 1 \theta_p=f_p^{-1} θp=fp−1,即:
其中 l ∈ { l r i o u , l k l d , l g w d . . . } l∈\{l_{riou},l_{kld},l_{gwd}...\} l∈{lriou,lkld,lgwd...} 。此外,分类损失如下:
最终,总损失如下:
其中权重 λ b o x = 1 , λ a c m = 0.2 \lambda_{box}=1,\lambda_{acm}=0.2 λbox=1,λacm=0.2 。
5 效果
5.1 和SOTA方法对比
在DOTA-v1.0上和SOTA方法的指标对比。
和KFIoU的效果对比。
5.2 消融实验
编码长度的消融实验。
不同编码模式的消融实验。
不同监督方式的消融实验。
使用不同联合优化损失在不同数据集上的消融实验。
6 结论
解决了边界问题,但是如果目标是一个类正方形,依然还是会存在不连续问题。