Feature Pyramid Networks for Object Detection
- 摘要
- 引言
- 2 相关工作
- 3 FPN
- 4 应用
摘要
特征金字塔是识别系统中用于检测不同尺度对象的基本组件。但是,最近的深度学习对象检测器已经避免了金字塔表示,部分原因是它们在计算和内存方面都很密集。在这篇论文中,我们利用深度卷积网络的固有多尺度、金字塔层次结构来构建特征金字塔,额外的成本几乎可以忽略不计。我们开发了一种自顶向下的架构,通过横向连接来构建所有尺度的高级语义特征图。这种架构被称为特征金字塔网络(FPN),在多个应用中作为通用特征提取器显示出显著的改进。在基本的Faster R-CNN系统中使用FPN,我们的方法在COCO检测基准上实现了最先进的单模型结果,无需任何额外的技巧,超过了所有现有的单模型条目,包括COCO 2016挑战赛的获胜者。此外,我们的方法可以在GPU上以6 FPS的速度运行,因此是一种实用且准确的多尺度对象检测解决方案。代码将公开提供。
引言
识别不同尺度的物体是计算机视觉中的一个基本挑战。基于图像金字塔构建的特征金字塔(简称为特征化图像金字塔)构成了一种标准解决方案的基础【1】(图1(a))。这些金字塔在某种意义上是尺度不变的,因为物体的尺度变化可以通过在金字塔中移动其层级来抵消。直观上,这一特性使得模型能够通过在不同位置和金字塔层级上扫描,检测出各种尺度范围内的物体。
在手工设计特征的时代,特征化图像金字塔被广泛使用【5,25】。它们是如此关键,以至于像DPM【7】这样的目标检测器需要密集的尺度采样(例如,每个倍频有10个尺度)才能取得良好的效果。在识别任务中,手工设计的特征已经很大程度上被深度卷积网络(ConvNets)计算的特征所取代【19,20】。除了能够表示更高级别的语义外,ConvNets还对尺度变化更具鲁棒性,从而有助于通过单一输入尺度的特征进行识别【15,11,29】(图1(b))。但即便具备这种鲁棒性,金字塔仍然是获得最准确结果所必需的。在最近的ImageNet【33】和COCO【21】检测挑战中,所有顶尖的参赛作品都使用了特征化图像金字塔的多尺度测试(例如【16,35】)。对图像金字塔的每一层进行特征化的主要优势在于,它生成了一个多尺度特征表示,其中所有层级都具有较强的语义,包括高分辨率层级。
图1. (a) 使用图像金字塔构建特征金字塔。特征是在每个图像尺度上独立计算的,这样做速度较慢。(b) 近期的检测系统选择仅使用单一尺度特征进行快速检测。© 另一种方法是重用ConvNet计算出的金字塔特征层级,将其视为特征化的图像金字塔。(d) 我们提出的特征金字塔网络(FPN)与(b)和©一样快速,但更加准确。在此图中,特征图由蓝色轮廓表示,较粗的轮廓表示语义上更强的特征。
尽管如此,对图像金字塔的每一层进行特征化仍然存在明显的局限性。推理时间显著增加(例如,增加四倍【11】),这使得这种方法在实际应用中变得不切实际。此外,在图像金字塔上端到端训练深度网络在内存方面也是不可行的,因此如果使用图像金字塔,它们只在测试时使用【15,11,16,35】,这在训练和测试时间推理之间造成了不一致性。出于这些原因,Fast R-CNN和Faster R-CNN【11,29】在默认设置下选择不使用特征化图像金字塔。
然而,图像金字塔并不是计算多尺度特征表示的唯一方法。深度卷积网络(ConvNet)逐层计算特征层次结构,随着子采样层的引入,特征层次结构具有固有的多尺度、金字塔形状。这种网络内部的特征层次结构生成了不同空间分辨率的特征图,但由于深度不同而引入了巨大的语义差异。高分辨率特征图具有低级特征,这些特征会削弱其在目标识别中的表示能力。
单次检测器 (SSD) [22] 是首次尝试将卷积网络(ConvNet)的金字塔特征层次结构视为特征化图像金字塔的工作之一(图1©)。理想情况下,SSD风格的金字塔将重用在前