Learning Scalable Feature Pyramid Architecture for Object Detection.

Train on COCO train2017 and test on COCO val2017 (coco minival).



Model Backbone Train Schedule GPU Image/GPU FP16 Box AP
Faster (Face++ & Detectron) R50v1-FPN 1X 8X TITAN Xp 2 no 36.4
Faster (SimpleDet) R50v1-FPN 1X 8X 1080Ti 2 no 36.5
Faster (ours) R50v1-FPN 1X 1X TITAN Xp 1 no 36.1
Faster (ours) R50v1-FPN 1X 4X TITAN Xp 1 no 36.1
Model Backbone Pyramid method Train Schedule GPU Image/GPU Stacks Dimension 3x3 relu Box AP
Faster (ours) R50v1 FPN 1X 4X TITAN Xp 1 0 256 no 36.1
Faster (ours) R50v1 FPN 1X 8X 2080Ti 1 3 256 yes 35.8
Faster (ours) R50v1 NAS-FPN 1X 8X 2080Ti 1 3 256 yes 37.9
Faster (ours) R50v1 NAS-FPN 1X 8X 2080Ti 1 7 256 yes 38.1
Faster (ours) R50v1 NAS-FPN 1X 8X 2080Ti 1 7 384 yes 38.9

My Development Environment

1、python3.5 (anaconda recommend)
2、cuda9.0 (If you want to use cuda8, please set CUDA9 = False in the file.)
4、tfplot (optional)
5、tensorflow == 1.12

Download Model

Pretrain weights

1、Please download resnet50_v1, resnet101_v1 pre-trained models on Imagenet, put it to data/pretrained_weights.
2、Or you can choose to use a better backbone, refer to gluon2TF. Pretrain Model Link, password: 5ht9.

Trained weights

Select a configuration file in the folder ($PATH_ROOT/libs/configs/) and copy its contents into, then download the corresponding weights.


cd $PATH_ROOT/libs/box_utils/cython_utils
python build_ext --inplace


1、If you want to train your own data, please note:

(1) Modify parameters (such as CLASS_NUM, DATASET_NAME, VERSION, etc.) in $PATH_ROOT/libs/configs/
(2) Add category information in $PATH_ROOT/libs/label_name_dict/     
(3) Add data_name to $PATH_ROOT/data/io/ 

2、make tfrecord

cd $PATH_ROOT/data/io/  
python --VOC_dir='/PATH/TO/JSON/FILE/' 

3、multi-gpu train

cd $PATH_ROOT/tools


cd $PATH_ROOT/tools
python --eval_data='/PATH/TO/IMAGES/'  


cd $PATH_ROOT/output/summary
tensorboard --logdir=.