遥感目标检测(2)--SCRDet

目录

一、概述

二、三个挑战

三、网络结构

1、SF-Net

[2、MDA-Net(Multi-Dimensional Attention Network)](#2、MDA-Net(Multi-Dimensional Attention Network))

[3、Rotation Branch](#3、Rotation Branch)

四、损失函数

五、实验


一、概述

SCRDet(Towards More Robust Detection for Small,Cluttered and Rotated Objects)来自ICCV2019,two-stage 网络,在对于小尺寸、任意方向、密集分布下的物体提出多类别旋转检测器,设计了一种将多层特征与有效锚定采样相结合的采样融合网络SF-Net,以提高对小物体的灵敏度。

本文为了抑制噪声和突出目标特征,引入了通道注意力网络和像素点注意力机制网络MDA-Net(这里包含了SE-Net)。

为了准确的目标估计,在SmoothL1Loss中加入IoU常数因子,解决旋转边界框回归问题。

二、三个挑战

由于大多数场景下没有关注鲁棒性目标检测中的小物体,杂乱排列,任意方向的问题,在现实中由于相机分辨率问题,很多场景下的对象可能是非常小的尺寸,可能以密集形式排列且方向不一,例如商店中的商品和高分辨率图片中街道上的人脸。所以本文提出目标检测中的三个挑战:

(1)小物体:遥感图像中的小物体经常被复杂的环境所覆盖。本文设计一种采样融合网络,将多层特征融合到有效anchor采样中,以提高对于小型目标的检测灵敏度。

(2)杂乱排列:由于被检测物体经常是紧密排列的。本文使用有监督的像素注意力网络和通道注意力网络,来抑制噪声和突出物体的特征,提高对于小而杂乱的目标检测。

(3)任意方向:由于遥感图片中的物体以不同方向出现。本文为保证准确进行旋转估计,提出将IoU常数因子引入Smooth L1 Loss中,来解决旋转边界框回归问题。

三、网络结构

本文SCRDet以ResNet作为bacebone,由SF-Net,MDA-Net,Rotation Branch组成。

SF-Net:用于多层特征融合和有效锚框采样,解决目标信息不足和锚框样本不足问题。

MDA-Net:通过生成权重的方法对目标进行强化,背景进行弱化,增强错误检测和减少漏检的问题。

Rotation Branch:对于新的特征图feature map进行检测,进行RPN提取候选框,候选框映射到特征图后进行ROI Align,对目标进行分类和回归,对每个方案进行改进的单元参数回归和旋转非最大抑制(R-NMS)操作。

1、SF-Net

首先本文提出检测小物体的主要障碍:物体特征信息不足和锚框采样不足。

原因:

(1)使用了池化层,使得小对象在深层网络下丢失了大部分特征信息。(池化操作会使区域内的特征值聚合,减少特征图大小,减少区域内特征点的数量,而对于小目标而言,本身特征点就较少,池化后会进一步减少特征点数量,另外池化操作也会使特征图分辨率降低,限制对小目标特征信息的提取)

(2) 高阶特征图的采样步幅较大,容易跳过小的目标,导致采样不足。如下图所示,步长大的a图,效果非常不好,但不可否认采样点增多也会带来参数量增大的问题。

本文提出了两个解决方案:

(1)特征融合:低阶特征图可以保存目标较小的特征信息,而高阶特征图可以包含更高层次的语义线索(这也忽视了小目标的特征),常见的特征融合方法有FPN、TDM、ROM,本文只是进行列举,没有使用。

(2)更好的抽样,训练样本不足和不平衡会导致影响检测性能,所以引入期望最大重叠(EMO)分数,通过计算锚框与对象之间的期望最大交集(IoU),发现步幅越小,EMO得分越高。(类似上图的数学解释)

SF-Net网络结构如下:

输入一张图片,根据缩放因子不同,提取不同尺寸C2、C3、C4的特征图,将C3、C4在SF-Net中进行特征融合得到特征图F3。

2、MDA-Net(Multi-Dimensional Attention Network)

由于航拍图像等真实数据的复杂性,RPN提供的方案会引入大量的噪声信息。过多的噪声会淹没目标信息,使目标信息边界模糊,导致漏检,如下图(a)。下面其余各图为(b)输入注意力网络的特征图(c)输出注意力网络的特征图(d)显著性图(e)二值化图(f)真实图

由于当前的解决噪声、遮挡的注意力网络都是无监督的,本文提出一个有监督多维注意力网络(MDA-Net),由通道注意力网络(SE-Net)和像素注意力网络(Pixel Attention)组成。

像素注意力网络

流程:F3经过Inception(具有不同比值的卷积核的模块),用于对不同尺度的特征进行提取,然后经过两个卷积得到双通道的显著性映射(上图(d)),使用softmax对显著性映射(范围处理为[0,1],降低噪声,增强目标特征信息)进行处理,将其中一个通道与F3融合(论文就用了其中一个)。

注意力损失:将双通道的显著性映射进行二值化处理,得到含有目标区域的二值化图,显著性高和显著性低的区域分别赋值0和1,进行二值交叉熵损失作为注意力损失。

通道注意力网络

流程:将F3使用GAP输出C个特征通道的数值分布,全连接将特征维度降低到输入的1/r,进入ReLU激活后,再经过全连接层变回原维度,再用Sigmoid进行激活,获得[0,1]之间的归一化权重,最后将输出与F3融合。

3、Rotation Branch

从旋转框的参数计算来看,还是与R3Det相同的,可以参考上一个博文。

本文提出了一个R-NMS(旋转非最大抑制)的算法,对于集中数据的方向的多样,设定不同的阈值。避免出现使用水平NMS而导致破坏bounding box的预测。

四、损失函数

SCR-Det的多任务损失如下,分为边界框回归损失、注意力损失、分类损失三个部分。

边界框回归损失

N:候选框数量,:控制权重的超参数,:二进制数,表示背景和前景,真实框偏移向量(对于x,y,w,h,θ五个参数),预测框偏移向量。

边界框回归损失使用Smooth L1损失。

添加IoU常数因子:文中提出,由于旋转框角度存在周期性,在大角度下,存在较大的损失,增大了回归的多样性,所以提出引入IoU常数因子,避免骤降为0,作为梯度下降的大小。

:控制梯度方向。

下图为Smooth L1损失和使用IoU的Smooth IoU损失的预测框。

注意力损失

:表示GT框的高和宽,:控制权重的超参数,代表mask后的标记值和预测值。

注意力损失使用softmax交叉熵。

分类损失

N:候选框数量,:控制权重的超参数,:用softmax函数计算的各类别对应的概率分布,:各类别的标签

分类损失使用softmax交叉熵。

五、实验

对于不同的缩放因子在DOTA的OBB(任意四边形)和HBB(一般水平四边形)两种标注的数据集下进行测试,可以看到缩放因子在6的时候mAP最高,用时也是最高。(感觉也是考虑了DOTA数据集的物体的分布,最后选择了6)

HBB:horizontal bounding box,通常为(x,y,w,h)

OBB:oriented bounding box,通常为(x,y,w,θ)或者(x1,y1,x2,y2,x3,y3,x4,y4)的四个角点坐标的形式。

对于使用SCRDet的不同模块做了对比,backbone貌似是RetinaNet做的,可以看到SCR-Det的每一个分支都是不可替代的,还是相对还好的,但是最后一行添加的P不是很懂什么意思。

对于OBB和HBB类型数据集下的主流模型进行对比,backbone也是RetinaNet,可以看到mAP提升还是很可观的,但是速度方面就不太清楚了,感觉RoI-Transformer这种trick极度倾向简化方向和YOLOV2这类one-stage的应该会快于SCRDet。

下图是对于不同数据集上,与其他two-stage的模型进行对比。另外进行MDA-Net的有监督和无监督模块的对比,有监督学习的mAP仍要高于无监督学习。

下面对于COCO、VOC2007、ICDAR2015的通用数据集使用MDA-Net、IoU-Smooth模块测试模块的通用性,在密集对象和小目标上性能具有显著提升。

相关推荐
虚假程序设计9 分钟前
pythonnet python图像 C# .NET图像 互转
开发语言·人工智能·python·opencv·c#·.net
sp_fyf_202428 分钟前
浅谈计算机视觉的学习路径1
计算机视觉
AI王也35 分钟前
ChatGPT 4o 使用指南 (9月更新)
人工智能·chatgpt·prompt·aigc
望繁信科技38 分钟前
望繁信科技受邀出席ACS2023,为汽车行业数智化护航添翼
人工智能·企业数字化转型·流程挖掘·流程智能·数字北极星
木凳子a41 分钟前
给儿童掏耳朵用哪个好?儿童耳勺最建议买的五个牌子
人工智能·安全·信息可视化·智能家居·健康医疗
测试老哥44 分钟前
功能测试干了三年,快要废了。。。
自动化测试·软件测试·python·功能测试·面试·职场和发展·压力测试
爱吃油淋鸡的莫何1 小时前
Conda新建python虚拟环境问题
开发语言·python·conda
秋91 小时前
教师心理学能力研判:多维度视角下的分析,判断教师心理学知识能力强弱,并提出针对性意见
人工智能·心理学研判·教师心理学研判·心理学知识研判
中科微星1 小时前
相位型SLM硬件产品面型性能提升
图像处理·人工智能·深度学习
闲人编程1 小时前
Python实现日志采集功能
开发语言·python·fluentd·filebeat·日志采集