论文地址: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. 常用工具类——StringUtils

    /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...

  2. sqlplus 简单的几个查询语句

    sqlplus 是用来和oracle进行交互的工具,可以在电脑端使用,也可以在服务器使用 常用命令    show        显示SQL Plus中的信息 connect        先无条件断 ...

  3. Android view状态保存

    为什么我们需要保存View的状态? 这个问题问的好!我坚信移动应用应该帮助你解决问题,而不是制造问题. 想象一下一个非常复杂的设置页面: 这并不是从一个移动应用的截图(这不是典型的win32程序吗.. ...

  4. DFS实现全排列

    复习一下DFS实现全排列,具体思想见:https://www.cnblogs.com/chiweiming/p/9279858.html public class Main{ static int a ...

  5. Mysql企业实战

    ==========================业务垂直分割:1>介绍说明: 随着公司的业务规模扩展,DBA需要根据企业数据业务进行切割,垂直切割又称为纵向切割,垂直数据切割是根据企业网站业 ...

  6. alpha七天冲刺计划

    alpha七天冲刺计划(更新ing) 第一天:https://www.cnblogs.com/renluqian/p/9895895.html 第二天: 第三天: 第四天: 第五天: 第六天: 第七天 ...

  7. MVC4 路由解析 同名Controller的解决方案

    通常我们在MVC中通过Area建立子站的时候会有 controller名称重复的情况,这是后如何区分路由优先级, 我们知道 在Route对象中存在RouteValueDictionary 类型的Dat ...

  8. Oracle数据表转换为Shapefile(二)

    在上一篇博文<Oracle数据表转换为Shapefile(一)>中详细描述了一种基于Oracle数据表生产Shapefile的技术方法,本文同样以详细图解的方式描述一种更便捷的方法来完成同 ...

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

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

  10. c# mvc 第三方定时 FluentScheduler

    开头无关内容,可略过: 最近工作和生活都忙的不可开交了. 工作和生活上都不太顺利,5月底出了车祸回家养伤.6月忙着今年的大事. 给自己鼓鼓励吧 最近重拾nodejs和python,也给自己动力,继续学 ...