论文地址:https://arxiv.org/pdf/1612.03144v2.pdf

代码地址:https://github.com/unsky/FPN

概述

FPN是FAIR发表在CVPR 2017上的一篇文章,采用特征金字塔的方法进行目标检测。文中利用深层卷积网络固有的多尺度金字塔层次结构,高效地构造特征金字塔。文章提出了FPN——一种具有横向连接的自顶向下的结构,来构建所有尺度上的高级语义特征映射。

网络结构

下图展示了几种不同的利用特征的方式:(a)为图像金字塔,就是对图像resize成不同大小,然后在不同大小的图像上生成feature map,在不同大小的feature map上分别进行预测,这种方法很耗时间;(b)是只在最后一层的feature map上进行预测,如SPPNet、Faster RCNN等等;(c)是多尺度的特征融合,也就是利用网络的不同层的feature map做预测,融合多个尺度特征层的预测结果,代表算法是SSD。(c)对feature map的利用仍然不够充分,注意到低层的目标位置信息比较准确,而高层的特征语义信息很丰富,进行多尺度特征的融合,每层对融合后的特征做独立预测的效果更好,也就是图(d)。

实际上,采用自顶向下以及跳跃连接结构的网络并不少,不过他们的目标是产生一个单一的、高分辨率的高层特征图,然后对其进行预测,如图2上半部分所示。而作者提出的网络则是在每一层中独立进行预测(图2下半部分)。

文中使用ResNet作为基础网络,特征金字塔的构造包括一个自底向上的路径,一个自顶向下的路径,以及横向连接,如图3所示。

自底向上的过程实际上就是前馈神经网络的计算过程。以ResNet为例,对每个阶段提取最后一个residual block的输出(conv2,conv3,conv4和conv5)来构成特征金字塔,相对于输入图像,步长分别为4、8、16、32像素(不使用conv1是因为它占内存太大)。自顶向下的过程通过上采样完成,也就是把高层的feature map通过最近邻上采样使其尺寸*2。横向连接就是将上采样的高层feature map和自底向上产生的feature map(通过1*1的卷积操作来减少feature map的通道数)融合(元素加)。通过上述过程不断迭代产生最好的feature map,即C2。在每个合并的map上附加一个3*3卷积产生最终特征映射,以降低上采样的混叠效应。

应用

1、FPN用于RPN

通过用FPN代替单尺度特征映射来改进RPN,也就是用FPN生成不同尺度的特征然后融合作为RPN的输入。在特征金字塔的每层都附加了一个相同设计的network head(3*3 conv和两个兄弟1*1卷积),为每一层设计了单尺度的anchors(P2、P3、P4、P5、P6的anchor尺度分别为32*32、64*64、128*128、256*256、512*512),而且anchors使用多种宽高比(1:2、1:1和2:1)。整个特征金字塔一共有15种anchor。

2、FPN用于Fast R-CNN

为了将FPN用于Fast R-CNN,需要给金字塔的各层分配不同尺度的RoIs。第Pk层分配策略如下:

其中,224是ImageNet预训练的标准尺寸,k0是w*h=224^2的RoI应该映射到的目标层。文中k0设置为4。

实验结果

作者分别在Fast R-CNN和Faster R-CNN上做了对比实验,结果如下表2和表3所示,可以看出FPN的效果比单尺度特征更好,而且在小目标的检测中具有良好的表现。

在COCO比赛上的检测结果:

此外,将FPN用于实例分割也具有很好的效果,其结构及结果对比如下:

