Cascade RPN

November 5, 2019 ยท View on GitHub

We provide the code for reproducing experiment results of Cascade RPN

  • NeurIPS 2019 spotlight paper: pdf.
  • This project is based on mmdetection framework. Main code for Cascade RPN can be traced in commit 6b9866.
  • If this work is helpful for your research, please cite Cascade RPN and mmdetection
@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

MethodBackboneStyleMem (GB)Train time (s/iter)Inf time (fps)AR 1000Download
RPNR-50-FPNcaffe---58.3model
CRPNR-50-FPNcaffe---71.7model

Detection performance

MethodProposalBackboneStyleScheduleMem (GB)Train time (s/iter)Inf time (fps)box APDownload
Fast R-CNNRPNR-50-FPNcaffe1x3.50.25016.536.9-
Fast R-CNNCascade RPNR-50-FPNcaffe1x3.50.25016.540.0model
Faster R-CNNRPNR-50-FPNcaffe1x3.80.35313.637.0-
Faster R-CNNCascade RPNR-50-FPNcaffe1x4.60.56111.140.5model
Cascade R-CNNRPNR-50-FPNpytorch1x4.10.45511.940.8-
Cascade R-CNNCascade RPNR-50-FPNpytorch1x5.20.6509.641.6model

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:

  • Config files of Cascade RPN and accompanied detectors are located in cascade_rpn
  • Eval metrics are proposal_fast and bbox for region proposal and detection, respectively

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

  • Release Cascade RPN code base
  • Release baseline models
  • Release more models