关注

点击关注上方“AI深度视线”,并“星标”公号

技术硬文,第一时间送达!

精彩内容

AC-FPN——用于目标检测的注意力引导上下文的特征金字塔网络 ,即插即用的新FPN模 块,替换Cascade R-CNN、Mask R-CNN等网络中的FPN,可直接涨点2%-3%!

Paper:

https://arxiv.org/pdf/2005.11475.pdf

Code:

https://github.com/Caojunxu/AC-FPN

Authors:

腾讯&华南理工大学

1摘要

对于目标检测,如何解决高分辨率输入上的特征图分辨率与感受野之间的矛盾要求仍然是一个悬而未决的问题。

在本文中,为了解决此问题,我们建立了一种新颖的体系结构,称为注意力引导的上下文特征金字塔网络(AC-FPN),该体系结构通过集成注意力导向的多路径特征来利用来自各个大型感受野的判别信息。该模型包含两个模块

  • 第一个是上下文提取模块(CEM),它从多个感受野中探索大量上下文信息。

  • 第二个模块是注意力引导模块(AM),为了处理冗余的上下文关系可能导致的误定位和误识别。该模块可以通过使用注意力机制来自适应捕获对象的显著依赖性。AM由两个子模块组成,即上下文注意模块(CxAM)内容注意模块(CnAM),它们分别专注于捕获区分性语义和定位精确位置。

最重要的是,我们的AC-FPN可以轻松插入现有的基于FPN的模型中。关于目标检测和实例分割的大量实验表明,带有我们提出的CEM和AM的现有模型大大超过了没有它们的同类模型,并且我们的模型成功获得了最新的结果。

2 本文方法

近年,分层检测如FPN和DetNet等网络获得了很大的进步。然而,对于较大的输入图像,这些模型必须堆叠更多的卷积层,以确保接收域的适宜性。否则,就会陷入特征图分辨率和感受野的两难境地。此外,由于不同大小的感受野之间缺乏有效的交互,使得模型生成的特征表示能力受到限制。

为了缓解这些限制,我们提出了一种新的注意引导的上下文特征金字塔网络(AC-FCN),它从不同大小的接受域捕获上下文信息,生成具有较强识别能力的客观特征。如下图所示,我们的模型建立在基本FPN架构的基础上,有两个新的组件:1)上下文抽取模块(CEM),它利用不同大小的接受域的丰富上下文信息;2)增强显著上下文相关性的注意力引导模块(AM)。我们将在下面的小节中描述模型的每个部分。整理流程图参下图所示:

2.1 上下文抽取模块(CEM)

首先,自底向上的通道采用和FPN相同的结构处理,在获得前几层(即F5)的特征图后,为了利用丰富的上下文信息,我们将其输入到我们的CEM中,CEM由不同比率= 3,6,12等多路径扩展卷积层组成。这些分离的卷积层可以在不同的感受野中获取多个特征图。此外,为了提高几何变换建模的能力,在每条路径中引入可变形卷积,它确保我们的CEM能够从给定的数据中学习转换不变特征。

并且,为了精细地合并多尺度的信息,我们在CEM中使用了密集连接,每个扩展层的输出与输入特征图连接,然后输入到下一个扩展层。DenseNet使用密集连接来解决梯度消失的问题,在CNN模型越来越深的情况下加强特征传播。相比之下,我们采用密集的方式来实现具有不同感受野的特征在尺度上的多样性。

最后,为了保持初始输入的粗粒度信息,我们将扩展层的输出与上采样的输入连接起来,并将最小值输入到1×1卷积层,以融合粗粒度和细粒度的特征。

具体细节参考下表:

2.2 注意力引导模块(AM)

虽然CEM可以接入较丰富的感受野信息,但不是所有的信息都会对目标检测精度有效果,反而冗余的信息可能错误的引导bbox proposals而降低精度。为了去除这种负面影响并进一步提升特征图的表达能力,提出注意力引导模块,能够捕获具有强语义和精确位置的强依赖关系。AM包括两个部分:

  • 上下文注意力模型CxAM

为了主动捕获子区域之间的语义依赖,这里引入了一个基于自我注意机制的上下文注意模块CxAM。我们将上述由CEM产生并包含多尺度感受野信息的特征传给CxAM模块。在这些信息特征的基础上,CxAM适应地更加关注子区域之间的相关关系。因此,CxAM的输出特性将具有清晰的语义,并在周围的目标中包含上下文依赖关系。

  • 内容注意力模型CnAM

由于CEM中可变形卷积的影响,给定图像的几何特性被破坏,导致位置偏移。为了解决这个问题,我们设计了一个新的注意模块,称为内容注意模块(CnAM),以保持每个目标的精确位置信息。如下图所示,与CxAM类似,我们使用卷积层来转换给定的特征映射。但是,我们没有使用特征图F来产生注意矩阵,而是使用特征图F5∈R(C”xHxW),这样可以捕捉到每个物体更精确的位置。

3 实验效果

3.1 CEM

  • CEM效果:

  • 可变卷积的影响:

  • 稠密连接:

3.2 AM

  •  CxAM和CnAM效果:

  • 注意力可视化:

3.3 其他实验

  • 计算复杂度和效率的比较

由下表X和XI可以看出,ACFPN较FPN增加的有限的计算复杂度,但精度确提升明显: 骨干网络为ResNet50 时,ACFPN完成一次迭代所需的时间为1.18s,虽然较FPN的0.92s多了0.26s的时延,但精度可以提升3.2个百分点。如果对精度要求较高的场景,可以采用本文的改进策略,并且ACFPN在ResNet-50骨干网络情况下,可以超过FPN在ResNet101骨干网络下的AP精度,且参数量要更低,时间也更快。

  • CEM的path数量

