fast-rcnn in tensorflow!
Clone or download
Pull request Compare This branch is 11 commits ahead, 37400 commits behind tensorflow:master.
Permalink
Failed to load latest commit information.
tensorflow removed echo and die statements, lolz. Sep 24, 2016
third_party Merge remote-tracking branch 'staging/123221709' into 123496073 May 28, 2016
tools Add genrule_strategy=standalone to bazelrc May 25, 2016
util/python Merge changes from github. May 26, 2016
.gitignore added cuda/extras and cuda/lib to gitignore (tensorflow#2182) May 1, 2016
.gitmodules Remove submodule for protobuf from staging May 27, 2016
ACKNOWLEDGMENTS TensorFlow: Improve performance of Alexnet Nov 20, 2015
AUTHORS TensorFlow: Initial commit of TensorFlow library. Nov 7, 2015
CONTRIBUTING.md Change contributing.md for new contribution policy. Dec 18, 2015
ISSUE_TEMPLATE.md Update ISSUE_TEMPLATE.md Aug 24, 2016
LICENSE TensorFlow: Initial commit of TensorFlow library. Nov 7, 2015
README.md Update README.md Aug 18, 2016
RELEASE.md Update the tensorflow RELEASE.md to include information about runtime… May 27, 2016
WORKSPACE Merge changes from github. May 27, 2016
avro.BUILD Add a new contrib/avro directory and the initial schema that resembles May 27, 2016
boost.BUILD Add a new contrib/avro directory and the initial schema that resembles May 27, 2016
boringssl.BUILD Google authentication for GCS file system. May 19, 2016
bower.BUILD Autogenerated Change: Update TensorBoard source and deps. May 10, 2016
build_pip_package.sh finished gpu implementation of ROI pooling op Jun 5, 2016
build_user_op.sh finished gpu implementation of ROI pooling op Jun 5, 2016
bzip2.BUILD Add a new contrib/avro directory and the initial schema that resembles May 27, 2016
configure Merge changes from github. May 27, 2016
eigen.BUILD Upgraded to the latest version of Eigen that supports convolutions on… May 25, 2016
farmhash.BUILD Add farmhash fingerprint64 into hash.h and include corresponding depe… May 13, 2016
gmock.BUILD Merge changes from github. May 27, 2016
jpeg.BUILD TensorFlow: Initial commit of TensorFlow library. Nov 7, 2015
jsoncpp.BUILD File system implementation for Google Cloud Storage. May 12, 2016
navbar.md TensorFlow: Upstream changes to git. Nov 9, 2015
png.BUILD TensorFlow: Initial commit of TensorFlow library. Nov 7, 2015
six.BUILD TensorFlow: Minor updates to docs, BUILD, GPU config / perf, etc. Nov 12, 2015
zlib.BUILD Add a new contrib/avro directory and the initial schema that resembles May 27, 2016

README.md

This is an initial attempt at implementing Fast-RCNN in Tensorflow. It's still a work in progress - the ROI pooling op is pretty much finished, but the full Fast-RCNN demo is still being completed.

The challenge in doing this (as of when it was started, in May/June 2016, at least) is that Tensorflow doesn't have an implementation of the ROI pooling operation which does a good bit of the magic in Fast-RCNN (and Faster-RCNN). Without this op, it's pretty much impossible to use these algorithms in Tensorflow.

In this fork of Tensorflow, I've implemented the ROI pooling layer for CPU and GPU, and also the gradient operation for both (also CPU and GPU). The code for the forward op is here. The gradient op is here. The GPU implementations of both are here.

I've also created some demos and test scripts, using Ipython/Jupyter. An overall demo of the ROI pooling layer in operation is here. A unit test of the forward op is here, and of the gradient op here. A very quick-and-dirty performance comparison between the CPU and GPU implementations can be viewed here.

Installation is the same as normal Tensorflow - follow the instructions for building from source (but clone this repository instead of the main Tensorflow one). Build the ROI pooling op using the 'build_user_op.sh' script provided.

A demo of the whole Fast-RCNN network is coming soon. For now, you can see an initial version of it here. It has some dependencies on other of my helper libraries that I'm working to remove. The current demo is also not a full R-CNN network - I've simplified it a bit to show just the novel parts (the roi pooling layer).