论文复现——AC-FPN:Attention-guided Context Feature Pyramid Network for Object Detection.

本次复现的论文已开源,需要依赖Detectron库,但是现在大部分论文都是用mmdetection了(需要安装mmdetection库请看我的上一篇文章:Ubuntu安装mmdetection),嫌配置Detectron库麻烦的可以参考我复现的代码。
AC-FPN原论文:https://arxiv.org/pdf/2005.11475.pdf
AC-FPN官方代码:https://github.com/Caojunxu/AC-FPN

更新了CxAM和CnAM模块

我复现的源码中加入了CxAM和CnAM模块,但是官方源码给出的是只有CEM的ACFPN,因为单独使用CEM也能有不错的效果(事实确实是如此,我自己训练时加了AM模块,精度降低,损失增大了)。

有些论文具体实现细节没有说清楚,所以我是按照自己的理解来复现的,如果有不同的方法欢迎在评论区讨论。

1.AC-FPN整体结构


  AC-FPN是用来解决高分辨率图像下感受野和特征图之间的矛盾,直观的说就是高分辨率图像需要更大的感受野,但是大的感受野对小目标的检测效果不好,会将小目标误判为背景,基于上述问题,AC-FPN提出了两个模块来解决这个矛盾,分别是上下文提取模块(CEM)和注意引导模块(attention -guided module, AM),而AM中又有两个子模块,分别是上下文注意模块(Context Attention Module, CxAM)和内容注意模块(Content Attention Module, CnAM)。创新点就是利用了不同比例的空洞卷积来提取特征,AM模块中的CnAM和CxAM跟self-attention思路类似。

2.CEM:Context Extraction Module

在这里插入图片描述  在原论文中作者说CEM模块是将特征图F5进行五种rate的空洞卷积,再进行密集链接(密集链接原论文),从图中也看出每个特征图跟其他特征图都有箭头链接,之后在每个特征图上进行可变形卷积,最后将这些特征图拼接起来进行1x1的卷积来跳转通道数目。但是源代码中并没有实现可变形卷积,而且论文中这个可变形卷积也是一带而过,所以我在实现时也没有加可变形卷积。可以看到在空洞卷积结构图下面还有一个upsampling操作,但是源码中也没有实现个人认为是先压缩成一个1x1xC的特征向量,这个向量的作用应该与于空间注意力类似,可能作者加上后效果并不好,在源码中也就放弃来自这个结构。
个人认为CEM效果很好的原因是在每个空洞卷积后都加了一个GroupNorm操作,这在原论文中并没给出。与BatchNorm不同,GroupNorm不需要特别大的batch_size(训练COCO数据集,batch_size一般都是2)。

3. AM: Attention-guided Module

3.1 CxAM

在这里插入图片描述
  这个模块就是一个普通的self-attention,只不过在特征图R后面添加了平均池化操作。F是CEM的输出特征,由CEM产生并包含多尺度感受野信息,放入CxAM模块。 基于这些信息,CxAM自适应地关注相关的子区域之间的关系。 因此,输出CxAM的功能将具有清晰的语义并包含周围对象内的上下文相关性。

3.2 CnAM

在这里插入图片描述
  CnAM结构跟CxAM结构相同,原论文中说由于CEM使用了可变形卷积,导致给定图像的几何特性已被彻底破坏,从而导致位置偏移。为此,我们设计了一个新的注意力模块,称为内容注意力模块(CnAM),以维护每个对象的精确位置信息。
  两者的区别就是CnAM利用了F5的feature map作为一个输入弥补被破坏的定位信息。

4. 训练策略

  下面给出我个人的训练策略:骨干网络为ResNet50,再COCO数据集上训练了12轮,使用了8块40G显存的GPU,每块GPU上2张图片,初始学习率为0.02,并且在第8轮和第11轮下降0.1倍,效果还不错

5.复现代码

  代码已同步到GitHub:https://github.com/RooKichenn/AC-FPN

  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值