# Pyramid Pooling implemented in PyTorch

This Module implements Spatial Pyramid Pooling (SPP) and Temporal Pyramid Pooling (TPP) as described in different papers.

**NOTE** This repo has been forked from Revidee's original (which seems to no longer be under maintenance) to publish on Pypi. I (Eric Musa) take no credit for writing the Pyramid Pooling code, but could not find any information on Revidee to provide proper credit.

# The purpose of this fork is to continue maintenance of this package and post on Pypi

## Temporal Pyramid Pooling:

Sudholt, Fink: Evaluating Word String Embeddings and LossFunctions for CNN-based Word Spotting

### Principle

Given an 2D input Tensor, Temporal Pyramid Pooling divides the input in **x** *stripes* which **extend through the height** of the image and **width of roughly (input_width / x)**. These stripes are then each pooled with max- or avg-pooling to calculate the output.

### Animated Principle

## Spatial Pyramid Pooling:

He, et. al.: Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

### Principle

Given an 2D input Tensor, Spatial Pyramid Pooling divides the input in **x²** *rectangles* with **height of roughly (input_height / x)** and **width of roughly (input_width / x)**. These rectangles are then each pooled with max- or avg-pooling to calculate the output.