空间上下文金字塔

✅CNN重要的思想就是多尺度,获得不同感受野上不同层级的特征信息。

✅FPN中,多尺度特征融合旨在对从backbone不同stage输出的特征进行聚合,从而增强输出特征的表达能力,提升模型的性能。考虑到单向信息流的限制,PAFPN增加了一个额外的自底向上的路径聚合网络,但增加了计算成本。

图片

代码地址:https://github.com/yeliudev/CATNet

01 相关工作

卷积神经网络 (CNN) 最具代表性的属性之一是局部依赖建模。多个卷积层可以堆叠在一起以增加感受野,在浅层学习高分辨率定位特征和深层低分辨率语义特征。处理异质性的关键是适当地从backbone传播多层特征。早期工作中的一种常见做法是采用多尺度特征传播策略,但这些方法只沿固定路径传播特征。本文认为灵活的信息流可以减少信息混淆,更好地聚合多尺度特征。此外,远程空间依赖建模也被证明对密集预测任务有效。作为开创性的工作,非局部神经网络 (NLNet)  表明可以通过计算像素级成对相关性来聚合全局空间上下文,但它也存在计算成本高的问题。NLNet的一些扩展倾向于通过简化相关估计来解决这个问题。然而,这些工作取得了可喜的成果,所有这些方法都只考虑上下文的概念作为远程空间相关性,而忽略了特征和实例域中的全局依赖关系。

02 提出的方法

图片

01 密集特征金字塔网络

多尺度特征传播旨在从不同的主干阶段聚合视觉特征,该阶段给定一个输入特征金字塔 C = {Cl1, Cl2, ...},其中 Ci 表示阶段 i 的特征图,目标是在不同级别之间传播特征以产生增强的特征金字塔P = {Pl1 , Pl2 , ...},其中特征对下游任务信息量更大。形式上,特征图Ci或Pi的分辨率是输入图像的1/2i。该模块以C2 ~ C5为输入,首先使用1 × 1卷积将它们下采样到256个通道,产生C ' 2 ~ C ' 5。将stride = 2的额外3 × 3卷积应用于C ' 5,生成C ' 6。因此C ' 2 ~ C ' 6的通道数相同,但分辨率不同。随后,这些特征通过几个堆叠的基本块进行特征级上下文聚合。在每个块中,输入特征金字塔由自顶向下和自底向上的聚合路径处理,其中采用层间残差连接、跨层密集连接和特征重加权策略。

图片

02 空间上下文金字塔

在聚合不同层次的特征图后,特征金字塔仍然包含空间局部信息,因此引入了空间上下文金字塔(SCP),通过学习每个级别内的全局空间上下文来进一步增强特征。

图片

在这些方法中,全局上下文网络 (GCNet)  是一种简单但有效的方法,它将 NLNet 和 SENet 组合成一个轻量级模块。然而,观察到,在具有仅覆盖小区域的目标的遥感图像中,这种设计可能会给目标带来太多无用的背景信息。为了解决这个问题,建议在这种结构之上添加额外的路径来学习每个像素的信息量。核心思想是,如果像素的特征足够丰富,则不需要从其他空间位置聚合特征。这种软重新加权策略可以有效地融合局部和全局特征,同时减少信息混淆。

该模块还具有金字塔结构,因此可以很容易地插入到backbone或neck之后。每一层都由一个具有残差连接的上下文聚合块 (CABlock) 组成。

图片

03 兴趣提取器的分层区域

图片

03 实验

图片

图片

图片

图片

注:本文仅用于学术分享,如有侵权,请联系后台作删文处理。

最后:

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

5a8015ddde1e41418a38e958eb12ecbd.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
mmdetection中的pafpn指的是骨干网络中的一个模块,它是通过在mmdet/models/necks/init.py中添加一行代码来引入的。具体引入的代码是from .pafpn import PAFPN。 在MMDetection 2.0中,配置系统支持继承配置,使用户能够更方便地进行修改。DoubleHead R-CNN使用了一个新的DoubleHeadRolHead和一个新的doubeconvfcbboxhead,这些参数是通过每个模块的_init_函数来设置的。此外,还可以通过添加新的损失来进一步修改模型。 要使用pafpn模块,首先需要创建一个新的文件mmdet/models/necks/pafpn.py,并在其中编写相应的代码。具体代码可以参考如下示例: ```python from ..builder import NECKS import torch.nn as nn @NECKS.register_module() class PAFPN(nn.Module): def __init__(self, in_channels, out_channels, num_outs, start_level=0, end_level=-1, add_extra_convs=False): super(PAFPN, self).__init__() # 在这里编写具体的模块初始化代码 def forward(self, inputs): # 在这里编写具体的前向传播代码 pass ``` 最后,需要在需要使用pafpn模块的地方导入该模块。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MMDetection系列之(自定义模型)](https://blog.csdn.net/qq_41627642/article/details/124754147)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MatpyMaster

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值