借鉴前人的经验,开个系列督促一下自己,每周保底四篇论文阅读,有兴趣的小伙伴可以加入进来,一起互相进步。
文章题目:Object Detection in Remote Sensing Images Based on a Scene-Contextual Feature Pyramid Network
文章链接:https://www.mdpi.com/2072-4292/11/3/339
Abstract:
在遥感图像分析领域目标检测受到了越来越多的关注。遥感图像中复杂的背景、垂直的视角以及目标种类和尺度的变化都使得目标检测成为了一个非常具有挑战性的任务。考虑到目标通常与它所在位置的场景具有密切的联系,本文提出了一种用于目标检测的结合场景上下文信息的卷积神经网络。具体地,我们提出了场景上下文特征金字塔网络(SCFPN),它旨在增强目标和场景之间的联系,并解决由目标尺寸变化带来的问题。另外,为了提升特征提取能力,网络试通过重复聚合残差块(aggregated residual block)来构建的(在残差块的基础上加入了消融卷积)。这个模块增加了感受野,它可以提取更丰富的目标信息并在小目标检测方面获取优秀的性能。此外,为了提升所提出模型的性能,我们使用了组归一化(group normalization),它将通道channel划分为多个组并在组内计算用于归一化的均值和方差,来解决批量归一化(batch normalization)的限制。我们在DOTA数据集上验证了我们的方法。实验结果表明我们的方法优于现有的SOTA(state-of-the-art)目标检测模型。
Introduction:
与自然图像相比,CNN-based方法的局限性:
-
遥感图像中的目标来自多个场景,这增加了目标检测的难度;
-
相比于自然图像,用于训练的标注数据少,这使得模型的训练很难收敛;
-
遥感图像呈现的是透射视角,目标的尺寸变化要比自然图像大。
文章分析了DOTA数据集中目标与所在场景上下文信息的关联情况
文章贡献:
- SCFPN
- 改进的骨干网络:ResNeXt-d
- GN层代替BN层,解决BN层对于batch-size的限制
Proposed Method
SCFPN框架主要包含两个部分:
- 一个基于FPN的用于生成多尺度ROIs的RPN;
- 一个用于多尺度ROIs进行分类的场景上下文特征融合网络
不同于Faster-RCNN,只采用了一个分类头来对ROIs进行分类,没有进行框的二次回归。
网络结构图与相应的表述我个人感觉有点问题,结构图给我的感觉是FPN-RPN结构生成后的ROIs还要再经过一个backbone的特征提取,但这肯定是不科学的,光是1024(即32*32)的下采样stride就不可能适用大部分输入图像,所以我认为下图中红线框出来的应该分别表示ROIs和backbone对原图提取出的多尺度特征图,这两者再经过ROI Align操作变成相同大小的特征图,从而实现后续的Feature combination和classify操作(个人见解,不一定准确)。
Loss function:
backbone
在ResNeXt的基础上引入了dilated conv,可以扩大feature map的感受野并增强对小目标的感知。(这一点感觉也有点奇怪,感受野太大不应该是导致小目标效果更差吗。。。)
Group Normalization
采用GN层替代BN层,因为不同于普通自然图像数据集,遥感图像的尺寸普遍较大,使得训练时的batch_size会比较小,这会对BN层的效果产生比较大的影响。而GN层则对batch_size不敏感,因此更适合用来训练。
Results and Discussion
效果最差的两类分别是ship和helicopter。
对于helicopter,作者认为造成其效果差的原因有两点:1.训练样本数量不够;2.与plane属于同一大类,造成了错检。
对于ship,作者进行了可视化分析,如下图所示。由于其目标密集,采用水平框检测的方式很难避免小目标被遗失的情况,作者分别使用了NMS和soft-NMS,效果并不理想。因此采用具有朝向的框标注方式可能会是一个解决方向。