One of the benefits of using the SPP technique from https://arxiv.org/pdf/1406.4729.pdf is to be able to generate fixed length feature representation for images at different scales.

For example for a 224x224 images, with 6x6 conv5 layer, we can use pooling with 4-level pyramid(1x1,2x2,3x3 and 6x6). And the same technique can work for images with sizes >224, but how would this work with images/windows of size smaller than 224? They seem to have used pooling on regional proposal windows for detection. They extract a fixed length feature for each Image Proposal window and feed that to a 2-class classifier. In their multi-scale feature extraction version, they extract features for a window from the image scale, at which the window is approx 224x224 in the scaled image, here I can understand the conv5 would be 6x6 and we can do SPP with 4-level pytramid, but for the version without multi-scaling how does it work?

Say for size 112x112 the conv5 layer would be 3x3, not sure how 6x6 bins would be used for pooling here. Is scaling the smallest window to 224 the only option here, or does 6x6 pooling bins also work with smaller size images. If yes, what are benefits from such a pooling.


1 Answer 1


The original paper focuses too much on intuition but ignores the details. In summary, spatial pyramid pooling is a way of pooling (I assume you fully understand pooling). Compared to traditional pooling of which filter size is fixed, the filter size of SSP depends on the size of input and output. "Spatial pyramid" indicates pyramid hierarchy of these pooling (concatenating them as a single layer in the end). Since every pooling has fix size, the whole layer has fix size.

Let's take an example: suppose there are two images of different size. The corresponding feature maps after last constitutional layers are 112x112x256, 224x224x256. We want three level pyramid (1x1, 2x2, 4x4).

Then the filter sizes for the first feature map are: 112x112, 56x56, 28x28. The size of the layer is 256+4x256+16x256. For the second one, the filter sizes are: 224x224, 112x112, 56x56. The size of the layer is still 256+4x256+16x256. Note that pooling has no parameter.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.