Feature Pyramid Networks for Object Detection
作者: Tsung-Yi Lin, Piotr Dollar, Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie
短评:借用作者在现场回答问题的一句话,“feature pyramid可以在几乎不增加额外计算的情况下解决多尺度检测问题”。
摘要直译:特征金字塔是识别系统中不同尺度下检测物体的基本组成部分。但是最近的深度学习物体检测器避开了金字塔表征,部分原因是金字塔表征是计算和存储密集的。在该论文中,作者们探索了深度卷积网络内在多尺度特性和金字塔层次体系,得以在少量增加额外开销的情况下构造特征金字塔(feature pyramids)。为了在所有尺度上构建高层次语意特征图,一种带有边缘连接(lateral connections)的自上而下(top-down)的框架被开发出来了。这种框架被叫做特征金字塔网络(Feature Pyramid Network, FPN)。作为一种通用的特征提取器,FPN在几个应用中都展示出显著的性能改进。在基础的Faster R-CNN系统中使用FPN, 无需任何吹嘘,作者们的方法在COCO检测基线任务上达到了目前最高水平的单模型结果,超越目前所有存在的单模型包括那些来自COCO 2016挑战赛的赢家们。除此之外,我们的方法在一个GPU上能够达到每秒6帧,也因此是多尺度物体检测任务中一个实用且精确的解决方法。代码很快就会公开。
Introduction直译:
在计算机视觉中,在广泛而不同的尺度上识别物体是一个基础挑战。特征金字塔建立在图像金字塔(简称为特征化图像金字塔,如上图中的(a))上定性了标准解决方法的基础。从某种意义上来说,这些金字塔是尺度不变的,物体尺度的变化可以通过在金字塔中移动它的层级偏移。直觉上来说,这种特性使得模型能够在广泛的尺度上识别物体,即在位置和金字塔层级上扫描模型。
在手工选特征的时代,特征化图像金字塔是备受倚重的。它对于物体检测器非常关键,比如DPM需要密集尺度采样来达到好的结果(e.g.,每8度10个音阶)。对于识别任务,工程化特征已经被大量的替换为深度卷积网络(ConvNets)计算产生的特征了。除了能够表征高层级语意,ConvNets对尺度不变形也更加鲁棒,因此有利于在单个输入尺度上计算特征来识别(如上图中的(b))。但是即便具有这种鲁棒性,金字塔仍然需要去达到更好的精度结果。目前所有在ImageNet和COCO检测挑战赛上的顶级结果都在特征化图像金字塔上使用多尺度测试。特征化图像金字塔的每一层,这一准则的优点是,它产生了多尺度特征表征,在这种表征上所有层级上都是强语意的,包括高像素层级。
然而,特征化图像金字塔的每一层有显而易见的限制。推理时间增加的太多了(增加了4倍),使得这个方法对于真实的应用并不实际。而且,在一个图像金字塔上训练端到端的深度网络因内存而不可行,所以如果利用,图像金字塔仅仅应用在测试阶段,这也造成了训练阶段推理和测试阶段推理的不一致性。由于这个原因,Fast R-CNN 和 Faster R-CNN都没有在默认设置中用特征化图像金字塔。
However, 图像金字塔不仅仅是计算多尺度特征表征的唯一方法。深度卷积网络同样是一层一层的计算特征层次体系,并且用下采样层,使得特征层次体系内在的具有多尺度,金字塔形状。这种网络内部特征层次体系能产生不同空间像素的特征图,但是由于不同深度而引入了巨大的语意差距。高像素图只拥有低级特征,这损害了他们用于物体识别的表征能力。
SSD是第一个尝试用卷积网络的金字塔特征层次体系的物体检测方法,它是一个金字塔化特征层次体系(上图中的(c))。理想的看,SSD风格的金字塔能够从前馈计算过程中的不同层上重用多尺度特征图,因此是没有额外开销的。但是为了避免用低层级特征,SSD放弃重用已经计算好的层,取而代之的是从网络中的高层级开始建立金字塔(e.g.,VGG net中的conv4_3),之后增加了几个新的层。因此SSD错过了重用特征层次体系中高像素图的机会。作者们展示出,高像素图对于检测小物体的重要性。
很自然地,该论文的目标是提升卷积网络的特征层次体系中金字塔形状,进而创造出一个特征金字塔,这样的特征金字塔能够在所有尺度上具有强语意特性。为了达到这个目标,我们依赖这样的框架,它通过自上而下的的路径(top-down pathway)和边缘连接(lateral connection)能够把低像素、强语意特征和高像素、弱语意特征进行组合(上图中的(d))。得到的结果就是在所有层级上具有丰富语意的特征金字塔并且能够从单输入图像尺度上很快建立起来。换句话说,作者们展示了怎样创建一个网络内的特征金字塔用以代替特征化图像金字塔,而不用牺牲表征能力,速度和内存。
相似的采用自上而下和跳连的框架在最近的研究中很流行。他们的目标是产生一单个良好像素的高层级特征图,并在该特征图上做预测(如图2的上部)。与之相反,作者们的方法提升了框架并作为一个特征金字塔,预测(e.g.,物体检测)在每个层级上是独立作出的(如图2的下部)。我们的方法效仿了特征化图像金字塔,而在该工作中它并没有被探索。(Introduction的接下来部分从略)。
Related Work直译:
手选特征和早期神经网络。原始的SIFT特征是在尺度空间极值上提取的。HOG特征,和后来的SIFT的特征,是在整个图像金字塔上密集计算得到的。这些HOG和SIFT金字塔已经被用于图像分类,物体检测,人体姿势估计等非常多的作品中。快速计算特征化图像金字塔是非常有意义的领域。Dollar et al首次计算系数的采样金字塔来展示快速金字塔计算,之后插值丢失的层级。在HOG和SIFT之前,人脸识别领域早期的工作用到的卷积网络是在图像金字塔上计算浅层网络来跨尺度检测人脸。
深度卷积网络物体检测器:随着现代深度卷积网络的发展,物体检测像Over-Feat和R-CNN在精度方面展示出巨大的提升。OverFeat采用的策略与早期神经网络人脸检测器相似,即在图像金字塔上应用卷积网络作为滑窗检测器。R-CNN采用了基于区域推荐的策略(region proposal-based strategy),这种策略中在用卷积网络分类前,每个推荐区域都被尺度归一化了。SPPnet展示了这样一个基于区域的检测器,它能够在单图像尺度上提取的特征图上更有效的应用。最近的更加精确的检测器方法,比如Fast R-CNN和Faster R-CNN提倡使用单个尺度上计算得到的特征,因为它们在精确度和速度之间做了很好的平衡。然而,多尺度检测仍然表现的更好,特别是对于小物体。
使用多层的方法:最近有非常多的在卷积网络上使用不同层的的方法提升了检测和分割效果。FCN把多个尺度上的每个类别的部分得分加和用于计算语意分割。Hypercolumns用一个相似的方法计算物体实例分割。几个其他的方法(HyperNet, ParseNet, 和ION)在计算预测之前,把多层特征进行连结,这等价于计算转换后的特征的和。SSD和MS-CNN在特征层次体系的多个层上鱼刺物体,而不用组合特征或者得分。
最近也有方法探索边缘/跳跃连接,即将跨像素和语意级结合低层级特征图,包括用于分割的U-Net和Sharp-Mask,用于人脸检测的再结合网络(Recombinator network),用于关键点估计的堆叠沙漏网络(Stacked Hourglass networks). Ghiasi et al.展现了用于FCNs的拉普拉斯金字塔表征(Laplacian pyramid presentation),为再分割带来巨大进展。尽管这些方法采用的框架都带有金字塔似形状,它们与特征化图像金字塔都不相似,因为特征化图像金字塔在每个层级独立做预测(如图2)。事实上,对于金字塔框架(图2的上部),图像金字塔仍然需要跨多个尺度来识别物体。
核心分析:(终于到这一步咯)
该方法把任意大小的单尺度图片作为输入,输出多个层级上按比例大小的特征图,用一种全卷积的范式。这个过程是独立于骨干卷积框架的,在该工作中,骨干网用的是resNets。构建特征金字塔的过程,用到了自下而上路径和自上而下路径,及边缘连接。
对于ResNets,作者们用了每个阶段最后一个残差块输出的特征激活。分别用{ C 2 , C 3 , C 4 , C 5 {C_2, C_3, C_4, C_5} C2,C