下表为CEM采用不同Rate对结果的影响和相应的时间对比,可以看出,并不是CEM的path数量越多越好,但是却可以看出对于大分辨率的输入图像,有必要提升一定Path数量,可以有效提升精度。

3.4 和其他方法比较

在现有骨干上换上我们的模块结果对比:轻轻松松涨2-3%个点

上面一行是原始FPN,下面一行是加上本文改进的FPN:有效减少漏检情况,和提升分割效果。

4 代码实操

  • 模型训练:

  • 在Maxwell的GPU(例如M40)上,训练大概需要4.2小时

  • 推断时间应该在80ms左右/图像(也是在M40上)

python tools/train_net.py \    --cfg configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml \    OUTPUT_DIR /tmp/detectron-output
  • COCO数据测试:

在NVIDIA Tesla P100 GPU上,每幅图像的推理时间应该在130-140毫秒之间。

python tools/test_net.py \    --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \    TEST.WEIGHTS https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \    NUM_GPUS 1
  • mask-rcnn批量图像测试举例:

python tools/infer_simple.py \    --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \    --output-dir /tmp/detectron-visualizations \    --image-ext jpg \    --wts https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \    demo

即插即涨2-3%!AC-FPN:用于目标检测的注意力引导上下文的特征金字塔网络相关推荐

  1. TorchVision中使用FasterRCNN+ResNet50+FPN进行目标检测

    TorchVision中给出了使用ResNet-50-FPN主干(backbone)构建Faster R-CNN的pretrained模型,模型存放位置为https://download.pytorc ...

  2. 性能超FPN!北大、阿里等提多层特征金字塔网络

    作者 | Qijie Zhao等 编译 | 李杰 出品 | AI科技大本营(ID:rgznai100) 特征金字塔网络具有处理不同物体尺度变化的能力,因此被广泛应用到one-stage目标检测网络(如 ...

  3. 计算机视觉FPN: 特征金字塔网络

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx FPN:feature pyramid networks for object detecti ...

  4. 深度学习阅读导航 | 04 FPN:基于特征金字塔网络的目标检测

    写在前面:大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱分享.热爱开源! 这博客是我对学习的一点总结与记录.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关 ...

  5. 【CV】FPN:用于目标检测的特征金字塔网络

    论文名称:Feature Pyramid Networks for Object Detection 论文下载:https://arxiv.org/abs/1612.03144 论文年份:2016 论 ...

  6. FPN 特征金字塔网络

    FPN(feature pyramid networks) 特征金字塔是多尺度目标检测系统中的一个基本组成部分.近年来深度学习目标检测却有意回避这一技巧,部分原因是特征金字塔在计算量和用时上很敏感(一 ...

  7. MatrixNets:可替代FPN,用于目标检测的可感知比例和长宽比的网络结构

    译者 | 刘畅 出品 | AI科技大本营(ID:rgznai100) 本文介绍了一种新的网络MatrixNets(xNets),它是新的用于目标检测的深层结构.xNets将具有相似大小和高宽比的目标映 ...

  8. 【FPN车辆目标检测】数据集获取以及Windows7+TensorFlow+Faster-RCNN+FPN代码环境配置和运行过程实测

    PS 最近在学目标检测想用最新的FPN网络,刚好看到这篇博客https://blog.csdn.net/Angela_qin/article/details/80944604尝试把它复现,说的小白一点 ...

  9. 关于FPN(特征金字塔网络)层间融合的理解

    FPN层间融合的个人理解 Feature Pyramid Networks for Object Detection 论文链接: https://arxiv.org/abs/1612.03144. 盗 ...

最新文章

  1. linux c时间戳转换,Android C/C++代码中将时间戳转换为标准时间
  2. 记录第一次使用Texlive+TexStudio写论文时遇到的问题(随时更新)
  3. html禁用自动完成,html – 如何禁用所有主流浏览器的自动完成功能
  4. 引入用于 Azure IoT Edge 的 Visual Studio 工具
  5. cass生成曲线要素文件_几种常见的CASS字体异常问题,教你如何解决
  6. Android 系统(70)---Android刘海屏适配方案
  7. “error LNK2019: 无法解析的外部符号”之分析
  8. php数组的概述及分类与声明
  9. 使用UE去除复制文本中的空格、换行符和TAB
  10. Linux驱动开发流程
  11. java识别手写文字_Java 实现OCR 识别图像文字(手写中文)----tess4j
  12. android textview html font标签不好用
  13. photoshop CS5免费破解完整版下载,详细安装教程,无需注册【PS序列号】
  14. python虚拟环境是什么意思_python的虚拟环境详解
  15. 水泊梁山迎圣诞,Python 抽奖助好汉
  16. 互联网快讯:腾讯新闻上线数字藏品馆;极米多款产品受消费者青睐;微信更新IOS系统朋友圈可发20张图片
  17. php notice 性能,【OneAPM出品】解决Notice错误性能提升
  18. 计算机组成原理_存储系统结构
  19. PCB设计中地的分类及含义
  20. NASBench101-安装及简单样例使用指南

热门文章

  1. c# AutoCAD 操作交互
  2. python水果超市管理系统_java实现水果超市管理系统
  3. 大学计算机网络配置实验报告,北京理工大学-计算机网络实践-IP路由配置与路由协议分析实验报告.docx...
  4. Mac自带的录屏功能
  5. .Net 7里的函数.Ctor和.CCtor是干啥用的呢?你知道吗
  6. 关于java的毕业设计_我的java毕业设计之路回顾
  7. Unity Shader - Heightmap 高度贴图
  8. 阿里云CentOS镜像下载地址
  9. [论文阅读](不确定性系列)
  10. PPT文档翻译软件怎么用?如何翻译整篇PPT文档