旋转目标检测综述(持续更新中)

文章目录

  • 前言(所有检测模型)
  • 四、R^2CNN(17年)
    • 1.表示方法
    • 2.亮点一:增加anchor
    • 3.亮点二:增加多尺度的ROIPooling、斜框FC
    • 4.亮点三:斜NMS
    • 5.损失函数、实验结果
  • 五、RRPN(18年,倾斜文本)
    • 1.概述
    • 2.网络结构
    • 3.旋转边界框的表达(Rotated Bounding Box Representation)
    • 4。旋转的锚点(Rotation Anchors)
    • 5.兴趣区域的学习(Learning of Rotated Proposal)
    • 6.区域提取网络的优化(Accurate Proposal Refinement)
    • 7.RRoI Pooling Layer
  • 六、DRBox(17年Detector using RBox)
    • 1.框架
    • 2 模型训练
    • 3 实现的细节
  • 七、R3det(19单阶)
    • 1.表示方法、框架:
    • 2.Rotation RetinaNet
    • 3.Refined Rotation RetinaNet
    • 4.Feature Refinment Module
    • 5.实验
  • 八、CAD-Net(19,69.9map)
    • 1.整体组成
    • 2.实验结果
  • 九、 ROI-Transformer(CVPR19)
    • 1.旋转anchor缺点
    • 2.STN和可变形卷积
    • 3.RoI transformer
      • 3.1RRoI Learner![在这里插入图片描述](https://img-blog.csdnimg.cn/20201214105359699.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzUyNTQx,size_16,color_FFFFFF,t_70#pic_center)
      • 3.2 Rotated Position Sensitive RoI Align
    • 4.实验结果
  • 十、 RSDet(19.12,DOTA上mAP74.1)
  • 十一、SCRDet(ICCV2019,75.35)
    • 1.前身:R2CNN++
    • 2.SCRDet:
      • 1. SF-Net
      • 2. MAD-Net
      • 3. IoU-Smooth L1 Loss
      • 4. 实验结果
  • 十二.滑动顶点(Gliding vertex,2020CVPR,75.02)
    • 1.网络结构
    • 2.标签的生成
    • 3.损失函数
    • 4.测试与实验
  • 十三.P-RSDet(CVPR2020,DOTA上mAP72.3)
    • 1.framework
    • 2.极值点提取(pole point extraction)
    • 3.损失函数
    • 4.实验结果
    • 2.读入数据
  • 总结


前言(所有检测模型)

首先按时间顺序排序(效果递增)


1.R-DFPN

2.DRBox
3.S2ARN
4.R^2CNN
5.RRPN
6.RetinaNet-H/R
7.ICN
8.FADet
9.R^3Det
10.RSDet(19.12,DOTA上mAP74.1)
11.SCRDet(ICCV2019,DOTA上mAP75.35)
12.P-RSDet(CVPR2020,DOTA上mAP72.3)

四、R^2CNN(17年)

R2CNN: Rotational Region CNN for Orientation Robust Scene Text Detection
以Faser-RCNN为基本框架:
旋转目标检测综述(持续更新中)_第1张图片

1.表示方法

ICDAR 2015数据集是文字检测的数据集,在这个数据集中,文字是被斜框包裹的,这个斜框可以由4个坐标点(x1,y1,x2,y2,x3,y3,x4,y4)表示,4个坐标点以顺时针方向排列,如下图a所示。这篇文章用矩形的两个坐标点和矩形的高(x1,y1,x2,y2,h)来表示。这里的第一个点指的是左上角的点,第二个点是顺时针方向的第二个点,如下图bc所示:旋转目标检测综述(持续更新中)_第2张图片

2.亮点一:增加anchor

第一个阶段:通过RPN网络,得到正框的Proposal。由于很多文字是很小的,因此将Faster RCNN中的anchor scale(8,16,32)改为(4,8,16,32)。实验证明增加了小的尺度后检测效果明显提升。

3.亮点二:增加多尺度的ROIPooling、斜框FC

第二个阶段:对于每个proposal,考虑到某些文字框的宽高差距很大,因此增加了两种pooled size:3x11和11x3,平行地使用了不同pooled size(7 × 7, 11 × 3, 3 × 11) 的ROIPooling,然后将ROIPooling的结果concate在一起,再经过fc6,fc7进行正框预测,斜框预测以及分类预测。之后,再通过斜框的NMS进行后处理,得到最后的结果。
在检测斜框的同时去检测正框可以改善斜框的检测效果,实验也证明了这个。

4.亮点三:斜NMS

5.损失函数、实验结果

第一阶段损失函数的定义和Faster RCNN一样。

第二阶段的损失函数中多了一个斜框回归的损失。斜框中坐标损失(x1,y1,x2,y2)和Faster RCNN中xy损失的定义是一样的,h和Faster RCNN中h的损失定义也是一样的。
旋转目标检测综述(持续更新中)_第3张图片
旋转目标检测综述(持续更新中)_第4张图片

五、RRPN(18年,倾斜文本)

1.概述

文章的算法是源自于Faster R-CNN的,不同的地方是在疑似区域提取与边界框回归上,对于疑似目标的区域使用Rotation Region-of-Interest (RRoI) pooling解决,对于边界框回归是同时回归 ( w , y , h , w , θ ) (w,y,h,w,\theta) (w,y,h,w,θ),这里将旋转因素融入到区域提取网络中,使得其可以抽取任意角度的区域。还将RoI Pooling进行了改进使其变为Rotation RoI Pooling,在后面的优化过程中运用角度回归,因而最后的检测效果也是出类拔萃的。

文章的主要工作内容:

1)提出了一种与基于分割方法不同的文本检测方法,该方法是基于区域提取的方法,同时将RRoI(Rotation Region-of-Interest)和旋转兴趣区域学习相结合。保证了文本检测过程中的效率。
2)提出了一种新的任意旋转文本区域优化的策略,从而优化了旋转文本的检测性能。
3)该方法在MSRA-TD500,ICDAR2013和ICDAR2015中比之前的方法更精准更高效。

2.网络结构

旋转目标检测综述(持续更新中)_第5张图片

3.旋转边界框的表达(Rotated Bounding Box Representation)

文本标注使用 ( x , y , h , w , θ ) (x,y,h,w,\theta) (x,y,h,w,θ)进行表示,坐标 ( x , y ) (x,y) (x,y)代表标注框的几何中心,高度 h h h代表标注框的短边,宽度 w w w代表标注框的长边,角度 θ \theta θ是边界框的长边沿X轴旋转的正向角度,这个角度的范围是 [ − π/ 4 , 3 π /4 )​
)。使用这样的五个变量进行表示具有3个好处:

1)能够比较容易计算出两个旋转的角度差异;
2)相较于传统上对于边界框使用8个点的表达,使用这样的方式更能很好回归带有旋转的目标检测框情形;
3)使用这样的表达能够高效计算经过旋转之后训练图片的ground truth;

4。旋转的锚点(Rotation Anchors)

由于实际检测场景的复杂性,这里使用带有旋转角度的三维度变量anchor而非原有两维度变量anchor。在论文中使用了6个不同的角度来控制目标疑似区域的提取:( − π/ 6 , 0 , π/ 6 , π /3 , π /2 , 2 π/ 3 )
(为什么选用的是这6组角度? 在后面内容会进行说明),长宽比例采用3组: 1 : 2 , 1 : 5 , 1 : 8 1:2,1:5,1:8 1:2,1:5,1:8,尺度上也取3组 8 , 16 , 32 8,16,32 8,16,32,这样就组合生成了54个5维度的anchor( 6 ∗ 3 ∗ 3 ; ( x , y , h , w , θ ) 633; (x,y,h,w,\theta) 6∗3∗3;(x,y,h,w,θ))。对于宽高为 W ∗ H WH W∗H的feature map会产生 H ∗ W ∗ 54 HW*54 H∗W∗54数目的anchor。下图3是本文anchor的策略示意图:
旋转目标检测综述(持续更新中)_第6张图片

5.兴趣区域的学习(Learning of Rotated Proposal)

论文中使用到的RPN网络需要在现有的anchor基础上进行学习,这一点与传统的Faster R-CNN单靠IoU进行判别不同,这里的正负样本区域提取的划定准则为:

正样本的情形: 与GT框的IoU大于0.7,同时与GT框的角度夹角小于 π /12
负样本的情形: 与GT框的IoU小于0.3,或是与GT框的IoU大于0.7但是与GT框的角度夹角大于 π/12
没有被归为上述两种情况的样本在训练过程中是不会被使用的。
这里使用的损失函数定义为如下的形式:L = L(回归)+L(分类) 分别采用smmoth L1和交叉熵

只选用6组anchor角度的原由:
论文中固定了旋转的表达范围是 [ − π/ 4 , 3 π/ 4 】
,然后在正负样本判别的时候给了 π /12 的裕度范围,所以这样划分就形成了这样的6组角度。

为了证明能够从feature map中训练拟合角度,下面图5展示了不同训练轮数的feature map的对比,小的白短线是对anchor有较高响应的部分。旋转目标检测综述(持续更新中)_第7张图片

6.区域提取网络的优化(Accurate Proposal Refinement)

斜交情况下IoU的计算: 传统情况下参与计算IoU的矩形框都是水平的,但是这样的假设在本篇论文场景中是不成立的,因而论文提出了一种计算斜交矩形交叠面积的方法,其方法见算法1,方法的示意图见图6,在图6中将交叠区域
使用绿色的虚线划分为了多个三角形,通过计算这些三角形面积的和,从而得到交叠区域的面积。
旋转目标检测综述(持续更新中)_第8张图片
斜交情况下的检测结果非极大值抑制: 传统的NMS算法只考虑了IoU,同样在本篇文章的场景下不适用的,因而文章给出了考虑IoU与旋转角度,得到的新算法由两步骤组成:1)保留IoU大于0.7的区域提取;2)对于IoU介于0.3~0.7之间区域提取保留与GT夹角最小的(应该小于 π /12 )。

7.RRoI Pooling Layer

这里提出RRoI Pooling是为了避免使用传统的RoI Pooling带来的损失,因为需要检测的目标是带有角度的了,所以需要对应的RRoI Pooling。其原理见图7所示,是将文本区域按照文本的方向划分为等分的格子(a图),在将这些格子中的数据映射到最后的结果中(b图)。

旋转目标检测综述(持续更新中)_第9张图片

六、DRBox(17年Detector using RBox)

论文:Learning a Rotation Invariant Detector with Rotatable Bounding Box
贡献:较早提出了航拍目标的难点:旋转目标检测综述(持续更新中)_第10张图片

1.框架

旋转目标检测综述(持续更新中)_第11张图片
【1】前面的若干个卷积层都是用来提取特征的,最后一层的prediction层输出预测值;

【2】最后一层的prediction层有K个通道,对应每个位置的K个预先定义的RBoxes(就是图中各种固定角度和大小的RBoxes),对每一个RBox,prediction层输出:置信度(前背景概率)和一个5维向量(预测的RBox与预先定义的RBox的偏置值);
3.需要decoding过程:将偏置值转变成精确的预测RBox;

4.非极大值抑制

5.Multi-angle prior RBox:在每个位置上prior RBoxes可以旋转一系列的角度;RBoxes比例根据物体类型取固定的值,这可以减少prior RBoxes的总数。(但是可能无法适应更多种类的物体,不同种类的物体有不同的长宽比)

利用预定义Multi-angle prior RBoxes的策略,网络模型经过训练后将检测任务分成一系列子任务(对应一系列角度):每个子任务集中在一个小的角度范围,这可以减少物体旋转带来的困难。

2 模型训练

旋转目标检测综述(持续更新中)_第12张图片
【1】训练时,每个ground truth RBox会被分配到预定义的RBoxes,由两者之间的ArIoU决定:A r I o U ( P , G ) > 0.5则匹配,定义为正样本,在后续用于计算位置(x,y)和角度损失。
【2】为了平衡正负样本的数量,应用了hard negative mining。

3 实现的细节

【1】PYRAMID INPUT:原图被缩放成不同分辨率的图像,然后裁剪出一系列300×300大小的重叠的子图像,DRBox模型对每个子图像都进行推理,但是只检测出尺寸合适的目标;对全图的检测结果应用了非极大值抑制,这可以抑制子图像的重复检测结果;pyramid input输入策略方便检测网络在大型物体和小型物体之间共享特征(因为它们可能是相同的物体)
【2】CONVOLUTION ARCHITECTURE:DRBox使用阉割版VGG网络作检测,其全连接层、以及conv4_3后的卷积层、池化层被阉割。在阉割版VGG的conv4_3后接一个3 × 3卷积层。DRBox的容纳范围是108×108像素,比108像素大的目标可能无法检测到。
【3】PRIOR RBOX SETTINGS:pyramid input策略确保了预定义的RBoxes可以覆盖绝大部分不同尺寸的目标,从而保证模型能检测出不同大小尺寸的物体。作者对汽车识别、船舶识别、飞机识别分别训练了三个不同的DRBox模型——由于船的头尾方向不容易辨别,其角度是0:30:180。而汽车和飞机的头尾方向容易辨别,所以其角度设置成0:30:330。

七、R3det(19单阶)

R3Det: Refined Single-Stage Detector with Feature Refinement for Rotating Object
基于FPN的one-stage检测器

1.表示方法、框架:

(x , y , w , h , θ[-90,0] )旋转目标检测综述(持续更新中)_第13张图片
1 一阶段:产生水平anchor,以便于为下阶段产生更多proposal
2 二阶段(refinement stage):采用旋转anchor
许多refined 检测器使用相同的特征映射进行多个分类和回归,没有考虑边界框位置变化引起的特征偏移,对长宽比较大或者样本量小的类别不利。本文提出将refined边界框的位置信息重新编码到响应的特征点,从而重建整个特征映射,实现特征对齐。旋转目标检测综述(持续更新中)_第14张图片

2.Rotation RetinaNet

该网络为一个先进的one-stage检测器,包括两个部分:backbone网络和分类回归子网络。FPN的每一层均与一个分类回归子网络相连。RetinaNet设计了focal loss来解决类别不平衡问题。预测子网络中的附加角度偏移:旋转目标检测综述(持续更新中)_第15张图片
上式中,x,y,w,h,theta表示box的重心坐标,宽、高和角度;x、x_a、x’分别为ground-truth,anchor box和预测box。多类别的损失函数定义如下:旋转目标检测综述(持续更新中)_第16张图片
上式中,N表示anchor的个数,t’n取值为0或1(foreground为1,background为0,background无回归);v’*j表示预测的偏移矢量,v_*j表示ground-tryth的目标向量。tn为目标类别,pn为sigmoid计算的各类别概率分布。L_cls为focal loss和L_reg为smooth L1 loss。

3.Refined Rotation RetinaNet

refinement stage可多个叠加,第一个前背景阈值为0.5/0.4,叠加第二个阈值为0.7/0.6在这里插入图片描述
Li为第i个refinement阶段的损失,ai为权衡系数,默认为1.

4.Feature Refinment Module

许多refined 检测器使用相同的特征映射进行多个分类和回归,没有考虑边界框位置变化引起的特征偏移,对长宽比较大或者样本量小的类别不利。本文提出将refined边界框的位置信息重新编码到响应的特征点(双线性插值),从而重建整个特征映射,实现特征对齐。旋转目标检测综述(持续更新中)_第17张图片

特征插值公式为:在这里插入图片描述
旋转目标检测综述(持续更新中)_第18张图片
具体操作为:利用双向卷积将特征映射相加来得到新的特征,细化阶段只保留每个特征点得分最高的bounding box,以提高速度,并同时保证一个特征点只对应一个细化的边界框。对于特征映射的每个特征点,根据refined bbox的五个坐标在特征图上获得对应的特征向量,通过双线性插值得到更精确地特征向量,然后添加五个特征向量并替换当前的特征向量,遍历特征点之后,重建了整个特征地图,最后将重构后的特征图加入原始特征图完成整个过程。

FRM可以保存完整的卷积结构,具有更高的效率和更少的参数。

5.实验

DOTA数据集包含15个类别。本文作者在实验过程中将图像分为600x600的子图并将其缩放至800*800。训练时,backbones选择了Resnet-FPN和MobileNetv2-FPN,所有的backbones在ImageNet上训练,anchor在金字塔P3-P7等级上的面积为32x32-512x512,每个金字塔层次使用了7个纵横比(1,1/2,2,1/3,3,5,1/5)和3个尺度(20,2(1/3),2^(2/3)),对旋转anhor添加了6个角度(-90,-75,-60,-45,-30,-15)

八、CAD-Net(19,69.9map)

论文:CAD-Net: A Context-Aware Detection Network for
Objects in Remote Sensing Imagery
采用五参数回归:在这里插入图片描述

1.整体组成

旋转目标检测综述(持续更新中)_第19张图片
利用特征金字塔网络(米色)、全局上下文网络(GCNet用青色突出显示)和金字塔局部上下文网络(PLCNet用紫色突出显示)分别用来学习场景级的全局上下文和对象级的局部上下文。设计了一个空间和尺度感知的注意模块(浅绿色),用于引导网络以适当的特征尺度聚焦于信息量更大的区域,同时抑制不相关的信息。在标准水平包围盒(HBB)回归的基础上,增加了一个定向包围盒(OBB)回归分支,使OBB结果更符合遥感图像中目标的任意方向属性
【1】全局上下文网络(GCNet):该网络学习感兴趣的对象与其对应的全局场景之间的相关性,即对象的特征与整个图像的特征之间的相关性。GCNet的灵感来源于光学遥感图像通常覆盖大面积区域,场景级语义通常为目标位置和对象类别提供重要线索,例如船舶经常出现在海洋/河流中,直升机很少出现在居住区周围等
【2】金字塔局部上下文网络(PLCNet):该网络学习感兴趣对象周围的多尺度共现特征和/或共现对象。与地面传感器获取的图像相比,俯视遥感图像通常包含更丰富、更易区分的共现特征和/或对物体分类和物体位置推理非常有用的物体,例如,周围出现的车辆、港口中的船只、河流上的桥梁等。
PLCNet能够从每个特征尺度中提取提议区域的特征,并学习它们之间的相关性,作为检测的补充信息。旋转目标检测综述(持续更新中)_第20张图片
【3】 Spatial-and-Scale-Aware Attention Module
空间和尺度感知的注意模块,学习在特征地图的相关尺度(尺度感知)下自适应地聚焦在更显著的区域(空间感知)。空间感知功能有助于网络处理纹理稀疏、与背景对比度低的对象,而比例感知功能有助于处理不同尺度的对象。两者的结合促进了遥感图像目标检测模型的学习。旋转目标检测综述(持续更新中)_第21张图片

在视觉线索少、对比度低的情况下,采用上下文信息为目标提供额外的引导;而空间和尺度感知的注意则设计为对尺度变化和噪声具有更好的鲁棒性。

对于光学遥感图像,由于各种噪声和信息的丢失,图像的边缘和纹理细节等可分辨特征往往会严重退化。在这种情况下,经常与感兴趣对象密切相关的全局和局部上下文变得非常重要,需要将它们结合起来以补偿特征退化和信息丢失。

旋转目标检测综述(持续更新中)_第22张图片

图5。说明我们提出的不同特征尺度下的空间和尺度感知注意反应。较亮的区域表示更高的注意力反应。
提出的空间和尺度感知注意模块能够在适当的特征尺度下聚焦于信息区域,同时抑制无关区域和噪声区域。

2.实验结果

数据预处理:光学遥感图像通常具有巨大的图像尺寸,例如DOTA图像的大小可达6000×6000像素。

为了适应训练阶段的硬件内存,我们将图像裁剪成1600×1600像素大小的块,相邻块之间重叠800像素

在推理阶段,从测试图像中裁剪出4096×4096像素的图像块,相邻块之间重叠1024个像素。如果图像小于裁剪的图像面片,则应用零填充
旋转目标检测综述(持续更新中)_第23张图片
旋转目标检测综述(持续更新中)_第24张图片

九、 ROI-Transformer(CVPR19)

1.旋转anchor缺点

大量的 anchor 增加了网络中参数的计算,同时也降低了候选区域与 ground truth 之间匹配的效率。此外,由于存在大量冗余的旋转 anchor,因此有向边界框 (OBB) 之间的直接匹配比水平边界框 (HBB) 之间的直接匹配更难。因此,在旋转 anchor 的设计中,[RRPN, DRBox] 都使用了松弛的匹配策略。有些 anchor 在任何 ground truth 上都没有达到 0.5 以上的 IoU,但它们仍被指定为真正的正样本,这仍然可能导致错位问题

2.STN和可变形卷积

Spatial Transformer Networks与Deformable Convelution

由于传统的物体检测网络中的常规操作CNN对旋转和尺度变化的泛化能力有限,因此在 RoI 和相应的提取特征的设计中需要一些方向和尺度不变。为此,已经提出 Spatial Transformer 和可变形卷积和 RoI pooling层来模拟几何变化。但是,它们主要是针对一般几何变形而不使用有向的边界框标注而设计的。其中,STN主要由三部分组成,用来映射从U矩阵(原图或者某层特征图)到V矩阵(自定义大小的感兴趣区域)的变化过程:旋转目标检测综述(持续更新中)_第25张图片
[1]localization net :产生变换系数θ
[2]Grid generator:找V的坐标点对应的U矩阵的坐标
[3]Sampler:通过映射关系赋值

3.RoI transformer

本文提出了一个名为 RoI Transformer 的模块(仅模拟刚性变换,以格式(dx ,dy ,dw ,dh ,dθ )学习),旨在通过监督的 RRoI 学习和基于位置敏感对齐的特征提取,通过两阶段框架实现对有向且密集物体的检测。
它由两部分组成:【1】是 RRoI 学习器,它学习从 HRoI 到 RRoI 的转变。【2】是 Rotated Position Sensitive RoI Align(采用 light head 结构进行所有 RoI-wise 操作),它从 RRoI 中提取旋转不变特征提取,用于后续物体分类和位置回归。旋转目标检测综述(持续更新中)_第26张图片
图 2:RoI Transformer 的架构。对于每个 HRoI,它将传递给 RRoI 学习器。我们网络中的 RRoI 学习器是 PS RoI Align,后面跟一个维度为 5 的全连接层,它回归相对于 HRoI 的 RGT 的偏移量。Box 解码器位于 RRoI Learner 的末尾,它将 HRoI 和偏移量作为输入并输出解码的 RRoI。然后将特征图和 RRoI 传递给 RRoI 变形以进行几何鲁棒特征提取。RRoI Learner 和 RRoI 变形的组合构成了 RoI Transformer (RT)。然后使用来自 RoI Transformer 的几何鲁棒合并的特征进行分类和 RRoI 回归.

3.1RRoI Learner旋转目标检测综述(持续更新中)_第27张图片

在这里插入图片描述
在训练 全连接 层时,我们即将匹配输入 HRoI 和有向边界框 (OBB) 的 ground truth。为了考虑计算效率,匹配是在 HRoI 和轴对齐的边界框之间而不是原始的 ground truth。一旦 HRoI 匹配,我们直接通过方程式 (1) 中的定义设置 t∗ θ 。优化的损失函数用作平滑 L1 损失 。对于每个前向传递中的预测 t ,我们将其从偏移量解码为 RRoI 的参数。也就是说,我们提出的 RRoI 学习器可以从 HRoI 特征图 F 中学习 RRoI 的参数。

3.2 Rotated Position Sensitive RoI Align

获得了 RRoI 的参数后,用旋转位置敏感 (RPS) RoI Align 模块,以提取网络中的旋转不变特征。旋转目标检测综述(持续更新中)_第28张图片
在这里插入图片描述
RRoI Learner 和 RPS RoI Align 的组合形成了 RoI Transformer (RT) 模块。它可以用来代替正常的 RoI 变形操作。 RT 的池化的特征是旋转不变的。并且 RRoI 为后来的回归提供了更好的初始化,因为匹配的 RRoI 与匹配的 HRoI 相比更接近 RGT。如前所述,RRoI 是一个包含 5 个元素的元组 在这里插入图片描述
为了消除歧义,我们使用 h来表示 RRoI 的短边和 w 来表示 RRoI 的长边。

4.实验结果

消融研究的结果。我们使用 Light-Head R-CNN OBB 检测器作为基线。最左边的列表示 RoI Transformer 的可选设置。在右边的四个实验中,我们探索了 RoI Transformer 的适当设置。旋转目标检测综述(持续更新中)_第29张图片

十、 RSDet(19.12,DOTA上mAP74.1)

亮点:使用八参数回归
详细解读.

参数单位不同影响网络性能 在五参数系统中,角度,宽度,高度和中心点坐标具有不同的测量单位,并且它们与IoU显示出相当不同的关系,如下图所示。简单地将它们加起来会导致不一致的回归性能。八参数可以使用相同单位的角点坐标来缓解此问题。

本文中,作者设计了以下边界约束损失,以旋转损失L(mr) 表示
旋转目标检测综述(持续更新中)_第30张图片

十一、SCRDet(ICCV2019,75.35)

1.前身:R2CNN++

R2CNN++: Multi-Dimensional Attention Based Rotation Invariant Detector with Robust Anchor Strategy

这是进行任意角度目标检测论文,把物体的坐标处理为(x,y,w,h,θ),作者通过在文中添加两种注意力机制通道注意力和像素级别的注意力机制进行特征的过滤。

%% 算法概览
文把创新部分分为三个部分:

  1. IF-Net:把两个不同层的feature map进行融合
  2. MDA-Net: 使用通道注意力和像素级别的注意力机制
  3. Rotaion Branch: 在roi之后进行任意角的坐标预测(x,y,w,h,θ).

旋转目标检测综述(持续更新中)_第31张图片

%% MDA-Net讨论
文中的通道注意力机制就是SEnet的结构,但是这里的像素级别的注意力机制是通过训练一条像素二值图支路。过对目标区域进行二值化,得到含有目标区域的二值化图,通过构建二分类损失,使模型学到像素级别的注意力机制。

旋转目标检测综述(持续更新中)_第32张图片

%% loss
构建多任务,三个任务:分类,坐标回归,注意力训练

旋转目标检测综述(持续更新中)_第33张图片

2.SCRDet:

SCRDet: Towards More Robust Detection for Small, Cluttered
and Rotated Objects

首先,文章认识到了遥感目标检测所面临的以上三个问题,针对这些问题进行改进:

  1. 对于小目标:通过特征融合和anchor采样角度出发设计了一个特征融合结构。
  2. 对于密集排列问题:设计了一个有监督的多维注意力网络以减少背景噪声的不利影响。
  3. 对于任意方向问题:通过添加IoU常数因子设计了一种改进的平滑L1损失,该因子专门用于解决旋转边界框回归的边界问题。
    整个框架是基于Faster RCNN的,主要包含SF-Net、MDA-Net和IoU-Smooth L1 Loss,结构图如下:

旋转目标检测综述(持续更新中)_第34张图片

1. SF-Net

