rbgirshick/py-faster-rcnn is one of the open-source repositories TopGit tracks, currently at 8.3k stars, written primarily in Python. Faster R-CNN (Python implementation) -- see https://github.com/ShaoqingRen/faster_rcnn for the official MATLAB version
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
py-faster-rcnn has been deprecated. Please see Detectron, which includes an implementation of Mask R-CNN.
Disclaimer
The official Faster R-CNN code (written in MATLAB) is available here.
If your goal is to reproduce the results in our NIPS 2015 paper, please use the official code.
This repository contains a Python reimplementation of the MATLAB code.
This Python implementation is built on a fork of Fast R-CNN.
There are slight differences between the two implementations.
In particular, this Python port
is ~10% slower at test-time, because some operations execute on the CPU in Python layers (e.g., 220ms / image vs. 200ms / image for VGG16)
gives similar, but not exactly the same, mAP as the MATLAB version
is not compatible with models trained using the MATLAB code due to the minor implementation differences
includes approximate joint training that is 1.5x faster than alternating optimization (for VGG16) -- see these slides for more information
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
By Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun (Microsoft Research)
This Python implementation contains contributions from Sean Bell (Cornell) written during an MSR internship.
Please see the official README.md for more details.
Faster R-CNN was initially described in an arXiv tech report and was subsequently published in NIPS 2015.
License
Faster R-CNN is released under the MIT License (refer to the LICENSE file for details).
Citing Faster R-CNN
If you find Faster R-CNN useful in your research, please consider citing:
@inproceedings{renNIPS15fasterrcnn,
Author = {Shaoqing Ren and Kaiming He and Ross Girshick and Jian Sun},
Title = {Faster {R-CNN}: Towards Real-Time Object Detection
with Region Proposal Networks},
Booktitle = {Advances in Neural Information Processing Systems ({NIPS})},
Year = {2015}
}
Contents
Requirements: software
Requirements: hardware
Basic installation
Demo
Beyond the demo: training and testing
Usage
Requirements: software
NOTE If you are having issues compiling and you are using a recent version of CUDA/cuDNN, please consult this issue for a workaround
Requirements for Caffe and pycaffe (see: Caffe installation instructions)
Note: Caffe must be built with support for Python layers!
# In your Makefile.config, make sure to have this line uncommented
WITH_PYTHON_LAYER := 1
# Unrelatedly, it's also recommended that you use CUDNN
USE_CUDNN := 1
You can download my Makefile.config for reference.
2. Python packages you might not have: cython, python-opencv, easydict
3. [Optional] MATLAB is required for official PASCAL VOC evaluation only. The code now includes unofficial Python evaluation code.
Requirements: hardware
For training smaller networks (ZF, VGG_CNN_M_1024) a good GPU (e.g., Titan, K20, K40, ...) with at least 3G of memory suffices
For training Fast R-CNN with VGG16, you'll need a K40 (~11G of memory)
For training the end-to-end version of Faster R-CNN with VGG16, 3G of GPU memory is sufficient (using CUDNN)
Installation (sufficient for the demo)
Clone the Faster R-CNN repository
# Make sure to clone with --recursive
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
We'll call the directory that you cloned Faster R-CNN into FRCN_ROOT
Ignore notes 1 and 2 if you followed step 1 above.
Note 1: If you didn't clone Faster R-CNN with the --recursive flag, then you'll need to manually clone the caffe-fast-rcnn submodule:
git submodule update --init --recursive
Note 2: The caffe-fast-rcnn submodule needs to be on the faster-rcnn branch (or equivalent detached state). This will happen automatically if you followed step 1 instructions.
Build the Cython modules
cd $FRCN_ROOT/lib
make
Build Caffe and pycaffe
cd $FRCN_ROOT/caffe-fast-rcnn
# Now follow the Caffe installation instructions here:
# http://caffe.berkeleyvision.org/installation.html
# If you're experienced with Caffe and have all of the requirements installed
# and your Makefile.config in place, then simply do:
make -j8 && make pycaffe
Download pre-computed Faster R-CNN detectors
cd $FRCN_ROOT
./data/scripts/fetch_faster_rcnn_models.sh
This will populate the $FRCN_ROOT/data folder with faster_rcnn_models. See data/README.md for details.
These models were trained on VOC 2007 trainval.
Demo
After successfully completing basic installation, you'll be ready to run the demo.
To run the demo
cd $FRCN_ROOT
./tools/demo.py
The demo performs detection using a VGG16 network trained for detection on PASCAL VOC 2007.
Beyond the demo: installation for training and testing models
Download the training, validation, test data and VOCdevkit
Extract all of these tars into one directory named VOCdevkit
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tar
It should have this basic structure
$VOCdevkit/ # development kit
$VOCdevkit/VOCcode/ # VOC utility code
$VOCdevkit/VOC2007 # image sets, annotations, etc.
# ... and several other directories ...
Create symlinks for the PASCAL VOC dataset
cd $FRCN_ROOT/data
ln -s $VOCdevkit VOCdevkit2007
Using symlinks is a good idea because you will likely want to share the same PASCAL dataset installation between multiple projects.
[Optional] follow similar steps to get PASCAL VOC 2010 and 2012
[Optional] If you want to use COCO, please see some notes under data/README.md
Follow the next sections to download pre-trained ImageNet models
Download pre-trained ImageNet models
Pre-trained ImageNet models can be downloaded for the three networks described in the paper: ZF and VGG16.
cd $FRCN_ROOT
./data/scripts/fetch_imagenet_models.sh
VGG16 comes from the Caffe Model Zoo, but is provided here for your convenience.
ZF was trained at MSRA.
Usage
To train and test a Faster R-CNN detector using the alternating optimization algorithm from our NIPS 2015 paper, use experiments/scripts/faster_rcnn_alt_opt.sh.
Output is written underneath $FRCN_ROOT/output.
cd $FRCN_ROOT
./experiments/scripts/faster_rcnn_alt_opt.sh [GPU_ID] [NET] [--set ...]
# GPU_ID is the GPU you want to train on
# NET in {ZF, VGG_CNN_M_1024, VGG16} is the network arch to use
# --set ... allows you to specify fast_rcnn.config options, e.g.
# --set EXP_DIR seed_rng1701 RNG_SEED 1701
("alt opt" refers to the alternating optimization training algorithm described in the NIPS paper.)
To train and test a Faster R-CNN detector using the approximate joint training method, use experiments/scripts/faster_rcnn_end2end.sh.
Output is written underneath $FRCN_ROOT/output.
cd $FRCN_ROOT
./experiments/scripts/faster_rcnn_end2end.sh [GPU_ID] [NET] [--set ...]
# GPU_ID is the GPU you want to train on
# NET in {ZF, VGG_CNN_M_1024, VGG16} is the network arch to use
# --set ... allows you to specify fast_rcnn.config options, e.g.
# --set EXP_DIR seed_rng1701 RNG_SEED 1701
This method trains the RPN module jointly with the Fast R-CNN network, rather than alternating between training the two. It results in faster (~ 1.5x speedup) training times and similar detection accuracy. See these slides for more details.
Artifacts generated by the scripts in tools are written in this directory.
Does rbgirshick/py-faster-rcnn have a project website?
No homepage URL was recorded for rbgirshick/py-faster-rcnn in TopGit's last sync. The README tab above frequently contains screenshots and demo links, or check the repository description on GitHub.
Is rbgirshick/py-faster-rcnn open source?
TopGit's metadata for rbgirshick/py-faster-rcnn does not record a license. Most public repositories on GitHub ARE open source, but the exact terms vary — verify by opening the LICENSE file directly.
What is rbgirshick/py-faster-rcnn?
rbgirshick/py-faster-rcnn (rbgirshick/py-faster-rcnn) is a Python project on GitHub. From the project's own README: Faster R-CNN (Python implementation) -- see https://github.com/ShaoqingRen/faster_rcnn for the official MATLAB version
Where do I read more about rbgirshick/py-faster-rcnn?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/rbgirshick/py-faster-rcnn is the definitive source.
Read full README in the tab above.
Still deciding about py-faster-rcnn?
One click hands the question to an AI along with this page — see what it says about py-faster-rcnn.