【前言】首先推荐几个相关网址:
- 整理了一系列的倾斜目标检测算法:GitHub - yangxue0827/RotationDetection: This is a tensorflow-based rotation detection benchmark, also called AlphaRotate.
- 遥感目标相关的算法总结:https://github.com/SJTU-Thinklab-Det/DOTA-DOAI
- 论文地址:https://arxiv.org/abs/2108.05699
- 代码地址:GitHub - jbwang1997/OBBDetection: OBBDetection is an oriented object detection library, which is based on MMdetection.
一句话总结: oriented-RPN用于生成高质量的带方向的候选框,头部用于优化oriented RoIs并对其进行识别,实现了SOTA的性能。
一、引言
1. 基于候选框的倾斜目标检测算法
- 主要步骤:①生成倾斜候选框;②对候选框进行精确定位和分类。
- 缺点:生成倾斜候选框过程的计算代价很大。
2. 生成倾斜候选框的方法之一:rotated RPN
- 策略:在每个位置生成不同尺度、长宽比、方向的54个anchors。
- 缺点:anchors过于冗余,造成了计算和存储资源的浪费。
3. 生成倾斜候选框的方法之一:RoI Transformer
- 策略:通过RPN、RoI Alignment和回归等操作,将水平的RoIs转化为倾斜候选框。
- 缺点:仍然存在计算代价大,效率低的问题。
4. 解决思路
- 限制该类算法效率的因素主要在候选框的生成阶段,那么是否可以设计一个简单的普通的oriented RPN用于生成高质量的倾斜候选框呢?
- 本研究提出了oriented R-CNN的网络结构,用于高性能的倾斜目标检测。
5. 主要方法
- Oriented R-CNN的第一阶段采用了简单的oriented RPN结构。该结构是一个轻量级的全卷积网络,参数量很少,可以通过将RPN回归分支的输出参数由四个改为6个来实现,其设计得益于本研究提出的对倾斜目标的表示法,即中点偏移表示法。
- Oriented R-CNN的第二阶段是一个检测头,用于提取来自rotated RoI alignment的倾斜候选框的特征,并进行分类和回归。
二、相关研究
1. 基于水平边界框的目标检测
- 由于水平边界框通常包含多余的区域或目标,容易导致分类和定位结果的不一致,因此该类算法往往难以对目标进行精确检测。
2. 带方向的倾斜目标检测
- 旋转的anchors,例如rotated RPN,缺点是计算量大。
- RoI Transformer从水平的RoIs学习旋转的RoIs表示,缺点是网络庞大且复杂。
- 基于Faster R-CNN的倾斜目标检测和gliding vertexes都采用水平RoIs进行分类和回归,仍然存在目标和特征的不一致问题。
- 单阶段和anchor free的算法。
三、算法讲解
1. Oriented RPN
对于任意尺寸的输入影像,带方向的RPN可以通过轻量全卷积网络输出一系列倾斜的候选框。具体步骤如下:
- 将FPN输出的五层特征图
作为输入,并在每层添加一个相同的头部设计(3×3的卷积层和两个1×1的并联卷积层)。
- 在特征图的所有层的每个空间位置(像元)上,分配三个不同长宽比({1:2, 1:1, 2:1}) 的水平锚框(anchors)。这些anchors在
特征层上对应的像元面积分别为
。每个anchor由4维向量表示
,其中
为anchor的中心坐标,
和
分别表示anchor的宽和高。
- 两个1×1并联卷积层的其中一个为回归分支,输出候选框proposals相对于anchors的偏移量
。我们在特征图的每个位置上都生成A个候选框(本研究中A=3),因此回归分支有6A个输出值。通过回归输出的解码,可以得到倾斜候选框,解码步骤如下:
其中,是预测候选框的中心坐标,
和
是预测候选框的外接矩形框的宽和高,
和
分别是相对于外接矩形上边界和右边界中点的偏差值,最终可以根据
生成倾斜候选框。
- 另一个1×1的并联卷积层用于对预测每个倾斜候选框的目标得分。
- 本文对倾斜目标采用的是一种全新的简单的表示方法,即中点偏差表示法。
(1)中点偏差表示法
- 采用六参数表示倾斜边界框
。通过六参数,可以获得每个候选框的四顶点坐标集
。
其中,是
相对于水平边界框上部中点
的偏差值,
是
相对于水平边界框右边中点
的偏差值。根据对称性,
和
分别是
和
相对于下边和坐标中点的偏差值。
- 倾斜边界框的四顶点坐标可以表示为:
- 之后,就可以通过预测外接矩形的参数值
,实现对每个倾斜候选框的回归及中点偏差参数的
的推断。
(2)损失函数
在训练oriented RPN时,对正负样本进行如下定义:
- 首先,需要对每个anchor分配一个二值标签
,其中0为正1为负。
- 正样本的判定:anchor满足以下任意一种情况时,i) anchor与任意一个地面真实边界框的IoU大于0.7;ii) anchor与某一个地面真实边界框有最大IoU,并且此IoU值大于0.3。
- 负样本的判定:anchor与任意真实边界框的IoU都小于0.3。
- 既不是正样本也不是负样本的anchors,被判定为无效样本。
【注意】上述的地面真实框(gt bboxes)指的都是倾斜目标的外接矩形框
损失函数的定义:
其中,是anchors的序号,
(默认
)是小批次样本的总数,
是第
个anchor的地面真实标签,
是oriented RPN分类分支输出的前景概率值,
是地面真实边框相对于第
个anchor的偏移量,采用来自oriented RPN回归分支的参数化六维向量表示
。
为交叉熵损失,
为
损失。
采用仿射变换进行边界框的回归,公式如下:
其中,分别为外接矩形的中心坐标、长和宽,
和
分别为上顶点和右顶点与对应边的偏移量。
2. Oriented R-CNN Head
- Oriented R-CNN head的输入为特征图
和一系列倾斜候选框。
- 对于每个候选框,采用rotated RoIAlign从对应的特征图中提取一个固定尺寸的特征向量。
- 每个特征向量被输入两个全连接层,之后再通过两个并联的全连接层:一个用于分类,输出K+1个类别概率,另一个对K个目标类别的候选框进行回归,输出偏移量。
(1)Rotated RoIAlign
- 用于从每个倾斜候选框中提取旋转不变的特征
- 由oriented RPN生成的倾斜候选框通常是平行四边形的,由四个顶点
表示。为了计算的方便,需要将平行四边形调整为矩形,采用的方式就是将短对角线延长至与长对角线的长度一致。
- 之后,就可以获得倾斜矩形的
,如图5中的红框,其中
,为水平轴与矩形长边的夹角。
- 使用步长
将倾斜矩形
映射到特征图
上,获得
表示的旋转RoI,操作如下:
- 随后,每个旋转RoI被分为了
个格网(此处m默认为7),从而得到了维度为
的固定尺寸的特征图
。
- 在第c个通道,第
个格网值的计算公式如下:
其中,是第c通道的特征图,n是格网内的样本数,
是格网
内的坐标集合,
是与RoI Transformer相同的旋转变换。
3. 实现细节
(1)端对端的方式进行训练,同时对oriented RPN和oriented R-CNN head进行优化。
(2)推理阶段,在特征金字塔的每一层保留2000个候选框,并IoU阈值为0.8的水平NMS操作。
(3)对每个特征层进行NMS后,合并所有的候选框,并基于分类置信度选取前1000个作为第二阶段的输入。
(4)在第二个阶段,对分类置信度高于0.05的预测的倾斜边界框进行poly NMS操作,其IoU阈值为0.1。
四、实验部分
1. 数据集
(1)DOTA:15个类别
(2)HRSC2016:倾斜的舰船检测
2. 参数设置
(1)硬件:单卡2080Ti, batch size为2
(2)框架:mmdetection
(3)backbone:ResNet50和ResNet101
(4)数据增广:水平和垂直翻转
(5)优化器:SGD,momentum 为0.9 ,weight decay 为 0.0001
(6)输入数据尺寸:DOTA1024×1024,并采取了多尺寸训练,HRSC2016的短边重采样设置为800,长边小于1333
(7)迭代次数:DOTA训练了12epoches,HRSC2016训练了36epoches
(8)初始学习率:0.005,在[2/3, 11/12]的迭代次数后除以10
3. Oriented RPN的评价
(1)采用ResNet-50-FPN为backbone,在DOTA验证集上进行了测试,分别为每张影像选择前300、前1000、前2000个候选框后计算recall,结果如下:
(2)结论:oriented RPN可以很好地对任意尺寸、长宽比、方向的目标进行定位。
4. 与SOTA的比较
(1)基于DOTA数据集,与19种倾斜目标检测算法进行了比较;基于HRSC2016数据集,与10种方法进行了比较。
(2)在DOTA数据集上,oriented R-CNN超过了所有其他的算法,利用R-50-FPN 和 R-101-FPN作为backbone分别获得了75.87% 和 76.28% 的mAP,采用多尺度训练和测试后,结合R-50-FPN可以获得80.87%的mAP。
(3)在HRSC2016数据集上,利用R-50-FPN 和 R-101-FPN作为backbone都获得了最优的mAP。
5. 精度和效率
(1)使用同样的设置对比了不同方法的速度和精度。
(2)与其他算法相比,oriented R-CNN的精度更高,同时检测效率接近单阶段检测器。