论文阅读 | FPN:Feature Pyramid Networks for Object Detection的更多相关文章

  1. 【Network Architecture】Feature Pyramid Networks for Object Detection(FPN)论文解析(转)

    目录 0. 前言 1. 博客一 2.. 博客二 0. 前言   这篇论文提出了一种新的特征融合方式来解决多尺度问题, 感觉挺有创新性的, 如果需要与其他网络进行拼接,还是需要再回到原文看一下细节.这里 ...

  2. 『计算机视觉』FPN:feature pyramid networks for object detection

    对用卷积神经网络进行目标检测方法的一种改进,通过提取多尺度的特征信息进行融合,进而提高目标检测的精度,特别是在小物体检测上的精度.FPN是ResNet或DenseNet等通用特征提取网络的附加组件,可 ...

  3. Feature Pyramid Networks for Object Detection比较FPN、UNet、Conv-Deconv

    https://vitalab.github.io/deep-learning/2017/04/04/feature-pyramid-network.html Feature Pyramid Netw ...

  4. Feature Pyramid Networks for Object Detection

    Feature Pyramid Networks for Object Detection 特征金字塔网络用于目标检测 论文地址:https://arxiv.org/pdf/1612.03144.pd ...

  5. 论文阅读笔记三十三:Feature Pyramid Networks for Object Detection(FPN CVPR 2017)

    论文源址:https://arxiv.org/abs/1612.03144 代码:https://github.com/jwyang/fpn.pytorch 摘要 特征金字塔是用于不同尺寸目标检测中的 ...

  6. FPN(feature pyramid networks)

    多尺度的object detection算法:FPN(feature pyramid networks). 原来多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征 ...

  7. FPN-Feature Pyramid Networks for Object Detection

    FPN-Feature Pyramid Networks for Object Detection 标签(空格分隔): 深度学习 目标检测 这次学习的论文是FPN,是关于解决多尺度问题的一篇论文.记录 ...

  8. Parallel Feature Pyramid Network for Object Detection

    Parallel Feature Pyramid Network for Object Detection ECCV2018 总结: 文章借鉴了SPP的思想并通过MSCA(multi-scale co ...

  9. 【CV论文阅读】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    由RCNN到FAST RCNN一个很重要的进步是实现了多任务的训练,但是仍然使用Selective Search算法来获得ROI,而FASTER RCNN就是把获得ROI的步骤使用一个深度网络RPN来 ...

随机推荐

  1. Linux-shell-算术运算{expr、bc、dc、(( ))和[ ]}

    Linux-shell-算术运算{expr.bc.dc.(( ))和[ ]} 摘自: https://www.cnblogs.com/snowsolf/p/3325235.html 在Linux下做算 ...

  2. python nose的html报告优化

    用的是nose的nose-html-reporting (0.2.3)插件生成报告.用了bootstrap前端框架,加入了开始时间和计算持续时间,及其本地化. 优化后的显示效果: 代码地址

  3. Makefile模板

    CC = gcc LD = gcc CFLAGS = -Wall -c LDFLAGS = SRC_DIRS = src test INC_DIRS = inc OBJ_DIR = obj OUT_D ...

  4. Altera SOPC FrameBuffer系统设计教程

    Altera SOPC FrameBuffer系统设计教程 小梅哥编写,未经授权,严禁转载或用于任何商业用途 在嵌入式系统中,LCD屏作为最友好的人机交互方式,被大量的应用到了各个系统中.在基于ARM ...

  5. Gym - 100971J ——DFS

    Statements Vitaly works at the warehouse. The warehouse can be represented as a grid of n × mcells, ...

  6. JAVA并发设计模式学习笔记(二)—— Single Threaded Execution Pattern

    注:本文的主要参考资料为结城浩所著<JAVA多线程设计模式>. 单线程执行模式(Single Threaded Execution Pattern)是最简单的多线程设计模式,几乎所有其他的 ...

  7. 一类适合初学者的DP:最大子段和与最大子矩阵

    最近在水简单DP题,遇到了两道层层递进的DP题,于是记录一下 一.最大子段和 题意: 给出一个长度为n(n<=1e5)的序列,求连续子段的最大值 比如说2 3 -4 5 的最大值是6  而 2 ...

  8. VC++下的Unicode编程

    ASCII是用来表示英文字符的一种编码规范.每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH). 其实,英文字符并没有那么多,一般只用前128个(00H ...

  9. Fiddler手机https抓包

    Fiddler手机抓包:https://blog.csdn.net/wangjun5159/article/details/52202059 fiddler 使用说明:https://www.cnbl ...

  10. delphi Form显示先后问题