Feature Pyramid Networks for Object Detection

作者: Tsung-Yi Lin, Piotr Dollár, Ross Girshick, Kaiming He, Bharath Hariharan, Serge Belongie

机构:

  1. Facebook AI Research (FAIR)
  2. Cornell University and Cornell Tech

论文地址:https://arxiv.org/abs/1612.03144

2016年CVPR

0. 摘要

Feature pyramids are a basic component in recognition systems for detecting objects at different scales. But recent deep learning object detectors have avoided pyramid representations, in part because they are compute and memory intensive. In this paper, we exploit the inherent multi-scale, pyramidal hierarchy of deep convolutional networks to construct feature pyramids with marginal extra cost. A top-down architecture with lateral connections is developed for building high-level semantic feature maps at all scales. This architecture, called a Feature Pyramid Network (FPN), shows significant improvement as a generic feature extractor in several applications. Using FPN in a basic Faster R-CNN system, our method achieves state-of-the-art single-model results on the COCO detection benchmark without bells and whistles, surpassing all existing single-model entries including those from the COCO 2016 challenge winners. In addition, our method can run at 5 FPS on a GPU and thus is a practical and accurate solution to multi-scale object detection. Code will be made publicly available.

特征金字塔是识别系统中检测不同尺度目标的一个基本组成部分。但最近的深度学习目标检测器避免了金字塔表示,部分原因是它们的计算和内存密集。在本文中,我们利用深度卷积网络固有的多尺度、金字塔式的层次结构来构建特征金字塔,而不需要额外的成本。我们开发了一个具有横向连接自上而下的架构,用于在所有尺度上构建高水平的语义特征图。这种架构被称为特征金字塔网络(FPN),作为一种通用的特征提取器,在一些应用中显示出明显的改进。在基本的Faster R-CNN系统中使用FPN,我们的方法在COCO检测baseline上取得了最先进的单模型结果,没有任何花哨的东西,超过了所有现有的单模型作品,包括COCO 2016挑战赛获奖者的作品。此外,我们的方法可以在GPU上以5 FPS的速度运行,因此是一个实用而准确的多尺度目标检测解决方案。代码将公开提供。

1. 前瞻

1.1 FPN在Faster R-CNN上的效果

Faster R-CNN如果使用了FPN结构,在COCO的AP@0.5~0.95上可以提升2.3%;在PASCAL的AP@0.5是可以提升3.8%。这说明FPN结构对于提升目标检测网络性能很有效果。

1.2 不同的图像金字塔方案对比

Figure 1. (a) Using an image pyramid to build a feature pyramid. Features are computed on each of the image scales independently, which is slow. (b) Recent detection systems have opted to use only single scale features for faster detection. © An alternative is to reuse the pyramidal feature hierarchy computed by a ConvNet as if it were a featurized image pyramid. (d) Our proposed Feature Pyramid Network (FPN) is fast like (b) and ©, but more accurate. In this figure, feature maps are indicate by blue outlines and thicker outlines denote semantically stronger features.

图1. (a) 使用图像金字塔来建立一个特征金字塔。特征是在每个图像尺度上独立计算的,这很慢。 (b) 最近的目标检测网络选择了只使用单一尺度的特征,以加快检测速度。© 另一种方法是重新使用由ConvNet计算的金字塔特征层次,就像它是一个特征化的图像金字塔。(d) 我们提出的特征金字塔网络(FPN)与(b)和©一样快速,但更准确。在该图中,特征图由蓝色轮廓表示,较粗的轮廓表示语义上更强的特征

1.2.1 (a) 特征化的图像金字塔

因为要检测不同尺度的图片,所以可以将图片缩放到不同的尺度, 如 (a) 所示, 将特征图缩放到了 4 个不同的尺度. 然后需要对每种不同尺度的特征图以此通过目标检测网络得到检测结果.

因为预测多少个尺度的图片, 就要检测多少次不同尺度的图片.这种方法的效率很明显是非常低的.

1.2.2 (b) 单一的尺度的图片

也就是Faster R-CNN中使用的策略, 网络检测就使用一种尺度的图片. 图b的优点很明显, 因为只有一种尺度的图片, 因此速度会有优势. 但是因为没有不同尺度的图片, 所以对小目标的预测效果并不是很好.

图片通过backbone后会进行下采样.

1.2.3 © 金字塔型特征层级

图c中的方案和SSD的方案类似. 首先使用一张图片(一种尺度)输入给backbone, backbone在正向传播中会得到不同尺度的特征图, 然后对这些不同尺度的特征图分别进行预测. 相比于(a), 这样的处理方案无疑是更好的.

1.2.4 (d) FPN (Feature Pyramid Network, 特征金字塔网络结构)

图(d) 和 图©有些类似, 但并不想图©在不同尺度的特征图上进行简单地预测, 而是将不同尺度的特征图进行融合后, 再进行预测.

根据 1.1 中的结果可以看到, FPN的确是可以提升网络的检测效果的.

2. FPN (Feature Pyramid Network, 特征金字塔网络结构)

前面我们提到, 我们需要对不同尺度的特征图进行融合, 那么问题来了 – 该如何进行融合呢?

Figure 3. A building block illustrating the lateral connection and the top-down pathway, merged by addition.

图3. 一个说明横向联系和自上而下途径的构件,通过加法合并。

2.1 FPN工作细节

上图中,每一个需要融合的特征图的尺寸其是人为设计的, 一般而言, 在backbone中的特征图的下采样率为2.

在FPN结构, 对于每一个backbone中的特征图都会先使用一个 1×1的卷积层处理. 使用1×1卷积层的目的是调整不同特征图的channel.

因为在融合的时候采用的是加法 ⊕\oplus⊕, 所以在融合之前需要保证不同特征图的shape是相同的. 而1×1的卷积层是保证它们的channel是一样的.

