论文地址: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. 使用OpenSSL进行转换

    使用OpenSSL进行转换 摘自:https://cloud.tencent.com/developer/ask/29886 这些命令允许您将证书和密钥转换为不同的格式,以使它们与特定类型的服务器或软 ...

  2. CDATA嵌套问题

    在CDATA内部的所有内容都会被解析器忽略.一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束.但是CDATA是不能够嵌 ...

  3. python 中面向对象编程简单总结2

    1.python中继承的特点: (1)总是从一个类继承,默认为object类 (2)不要忘记调用super.__init__方法来初始化父类的方法 def __init__(self,args): s ...

  4. ceph中pool的管理

    1.创建pool 创建ceph pool的命令如下,它的参数包括pool名字.PG和PGP的数量. 若少于5个OSD, 设置pg_num为128. 5~10个OSD,设置pg_num为512. 10~ ...

  5. myeclipse便捷导包方式

    1.将spring框架的core导成如图的方式 2.选中项目右键--bulid path--进入buildpath 3.选择add library 4.选择user library 5.选择user ...

  6. javascript总结31 :DOM概述

    1 JavaScript 三个组成部分 核心(ECMAScript)欧洲计算机制造商协会 描述了JS的语法和基本对象. 文档对象模型(DOM) 处理网页内容的方法和接口 浏览器对象模型(BOM) 与浏 ...

  7. UVa 1608 Non-boring sequences (分治)

    题意:给你一个长度为n序列,如果这个任意连续子序列的中都有至少出现一次的元素,那么就称这个序列是不无聊的,判断这个序列是不是无聊的. 析:首先如果整个序列中有一个只出过一次的元素,假设是第 p 个,那 ...

  8. ScreenCapturePro2 for Joomla_3.4.7-ckeditor4x

    1.1. 与Joomla_3.4.7整合-ck4 示例下载:Joomla_3.4.7,   1.1.1. 添加screencapture文件夹 路径:/media/screencapture   1. ...

  9. C# 生成dll文件 并导入使用

    首先 在unity创建一个脚本 并编写内容,其中需要调用的方法.变量要公有化(也可以直接新建cs文件用编译器打开编译,但要先导入UnityEngine.dll). 然后,复制脚本关闭unity,在外界 ...

  10. 长时间停留在calculating requirements and dependencies

    如果安装插件的时候,Eclipse花费了很长的时间calculating requirements and dependencies(计算需求和依赖性 )这个问题通常就是在点击安装之后显示“Calcu ...