标题:《Poly Kernel Inception Network for Remote Sensing Detection》[1] 代码:https://github.com/NUST-Machine-Intelligence-Laboratory/PKINet 前置知识:LSKNet、Inception、MMRotate框架
遥感图像(RSIs)中的目标检测通常面临越来越多的挑战,包括物体尺度变化大和上下文多样化等问题。以往的方法试图通过大核卷积或膨胀卷积来扩展骨干网络的空间感受野。然而,前者通常会引入大量背景噪声,而后者则有生成过于稀疏特征表示的风险。
在本文中,我们引入了多核Inception网络(PKINet)来应对上述挑战。PKINet 采用多尺度卷积核(不使用膨胀)来提取不同尺度的物体特征并捕捉局部上下文信息。此外,还引入了上下文锚点注意力(CAA)模块并行处理,以捕获长距离的上下文信息。
这两个组件共同作用,提升了PKINet在四个具有挑战性的遥感检测基准(DOTA-v1.0、DOTA-v1.5、HRSC2016 和 DIOR-R)上的性能。
遥感目标检测面临的挑战主要来自于具有任意方向和显著尺度变化的对象。大多数先前的方法都集中在定向边界框(OBB)检测上。尽管如此,一个新兴趋势是设计针对遥感图像(RSIs)特性的有效特征提取骨干网络。
遥感目标检测中的OBB
为了应对RSIs中对象任意方向的挑战,一个研究方向专注于开发专门的OBB检测器。
尽管这些方法在解决任意方向相关挑战方面具有前景,但它们通常依赖于标准骨干网络进行特征提取,这往往忽略了对目标检测至关重要的RSIs的独特特性,例如大尺度变化和多样化的上下文信息。相比之下,我们提出了一个特征提取骨干网络来应对大尺度变化带来的挑战。
遥感目标检测的特征提取
类似于 LSKNet,我们提出了一个新的特征提取骨干网络PKINet来应对RSIs中对象尺度大范围变化和多样化上下文带来的挑战。两种方法之间有两个关键区别。
如图2(a)所示,我们的PKINet是一个类似于VGG 和ResNet 的特征提取骨干网络,由四个阶段组成。每个阶段暗示了一个跨阶段部分(CSP)结构,其中阶段输入被分割并输入到两条路径中。
两条路径的输出被连接起来产生阶段的输出。PKINet可以与各种定向目标检测器(如定向RCNN[65])结合,以产生RSIs的最终目标检测结果。
一个 PKINet 块由一个 PKI 模块和一个 CAA 模块组成。在本节中,我们将深入探讨 PKI 模块的细节。
如上所述,PKI 块中的类似 Inception 的 PKI 模块专注于提取多尺度的局部上下文信息。为了捕捉长距离的上下文信息,受 LSKNet、Ghostnetv2 启发,我们进一步将上下文锚点注意力 (CAA) 模块集成到 PKI 块中。CAA 旨在获取远距离像素之间的上下文依赖关系,同时增强中心特征。图 2(e) 展示了 CAA 的示意图。
代码实现:
class CAA(BaseModule):
"""Context Anchor Attention"""
def __init__(
self,
channels: int,
h_kernel_size: int = 11,
v_kernel_size: int = 11,
norm_cfg: Optional[dict] = dict(type='BN', momentum=0.03, eps=0.001),
act_cfg: Optional[dict] = dict(type='SiLU'),
init_cfg: Optional[dict] = None,
):
super().__init__(init_cfg)
self.avg_pool = nn.AvgPool2d(7, 1, 3)
self.conv1 = ConvModule(channels, channels, 1, 1, 0,
norm_cfg=norm_cfg, act_cfg=act_cfg)
self.h_conv = ConvModule(channels, channels, (1, h_kernel_size), 1,
(0, h_kernel_size // 2), groups=channels,
norm_cfg=None, act_cfg=None)
self.v_conv = ConvModule(channels, channels, (v_kernel_size, 1), 1,
(v_kernel_size // 2, 0), groups=channels,
norm_cfg=None, act_cfg=None)
self.conv2 = ConvModule(channels, channels, 1, 1, 0,
norm_cfg=norm_cfg, act_cfg=act_cfg)
self.act = nn.Sigmoid()
def forward(self, x):
attn_factor = self.act(self.conv2(self.v_conv(self.h_conv(self.conv1(self.avg_pool(x))))))
return attn_factor
数据集。我们在四个流行的遥感目标检测数据集上进行了广泛的实验:
训练。我们的训练过程包括 ImageNet [9] 预训练和遥感目标检测器训练。
对于 ImageNet 预训练,我们的 PKINet 在 ImageNet-1K 数据集上通过 MMPretrain 工具箱进行训练。为了提高性能,我们与先前的工作一样,将其训练 300 个 epoch。在预训练过程中,我们使用 AdamW 优化器,动量为 0.9,权重衰减为 0.05。学习率采用余弦调度 [45] 和预热策略进行调整。我们使用 8 块 GPU,批量大小为 1024。
对于遥感目标检测器的训练,实验基于 MMRotate 框架进行。为了与其他方法进行比较,我们使用这些基准的 trainval 数据集进行训练,并用其测试集进行测试。根据先前方法的设置,我们将原始图像裁剪为 1024 × 1024 的图块,且 DOTA-v1.0 和 DOTA-v1.5 数据集图块之间有 200 的重叠。对于 HRSC2016 和 DIOR-R 数据集,输入图像尺寸为 800 × 800。模型分别在 DOTA-v1.0、DOTA-v1.5、HRSC2016 和 DIOR-R 上训练 30 个 epoch、30 个 epoch、60 个 epoch 和 36 个 epoch。我们采用 AdamW 优化器,权重衰减为 0.05,初始学习率设为 0.0002。所有的浮点运算量(flops)是在输入图像大小为 1024 × 1024 时计算的。为了防止过拟合,训练时图像进行了随机调整大小和翻转,参考了先前的方法。对于 HRSC2016 和 DIOR-R 数据集,我们报告了五次运行的平均 mAP。
测试。测试阶段的图像分辨率与训练阶段保持一致。为了公平起见,我们不进行任何测试时的数据增强。
评估指标。我们报告了平均精度均值(mAP)和 0.5 阈值下的平均精度(AP50)。
可复现性。我们的算法基于 PyTorch 实现。我们使用 8 块 NVIDIA RTX 4090 GPU 进行 ImageNet 预训练,使用 4 块 NVIDIA Tesla V100 GPU 进行下游任务的训练和测试。
在 DOTA-v1.0 上的表现
首先,我们在 DOTA-v1.0 数据集上与集成在 Oriented RCNN 框架中的 ResNet 进行了比较,如表 3 所示。PKINet-T 以仅 36.7% 的参数量和 59.6% 的计算量超越了 ResNet-18,提升了 3.67%。PKINet-S 也表现出色,仅用 58.8% 的参数和 81.53% 的计算量提升了 2.52%。 当我们的 PKINet 主干与表 2 中显示的多种检测架构配合时,始终优于 ResNet-50 及更多专为遥感检测任务设计的网络(如 ARC [50] 和 LSKNet [32])。
在 DOTA-v1.5 上的表现
如表 4 所示,我们的方法在更具挑战性且含有微小实例的数据集 DOTA-v1.5 上表现优异,证明了其对小物体的有效性和泛化能力。我们的 PKINet 超越了以前的最先进方法,提升了 1.21%。
在 HRSC2016 上的表现
我们的 PKINet-S 在 HRSC2016 数据集上超越了 12 种领先方法,并且参数更少,如表 5 所示。与 LSKNet 的小幅优势主要源于 HRSC2016 将 31 个子类合并为单一的“船舶”类别进行训练和测试。该协议并未充分展示我们方法在处理类间物体大小变化方面的优势。
在 DIOR-R 上的表现
我们展示了在 DIOR-R 上的比较结果,如表 6 所示。我们取得了 67.03% 的最佳性能。
在 COCO 2017 上的表现
为了评估 PKINet 作为通用框架在适应各种形式的边界框方面的多样性,我们在广泛使用的通用检测基准 COCO 上评估了我们的方法。如表 7 所示,PKINet 在具有相似参数的多个著名主干中表现优于其他方法,进一步确认了我们的方法作为不局限于遥感图像的通用主干的有效性。
图 3 展示了在 DOTA 上的代表性视觉结果。可以看到,与仅依赖大卷积核的前最佳方法 LSKNet 相比,我们的 PKINet 展现了强大的适应能力,能够应对场景中目标物体的显著尺寸变化,确保能够检测到较大的物体(如 PL、TC、ST 和 BD),同时保持对较小物体(如 SV 和 LV)的关注。
为了深入了解 PKINet,我们在 DOTA-v1.0 上进行了系列消融实验,使用 Oriented RCNN 作为检测器。本文提到的所有主干网络均在 ImageNet-1K 上训练 100 个周期,以提高效率。
多尺度卷积核设计
首先,研究 PKINet 中关键的多尺度卷积核设计(参见 §3.2),如表 8a 所示。结果表明,仅使用小的 3 × 3 卷积核的性能较差,原因在于提取的纹理信息有限。随后采用了一种多尺度卷积核结构,卷积核大小范围从 3 × 3 到 11 × 11,步幅为 2。在此设置下,模型显示出最佳性能。接着测试了在卷积核大小增大时步幅为 4 的情况,其性能未达到最佳。进一步的实验仅使用大卷积核,导致计算量增加但性能下降,分别下降了 0.49% 和 0.84%,表明大卷积核可能引入背景噪声并导致性能下降(参见 §1)。
然后,我们研究了多尺度卷积核设计中的卷积核数量,详细信息见 §3.2。表 8b 显示,只有两个卷积核(仅保留 3×3 和 5×5 卷积核)时,网络无法捕捉长距离像素关系。随着卷积核数量的增加,网络性能提高,五个卷积核时达到最佳效果。
卷积核膨胀
接下来,我们考察了 PKI 模块中膨胀的效果(参见 §3.2)。如表 8d 所示,尽管感受野增大,但与未使用膨胀的情况相比,性能下降了 1.09%。随着膨胀程度的进一步增加,性能进一步下降。这证明了仅仅应用膨胀来扩展感受野并不奏效。
上下文锚定注意力
接下来,验证了 CAA 模块的有效性(参见 §3.3)。首先,应用不同卷积核大小的 CAA 来检查其影响,如表 8f 所示。第一列中的三个卷积核大小代表平均池化和两个条形卷积的大小。可以看到,较小的卷积核无法捕捉长距离依赖,导致性能下降,而较大的卷积核通过包含更多上下文来改善这一点。我们扩展的卷积核大小策略在块深度增加时增大条形卷积的卷积核大小,实现了最佳性能。之后,由于 PKINet 有四个阶段,研究了实施位置如何影响最终性能。如表 8c 所示,在任何阶段实施 CAA 模块都能带来性能提升。因此,当在所有阶段部署 CAA 模块时,性能提升达 1.03%。
跨阶段部分结构
表 8e 进一步探讨了跨阶段部分(CSP)结构的影响。消除 CSP 导致参数和计算成本指数级增加(分别增加 211% 和 159%)。通过将每个阶段的块数量从 (4, 12, 20, 4) 减少到 (2, 2, 4, 2),没有 CSP 结构的模型可以达到与之前相似的参数量。然而,由于阶段块数量的减少,性能未能达到最佳。
在本文中,我们提出了用于遥感目标检测的多卷积核Inception网络(PKINet),旨在应对遥感图像中物体尺度和上下文多样性带来的挑战。
PKINet 采用多种尺寸的并行深度卷积核,以有效捕捉不同尺度的密集纹理特征。同时,引入了上下文锚定注意力机制,以进一步捕获长距离的上下文信息。我们通过实验证明,PKINet 在四个著名的遥感基准数据集上达到了最先进的性能。
参考资料
[1]
文章链接: https://arxiv.org/abs/2403.06258
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有