Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

07 December 2018

Authors: Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun

Abstract: Existing deep convolutional neural networks(CNNs) require a fixed-size(e.g., 224x224) input image. This requirement is “artificial” and may reduce the recognition accuracy for the images or sub images of an arbitrary size/scale. In this work, we equip the networks with another pooling strategy, “spatial pyramid pooling”, to eliminate the above requirement. The new network structure, called SPP-net, can generate a fixed-length representation regardless of image size/scale. Pyramid pooling is also robust to object deformations. With these advantages, SPP-net should in general improve all CNN-based image classification methods. On the ImageNet 2012 dataset, we demonstrate the SPP-net boosts the accuracy of a variety architectures despite their different designs. On the Pascal VOC 2007 and Caltech101 datasets, SPP-net achieves state-of-the-art classification results using a single full-image representation and no fine-tuning.

The power of SPP-net is also significant in object detection. Using SPP-net, we compute the feature maps from the entire image only once, and then pool features in arbitrary regions(sub-images) to generate fixed-length representations for training the detectors. This method avoids repeatedly computing the convolutional features. In processing test images, our method is 24-102x faster than the R-CNN method, while achieving better or comparable accuracy on Pascal VOC 2007.

In ImageNet Large Scale Visual Recognition Challenge(ILSVRC) 2014, our methods rank #2 in object detection and #3 in image classification among all 38 teams. This manuscript also introduces the improvement made for this competition.

摘要: 现有的深度卷积神经网络(CNNs)需要固定大小(例如224 x 224)的输入图像。这种要求是“人工的”,并且可能降低对任意大小、比例的图像或子图像的识别精度。在本工作中,我们给网络配备了另一种池化策略,“空间金字塔池化”,来消除上述要求。新的网络架构,成为SPP-net,可以产生固定长度的表示,而不管图像的大小/规模。金字塔池化对物体变形也是鲁棒的。利用这些优点,SPP-net一般应该可以改进所有基于CNN的图像分类方法。在ImageNet 2012数据集上,我们证实了SPP-net图稿了各种架构的准确性,尽管它们的设计不同。在Pascal VOC2007和Caltech101数据集上,SPP-net使用单个全图像表示,在没有微调的情况下,获得了最高的分类结果。

SPP-net在目标检测中也具有重要意义。利用SPP-net我从整个图像中只计算一次feature maps,然后pool任意区域(子图像)的特征,用来生成训练检测器的固定长度表示。这种方法避免了重复计算卷积特征。在处理测试时,我们的方法比R-CNN方法快24-102倍,同时在Pascal VOC 2007实现了更好的或相当的精度。

在2014年的ImageNet大规模视觉识别挑战赛(ILSVRC)中,我们的方法在所有38个团队中,目标检测获得了第2,图像分类获得了第3。 这篇手稿还介绍了这次比赛的改进。

原有的CNN需要固定尺寸(如224 x 224)的输入,这限制了输入图像的纵横比和图像的规模。解决的主要办法是通过cropping或warping。如Figure (top)。cropping或许包含不了整个object,warping可能会导致几何扭曲。从而导致识别精度损失。而且,在一种尺度训练的模型可能不适合其他尺度的objects。

卷积层的输入可以是任意尺寸的,CNN需要固定尺寸的原因在于全连接层需要固定长度的输入表示,spatial pyramid pooling(SPP)的产生就是为了解决这个问题。

Figure 3展示了SPP模块。在最后一个卷积层输出后的feature maps上,通过SPP模块产生固定长度的特征表示。SPP通过不同level(gloabal, half, smaller)的pooling,分别产生固定长度的bins,所以经过SPP模块,可以产生固定长度(kM,k是最后一个卷积层输出的feature maps的个数, M是bins的个数)的的特征。

SPP模块输出固定长度的特征给全连接层。Figure 1 (bottom)展示了引入SPP模块后的网络的架构。

SPP-net不仅在测试时从任意尺寸的图像产生表示,而且可以在训练时允许输入任意尺寸的图片。可变尺寸图像的训练增加了尺度不变性,减少了过拟合。关于多尺度训练,论文中提到了一些小trick,这里就不介绍了。

SPP-net也可以用到目标检测。我们从整个图像中提取一次feature maps,然后我们使用SPP作用于候选框(candidate window)对应的feature maps进而生产固定长度的表示。如Fig.4。相比于R-CNN从图像区域提取特征,SPP从feature maps逐窗口的提取特征。

在引入SPP的目标检测任务训练和测试时,也有很多trick,就不一一介绍了,等实战有需要时再来翻阅。