R3det: Refined single-stage detector with feature refinement for rotating object

论文发表:AAAI 2021
论文链接:https://ojs.aaai.org/index.php/AAAI/article/view/16426/16233
论文代码:https://github.com/Thinklab-SJTU/R3Det_Tensorflow

1
2
3
4
5
6
7
8
9
10
@article{yang2019r3det,
title={R3det: Refined single-stage detector with feature refinement for rotating object},
author={Yang, Xue and Liu, Qingqing and Yan, Junchi and Li, Ang and Zhang, Zhiqiang and Yu, Gang},
journal={arXiv preprint arXiv:1908.05612},
volume={2},
number={4},
pages={2},
year={2019},
publisher={Aug}
}

1. 归纳总结

标签 目的 方法 总结
#遥感 #单阶段 #Anchor 针对单阶段精炼检测器特征未对齐的问题,提出了FRM模块 RRetinaNet Based,FRM,SkewIou 精炼

2. 问题背景

作者称对于旋转目标检测存在三个挑战:

  • 大宽高比
  • 密集排列
  • 方向任意

3. 主要工作

针对上述问题,作者提出了R3Det,其主要工作如下:

  • progressive regression: 作者发现旋转框在密集场景下的能有较好的目标检测精度,而水平框能达到更好的召回率,因此使用了这两种形式的框进行组合,具体做法是第一阶段检测水平框,从而提升检测速度,提高召回率,第二阶段也就是精炼阶段(refinement stage)检测旋转框,以适应密集目标的检测。
  • feature refinement module:针对现有的单阶段refined detector,作者发现他们存在特征没对齐的问题,因此设计了一个特征精炼模块,使用特征插值来获取精炼的位置信息并重建特征图实现特征对齐,并且该模块还可以减少精炼边界框的数量,提升检测速度。
  • approximate SkewIoU loss:为解决Skew IoU计算不可微的问题,设计了一种近似SkewIoU损失,以获得更精确的旋转估计。

3.1 模型结构

R3Det主要基于 RetinaNet 实现,结构如下:

3.2 边界框定义

对于边界框$(x,y,w,h,\theta)$,其中x,y代表中心点坐标,w,h代表宽和高,$\theta \in [-\frac{\pi}{2},0)$代表角度,边界框回归的值为:

其中$x,x_a,x’$分别代表gt,anchor以及预测值,其余同上。

损失函数为:

其中$v’$为预测的偏移量向量,v代表gt的偏移量向量。其中N表示Anchor的数目,超参数 $\lambda_1$, $\lambda_2$ 控制着这两个损失的平衡,并且默认值为1。$L_{cls}$ 和 $L_{reg}$ 分别是Focal Loss和smooth L1 Loss。

3.3 精炼检测

Skew IoU对于角度十分敏感,因此作者在第一阶段使用0.5为前景阈值,0.4为背景阈值,在精炼的第一阶段使用0.6为前景阈值,0.5为背景阈值,如果有多段精炼阶段,使用0.7以及0.6为阈值。总损失:
$$L_{total}=\sum_{i=1}^N\alpha_iL_i$$
其中$L_i$为第i个精炼阶段的损失,$\alpha_i$为平衡系数,默认为1.

3.4 特征精炼模块

许多精炼检测器仍然使用相同的特征图来执行多个分类和回归,而没有考虑边界框位置变化引起的特征未对齐。因此作者提出将当前精炼边界框(橙色矩形)的位置信息重新编码为对应的特征点(红色点),从而以逐像素的方式重构整个特征图,实现特征对齐。整个过程如上图(c)所示。为了准确地获取精炼后的包围框对应的位置特征信息,采用了双线性特征插值方法,如上图(a)所示。特征插值可以表示为:

其中A代表图(a)中的区域,$F\in \mathbb{R}^{C\times 1\times 1}$代表特征图上点的特征向量。

算法流程:

4. 实验结果