R3det: Refined single-stage detector with feature refinement for rotating object
代码语言:javascript复制论文发表:AAAI 2021 论文链接:https://ojs.aaai.org/index.php/AAAI/article/view/16426/16233 论文代码:https://github.com/Thinklab-SJTU/R3Det_Tensorflow
@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为阈值。总损失:
其中Li为第i个精炼阶段的损失,αi为平衡系数,默认为1.
3.4 特征精炼模块
许多精炼检测器仍然使用相同的特征图来执行多个分类和回归,而没有考虑边界框位置变化引起的特征未对齐。因此作者提出将当前精炼边界框(橙色矩形)的位置信息重新编码为对应的特征点(红色点),从而以逐像素的方式重构整个特征图,实现特征对齐。整个过程如上图(c)所示。为了准确地获取精炼后的包围框对应的位置特征信息,采用了双线性特征插值方法,如上图(a)所示。特征插值可以表示为:
其中A代表图(a)中的区域,Fin mathbb{R}^{Ctimes 1times 1}代表特征图上点的特征向量。
算法流程: