1. A method to perform image processing, the method comprising: receiving an input image; generating feature maps by one or more filters on one or more convolutional layers of a neural network; spatially pooling responses of each filter of a top convolutional layer at a spatial pyramid pooling (SPP) network following the top convolutional layer, wherein the SPP network comprises one or more layers; and providing outputs of a top SPP network layer to a fully-connected layer as fixed dimensional vectors.