接下来我们需要将特征图的尺寸统一.

先对于最上面的特征图(最高层的)需要进行2倍的上采样, 使其尺寸×2 (上采样过程不会改变channel); 再对中间特征图进行2×的上采样.

2.2 两倍上采样实现过程

这里的上采样实现非常简单, 并没有使用转置卷积 (Transposed Convolution/ Deconvolution), 而是使用 邻近插值算法 实现的, 如下所示:

for idx in range(len(x) - 2, -1, -1):inner_lateral = sefl.get_result_from_inner_blocks(x[idx], idx)feat_shape = inner_lateral.shape[-2:]inner_top_down = F.interpolate(last_inner, size=feat_shape, mode="nearest")  # 邻近插值算法last_inner = inner_lateral + inner_top_downresult.insert(0, self.get_result_from_layer_blocks(last_inner, idx))

2.3 FPN细节结构

在通过1×1卷积和上采样之后, FPN每个分支的特征图都就可以融合了. 之前图中没有画出来的是后面的3×3卷积. 每一个3×3卷积会对得到的融合后的特征图进行特征图提取, 从而以此得到最终输出 P2, P3, P4, P5.

根据原论文的描述, 最终会在P5的基础上进行下采样, 从而得到 P6.

这里下采样的具体实现也非常简单, 就是MaxPooling.

原论文中, 1×1卷积核的个数为256, 即最终得到的特征图的channel都等于256.

得到P6的Pooling使用的MaxPooling, 而它的池化核大小为1×1, 所以这里换成AVGPooling效果也是一样的

[纯理论] FPN (Feature Pyramid Network)相关推荐

  1. 【目标检测】FPN(Feature Pyramid Network)

    [目标检测]FPN(Feature Pyramid Network) - 知乎Feature pyramid network是CVPR2017年的一篇文章,它在目标检测中融入了特征金字塔,提高了目标检 ...

  2. FPN(Feature Pyramid Network)多尺度目标检测方案

    参考论文:Feature Pyramid Networks for Object Detection 会议水平:CVPR 2017 开源代码:https://github.com/unsky/FPN ...

  3. 目标检测FPN(Feature Pyramid Networks)的使用

    FPN(Feature Pyramid Networks), 论文:Feature Pyramid Network for Object Detection 使用FPN能给网络带来哪些好处呢?根据原论 ...

  4. FPN:feature pyramid networks for object detection

    论文:feature pyramid networks for object detection 论文链接 论文概述: 作者提出的多尺度的object detection算法:FPN(feature ...

  5. Extended Feature Pyramid Network for Small Object Detection

    Extended Feature Pyramid Network for Small Object Detection 论文链接:https://arxiv.org/abs/2003.07021v1 ...

  6. M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network

    参考    M2Det: A Single-Shot Object Detector based on Multi-Level读) - 云+社区 - 腾讯云 目录 一.摘要 二.简介: 1.存在的问题 ...

  7. 卷积神经网络——FPN(Feature Pyramid Networks)介绍

    FPN(Feature Pyramid Networks):特征金字塔网络,是用来提取不同尺度特征图的,提供给后面的网络执行预测任务. 为什么需要FPN呢?简要介绍一下,在目标检测的网络中,要识别不同 ...

  8. 深度学习之 FPN (Feature Pyramid Networks)

    论文题目:Feature Pyramid Networks for Object Detection 论文链接:https://arxiv.org/abs/1612.03144 论文代码:Caffe版 ...

  9. [论文阅读] Cross-layer feature pyramid network for salient object detection

    论文地址:https://dx.doi.org/10.1109/TIP.2021.3072811 发表于:TIP 2021 Abstract 基于特征金字塔(FPN)的模型,以渐进的方式融合语义与显著 ...

最新文章

  1. HDU 4540 威威猫系列故事――打地鼠(DP)
  2. 基于重力补偿的 PD 控制
  3. 3000块你请不到一个农民工,只能请到一个大学生
  4. 限时领取!CSDN夏日惊喜礼包上线啦~
  5. CCNP中单区域OSPF详解(第一部分)
  6. 活的通透的人,会是一个什么样的人?
  7. LeetCode 44.通配符匹配(动态规划)
  8. 电脑上怎么彻底卸载一个软件--Geek Uninstaller
  9. 最最最简单从官方获取最新行政区划代码、区划拼音
  10. php AES加解密
  11. 浅析ERP系统--质量
  12. cortana连不上网络_Alexa,为什么Cortana仍在我的计算机上?
  13. python excel数据处理教程pdf_python对excel操作详解.pdf
  14. 【vscode】常用快捷键
  15. 超融合一体机分布式存储
  16. 用AI变革新药研发,终极目标是延缓衰老,这家创业公司迎来“里程碑”
  17. Python爬虫实战:手机APP数据抓取分析!谁说不能爬取app数据的?
  18. LeetCode代码刷题(17~24)
  19. 产销存报表直接在MB5B上取数
  20. ACM—TC 联合招新赛 Round2

热门文章

  1. 安装grub到U盘分区,实现多系统引导(BIOS,UEFI)
  2. android自定义view之九宫格解锁
  3. 我们眼中的人那是极少数,我们才是大多数人
  4. Python基础语法视频教程全39集,历时1个多月终于更新完毕,需要的拿走!
  5. 如何从 OpenVINO 的主分支构建 Python Wheel 包
  6. GNU m4 教程[转]
  7. 【C++】黑马程序员C++核心编程学习笔记(完结)
  8. ChIP-seq分析流程(基于linux系统)
  9. 解决 java.sql.SQLException:The server time zone value xxx is unrecognized 问题
  10. CTFHub-技能树-HTTP协议-响应包源代码