旋转目标检测 | R3Det,基于特征精炼的单阶段检测模型
1. 论文信息
论文标题: 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 | @article{yang2019r3det, |
2. 归纳总结
标签 | 目的 | 方法 | 总结 |
---|---|---|---|
#遥感 #单阶段 #Anchor | 针对单阶段精炼检测器特征未对齐的问题,提出了FRM模块 | RRetinaNet Based,FRM,SkewIou | 精炼 |
3. 问题背景
作者称对于旋转目标检测存在三个挑战:
- 大宽高比
- 密集排列
- 方向任意
4. 主要工作
针对上述问题,作者提出了R3Det,其主要工作如下:
- progressive regression: 作者发现旋转框在密集场景下的能有较好的目标检测精度,而水平框能达到更好的召回率,因此使用了这两种形式的框进行组合,具体做法是第一阶段检测水平框,从而提升检测速度,提高召回率,第二阶段也就是精炼阶段(refinement stage)检测旋转框,以适应密集目标的检测。
- feature refinement module:针对现有的单阶段refined detector,作者发现他们存在特征没对齐的问题,因此设计了一个特征精炼模块,使用特征插值来获取精炼的位置信息并重建特征图实现特征对齐,并且该模块还可以减少精炼边界框的数量,提升检测速度。
- approximate SkewIoU loss:为解决Skew IoU计算不可微的问题,设计了一种近似SkewIoU损失,以获得更精确的旋转估计。
4.1 模型结构
R3Det主要基于 RetinaNet 实现,结构如下:
4.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。
4.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.
4.4 特征精炼模块
许多精炼检测器仍然使用相同的特征图来执行多个分类和回归,而没有考虑边界框位置变化引起的特征未对齐。因此作者提出将当前精炼边界框(橙色矩形)的位置信息重新编码为对应的特征点(红色点),从而以逐像素的方式重构整个特征图,实现特征对齐。整个过程如上图(c)所示。为了准确地获取精炼后的包围框对应的位置特征信息,采用了双线性特征插值方法,如上图(a)所示。特征插值可以表示为:
其中A代表图(a)中的区域,$F\in \mathbb{R}^{C\times 1\times 1}$代表特征图上点的特征向量。
算法流程: