旋转目标检测 | SCRDet,适用于旋转、密集、小目标的检测器
1. 论文信息
论文标题:《SCRDet: Towards More Robust Detection for Small, Cluttered and Rotated Objects》
论文发表:ICCV2019
论文链接:https://openaccess.thecvf.com
论文代码:https://github.com/DetectionTeamUCAS
1 | @inproceedings{yang2019scrdet, |
2. 归纳总结
标签 | 目的 | 方法 | 总结 |
---|---|---|---|
#遥感 #注意力机制 #旋转目标检测 | 解决了遥感目标角度边界问题 | IoU SmoothL1 Loss,多维注意力 | 从遥感目标的难点出发 |
3. 问题背景
遥感目标检测的难点:
- 小目标(small size)
- 密集(dense distribution)
- 方向任意(arbitrary direction)
4. 主要工作
针对上述问题进行改进:
- 对于小目标:通过特征融合和anchor采样角度出发设计了一个特征融合结构。
- 对于密集排列问题:设计了一个有监督的多维注意力网络(supervised pixel attention network and the channel attention network)以减少背景噪声的不利影响。
- 对于任意方向问题:通过添加IoU常数因子设计了一种改进的平滑L1损失,该因子专门用于解决旋转边界框回归的边界问题。
5. 相关工作
目标检测经典模型:
- 两阶段:Fast R-CNN,Faster R-CNN,R-FCN
- 单阶段:YOLO,SSD
针对小目标:RP-Faster R-CNN
6. 模型方法
整个框架基于Faster R-CNN based R2CNN实现,模型结构如下图:
主要包含三个部分:
- SF-Net
- MDA-Net
- Rotation-Branch
6.1 SF-Net
针对小目标检测,作者认为特征融合和有效采样是关键。对于anchor-based来说,anchor的铺设方式直接影响正样本采样率。经典的anchor铺设方式和特征图的分辩率有关,也就是anchor铺设的步长(C2-C5上的anchor步长分别是4,8,16,32)。随着网络加加深,特征图分辨率下降,anchor的步长扩大,常常会导致小目标的采样丢失,如下图所示:
文章通过resize的方式选取了一个合适的特征图分别率,尽可能保证小目标都被采样到,再加上简单的特征融合保证丰富的语义信息和位置信息。在这里之所以不使用C2,是因为遥感目标检测会设置较多的尺度和比例,那么在C2这个特征图上面的anchor就变得太多了,而且在遥感数据集中最小的目标一般也都在10像素以上(特指DOTA1.0,DOTA1.5则给出了像素10以下的标注)。
6.2 MAD-Net
由于遥感图像背景的复杂性,RPN产生的建议区域可能引入大量噪声信息,如下图所示:
过多的噪音可能会混淆物体信息,物体之间的界限将变得模糊,导致漏检并增加虚警。因此,有必要增强物体特征并削弱非物体特征。为了更有效地捕捉复杂背景下小物体的特征,文章设计了一种有监督的多维注意力网络(MDA-Net),如下图所示。具体来说,在基于像素的注意网络中,特征图F3通过具有不同大小卷积核进行卷积运算,学习得到双通道的显著图(参见上图d)。这个显著图显示了前景和背景的分数。选择显著图中的一个通道与F3相乘,得到新的信息特征图A3(参见上图c)。需要注意的是,Softmax函数之后的显着图的值在[0,1]之间。换句话说,它可以降低噪声并相对的增强对象信息。由于显著图是连续的,因此不会完全消除背景信息,这有利于保留某些上下文信息并提高鲁棒性。
其实这个模块现在也是被用的比较烂了,就是空间注意力加通道注意力的组合。但在实际的应用过程中,空间注意力在遥感检测真的是非常有用的;
6.3 IoU-Smooth L1 Loss
首先我们要先了解一下两种旋转边界框的两种常见的方式,下图来自这篇文章的作者yangxue:
SCRDet是采用的opencv 表示法。在当前常用的旋转检测框的角度定义下,由于存在旋转角度的边界问题,会产生不必要的损失,如下图所示:
最理想的角度回归路线是由蓝色框逆时针旋转到红色框,但由于角度的周期性,导致按照这个回归方式的损失非常大(参见上图右边的Example)。此时模型必须以更复杂的形式回归(例如蓝色框顺时针旋转,同时缩放w和h),增加了回归的难度。为了更好地解决这个问题,我们在传统的smooth L1 损失函数中引入了IoU常数因子。在边界情况下,新的损失函数近似等于0,消除了损失的突增。新的回归损失可分为两部分,smooth L1回归损失函数取单位向量确定梯度传播的方向,而IoU表示梯度的大小,这样loss函数就变得连续。此外,使用IoU优化回归任务与评估方法的度量标准保持一致,这比坐标回归更直接和有效。IoU-Smooth L1 loss公式如下:
可以看一下两种loss在边界情况下的效果对比:
导致这种原因的根本原因是角度的预测超出了所定义范围。其实解决这种问题的方法并不唯一,RRPN和R-DFPN在论文的loss公式中就判断了是不是在定义范围内,通过加减$k\pi$来缓解这个问题,但这种做法明显不优美而且仍然存在问题,主要是较难判断超出预测范围几个角度周期。当然可以通过对角度部分的loss加一个周期性函数,比如tan、cos等三角函数来做,但是我在实际使用过程中常常出现不收敛的情况。对于边界问题,我其实还做了其他方法的研究,会在以后的文章中详细讨论。
7. 实验结果
消融实验:
对比实验: