This is an experimental Tensorflow implementation of Faster RCNN - a convnet for object detection with a region proposal network. For details about R-CNN please refer to the paper Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks by Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun.
-
Requirements for Tensorflow (see: Tensorflow)
-
Python packages you might not have:
cython
,python-opencv
,easydict
- For training the end-to-end version of Faster R-CNN with VGG16, 3G of GPU memory is sufficient (using CUDNN)
- Clone the Faster R-CNN repository
# Make sure to clone with --recursive
git clone --recursive https://github.com/smallcorgi/Faster-RCNN_TF.git
- Build the Cython modules
cd $FRCN_ROOT/lib make
After successfully completing basic installation, you'll be ready to run the demo.
Download model training on PASCAL VOC 2007 [Google Drive] [Dropbox]
To run the demo
cd $FRCN_ROOT
python ./tools/demo.py --model model_path
The demo performs detection using a VGG16 network trained for detection on PASCAL VOC 2007.
-
Download the training, validation, test data and VOCdevkit
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
-
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
-
Download pre-trained ImageNet models
Download the pre-trained ImageNet models [Google Drive] [Dropbox]
mv VGG_imagenet.npy $FRCN_ROOT/data/pretrain_model/VGG_imagenet.npy
-
Run script to train and test model
cd $FRCN_ROOT ./experiments/scripts/faster_rcnn_end2end.sh $DEVICE $DEVICE_ID VGG16 pascal_voc
DEVICE is either cpu/gpu
Classes | AP |
---|---|
aeroplane | 0.698 |
bicycle | 0.788 |
bird | 0.657 |
boat | 0.565 |
bottle | 0.478 |
bus | 0.762 |
car | 0.797 |
cat | 0.793 |
chair | 0.479 |
cow | 0.724 |
diningtable | 0.648 |
dog | 0.803 |
horse | 0.797 |
motorbike | 0.732 |
person | 0.770 |
pottedplant | 0.384 |
sheep | 0.664 |
sofa | 0.650 |
train | 0.766 |
tvmonitor | 0.666 |
mAP | 0.681 |
###References Faster R-CNN caffe version