论文地址: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. ConfigureAwait(false)避免上下文延续

    之前MVC利用MvcHtmlString封装通用下拉菜单,菜单数据需要从webapi获取,自然用到了 await Http Client.GetAsync(Url)方法,前端 @Html.Select ...

  2. IE6,7,8 CSS HACK

    1.区别IE和非IE浏览器CSS HACK代码 #divcss5{ background:blue; /*非IE 背景藍色*/ background:red \9; /*IE6.IE7.IE8背景紅色 ...

  3. Grunt 与WebStrom 集成

    为了不想使用命令行的方式开着grunt,打算将Grunt命令集成WebStrom 中 . 1.将配置好的Gruntfile文件放到项目的根目录下.. 2.File-setting-Extental T ...

  4. numpy.convolve()

    卷积函数: numpy.convolve(a, v, mode='full') Parameters: a : (N,) array_like First one-dimensional input ...

  5. vs项目属性中的包含目录和库目录以及附加依赖项全都配置正确了,却还是提示:无法解析的外部符号

    这种情况下,很大可能是lib文件有问题 我是用vs编译下载的源代码文件得到的lib出现了如题的情况, 后来去网站上直接下载了lib文件,竟然解决了!-.-

  6. WebApi跨域请求

    在实际开发中 会有提供webapi给前端js 直接调用的情况, 这时候就会有存在跨域的情况, 解决方案: 在Global中添加代码 protected void Application_BeginRe ...

  7. Java算法 -- 顺序表

    顺序表结构定义:就是按照顺序存储方式存储的线性表 1.定义一个顺序表的基本数据: static final int MAXLEN = 100; Class Student{ private Strin ...

  8. Javascript 链式作用域 function fn(){}和var fn=function(){}区别

    其实对于Javascript链式作用域的描述,包括,JS权威指南,都有些太冗长了--但是很准确:JavaScript中的函数运行在他们被定义的作用域里,而不是他们被执行的作用域里. 这句话有点难懂,但 ...

  9. 【转】UI自动化测试框架之Selenium关键字驱动

    原网址:https://my.oschina.net/hellotest/blog/531932#comment-list 摘要: 自动化测试框架demo,用关键字的形式将测试逻辑封装在数据文件中,测 ...

  10. table数据跑马灯效果

    1.使用marquee标签实现普通文本字符串跑马灯效果. <marquee behavior="scroll" scrollamount="3" styl ...