deepsense-ai / roi-pooling

460 stars 127 forks source link

RoI pooling in TensorFlow

This repo contains the implementation of Region of Interest pooling as a custom TensorFlow operation. The CUDA code responsible for the computations was largely taken from the original Caffe implementation by Ross Girshick.

For more information about RoI pooling you can check out Region of interest pooling explained at our deepsense.io blog.

Region of Interest Pooling animation

Requirements

To compile and use roi_pooling layer you need to have:

Only official TensorFlow releases are currently supported. If you're using a custom built TensorFlow compiled with a different GCC version (e.g. 5.X) you may need to modify the makefile to enable the new ABI version.

Install

Since it uses compilation

$ git clone git@github.com:deepsense-io/roi-pooling.git
$ cd roi-pooling
$ python setup.py install

Right now we provide only GPU implementation (no CPU at this time).

Usage

After successful installation you can use the operation like this:

from roi_pooling.roi_pooling_ops import roi_pooling

# here obtain feature map and regions of interest
rpooling = roi_pooling(feature_map, rois, 7, 7)
# continue the model

Working example in Jupyter Notebook: examples/roi_pooling_minimal_example.ipynb