小目标检测一直是较难克服的一个问题,这在遥感图像中尤其突出。文章认为特征融合和有效的采样是较好检测小目标的关键。对于anchor-based来说,anchor的铺设方式直接影响正样本采样率。经典的anchor铺设方式和特征图的分别率有关,也就是anchor铺设的步长(C2-C5上的anchor步长分别是4,8,16,32)。随着网络加加深,特征图分辨率下降,anchor的步长扩大,常常会导致小目标的采样丢失,如下图所示:旋转目标检测综述(持续更新中)_第35张图片

通过这样的发现,文章通过resize的方式选取了一个合适的特征图分别率,尽可能保证小目标都被采样到,再加上简单的特征融合保证丰富的语义信息和位置信息。在这里之所以不使用C2,是因为遥感目标检测会设置较多的尺度和比例,那么在C2这个特征图上面的anchor就变得太多了,而且在遥感数据集中最小的目标一般也都在10像素以上(特指DOTA1.0,DOTA1.5则给出了像素10以下的标注)。

SF-Net的结构图如下:
#旋转目标检测综述(持续更新中)_第36张图片

由于论文是基于Faster RCNN出发的,因此没有考虑FPN这种做法。但是在实际的应用过程中,用了这么多检测方法我还是觉得FPN真香,
虽然SF-Net这个结构真的挺土的,但是对于我来说在遥感检测尤其是小目标检测还是有一些启发的,就是anchor-based方法要充分保证RPN的召回。增加anchor这种做法是暴力的,一个较大的副作用就是检测器变得非常慢,因此我对anchor-free方法在遥感上的应用还是很期待的,目前我的师弟在这方法已经有了初步的进展:,请看12、13.

2. MAD-Net

由于遥感图像背景的复杂性,RPN产生的建议区域可能引入大量噪声信息,如下图所示。

旋转目标检测综述(持续更新中)_第37张图片

过多的噪音可能会混淆物体信息,物体之间的界限将变得模糊,导致漏检并增加虚警。因此,有必要增强物体特征并削弱非物体特征。为了更有效地捕捉复杂背景下小物体的特征,文章设计了一种有监督的多维注意力网络(MDA-Net),如下图所示。具体来说,在基于像素的注意网络中,特征图F3通过具有不同大小卷积核进行卷积运算,学习得到双通道的显著图(参见上图d)。这个显著图显示了前景和背景的分数。选择显著图中的一个通道与F3相乘,得到新的信息特征图A3(参见上图c)。需要注意的是,Softmax函数之后的显着图的值在[0,1]之间。换句话说,它可以降低噪声并相对的增强对象信息。由于显著图是连续的,因此不会完全消除背景信息,这有利于保留某些上下文信息并提高鲁棒性。
旋转目标检测综述(持续更新中)_第38张图片
其实这个模块现在也是被用的比较烂了,就是空间注意力加通道注意力的组合。但在实际的应用过程中,空间注意力在遥感检测真的是非常有用的,我在打比赛的时候基本会加上。讲到这里其实就是我投CVPR2019的文章(R2CNN++: Multi-Dimensional Attention Based Rotation Invariant Detector with Robust Anchor Strategy),结果当然是被惨拒,在ICCV2019也是被说是增量性的贡献。我当然是比较同意的,这本就是我早期刷DOTA榜单的一个总结,ICCV2019之所以会中主要是因为第三个部分。

3. IoU-Smooth L1 Loss

首先我们要先了解一下两种旋转边界框的两种常见的方式。旋转目标检测综述(持续更新中)_第39张图片

旋转目标检测综述(持续更新中)_第40张图片
SCRDet是采用的opencv 表示法。在当前常用的旋转检测框的角度定义下,由于存在旋转角度的边界问题,会产生不必要的损失,如下图所示:旋转目标检测综述(持续更新中)_第41张图片

最理想的角度回归路线是由蓝色框逆时针旋转到红色框,但由于角度的周期性,导致按照这个回归方式的损失非常大(参见上图右边的Example)。此时模型必须以更复杂的形式回归(例如蓝色框顺时针旋转,同时缩放w和h),增加了回归的难度。为了更好地解决这个问题,我们在传统的smooth L1 损失函数中引入了IoU常数因子。在边界情况下,新的损失函数近似等于0,消除了损失的突增。新的回归损失可分为两部分,smooth L1回归损失函数取单位向量确定梯度传播的方向,而IoU表示梯度的大小,这样loss函数就变得连续。此外,使用IoU优化回归任务与评估方法的度量标准保持一致,这比坐标回归更直接和有效。IoU-Smooth L1 loss公式如下:
旋转目标检测综述(持续更新中)_第42张图片
可以看一下两种loss在边界情况下的效果对比:
旋转目标检测综述(持续更新中)_第43张图片

