Theoretically, the above network structure can be
trained with standard back-propagation [1], regardless of the input image size. But in practice the GPU
implementations (such as cuda-convnet [3] and Caffe
[35]) are preferably run on ﬁxed input images. Next
we describe our training solution that takes advantage
of these GPU implementations while still preserving
the spatial pyramid pooling behaviors.
Single-size training
As in previous works, we ﬁrst consider a network taking a ﬁxed-size input (224 224) cropped from images.
The cropping is for the purpose of data augmentation.
For an image with a given size, we can pre-compute
the bin sizes needed for spatial pyramid pooling.
Consider the feature maps after conv 5that have a size
ofaa(e.g., 1313). With a pyramid level of nn
bins, we implement this pooling level as a sliding
window pooling, where the window size win=da=ne
and stride str=ba=ncwithdeandbcdenoting
ceiling and ﬂoor operations. With an l-level pyramid,
we implement lsuch layers. The next fully-connected
layer (fc 6) will concatenate the loutputs. Figure 4
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 that SPP-net boosts the accuracy of a variety of CNN 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.
Kaiming He Xiangyu Zhang Shaoqing Ren Jian Sun