【论文简述及翻译】Feature Pyramid Networks for Object Detection(CVPR 2017)
一. 论文简述
1. 第一作者: Tsung-Yi Lin
*2. 发表年份:
**3. 发表期刊:**CVPR
4. 关键词: CNN、金字塔网络、跳跃连接、目标检测
5. 探索动机: 特征金字塔是识别系统中用于检测不同尺度目标的关键组件。为了有效处理小物体,在传统方法中使用图像金字塔是在训练或测试阶段通过对其图像进行多尺度变化来增强表现的。然而这带来了巨大的计算负担。相比之下,在现代深度学习的目标检测技术中已普遍摒弃了使用金字塔表示这一做法。
工作目标:能否借助卷积网络的层次结构体系来提高特征提取效率?
7. 核心思想: 我们基于深度卷积网络固有的多层次、分层结构来构建低计算开销的特征金字塔,并采用自上而下的横向连接设计,在各个尺度上生成高质量的语义特征图。FPN是一种旨在提升识别精度与运行效率的特征提取模块
8. 具体实现流程如下: 对输入的特征图持续进行下采样处理后,在四个不同尺度的空间位置形成了具有高语义特性的特征层级结构;随后对各层级图像执行2倍放大处理,并通过逐元素求和运算将放大后的图像模块与相应层次的自上而下模块(经1×1卷积降维处理)融合在一起;反复执行这一系列操作直至达到最佳的空间分辨率;最后将其与尺寸相同的基特征层叠加以增强目标检测性能
9. 实验结果: RPN方法及Fast/Faster RCNN均展现出显著的性能提升效果。此外,在训练与测试的时间消耗上与常规Faster RCNN基本保持一致。由此可见,在图像特征金字塔领域中选择其作为较为有效的替代方案将是合适的
10.论文 &代码下载:
该论文提出了一种基于特征金字塔网络的实例分割方法,并在多个数据集上进行了广泛的实验验证
https://github.com/jwyang/fpn.pytorch
二. 论文翻译
Feature Pyramid Networks for Object Detection
摘要
特征金字塔构成了识别系统中用于检测不同尺度目标的核心模块。然而,在当前的研究中逐渐被放弃使用金字塔表示的原因在于其计算量大且内存占用高。本文提出了一种基于自顶向下架构的新结构,在各个尺度上生成高度抽象且丰富的语义特征图。通过这种架构,在不添加任何额外组件的情况下,在COCO基准数据集上实现了超越现有所有单模型性能的最佳结果。我们的方法不仅能在GPU上实现6帧每秒(FPS)的高效运行速度,并且能够精准地应对多尺度目标检测这一复杂任务。
1. 介绍
分辨不同尺度的目标在计算机视觉领域被视为一个根本性难题。基于图像金字塔构建的特征化过程(简称特征金字塔)为标准解决方案奠定了基础,并见于图1(a)。这些结构具有自相似性特点,在应对目标尺寸变化时采用了层级递进的方式进行适应。从直观角度来看,在位置和层次维度上对模型进行扫描操作使得其能够有效地检测到不同尺寸的目标

(a)基于图像金字塔的方法形成了一个层级式的特征求取体系,在此过程中不同尺度下独立地提取出各层特征,并由于计算复杂度较高而导致运算速度较慢。(b)当前主流的检测系统倾向于仅依赖单一尺度下的特徵来进行快速判别。(c)另一种技术路径类似于通过反复应用ConvNet模型来生成层次化的金字塔式特徵结构,并将其视为一种自底向上的多级特徵提取方式。(d)本研究提出了一种新的网络架构——FPN(Feature Pyramid Network),其相较于现有技术方案具备更为高效的特徵融合能力同时兼顾了各层特徵间的语义关联性,并在实验结果中展现了显著优越性。
在人工设计时代里广泛使用的是一种被称为"特征化图像金字塔"的技术方案,在这一时代背景下其重要性使得基于尺度采样的目标检测器必须进行密集采样(如每级10个尺度)才能取得良好效果。相较于传统的工程特征,在深度卷积网络(ConvNets)计算出的特征基础上得到了显著替代其不仅能够表示更高层次的语义信息而且对尺度变化更具鲁棒性从而能够在单一输入尺度上实现可靠的识别性能(图1(b))。尽管具有这些优势但目前该方案仍然需要得到最准确的结果以满足现代计算机视觉应用的需求近年来,在ImageNet和COCO检测挑战中取得优异成绩的各种方法均采用了针对多尺度特征化的策略。
然而,特征化图像金字塔在其各个层级均存在明显的缺陷.该方法导致推理时间明显提高(例如,大约四倍[11]),从而使其难以在实际应用中得到广泛应用.另一方面,基于图像金字塔构建端到端深度学习模型会面临内存方面的限制,因此即使采用该方法,也只能将其应用于测试阶段,而无法实现有效的训练与测试阶段推理一致性.鉴于上述原因,Fast和Faster R-CNN选择放弃特征化图像金字塔这一方案.
然而,并非仅用于生成多尺度特征表示的方法是图像金字塔这一技术手段。通过逐步生成层次化的特征表示,在神经网络中实现降采样操作时所呈现出来的天然多层次结构能够自然地导出各个空间分辨率下的特征图.尽管这种架构能够有效提取不同层次的空间信息但由于各层次间存在的显著语义差异可能导致某些细节信息在较高分辨率图像中被过度强调从而影响目标识别性能
单次检测器(SSD)最先尝试在ConvNet的金字塔特征层级中引入一个特徵化图像金字塔。这种架构类似于一种经过多级特徵提取后的图像金字塔结构。在理想情况下,默认情况下或理论上讲,在没有重新计算的情况下,默认地重复利用不同层次已有的多尺度特徵图。这样操作成本为零。为了防止利用低层次或基础级别的特徵,则采用了一种新的架构设计——从网络架构中的顶层开始逐步构建,例如VGG网络中的conv4_3层。这种设计表明,在检测小型目标时
本文旨在自然地利用ConvNet中特征层级结构呈现出金字塔形状的同时构建一个在各个尺度上都具备丰富语义的特征金字塔。为了实现这一目标我们所采用的架构将低分辨率且高语义的特征与高分辨率但低语义的特征通过自顶向下的连接路径以及横向连接整合在一起。(图1(d))由此形成一个特性丰富的多层结构能够在单个输入图像尺度下迅速完成构建过程换句话说我们展示了一种方法可以替代传统的基于图像像素级特化的图像金字塔从而在不牺牲表征能力处理速度或内存需求的情况下提升网络性能
最近的研究趋势倾向于模仿自上而下架构及跳接连接模式,并构建单个高层次特征图并赋予其高分辨率用于预测(如图2所示顶部部分)。与之不同的是我们提出的方法基于此架构形成特征金字塔布局其中各个层级均独立完成预测任务(如图2底部)。值得注意的是我们的模型采用了层次化图像表征方式这在现有研究中尚未深入探讨

