论文链接:https://arxiv.org/abs/2003.05597
code:https://github.com/Thinklab-SJTU/CSL_RetinaNet_Tensorflow
文章概要:
本文展示了目前流行的基于回归的旋转目标检测方法都存在或多或少的不连续边界问题,问题直接由角度的周期性或角点的顺序导致。根本原因则是理想的预测超出了所定义的范围,导致边界问题的产生,即产生了一个较大的损失值。针对上述问题,本文设计了一种没有边界问题的预测方法。该方法的核心是将角度预测从回归任务转变为分类任务处理,并提出了环形平滑标签(circular smooth label ,CSL ),通过引入周期性解决了角度周期性的问题。
本文出发点:
面对四边形的边界问题,SCRDet、Gliding Vertex和RSDet在内没有从更深层次来解决这个问题,只是在发现有这个问题之后采取措施抢救,而不是设计一种没有边界问题的预测方法。本文通过探讨发现理想的预测超出了所定义的范围,导致了边界问题的产生,即产生了一个较大的损失值。因此本文提出了CSL的概念,通过将角度的回归问题转换成了一个分类问题,限制预测结果的范围来消除这一问题。
网路结构:
从Fig.1可以看到,本文在RetinaNet的基础上添加了一个角度分类的分支,同时依然保留角度回归分支。作者实验中没有给出CSL单独使用的实验结果。
常见的角度回归表示方法:
- 90°-regression-based method (五参数法,$x,y,w,h,\theta$),角度$\theta$表示矩形框与x轴所形成的锐角,且框与x轴组成锐角的边记为$w$,另一条边则记为$h$。$\theta\in[-90,0])$。
- 180°-regression-based method (五参数法,$x,y,h,w,\theta$),即长边表示法。矩形框的长边($h$)与x轴形成的夹角。$\theta\in[-90,90)$。
- Point-based method (八参数法,$x_1,y_1,x_2,y_2,x_3,y_3,x_4,y_4$),最左边的点(如果水平矩形的话有两个点满足取上面的那个)为起始点,逆时针排列。
各种回归方法的边界问题:
- 90°-regression-based method :最理想的角度回归路线是由蓝色框逆时针旋转到红色框,但由于角度的周期性,导致按照这个回归方式的损失非常大(参见上图右边的Example)。此时模型必须以更复杂的形式回归(例如蓝色框顺时针旋转,同时缩放w和h),增加了回归的难度。通过上图(a)右边的example,我们可以发现损失值的突增来源于两部分,一个是角度周期性(periodicity of angular,PoA),另一个是边的交换性(exchangeability of edges,EoE)。
- 180°-regression-based method :这种方式比上面稍微简单一些,损失值的突增只来源于PoA。
- point-based method:看(c)图,如果是蓝框是anchor,红框是ground-truth,那么通过点的排序之后,实际和理想的回归方式是一样的(按照回归的距离定义),都是:
而绿框是ground-truth时,实际是:
理想情况是:
通过上述三种例子的分析,我们不难得出这样的结论:理想的预测结果超出了所定义的范围,导致出现边界问题,即产生一个较大的损失值。
环形平滑标签(CSL):
作者在该节内容探讨了将基于回归方法的角度预测问题转换为分类问题的可行性。以180°-regression-based method 为例,将定义的角度范围进行类别划分,比如一度归为一类$(\omega =1°)$。但是将回归问题转化为分类问题实际上是一个连续到离散的变换,会造成精度的损失。因为转换为分类问题后,基于本文一度一类的举例,0.5度的情况是无法预测的。在这种情况下,计算最大损失和期望损失:
$$\begin{split}
&Max(loss)=\omega/2,\\
&E(loss)=\int^b_a x*\frac{1}{b-a}dx=\int^{\omega/2}_0 x*\frac{1}{\omega/2-0}dx=\frac{\omega}{4},
\end{split}\tag{1}
$$
同样,以一度一类的为例$(\omega =1°)$,精度最大和期望的损失分别是0.5和0.25。假如,有两个相同的长宽比1:9的同中心的矩形,角度相差0.5和0.25,则他们之间的IoU只下降了0.05和0.02。这对于最后评测其实影响非常小,毕竟也不是所有目标都有这么大的长宽比(长宽比越大,IoU随角度的变化愈加剧烈)。因此,将角度预测方式转换成分类问题是可行的,但是如果只是以最简单的分类手段(one-hot编码)来处理还是存在几个问题的:
- 边界交换性无法解决
- 预测值和真实值的角度距离不可知,当ground-truth为0°时,预测为-90°和1°的损失值是一样的,但是实际上预测为1°时才是可接受的情况。
作者在论文里论述CSL能规避边界交换性和角度周期性问题,作者的表述不是很准确(角度分类只解决PoA问题,EoE是用180定义法解决的。)CSL的表达式如下:
$$ CSL(x) =
\begin{cases}
g(x),& \text{$\theta-r<x<\theta+r$,} \\
0,& \text{$otherwise$.}
\end{cases} \tag{2} $$
公式中的 $g(x)$是窗口函数,窗口半径由 $r$来控制。窗口函数主要由四点性质:
按作者在论文中以及知乎专栏中的表述可知,窗口函数的设置使得模型可以衡量预测标签和地面真相标签之间的角度距离,即在一定范围内越靠近真实值的预测值的损失值越小。而且通过引入周期性解决了角度周期性的问题,即使得89和-90两个度数变成是近邻的,这也是取名为环形平滑损失的原因。为了更好的理解,引用https://zhuanlan.zhihu.com/p/111493759这篇文章评论中tgis-top的举例:“比如就离散成8类,脉冲函数处理出来的类别真值向量是1 0 0 0 0 0 0 0,高斯函数处理出的可能是 1 0.5 0.1 0 0 0 0.1 0.5,方波处理出来的可能是 1 0 0 0 0 0 0 1,相当于对类别标签进行了平滑。也就说原始真值是1 0 0 0 0 0 0 0,预测成 1 0 0 0 0 0 0 1也是和CSL处理出来的真值相同的,对于最终结果来说也是准确的。确实是从两个角度入手,本质都是通过引入周期函数让“取值虽然相差很大,但是损失可以很小”。需要注意的是,当窗口函数是脉冲函数或者窗口函数的窗口半径很小时,Circular Smooth Label 等价于One-hot label。平滑标签的概念不是作者首创,但是根据具体任务引入了窗口函数,解决了角度周期性的问题,对相邻角度具有一定的容忍性,非常棒的想法。
Loss Function
- 边框回归
$$\begin{split}
&t_x=(x-x_a)/w_a,t_y=(y-y_a)/h_a\\
&t_w=log(w/w_a),t_h=log(h/h_a),\\
&t_{\theta}=(\theta-\theta_a)\cdot\pi/180 (only for regression branch)
\end{split}\tag{3}
$$
$$\begin{split}
&t^{'}_x=(x^{'}-x_a)/w_a,t^{'}_y=(y^{'}-y_a)/h_a\\
&t^{'}_w=log(w^{'}/w_a),t^{'}_h=log(h^{'}/h_a),\\
&t^{'}_{\theta}=(\theta^{'}-\theta_a)\cdot\pi/180 (only for regression branch)
\end{split}\tag{4}
$$
变量$x,x_a,x^{'}$分别表示vground-truth box, anchor box, 和predicted box (y,w,h, θ同理) 。
- 多任务损失
$$\begin{split}
L=&\frac{\lambda_1}{N}\sum_{n=1}^{N}{obj_n}\cdot\sum_{j\in\lbrace x,y,w,h,\theta \rbrace}{}{ L_reg(v^{'}_{nj},v_{nj})}\\
&+\frac{\lambda_2}{N}\sum_{n=1}^{N}{L_{CSL}(\theta^{'}_n,\theta_n})+\frac{\lambda_3}{N}\sum_{n=1}^{N}{L_{cls}(p_n,t_n})
\end{split}\tag{5}
$$
$\lambda_1,\lambda_2,\lambda_3$取值为$[1,0.5,1]$
实验分析
1. 不同窗口函数的对比实验
- 采用90°定义的方法因为边界交换性问题的存在,效果不如180°定义法
- 高斯窗口函数的效果最好,而基于脉冲窗口函数的方法效果最差
下图是在尽可能相同配置条件下CSL-Based和regression-based方法的效果对比,以及不同窗口函数的可视化对比。
2.不同窗口半径的对比
- 窗口半径的大小要适中,过小则会变成One-hot label形式,无法学到角度信息,过大则角度预测偏差会加大;
- 单阶段检测器比双阶段检测器对于窗口半径更加敏感,推测的原因是双阶段方法是基于instance-level的特征提取方法(RoI Pooling或RoI Align),这些方法提取到的特征会明显好于单阶段image-level的提取方式,使得双阶段检测方法可以区分更加小角度差的角度类别。
- 不同窗口下的可视化效果图
3. CSL-Based与regression-based方法的比较
CSL-based方法在角度特征明显的类别上具有较大的优势,但是由于DOTA数据集类别多且边界情况所占整个数据集的比例比较小,因此在整体性能比较上的优势并不是那么大。
其他数据集的效果比较
4. 可视化分析
为了进一步证明CSL-based方法的特性,作者对CSL-FPN-based检测器中的每个RoI的角度特征向量进行了可视化的展示,采用的方法是主成分分析法(PCA),可视化结果如下图所示:
上图中第一行用的是脉冲窗口函数,可以看到每个RoI的角度特征分布是趋于随机的,也就说明它没有学习到角度这一信息。而第二行使用的是高斯窗口函数,可以看到整个可视化分布是呈现环状的,而且相邻度数的特征是挨在一起的,具有一定的耦合。这种现象正是作者设计CSL方法的目的,也很好证明了基于CSL方法的检测器可以很好学习到目标的方向信息。
5. 与其他方法的比较
总结
本文从源头上解决旋转目标检测的角度周期性问题,引入窗口函数的设计很巧妙,将相邻类别之间的角度距离,预测容忍度,以及角度的周期性问题都考虑在内。但是角度类别划分的数量有点多,导致检测器的head过厚。实验中也没有设计CSL单独作用时的实验。