thangvubk / Cascade-RPN

Code for NeurIPS 2019 paper: "Cascade RPN: Delving into High-Quality Region Proposal Network with Adaptive Convolution"
Apache License 2.0
180 stars 19 forks source link

Cascade RPN

We provide the code for reproducing experiment results of Cascade RPN

@inproceedings{vu2019cascade,
  title={Cascade RPN: Delving into High-Quality Region Proposal Network with Adaptive Convolution},
  author={Vu, Thang and Jang, Hyunjun and Pham, Trung X and Yoo, Chang D},
  booktitle={Conference on Neural Information Processing Systems (NeurIPS)},
  year={2019}
}

@article{mmdetection,
  title   = {{MMDetection}: Open MMLab Detection Toolbox and Benchmark},
  author  = {Chen, Kai and Wang, Jiaqi and Pang, Jiangmiao and Cao, Yuhang and
             Xiong, Yu and Li, Xiaoxiao and Sun, Shuyang and Feng, Wansen and
             Liu, Ziwei and Xu, Jiarui and Zhang, Zheng and Cheng, Dazhi and
             Zhu, Chenchen and Cheng, Tianheng and Zhao, Qijie and Li, Buyu and
             Lu, Xin and Zhu, Rui and Wu, Yue and Dai, Jifeng and Wang, Jingdong
             and Shi, Jianping and Ouyang, Wanli and Loy, Chen Change and Lin, Dahua},
  journal = {arXiv preprint arXiv:1906.07155},
  year    = {2019}
}

Benchmark

Region proposal performance

Method Backbone Style Mem (GB) Train time (s/iter) Inf time (fps) AR 1000 Download
RPN R-50-FPN caffe - - - 58.3 model
CRPN R-50-FPN caffe - - - 71.7 model

Detection performance

Method Proposal Backbone Style Schedule Mem (GB) Train time (s/iter) Inf time (fps) box AP Download
Fast R-CNN RPN R-50-FPN caffe 1x 3.5 0.250 16.5 36.9 -
Fast R-CNN Cascade RPN R-50-FPN caffe 1x 3.5 0.250 16.5 40.0 model
Faster R-CNN RPN R-50-FPN caffe 1x 3.8 0.353 13.6 37.0 -
Faster R-CNN Cascade RPN R-50-FPN caffe 1x 4.6 0.561 11.1 40.5 model
Cascade R-CNN RPN R-50-FPN pytorch 1x 4.1 0.455 11.9 40.8 -
Cascade R-CNN Cascade RPN R-50-FPN pytorch 1x 5.2 0.650 9.6 41.6 model

Setup

Please follow official installation and getting_started guides.

Testing

./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}]

Note:

Example of cascade rpn eval on 8 gpus:

./tools/dish_test.sh configs/cascade_rpn/cascade_rpn_r50_fpn_1x.py \
    checkpoint/cascade_rpn_r50_fpn_1x_20191008-d3e01c91.pth 8 --out \
    results/results.pkl --eval proposal_fast

Training

./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [--validate] [other_optional_args]

Note: We train Cascade RPN and accompanied detectors with 8 GPUs and 2 img/GPU. If your configuration is different, please follow the Linear Scaling Rule.

TODO