图2。顶部:包含跳跃连接的自顶向下的架构,在最佳层次上完成预测任务(例如,[28])。底部:与之相似的是我们的模型架构,在其基础上被设计成特征金字塔,并各自独立地完成预测任务。
我们对被称为特征金字塔网络(FPN)的方法进行了评估,在各种系统中用于检测与分割任务。经过优化后,在具有挑战性的COCO检测基准数据集上实现了最新单模型效果仅依赖于FPN与基础Faster R-CNN架构在消融实验中发现,在边界框建议方面平均召回率显著提升至8个百分点以上;在目标检测任务方面进一步将COCO型平均精度改进2.3个百分点并超越基于ResNet的单尺度基准线
此外, 我们的金字塔结构能够在各个尺度上实现统一性端到端的统一性训练, 并且在统一性和一致性上实现了良好的平衡点; 然而, 在采用图像金字塔作为输入时会面临内存不足的问题; 显然, FPN相比现有的最先进的技术能够显著提升精度; 此外, 这一改进无需额外增加统一性基准测试的时间即可实现, 并将为未来的研究与应用奠定基础; 我们的代码将会公开发布
**2.**相关工作
人工设计出的独特特征与早期神经网络体系
Deep ConvNet是一种先进的目标检测系统。
采用多层次结构的一种最新技术能够提升检测与分割性能吗?一些最新的技术巧妙地利用其层次结构来提升检测与分割性能吗?其中FCN通过累加各尺度特征的部分分数进行语义分割计算吗?另一种变体——Hypercolumns则专注于目标实例的精细分割吗?在预测过程中(HyperNet、ParseNet及ION等方法)会整合这些转换后的特征吗?SSD与MS-CNN则能够直接识别各层次的目标位置,并无需对这些特征进行融合处理吗?
最近有一些先进的方法通过跨越不同分辨率与语义层级的低级特征图之间建立连接来实现跨分辨率与语义层次信息的有效融合。这些方法中包含用于分割的U-Net模型以及SharpMask算法,并且Recombinator网络则应用于人脸检测任务中;此外还有堆叠沙漏网络被用来完成关键点估计工作。Ghasia等人提出了基于拉普拉斯金字塔表示的方法来逐步细化分割过程;尽管这些方法采用了具有层次结构的设计模式(如图2所示),但它们与传统的特征化图像金字塔有所不同:传统的图像金字塔在各个尺度层面上的操作是相互独立进行的;实际上,在图2所示的传统图像金字塔架构中(即顶部部分),即使如此复杂的多尺度操作也需要在整个架构范围内完成目标识别任务。
**3.**特征金字塔网络
主要目标是通过卷积网络构建层次化的特征金字塔,在整个训练过程中逐步提取并优化高层次语义信息。这种层次化结构能够有效地捕捉不同尺度的对象特性,并在此基础上形成高层次语义的理解模型。在此框架下,我们重点研究滑动窗口提议机制(即Region Proposal Network或RPN)以及基于区域检测的方法(Fast R-CNN)。在第六节我们将这一架构扩展至实例分割任务。
我们的方法采用了任意尺寸的单尺度图像作为输入,并通过全卷积神经网络架构输出多层适当尺寸的特征图。该过程不受主干卷积结构的影响(如[19,36,16]所示)。在本文中展示了基于ResNets架构取得的有效结果。如前述所述。
自上而下的路径。 通过主干卷积网络进行前馈计算的方式是自顶向下地处理信息流。其计算出一个特征层级结构,这个结构由不同尺度(缩放比例为2)构成的不同层次组成。通常存在多层生成相同尺寸大小输出图像,并认为这些层处于同一网络阶段。针对我们构建的特点征金字塔,在每个阶段我们定义一个金字塔级数,在每一步骤中最后一层输出图像作为参考集,并对其进行补充以构建我们的金字塔。这种选择是合理自然合理的。
对于ResNet架构,在每个阶段我们都采用了最后一个残差模块所产生的特征激活响应。具体而言,在conv2、conv3、conv4以及conv5层中产生的响应会被我们提取出来,并将其分别标记为{C2, C3, C4, C5}。值得注意的是,在经过不同深度处理后(对应的空间分辨率分别为4、8、16和32像素),我们发现将这些最终残差模块的结果作为独立单元进行处理能够显著提升模型性能。然而,在实际应用中我们发现直接整合所有的中间特征会产生过高的内存消耗问题,并因此排除了对conv1层的考虑
上下文关联模块融合来自不同层级且具有一致空间尺度的信息

图3. 构建块说明了横向连接和自顶向下的路径,通过加法合并。
图3展示了我们自顶向下构建特征图的过程。基于低分辨率的特征图作为基础输入后,在两倍空间分辨率下进行了上采样(这里采用最邻近插值)。随后通过逐元素相加的方式将上采样后的图像与经过1×1卷积降维后的自下而上分支图像进行融合迭代这一操作直至达到最佳分辨率。为了初始化这一迭代过程我们只需在C5层添加一个1×1卷积层生成最低分辨率下的特征图即可之后在每一个融合分支中应用一个3×3卷积层以减少上采样过程中可能产生的混叠效应从而生成最终完整的特征图集合{P2 P3 P4 P5}这些分别对应于{C2 C3 C4 C5}各分支并保持一致的空间尺寸特性
传统特征图像金字塔采用了共享分类器/回归器使得各层保持一致;本研究设定各特征图中的通道数为d;本研究设计的各额外卷积层均具备256个通道;通过大量实验验证这些额外层的影响非常有限。
简洁性是我们设计的核心要素之一。通过测试发现我们的系统在多个设计选项上表现出良好的适应能力。在更为复杂的模块中已经进行了相关测试(例如,在每一步都采用了多层残差结构进行连接),结果显示优化效果明显提升。由于本文的重点并不在于优化连接模块本身(而是集中在其他关键组件),因此我们采用了较为简单的结构来实现目标。
4. 实验
略
**7.**总结
我们开发出一个简洁明了的架构,在ConvNets领域中构建特征金字塔。该方案在多个稳健的基础测试套件以及若干竞赛中取得了显著成绩,并且无需计算图像金字塔就能显著提升性能。这一创新性的解决方案不仅为特征金字塔的研究与应用提供了有效的途径,在实际应用中展现出显著优势。此外,在多尺度问题的确切解决方面仍需依赖于金字塔表征法这一更为基础的方法论支持。
参考
神经网络学习笔记29:特征图谱-Feature Pyramid Networks(FPN)