导致这种原因的根本原因我觉得是角度的预测超出了所定义范围。其实解决这种问题的方法并不唯一,RRPN和R-DFPN在论文的loss公式中就判断了是不是在定义范围内,通过加减 [公式] 来缓解这个问题,但这种做法明显不优美而且仍然存在问题,主要是较难判断超出预测范围几个角度周期。当然可以通过对角度部分的loss加一个周期性函数,比如tan、cos等三角函数来做,但是我在实际使用过程中常常出现不收敛的情况。对于边界问题,我其实还做了其他方法的研究,会在以后的文章中详细讨论。

关于IoU-Smooth L1 Loss,是在转投ICCV2019的ddl之前临时加的,没想到成为中稿的关键.。

IoU-Smooth L1 Loss是在RetinaNet旋转检测代码上进行检验的,发现效果出奇的好,从62.25涨到68.65,但也发现稍微改动配置文件就NAN,难搞。

4. 实验结果

最终实验主要是在DOTA数据集上进行的,在当时也算是SOTA的论文。

消融实验:

旋转目标检测综述(持续更新中)_第44张图片
对比实验:
旋转目标检测综述(持续更新中)_第45张图片

十二.滑动顶点(Gliding vertex,2020CVPR,75.02)

文章题目:Gliding vertex on the horizontal bounding box for multi-oriented object detection.
是华中科大白翔老师的新作,发表于2019年11月21号。该文章是用来做物体检测的,有意思的是发挥了白翔老师在OCR方面的特长。一般的物体检测都是使用一个非旋转矩形来表示一个物体,文章认为对于长条形的物体(例如斜着的中文句子,航拍的船舶等),如果物体是斜着的,那这种表示方式不能很精确的定位出物体。如果使用旋转矩形来表示物体,旋转矩形的旋转角比较难学。这篇文章是通过学习四个点在非旋转矩形上的偏移来定位出一个四边形来表示一个物体。大致的过程如下图所示:

1.网络结构

文章采用的就是Fasterrcnn的结构,只是预测的结果稍微不太一样,多了几个。如下图所示。
旋转目标检测综述(持续更新中)_第46张图片
在这里插入图片描述

2.标签的生成

在这里插入图片描述
旋转目标检测综述(持续更新中)_第47张图片
旋转目标检测综述(持续更新中)_第48张图片

3.损失函数

旋转目标检测综述(持续更新中)_第49张图片

4.测试与实验

在这里插入图片描述
旋转目标检测综述(持续更新中)_第50张图片

十三.P-RSDet(CVPR2020,DOTA上mAP72.3)

文章题目:Object Detection for Remote Sensing
Images Based on Polar Coordinates
创新点
1.使用极坐标,更简单参数更少。参考CornorNet回归极点(x,y)和两个角点( ρ, θ1, θ2)
2.增加新的损失函数Polar Ring Area Loss 旋转目标检测综述(持续更新中)_第51张图片
在这里插入图片描述

1.framework

旋转目标检测综述(持续更新中)_第52张图片

输入图像为WxH,输出C ×W/d ×H/d,其中C代表类别。 笛卡尔坐标系中的(x1, y1), (x2, y2), (x3, y3), (x4,y4) 可转换为极坐标中s(ρ1, θ1), (ρ2, θ2), (ρ3, θ3), (ρ4,θ4).并且:
ρ1 = ρ2 = ρ3 = ρ4
θ3 = θ1 + π, θ4 = θ2 + π
两种坐标系转换:(i为1-4,n为类别)
x(in) = x(ip) + ρ(i)· cos(θin)
y(in) = y(ip) + ρ(i)· sin(θin)

2.极值点提取(pole point extraction)

极值点提取采用高斯热图的方式,损失采用Focal Loss旋转目标检测综述(持续更新中)_第53张图片
N为图片数量,α与β分别取2和4。具体过程如下图:
旋转目标检测综述(持续更新中)_第54张图片

3.损失函数

总体损失函数如下:
在这里插入图片描述
第一项为前面的focal loss,第二项α取0.1,具体为:在这里插入图片描述

第一项为作者加的POLAR RING AREA LOSS,平衡因子λ取0.01。具体展开为:在这里插入图片描述
第二项为普通的L1损失,可见:
旋转目标检测综述(持续更新中)_第55张图片
另:可见当ρ(预测)与ρ(标签)相等时,或者θ(预测)与θ(标签)相等时,极环损失不发生作用

4.实验结果

旋转目标检测综述(持续更新中)_第56张图片

旋转目标检测综述(持续更新中)_第57张图片

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

你可能感兴趣的:(旋转目标检测综述(持续更新中))