【前言】首先推荐几个相关网址:
- 整理了一系列的倾斜目标检测算法:GitHub - yangxue0827/RotationDetection: This is a tensorflow-based rotation detection benchmark, also called AlphaRotate.
- 遥感目标相关的算法总结:https://github.com/SJTU-Thinklab-Det/DOTA-DOAI
- 本文paper地址:https://arxiv.org/abs/2108.05699
- 本文code地址:GitHub - jbwang1997/OBBDetection: OBBDetection is an oriented object detection library, which is based on MMdetection.
一句话总结: oriented-RPN用于生成高质量的带方向的候选框,头部用于优化oriented RoIs并对其进行识别,实现了SOTA的性能。
1. 基于候选框的倾斜目标检测算法
2. 生成倾斜候选框的方法之一:rotated RPN
3. 生成倾斜候选框的方法之一:RoI Transformer
4. 解决思路
5. 主要方法
1. 基于水平边界框的目标检测
2. 带方向的倾斜目标检测
对于任意尺寸的输入影像,带方向的RPN可以通过轻量全卷积网络输出一系列倾斜的候选框。具体步骤如下:
其中,是预测候选框的中心坐标,和是预测候选框的外接矩形框的宽和高,和分别是相对于外接矩形上边界和右边界中点的偏差值,最终可以根据生成倾斜候选框。
其中,是相对于水平边界框上部中点的偏差值,是相对于水平边界框右边中点的偏差值。根据对称性,和分别是和相对于下边和坐标中点的偏差值。
在训练oriented RPN时,对正负样本进行如下定义:
【注意】上述的地面真实框(gt bboxes)指的都是倾斜目标的外接矩形框
损失函数的定义:
其中,是anchors的序号,(默认)是小批次样本的总数,是第个anchor的地面真实标签,是oriented RPN分类分支输出的前景概率值,是地面真实边框相对于第个anchor的偏移量,采用来自oriented RPN回归分支的参数化六维向量表示。为交叉熵损失, 为损失。
采用仿射变换进行边界框的回归,公式如下:
其中,分别为外接矩形的中心坐标、长和宽,和分别为上顶点和右顶点与对应边的偏移量。
其中,是第c通道的特征图,n是格网内的样本数,是格网内的坐标集合,是与RoI Transformer相同的旋转变换。
(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)DOTA:15个类别
(2)HRSC2016:倾斜的舰船检测
(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
(1)采用ResNet-50-FPN为backbone,在DOTA验证集上进行了测试,分别为每张影像选择前300、前1000、前2000个候选框后计算recall,结果如下:
(2)结论:oriented RPN可以很好地对任意尺寸、长宽比、方向的目标进行定位。
(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。
(1)使用同样的设置对比了不同方法的速度和精度。
(2)与其他算法相比,oriented R-CNN的精度更高,同时检测效率接近单阶段检测器。