This example aims to provide a minimal (<1000 lines) multi-GPU implementation of ResNet50-Faster-RCNN on COCO.
- TensorFlow >= 1.4.0rc0
- Install pycocotools, OpenCV.
- Pre-trained ResNet50 model from tensorpack model zoo.
- COCO data. It assumes the following directory structure:
DIR/
annotations/
instances_train2014.json
instances_val2014.json
instances_minival2014.json
instances_valminusminival2014.json
train2014/
COCO_train2014_*.jpg
val2014/
COCO_val2014_*.jpg
minival
and valminusminival
are optional. You can download them
here.
Change BASEDIR
in config.py
to /path/to/DIR
as described above.
To train:
./train.py --load /path/to/ImageNet-ResNet50.npz
The code is only for training with 1, 2, 4 or 8 GPUs. Otherwise, you probably need different hyperparameters for the same performance.
To predict on an image (and show output in a window):
./train.py --predict input.jpg
Mean Average Precision @IoU=0.50:0.95:
- trainval35k/minival, FASTRCNN_BATCH=256: 33.4. Takes 49h on 8 TitanX.
- trainval35k/minival, FASTRCNN_BATCH=64: 32.2. Takes 31h on 8 TitanX.
The hyperparameters are not carefully tuned. You can probably get better performance by e.g. training longer.