From 710b8e2231085bd231884bd404385ed3574503a5 Mon Sep 17 00:00:00 2001 From: Kai Chen <chenkaidev@gmail.com> Date: Thu, 9 May 2019 01:15:19 -0700 Subject: [PATCH] Use different configs for proposal train/test (#587) * use different configs for proposal train/test * update configs for dcn * update inf speed * update inf speed in dcn, gn, htc * update comparision * keep backward compatibility --- MODEL_ZOO.md | 92 +++++++++---------- configs/cascade_mask_rcnn_r101_fpn_1x.py | 13 ++- configs/cascade_mask_rcnn_r50_c4_1x.py | 13 ++- configs/cascade_mask_rcnn_r50_fpn_1x.py | 13 ++- .../cascade_mask_rcnn_x101_32x4d_fpn_1x.py | 13 ++- .../cascade_mask_rcnn_x101_64x4d_fpn_1x.py | 13 ++- configs/cascade_rcnn_r101_fpn_1x.py | 13 ++- configs/cascade_rcnn_r50_c4_1x.py | 13 ++- configs/cascade_rcnn_r50_fpn_1x.py | 13 ++- configs/cascade_rcnn_x101_32x4d_fpn_1x.py | 13 ++- configs/cascade_rcnn_x101_64x4d_fpn_1x.py | 13 ++- configs/dcn/README.md | 21 +++-- ...ascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py | 13 ++- .../cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py | 13 ++- .../dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py | 13 ++- ...ster_rcnn_dconv_c3-c5_x101_32x4d_fpn_1x.py | 13 ++- configs/dcn/faster_rcnn_dpool_r50_fpn_1x.py | 13 ++- .../faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py | 13 ++- configs/dcn/faster_rcnn_mdpool_r50_fpn_1x.py | 13 ++- .../dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py | 13 ++- configs/faster_rcnn_ohem_r50_fpn_1x.py | 13 ++- configs/faster_rcnn_r101_fpn_1x.py | 13 ++- configs/faster_rcnn_r50_c4_1x.py | 13 ++- configs/faster_rcnn_r50_fpn_1x.py | 13 ++- configs/faster_rcnn_x101_32x4d_fpn_1x.py | 13 ++- configs/faster_rcnn_x101_64x4d_fpn_1x.py | 13 ++- configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py | 13 ++- .../mask_rcnn_r50_fpn_gn_ws_20_23_24e.py | 13 ++- configs/gn+ws/mask_rcnn_r50_fpn_gn_ws_2x.py | 13 ++- .../mask_rcnn_x101_32x4d_fpn_gn_ws_2x.py | 13 ++- configs/gn/README.md | 13 +-- configs/gn/mask_rcnn_r101_fpn_gn_2x.py | 13 ++- configs/gn/mask_rcnn_r50_fpn_gn_2x.py | 13 ++- configs/gn/mask_rcnn_r50_fpn_gn_contrib_2x.py | 13 ++- configs/htc/README.md | 10 +- ...-c5_mstrain_400_1400_x101_64x4d_fpn_20e.py | 13 ++- configs/htc/htc_r101_fpn_20e.py | 13 ++- configs/htc/htc_r50_fpn_1x.py | 13 ++- configs/htc/htc_r50_fpn_20e.py | 13 ++- .../htc/htc_without_semantic_r50_fpn_1x.py | 13 ++- configs/htc/htc_x101_32x4d_fpn_20e_16gpu.py | 13 ++- configs/htc/htc_x101_64x4d_fpn_20e_16gpu.py | 13 ++- configs/mask_rcnn_r101_fpn_1x.py | 13 ++- configs/mask_rcnn_r50_c4_1x.py | 13 ++- configs/mask_rcnn_r50_fpn_1x.py | 13 ++- configs/mask_rcnn_x101_32x4d_fpn_1x.py | 13 ++- configs/mask_rcnn_x101_64x4d_fpn_1x.py | 13 ++- .../faster_rcnn_r50_fpn_1x_voc0712.py | 13 ++- mmdet/models/detectors/cascade_rcnn.py | 4 +- mmdet/models/detectors/htc.py | 4 +- mmdet/models/detectors/two_stage.py | 4 +- 51 files changed, 518 insertions(+), 202 deletions(-) diff --git a/MODEL_ZOO.md b/MODEL_ZOO.md index 263850d..105ac2a 100644 --- a/MODEL_ZOO.md +++ b/MODEL_ZOO.md @@ -54,31 +54,31 @@ More models with different backbones will be added to the model zoo. | Backbone | Style | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | Download | |:--------:|:-------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:--------:| -| R-50-FPN | caffe | 1x | 3.6 | 0.333 | 12.9 | 36.7 | - | -| R-50-FPN | pytorch | 1x | 3.8 | 0.353 | 12.5 | 36.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth) | +| R-50-FPN | caffe | 1x | 3.6 | 0.333 | 13.5 | 36.6 | - | +| R-50-FPN | pytorch | 1x | 3.8 | 0.353 | 13.6 | 36.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth) | | R-50-FPN | pytorch | 2x | - | - | - | 37.7 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_r50_fpn_2x_20181010-443129e1.pth) | -| R-101-FPN | caffe | 1x | 5.5 | 0.465 | 10.7 | 38.8 | - | -| R-101-FPN | pytorch | 1x | 5.7 | 0.474 | 10.8 | 38.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_r101_fpn_1x_20181129-d1468807.pth) | +| R-101-FPN | caffe | 1x | 5.5 | 0.465 | 11.5 | 38.8 | - | +| R-101-FPN | pytorch | 1x | 5.7 | 0.474 | 11.9 | 38.5 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_r101_fpn_1x_20181129-d1468807.pth) | | R-101-FPN | pytorch | 2x | - | - | - | 39.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_r101_fpn_2x_20181129-73e7ade7.pth) | -| X-101-32x4d-FPN | pytorch | 1x| 6.9 | 0.672 | 9.3 | 40.2 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_x101_32x4d_fpn_1x_20181218-ad81c133.pth) -| X-101-32x4d-FPN | pytorch | 2x| - | - | - | 40.5 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_x101_32x4d_fpn_2x_20181218-0ed58946.pth) -| X-101-64x4d-FPN | pytorch | 1x| 9.8 | 1.040 | 7.1 | 41.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_x101_64x4d_fpn_1x_20181218-c9c69c8f.pth) +| X-101-32x4d-FPN | pytorch | 1x| 6.9 | 0.672 | 10.3 | 40.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_x101_32x4d_fpn_1x_20181218-ad81c133.pth) +| X-101-32x4d-FPN | pytorch | 2x| - | - | - | 40.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_x101_32x4d_fpn_2x_20181218-0ed58946.pth) +| X-101-64x4d-FPN | pytorch | 1x| 9.8 | 1.040 | 7.3 | 41.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_x101_64x4d_fpn_1x_20181218-c9c69c8f.pth) | X-101-64x4d-FPN | pytorch | 2x| - | - | - | 40.7 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_x101_64x4d_fpn_2x_20181218-fe94f9b8.pth) ### Mask R-CNN | Backbone | Style | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | mask AP | Download | |:--------:|:-------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:-------:|:--------:| -| R-50-FPN | caffe | 1x | 3.8 | 0.430 | 9.9 | 37.5 | 34.4 | - | -| R-50-FPN | pytorch | 1x | 3.9 | 0.453 | 9.6 | 37.3 | 34.2 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_r50_fpn_1x_20181010-069fa190.pth) | -| R-50-FPN | pytorch | 2x | - | - | - | 38.6 | 35.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_r50_fpn_2x_20181010-41d35c05.pth) | -| R-101-FPN | caffe | 1x | 5.7 | 0.534 | 8.8 | 39.9 | 36.1 | - | -| R-101-FPN | pytorch | 1x | 5.8 | 0.571 | 8.9 | 39.4 | 35.9 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_r101_fpn_1x_20181129-34ad1961.pth) | -| R-101-FPN | pytorch | 2x | - | - | - | 40.4 | 36.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_r101_fpn_2x_20181129-a254bdfc.pth) | -| X-101-32x4d-FPN | pytorch | 1x| 7.1 | 0.759 | 7.9 | 41.2 | 37.2 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_x101_32x4d_fpn_1x_20181218-44e635cc.pth) +| R-50-FPN | caffe | 1x | 3.8 | 0.430 | 10.2 | 37.4 | 34.3 | - | +| R-50-FPN | pytorch | 1x | 3.9 | 0.453 | 10.6 | 37.3 | 34.2 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_r50_fpn_1x_20181010-069fa190.pth) | +| R-50-FPN | pytorch | 2x | - | - | - | 38.5 | 35.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_r50_fpn_2x_20181010-41d35c05.pth) | +| R-101-FPN | caffe | 1x | 5.7 | 0.534 | 9.4 | 39.9 | 36.1 | - | +| R-101-FPN | pytorch | 1x | 5.8 | 0.571 | 9.5 | 39.4 | 35.9 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_r101_fpn_1x_20181129-34ad1961.pth) | +| R-101-FPN | pytorch | 2x | - | - | - | 40.3 | 36.5 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_r101_fpn_2x_20181129-a254bdfc.pth) | +| X-101-32x4d-FPN | pytorch | 1x| 7.1 | 0.759 | 8.3 | 41.1 | 37.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_x101_32x4d_fpn_1x_20181218-44e635cc.pth) | X-101-32x4d-FPN | pytorch | 2x| - | - | - | 41.4 | 37.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_x101_32x4d_fpn_2x_20181218-f023dffa.pth) -| X-101-64x4d-FPN | pytorch | 1x| 10.0 | 1.102 | 5.8 | 42.2 | 38.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_x101_64x4d_fpn_1x_20181218-cb159987.pth) -| X-101-64x4d-FPN | pytorch | 2x| - | - | - | 42.0 | 37.8 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_x101_64x4d_fpn_2x_20181218-ea936e44.pth) +| X-101-64x4d-FPN | pytorch | 1x| 10.0 | 1.102 | 6.5 | 42.1 | 38.0 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_x101_64x4d_fpn_1x_20181218-cb159987.pth) +| X-101-64x4d-FPN | pytorch | 2x| - | - | - | 42.0 | 37.7 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_x101_64x4d_fpn_2x_20181218-ea936e44.pth) ### Fast R-CNN (with pre-computed proposals) @@ -116,31 +116,31 @@ More models with different backbones will be added to the model zoo. | Backbone | Style | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | Download | |:--------:|:-------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:--------:| -| R-50-FPN | caffe | 1x | 3.9 | 0.464 | 9.7 | 40.6 | - | -| R-50-FPN | pytorch | 1x | 4.1 | 0.455 | 10.1 | 40.5 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_r50_fpn_1x_20190501-3b6211ab.pth) | +| R-50-FPN | caffe | 1x | 3.9 | 0.464 | 10.9 | 40.5 | - | +| R-50-FPN | pytorch | 1x | 4.1 | 0.455 | 11.9 | 40.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_r50_fpn_1x_20190501-3b6211ab.pth) | | R-50-FPN | pytorch | 20e | - | - | - | 41.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_r50_fpn_20e_20181123-db483a09.pth) | -| R-101-FPN | caffe | 1x | 5.8 | 0.569 | 8.7 | 42.5 | - | -| R-101-FPN | pytorch | 1x | 6.0 | 0.584 | 8.7 | 42.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_r101_fpn_1x_20181129-d64ebac7.pth) | -| R-101-FPN | pytorch | 20e | - | - | - | 42.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_r101_fpn_20e_20181129-b46dcede.pth) | -| X-101-32x4d-FPN | pytorch | 1x| 7.2 | 0.770 | 7.8 | 43.7 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_x101_32x4d_fpn_1x_20190501-af628be5.pth) -| X-101-32x4d-FPN | pytorch |20e| - | - | - | 44.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_x101_32x4d_fpn_2x_20181218-28f73c4c.pth) -| X-101-64x4d-FPN | pytorch | 1x| 10.0 | 1.133 | 6.1 | 44.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_x101_64x4d_fpn_1x_20181218-e2dc376a.pth) -| X-101-64x4d-FPN | pytorch |20e| - | - | - | 44.8 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_x101_64x4d_fpn_2x_20181218-5add321e.pth) +| R-101-FPN | caffe | 1x | 5.8 | 0.569 | 9.6 | 42.4 | - | +| R-101-FPN | pytorch | 1x | 6.0 | 0.584 | 10.3 | 42.0 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_r101_fpn_1x_20181129-d64ebac7.pth) | +| R-101-FPN | pytorch | 20e | - | - | - | 42.5 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_r101_fpn_20e_20181129-b46dcede.pth) | +| X-101-32x4d-FPN | pytorch | 1x| 7.2 | 0.770 | 8.9 | 43.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_x101_32x4d_fpn_1x_20190501-af628be5.pth) +| X-101-32x4d-FPN | pytorch |20e| - | - | - | 44.0 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_x101_32x4d_fpn_2x_20181218-28f73c4c.pth) +| X-101-64x4d-FPN | pytorch | 1x| 10.0 | 1.133 | 6.7 | 44.5 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_x101_64x4d_fpn_1x_20181218-e2dc376a.pth) +| X-101-64x4d-FPN | pytorch |20e| - | - | - | 44.7 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_rcnn_x101_64x4d_fpn_2x_20181218-5add321e.pth) ### Cascade Mask R-CNN | Backbone | Style | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | mask AP | Download | |:--------:|:-------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:-------:|:--------:| -| R-50-FPN | caffe | 1x | 5.1 | 0.692 | 6.7 | 41.0 | 35.6 | - | -| R-50-FPN | pytorch | 1x | 5.3 | 0.683 | 6.5 | 41.3 | 35.7 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_r50_fpn_1x_20181123-88b170c9.pth) | -| R-50-FPN | pytorch | 20e | - | - | - | 42.4 | 36.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_r50_fpn_20e_20181123-6e0c9713.pth) | -| R-101-FPN | caffe | 1x | 7.0 | 0.803 | 6.3 | 43.1 | 37.3 | - | -| R-101-FPN | pytorch | 1x | 7.2 | 0.807 | 6.1 | 42.7 | 37.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_r101_fpn_1x_20181129-64f00602.pth) | -| R-101-FPN | pytorch | 20e | - | - | - | 43.4 | 37.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_r101_fpn_20e_20181129-cb85151d.pth) | -| X-101-32x4d-FPN | pytorch | 1x| 8.4 | 0.976 | 5.7 | 44.4 | 38.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_x101_32x4d_fpn_1x_20181218-1d944c89.pth) -| X-101-32x4d-FPN | pytorch |20e| - | - | - | 44.9 | 38.7 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_x101_32x4d_fpn_20e_20181218-761a3473.pth) -| X-101-64x4d-FPN | pytorch | 1x| 11.4 | 1.33 | 4.7 | 45.3 | 39.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_x101_64x4d_fpn_1x_20190501-827e0a70.pth) -| X-101-64x4d-FPN | pytorch |20e| - | - | - | 45.8 | 39.5 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_x101_64x4d_fpn_20e_20181218-630773a7.pth) +| R-50-FPN | caffe | 1x | 5.1 | 0.692 | 7.6 | 40.9 | 35.5 | - | +| R-50-FPN | pytorch | 1x | 5.3 | 0.683 | 7.4 | 41.2 | 35.7 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_r50_fpn_1x_20181123-88b170c9.pth) | +| R-50-FPN | pytorch | 20e | - | - | - | 42.3 | 36.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_r50_fpn_20e_20181123-6e0c9713.pth) | +| R-101-FPN | caffe | 1x | 7.0 | 0.803 | 7.2 | 43.1 | 37.2 | - | +| R-101-FPN | pytorch | 1x | 7.2 | 0.807 | 6.8 | 42.6 | 37.0 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_r101_fpn_1x_20181129-64f00602.pth) | +| R-101-FPN | pytorch | 20e | - | - | - | 43.3 | 37.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_r101_fpn_20e_20181129-cb85151d.pth) | +| X-101-32x4d-FPN | pytorch | 1x| 8.4 | 0.976 | 6.6 | 44.4 | 38.2 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_x101_32x4d_fpn_1x_20181218-1d944c89.pth) +| X-101-32x4d-FPN | pytorch |20e| - | - | - | 44.7 | 38.6 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_x101_32x4d_fpn_20e_20181218-761a3473.pth) +| X-101-64x4d-FPN | pytorch | 1x| 11.4 | 1.33 | 5.3 | 45.4 | 39.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_x101_64x4d_fpn_1x_20190501-827e0a70.pth) +| X-101-64x4d-FPN | pytorch |20e| - | - | - | 45.7 | 39.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_x101_64x4d_fpn_20e_20181218-630773a7.pth) **Notes:** @@ -150,15 +150,15 @@ More models with different backbones will be added to the model zoo. | Backbone | Style | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | mask AP | Download | |:---------:|:-------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:-------:|:--------:| -| R-50-FPN | pytorch | 1x | 7.4 | 0.936 | 3.5 | 42.2 | 37.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r50_fpn_1x_20190408-878c1712.pth) | -| R-50-FPN | pytorch | 20e | - | - | - | 43.2 | 38.0 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r50_fpn_20e_20190408-c03b7015.pth) | -| R-101-FPN | pytorch | 20e | 9.3 | 1.051 | 3.4 | 44.9 | 39.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r101_fpn_20e_20190408-a2e586db.pth) | -| X-101-32x4d-FPN | pytorch |20e| 5.8 | 0.769 | 3.3 | 46.1 | 40.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_x101_32x4d_fpn_20e_20190408-9eae4d0b.pth) | -| X-101-64x4d-FPN | pytorch |20e| 7.5 | 1.120 | 3.0 | 47.0 | 40.9 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_x101_64x4d_fpn_20e_20190408-497f2561.pth) | +| R-50-FPN | pytorch | 1x | 7.4 | 0.936 | 4.1 | 42.1 | 37.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r50_fpn_1x_20190408-878c1712.pth) | +| R-50-FPN | pytorch | 20e | - | - | - | 43.2 | 38.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r50_fpn_20e_20190408-c03b7015.pth) | +| R-101-FPN | pytorch | 20e | 9.3 | 1.051 | 4.0 | 44.9 | 39.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r101_fpn_20e_20190408-a2e586db.pth) | +| X-101-32x4d-FPN | pytorch |20e| 5.8 | 0.769 | 3.8 | 46.1 | 40.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_x101_32x4d_fpn_20e_20190408-9eae4d0b.pth) | +| X-101-64x4d-FPN | pytorch |20e| 7.5 | 1.120 | 3.5 | 46.9 | 40.8 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_x101_64x4d_fpn_20e_20190408-497f2561.pth) | **Notes:** -- Please refer to [Hybrid Task Cascade](configs/gn/README.md) for details and more a powerful model (50.7/43.9). +- Please refer to [Hybrid Task Cascade](configs/htc/README.md) for details and more a powerful model (50.7/43.9). ### SSD @@ -242,7 +242,7 @@ of 2x schedule is higher. <td>1x</td> <td>36.7</td> <td>36.8</td> - <td>36.4 / 36.7</td> + <td>36.4 / 36.6</td> </tr> <tr> <td>2x</td> @@ -255,13 +255,13 @@ of 2x schedule is higher. <td>1x</td> <td>37.7 & 33.9</td> <td>37.8 & 34.2</td> - <td>37.3 & 34.2 / 37.5 & 34.4</td> + <td>37.3 & 34.2 / 37.4 & 34.3</td> </tr> <tr> <td>2x</td> <td>38.6 & 34.5</td> <td>-</td> - <td>38.6 & 35.1 / -</td> + <td>38.5 & 35.1 / -</td> </tr> <tr> <td rowspan="2">Fast R-CNN</td> @@ -360,13 +360,13 @@ The inference speed is measured with fps (img/s) on a single GPU. The higher, th <td>Faster R-CNN</td> <td>10.3</td> <td>7.9</td> - <td>12.9</td> + <td>13.5</td> </tr> <tr> <td>Mask R-CNN</td> <td>8.5</td> <td>7.7</td> - <td>9.9</td> + <td>10.2</td> </tr> <tr> <td>Fast R-CNN</td> diff --git a/configs/cascade_mask_rcnn_r101_fpn_1x.py b/configs/cascade_mask_rcnn_r101_fpn_1x.py index 4466613..9915c2e 100644 --- a/configs/cascade_mask_rcnn_r101_fpn_1x.py +++ b/configs/cascade_mask_rcnn_r101_fpn_1x.py @@ -92,6 +92,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -146,9 +153,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/cascade_mask_rcnn_r50_c4_1x.py b/configs/cascade_mask_rcnn_r50_c4_1x.py index cd50d75..d60a165 100644 --- a/configs/cascade_mask_rcnn_r50_c4_1x.py +++ b/configs/cascade_mask_rcnn_r50_c4_1x.py @@ -93,6 +93,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=12000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -147,9 +154,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=12000, - nms_post=2000, - max_num=2000, + nms_pre=6000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/cascade_mask_rcnn_r50_fpn_1x.py b/configs/cascade_mask_rcnn_r50_fpn_1x.py index af39dc6..7d89be3 100644 --- a/configs/cascade_mask_rcnn_r50_fpn_1x.py +++ b/configs/cascade_mask_rcnn_r50_fpn_1x.py @@ -92,6 +92,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -146,9 +153,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/cascade_mask_rcnn_x101_32x4d_fpn_1x.py b/configs/cascade_mask_rcnn_x101_32x4d_fpn_1x.py index 90c9b07..7377432 100644 --- a/configs/cascade_mask_rcnn_x101_32x4d_fpn_1x.py +++ b/configs/cascade_mask_rcnn_x101_32x4d_fpn_1x.py @@ -94,6 +94,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -148,9 +155,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/cascade_mask_rcnn_x101_64x4d_fpn_1x.py b/configs/cascade_mask_rcnn_x101_64x4d_fpn_1x.py index 3915579..d71351e 100644 --- a/configs/cascade_mask_rcnn_x101_64x4d_fpn_1x.py +++ b/configs/cascade_mask_rcnn_x101_64x4d_fpn_1x.py @@ -94,6 +94,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -148,9 +155,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/cascade_rcnn_r101_fpn_1x.py b/configs/cascade_rcnn_r101_fpn_1x.py index ccacc01..0c11598 100644 --- a/configs/cascade_rcnn_r101_fpn_1x.py +++ b/configs/cascade_rcnn_r101_fpn_1x.py @@ -81,6 +81,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -132,9 +139,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/cascade_rcnn_r50_c4_1x.py b/configs/cascade_rcnn_r50_c4_1x.py index adc3818..d2ea3d0 100644 --- a/configs/cascade_rcnn_r50_c4_1x.py +++ b/configs/cascade_rcnn_r50_c4_1x.py @@ -86,6 +86,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=12000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -140,9 +147,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=12000, - nms_post=2000, - max_num=2000, + nms_pre=6000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/cascade_rcnn_r50_fpn_1x.py b/configs/cascade_rcnn_r50_fpn_1x.py index 75d9edd..de0ca00 100644 --- a/configs/cascade_rcnn_r50_fpn_1x.py +++ b/configs/cascade_rcnn_r50_fpn_1x.py @@ -81,6 +81,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -132,9 +139,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/cascade_rcnn_x101_32x4d_fpn_1x.py b/configs/cascade_rcnn_x101_32x4d_fpn_1x.py index 46a5503..ba7c890 100644 --- a/configs/cascade_rcnn_x101_32x4d_fpn_1x.py +++ b/configs/cascade_rcnn_x101_32x4d_fpn_1x.py @@ -83,6 +83,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -134,9 +141,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/cascade_rcnn_x101_64x4d_fpn_1x.py b/configs/cascade_rcnn_x101_64x4d_fpn_1x.py index 8091d26..4203956 100644 --- a/configs/cascade_rcnn_x101_64x4d_fpn_1x.py +++ b/configs/cascade_rcnn_x101_64x4d_fpn_1x.py @@ -83,6 +83,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -134,9 +141,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/dcn/README.md b/configs/dcn/README.md index 4b2a36d..d95ee40 100644 --- a/configs/dcn/README.md +++ b/configs/dcn/README.md @@ -23,20 +23,21 @@ | Backbone | Model | Style | Conv | Pool | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | mask AP | Download | |:---------:|:------------:|:-------:|:-------------:|:------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:-------:|:--------:| | R-50-FPN | Faster | pytorch | dconv(c3-c5) | - | 1x | 3.9 | 0.594 | 10.2 | 40.0 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x_20190125-e41688c9.pth) | -| R-50-FPN | Faster | pytorch | mdconv(c3-c5) | - | 1x | 3.7 | 0.598 | 10.0 | 40.3 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x_20190125-1b768045.pth) | -| R-50-FPN | Faster | pytorch | - | dpool | 1x | 4.6 | 0.714 | 8.7 | 37.9 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_dpool_r50_fpn_1x_20190125-f4fc1d70.pth) | -| R-50-FPN | Faster | pytorch | - | mdpool | 1x | 5.2 | 0.769 | 8.2 | 38.1 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_mdpool_r50_fpn_1x_20190125-473d0f3d.pth) | +| R-50-FPN | Faster | pytorch | mdconv(c3-c5) | - | 1x | 3.7 | 0.598 | 10.0 | 40.2 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x_20190125-1b768045.pth) | +| R-50-FPN | Faster | pytorch | - | dpool | 1x | 4.6 | 0.714 | 8.7 | 37.8 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_dpool_r50_fpn_1x_20190125-f4fc1d70.pth) | +| R-50-FPN | Faster | pytorch | - | mdpool | 1x | 5.2 | 0.769 | 8.2 | 38.0 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_mdpool_r50_fpn_1x_20190125-473d0f3d.pth) | | R-101-FPN | Faster | pytorch | dconv(c3-c5) | - | 1x | 5.8 | 0.811 | 8.0 | 42.1 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_dconv_c3-c5_r101_fpn_1x_20190125-a7e31b65.pth) | -| X-101-32x4d-FPN | Faster | pytorch | dconv(c3-c5) | - | 1x | 7.1 | 1.126 | 6.6 | 43.5 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_dconv_c3-c5_x101_32x4d_fpn_1x_20190201-6d46376f.pth) | +| X-101-32x4d-FPN | Faster | pytorch | dconv(c3-c5) | - | 1x | 7.1 | 1.126 | 6.6 | 43.4 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/faster_rcnn_dconv_c3-c5_x101_32x4d_fpn_1x_20190201-6d46376f.pth) | | R-50-FPN | Mask | pytorch | dconv(c3-c5) | - | 1x | 4.5 | 0.712 | 7.7 | 41.1 | 37.2 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x_20190125-4f94ff79.pth) | -| R-50-FPN | Mask | pytorch | mdconv(c3-c5) | - | 1x | 4.5 | 0.712 | 7.7 | 41.4 | 37.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/mask_rcnn_mdconv_c3-c5_r50_fpn_1x_20190125-c5601dc3.pth) | +| R-50-FPN | Mask | pytorch | mdconv(c3-c5) | - | 1x | 4.5 | 0.712 | 7.7 | 41.3 | 37.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/mask_rcnn_mdconv_c3-c5_r50_fpn_1x_20190125-c5601dc3.pth) | | R-101-FPN | Mask | pytorch | dconv(c3-c5) | - | 1x | 6.4 | 0.939 | 6.5 | 43.2 | 38.7 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/mask_rcnn_dconv_c3-c5_r101_fpn_1x_20190125-decb6db5.pth) | -| R-50-FPN | Cascade | pytorch | dconv(c3-c5) | - | 1x | 4.4 | 0.660 | 7.6 | 44.1 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x_20190125-dfa53166.pth) | -| R-101-FPN | Cascade | pytorch | dconv(c3-c5) | - | 1x | 6.3 | 0.881 | 6.8 | 45.1 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/cascade_rcnn_dconv_c3-c5_r101_fpn_1x_20190125-aaa877cc.pth) | -| R-50-FPN | Cascade Mask | pytorch | dconv(c3-c5) | - | 1x | 6.6 | 0.942 | 5.7 | 44.5 | 38.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x_20190125-09d8a443.pth) | -| R-101-FPN | Cascade Mask | pytorch | dconv(c3-c5) | - | 1x | 8.5 | 1.156 | 5.1 | 45.8 | 39.5 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/cascade_mask_rcnn_dconv_c3-c5_r101_fpn_1x_20190125-0d62c190.pth) | +| R-50-FPN | Cascade | pytorch | dconv(c3-c5) | - | 1x | 4.4 | 0.660 | 7.6 | 44.0 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x_20190125-dfa53166.pth) | +| R-101-FPN | Cascade | pytorch | dconv(c3-c5) | - | 1x | 6.3 | 0.881 | 6.8 | 45.0 | - | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/cascade_rcnn_dconv_c3-c5_r101_fpn_1x_20190125-aaa877cc.pth) | +| R-50-FPN | Cascade Mask | pytorch | dconv(c3-c5) | - | 1x | 6.6 | 0.942 | 5.7 | 44.4 | 38.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x_20190125-09d8a443.pth) | +| R-101-FPN | Cascade Mask | pytorch | dconv(c3-c5) | - | 1x | 8.5 | 1.156 | 5.1 | 45.7 | 39.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/dcn/cascade_mask_rcnn_dconv_c3-c5_r101_fpn_1x_20190125-0d62c190.pth) | **Notes:** - `dconv` and `mdconv` denote (modulated) deformable convolution, `c3-c5` means adding dconv in resnet stage 3 to 5. `dpool` and `mdpool` denote (modulated) deformable roi pooling. -- The dcn ops are modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch, which should be more memory efficient and slightly faster. \ No newline at end of file +- The dcn ops are modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch, which should be more memory efficient and slightly faster. +- **Memory, Train/Inf time is outdated.** \ No newline at end of file diff --git a/configs/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py b/configs/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py index 8ca3047..afd3183 100644 --- a/configs/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py +++ b/configs/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py @@ -97,6 +97,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -151,9 +158,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py b/configs/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py index 649eb54..19f281f 100644 --- a/configs/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py +++ b/configs/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py @@ -86,6 +86,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -137,9 +144,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py b/configs/dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py index a8fdc73..5d24d81 100644 --- a/configs/dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py +++ b/configs/dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py @@ -63,6 +63,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -81,9 +88,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/dcn/faster_rcnn_dconv_c3-c5_x101_32x4d_fpn_1x.py b/configs/dcn/faster_rcnn_dconv_c3-c5_x101_32x4d_fpn_1x.py index 137cf78..aab40b9 100644 --- a/configs/dcn/faster_rcnn_dconv_c3-c5_x101_32x4d_fpn_1x.py +++ b/configs/dcn/faster_rcnn_dconv_c3-c5_x101_32x4d_fpn_1x.py @@ -66,6 +66,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -84,9 +91,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/dcn/faster_rcnn_dpool_r50_fpn_1x.py b/configs/dcn/faster_rcnn_dpool_r50_fpn_1x.py index 2b8d1bf..9d94e57 100644 --- a/configs/dcn/faster_rcnn_dpool_r50_fpn_1x.py +++ b/configs/dcn/faster_rcnn_dpool_r50_fpn_1x.py @@ -64,6 +64,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -82,9 +89,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py b/configs/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py index c9e50a4..10279ac 100644 --- a/configs/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py +++ b/configs/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py @@ -63,6 +63,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -81,9 +88,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/dcn/faster_rcnn_mdpool_r50_fpn_1x.py b/configs/dcn/faster_rcnn_mdpool_r50_fpn_1x.py index 3aecedd..b55a34c 100644 --- a/configs/dcn/faster_rcnn_mdpool_r50_fpn_1x.py +++ b/configs/dcn/faster_rcnn_mdpool_r50_fpn_1x.py @@ -64,6 +64,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -82,9 +89,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py b/configs/dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py index 0ba9d59..3325943 100644 --- a/configs/dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py +++ b/configs/dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py @@ -74,6 +74,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -93,9 +100,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/faster_rcnn_ohem_r50_fpn_1x.py b/configs/faster_rcnn_ohem_r50_fpn_1x.py index b887c3b..9311c5f 100644 --- a/configs/faster_rcnn_ohem_r50_fpn_1x.py +++ b/configs/faster_rcnn_ohem_r50_fpn_1x.py @@ -58,6 +58,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -76,9 +83,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/faster_rcnn_r101_fpn_1x.py b/configs/faster_rcnn_r101_fpn_1x.py index 2ff48c5..90a3aad 100644 --- a/configs/faster_rcnn_r101_fpn_1x.py +++ b/configs/faster_rcnn_r101_fpn_1x.py @@ -58,6 +58,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -76,9 +83,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/faster_rcnn_r50_c4_1x.py b/configs/faster_rcnn_r50_c4_1x.py index 900b2e8..0118320 100644 --- a/configs/faster_rcnn_r50_c4_1x.py +++ b/configs/faster_rcnn_r50_c4_1x.py @@ -65,6 +65,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=12000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -83,9 +90,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=12000, - nms_post=2000, - max_num=2000, + nms_pre=6000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/faster_rcnn_r50_fpn_1x.py b/configs/faster_rcnn_r50_fpn_1x.py index e88e348..bcfcd15 100644 --- a/configs/faster_rcnn_r50_fpn_1x.py +++ b/configs/faster_rcnn_r50_fpn_1x.py @@ -58,6 +58,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -76,9 +83,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/faster_rcnn_x101_32x4d_fpn_1x.py b/configs/faster_rcnn_x101_32x4d_fpn_1x.py index 6db6625..cdeee64 100644 --- a/configs/faster_rcnn_x101_32x4d_fpn_1x.py +++ b/configs/faster_rcnn_x101_32x4d_fpn_1x.py @@ -60,6 +60,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -78,9 +85,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/faster_rcnn_x101_64x4d_fpn_1x.py b/configs/faster_rcnn_x101_64x4d_fpn_1x.py index f4df48b..647d07c 100644 --- a/configs/faster_rcnn_x101_64x4d_fpn_1x.py +++ b/configs/faster_rcnn_x101_64x4d_fpn_1x.py @@ -60,6 +60,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -78,9 +85,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py b/configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py index 83fc821..067703d 100644 --- a/configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py +++ b/configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py @@ -68,6 +68,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -86,9 +93,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/gn+ws/mask_rcnn_r50_fpn_gn_ws_20_23_24e.py b/configs/gn+ws/mask_rcnn_r50_fpn_gn_ws_20_23_24e.py index ed71cc1..12a0c2b 100644 --- a/configs/gn+ws/mask_rcnn_r50_fpn_gn_ws_20_23_24e.py +++ b/configs/gn+ws/mask_rcnn_r50_fpn_gn_ws_20_23_24e.py @@ -81,6 +81,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -100,9 +107,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/gn+ws/mask_rcnn_r50_fpn_gn_ws_2x.py b/configs/gn+ws/mask_rcnn_r50_fpn_gn_ws_2x.py index 799e2af..7ae7740 100644 --- a/configs/gn+ws/mask_rcnn_r50_fpn_gn_ws_2x.py +++ b/configs/gn+ws/mask_rcnn_r50_fpn_gn_ws_2x.py @@ -81,6 +81,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -100,9 +107,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/gn+ws/mask_rcnn_x101_32x4d_fpn_gn_ws_2x.py b/configs/gn+ws/mask_rcnn_x101_32x4d_fpn_gn_ws_2x.py index e0b2aa3..1d5fb98 100644 --- a/configs/gn+ws/mask_rcnn_x101_32x4d_fpn_gn_ws_2x.py +++ b/configs/gn+ws/mask_rcnn_x101_32x4d_fpn_gn_ws_2x.py @@ -83,6 +83,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -102,9 +109,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/gn/README.md b/configs/gn/README.md index 2ff7008..6bced47 100644 --- a/configs/gn/README.md +++ b/configs/gn/README.md @@ -15,13 +15,14 @@ | Backbone | model | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | mask AP | Download | |:-------------:|:----------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:-------:|:--------:| -| R-50-FPN (d) | Mask R-CNN | 2x | 7.2 | 0.806 | 5.4 | 39.9 | 36.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r50_fpn_gn_2x_20180113-86832cf2.pth) | -| R-50-FPN (d) | Mask R-CNN | 3x | 7.2 | 0.806 | 5.4 | 40.2 | 36.5 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r50_fpn_gn_3x_20180113-8e82f48d.pth) | -| R-101-FPN (d) | Mask R-CNN | 2x | 9.9 | 0.970 | 4.8 | 41.6 | 37.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r101_fpn_gn_2x_20180113-9598649c.pth) | -| R-101-FPN (d) | Mask R-CNN | 3x | 9.9 | 0.970 | 4.8 | 41.7 | 37.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r101_fpn_gn_3x_20180113-a14ffb96.pth) | +| R-50-FPN (d) | Mask R-CNN | 2x | 7.2 | 0.806 | 5.4 | 39.8 | 36.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r50_fpn_gn_2x_20180113-86832cf2.pth) | +| R-50-FPN (d) | Mask R-CNN | 3x | 7.2 | 0.806 | 5.4 | 40.1 | 36.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r50_fpn_gn_3x_20180113-8e82f48d.pth) | +| R-101-FPN (d) | Mask R-CNN | 2x | 9.9 | 0.970 | 4.8 | 41.5 | 37.0 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r101_fpn_gn_2x_20180113-9598649c.pth) | +| R-101-FPN (d) | Mask R-CNN | 3x | 9.9 | 0.970 | 4.8 | 41.6 | 37.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r101_fpn_gn_3x_20180113-a14ffb96.pth) | | R-50-FPN (c) | Mask R-CNN | 2x | 7.2 | 0.806 | 5.4 | 39.7 | 35.9 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r50_fpn_gn_contrib_2x_20180113-ec93305c.pth) | -| R-50-FPN (c) | Mask R-CNN | 3x | 7.2 | 0.806 | 5.4 | 40.1 | 36.2 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r50_fpn_gn_contrib_3x_20180113-9d230cab.pth) | +| R-50-FPN (c) | Mask R-CNN | 3x | 7.2 | 0.806 | 5.4 | 40.0 | 36.2 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/gn/mask_rcnn_r50_fpn_gn_contrib_3x_20180113-9d230cab.pth) | **Notes:** - (d) means pretrained model converted from Detectron, and (c) means the contributed model pretrained by [@thangvubk](https://github.com/thangvubk). -- The `3x` schedule is epoch [28, 34, 36]. \ No newline at end of file +- The `3x` schedule is epoch [28, 34, 36]. +- **Memory, Train/Inf time is outdated.** \ No newline at end of file diff --git a/configs/gn/mask_rcnn_r101_fpn_gn_2x.py b/configs/gn/mask_rcnn_r101_fpn_gn_2x.py index bc08720..97b0c95 100644 --- a/configs/gn/mask_rcnn_r101_fpn_gn_2x.py +++ b/configs/gn/mask_rcnn_r101_fpn_gn_2x.py @@ -78,6 +78,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -97,9 +104,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/gn/mask_rcnn_r50_fpn_gn_2x.py b/configs/gn/mask_rcnn_r50_fpn_gn_2x.py index d19633f..edbd7d8 100644 --- a/configs/gn/mask_rcnn_r50_fpn_gn_2x.py +++ b/configs/gn/mask_rcnn_r50_fpn_gn_2x.py @@ -78,6 +78,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -97,9 +104,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/gn/mask_rcnn_r50_fpn_gn_contrib_2x.py b/configs/gn/mask_rcnn_r50_fpn_gn_contrib_2x.py index eb3fa2b..5c63992 100644 --- a/configs/gn/mask_rcnn_r50_fpn_gn_contrib_2x.py +++ b/configs/gn/mask_rcnn_r50_fpn_gn_contrib_2x.py @@ -78,6 +78,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -97,9 +104,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/htc/README.md b/configs/htc/README.md index 7b7c5ac..7a819ed 100644 --- a/configs/htc/README.md +++ b/configs/htc/README.md @@ -38,11 +38,11 @@ The results on COCO 2017val is shown in the below table. (results on test-dev ar | Backbone | Style | Lr schd | Mem (GB) | Train time (s/iter) | Inf time (fps) | box AP | mask AP | Download | |:---------:|:-------:|:-------:|:--------:|:-------------------:|:--------------:|:------:|:-------:|:--------:| -| R-50-FPN | pytorch | 1x | 7.4 | 0.936 | 3.5 | 42.2 | 37.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r50_fpn_1x_20190408-878c1712.pth) | -| R-50-FPN | pytorch | 20e | - | - | - | 43.2 | 38.0 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r50_fpn_20e_20190408-c03b7015.pth) | -| R-101-FPN | pytorch | 20e | 9.3 | 1.051 | 3.4 | 44.9 | 39.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r101_fpn_20e_20190408-a2e586db.pth) | -| X-101-32x4d-FPN | pytorch |20e| 5.8 | 0.769 | 3.3 | 46.1 | 40.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_x101_32x4d_fpn_20e_20190408-9eae4d0b.pth) | -| X-101-64x4d-FPN | pytorch |20e| 7.5 | 1.120 | 3.0 | 47.0 | 40.9 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_x101_64x4d_fpn_20e_20190408-497f2561.pth) | +| R-50-FPN | pytorch | 1x | 7.4 | 0.936 | 4.1 | 42.1 | 37.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r50_fpn_1x_20190408-878c1712.pth) | +| R-50-FPN | pytorch | 20e | - | - | - | 43.2 | 38.1 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r50_fpn_20e_20190408-c03b7015.pth) | +| R-101-FPN | pytorch | 20e | 9.3 | 1.051 | 4.0 | 44.9 | 39.4 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_r101_fpn_20e_20190408-a2e586db.pth) | +| X-101-32x4d-FPN | pytorch |20e| 5.8 | 0.769 | 3.8 | 46.1 | 40.3 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_x101_32x4d_fpn_20e_20190408-9eae4d0b.pth) | +| X-101-64x4d-FPN | pytorch |20e| 7.5 | 1.120 | 3.5 | 46.9 | 40.8 | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/htc/htc_x101_64x4d_fpn_20e_20190408-497f2561.pth) | - In the HTC paper and COCO 2018 Challenge, `score_thr` is set to 0.001 for both baselines and HTC. - We use 8 GPUs with 2 images/GPU for R-50 and R-101 models, and 16 GPUs with 1 image/GPU for X-101 models. diff --git a/configs/htc/htc_dconv_c3-c5_mstrain_400_1400_x101_64x4d_fpn_20e.py b/configs/htc/htc_dconv_c3-c5_mstrain_400_1400_x101_64x4d_fpn_20e.py index 2e322af..dbebfe3 100644 --- a/configs/htc/htc_dconv_c3-c5_mstrain_400_1400_x101_64x4d_fpn_20e.py +++ b/configs/htc/htc_dconv_c3-c5_mstrain_400_1400_x101_64x4d_fpn_20e.py @@ -117,6 +117,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -171,9 +178,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/htc/htc_r101_fpn_20e.py b/configs/htc/htc_r101_fpn_20e.py index 29ba42f..8736c81 100644 --- a/configs/htc/htc_r101_fpn_20e.py +++ b/configs/htc/htc_r101_fpn_20e.py @@ -109,6 +109,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -163,9 +170,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/htc/htc_r50_fpn_1x.py b/configs/htc/htc_r50_fpn_1x.py index ca612b4..2291470 100644 --- a/configs/htc/htc_r50_fpn_1x.py +++ b/configs/htc/htc_r50_fpn_1x.py @@ -109,6 +109,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -163,9 +170,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/htc/htc_r50_fpn_20e.py b/configs/htc/htc_r50_fpn_20e.py index 4087d0b..e37cae2 100644 --- a/configs/htc/htc_r50_fpn_20e.py +++ b/configs/htc/htc_r50_fpn_20e.py @@ -109,6 +109,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -163,9 +170,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/htc/htc_without_semantic_r50_fpn_1x.py b/configs/htc/htc_without_semantic_r50_fpn_1x.py index 94421cf..83d4537 100644 --- a/configs/htc/htc_without_semantic_r50_fpn_1x.py +++ b/configs/htc/htc_without_semantic_r50_fpn_1x.py @@ -94,6 +94,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -148,9 +155,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/htc/htc_x101_32x4d_fpn_20e_16gpu.py b/configs/htc/htc_x101_32x4d_fpn_20e_16gpu.py index 97bd96c..7a1f234 100644 --- a/configs/htc/htc_x101_32x4d_fpn_20e_16gpu.py +++ b/configs/htc/htc_x101_32x4d_fpn_20e_16gpu.py @@ -111,6 +111,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -165,9 +172,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/htc/htc_x101_64x4d_fpn_20e_16gpu.py b/configs/htc/htc_x101_64x4d_fpn_20e_16gpu.py index df50287..025b36d 100644 --- a/configs/htc/htc_x101_64x4d_fpn_20e_16gpu.py +++ b/configs/htc/htc_x101_64x4d_fpn_20e_16gpu.py @@ -111,6 +111,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=[ dict( assigner=dict( @@ -165,9 +172,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/mask_rcnn_r101_fpn_1x.py b/configs/mask_rcnn_r101_fpn_1x.py index 3675a80..1059120 100644 --- a/configs/mask_rcnn_r101_fpn_1x.py +++ b/configs/mask_rcnn_r101_fpn_1x.py @@ -69,6 +69,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -88,9 +95,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/mask_rcnn_r50_c4_1x.py b/configs/mask_rcnn_r50_c4_1x.py index 4bdf36c..63884a4 100644 --- a/configs/mask_rcnn_r50_c4_1x.py +++ b/configs/mask_rcnn_r50_c4_1x.py @@ -72,6 +72,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=12000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -91,9 +98,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=12000, - nms_post=2000, - max_num=2000, + nms_pre=6000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/mask_rcnn_r50_fpn_1x.py b/configs/mask_rcnn_r50_fpn_1x.py index 364944f..eb4330b 100644 --- a/configs/mask_rcnn_r50_fpn_1x.py +++ b/configs/mask_rcnn_r50_fpn_1x.py @@ -69,6 +69,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -88,9 +95,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/mask_rcnn_x101_32x4d_fpn_1x.py b/configs/mask_rcnn_x101_32x4d_fpn_1x.py index 7333545..6772f2b 100644 --- a/configs/mask_rcnn_x101_32x4d_fpn_1x.py +++ b/configs/mask_rcnn_x101_32x4d_fpn_1x.py @@ -71,6 +71,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -90,9 +97,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/mask_rcnn_x101_64x4d_fpn_1x.py b/configs/mask_rcnn_x101_64x4d_fpn_1x.py index c19160d..8c61e33 100644 --- a/configs/mask_rcnn_x101_64x4d_fpn_1x.py +++ b/configs/mask_rcnn_x101_64x4d_fpn_1x.py @@ -71,6 +71,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -90,9 +97,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/configs/pascal_voc/faster_rcnn_r50_fpn_1x_voc0712.py b/configs/pascal_voc/faster_rcnn_r50_fpn_1x_voc0712.py index cae0a06..88f0ae0 100644 --- a/configs/pascal_voc/faster_rcnn_r50_fpn_1x_voc0712.py +++ b/configs/pascal_voc/faster_rcnn_r50_fpn_1x_voc0712.py @@ -58,6 +58,13 @@ train_cfg = dict( pos_weight=-1, smoothl1_beta=1 / 9.0, debug=False), + rpn_proposal=dict( + nms_across_levels=False, + nms_pre=2000, + nms_post=2000, + max_num=2000, + nms_thr=0.7, + min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', @@ -76,9 +83,9 @@ train_cfg = dict( test_cfg = dict( rpn=dict( nms_across_levels=False, - nms_pre=2000, - nms_post=2000, - max_num=2000, + nms_pre=1000, + nms_post=1000, + max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( diff --git a/mmdet/models/detectors/cascade_rcnn.py b/mmdet/models/detectors/cascade_rcnn.py index b20274b..6eb83e8 100644 --- a/mmdet/models/detectors/cascade_rcnn.py +++ b/mmdet/models/detectors/cascade_rcnn.py @@ -137,7 +137,9 @@ class CascadeRCNN(BaseDetector, RPNTestMixin): *rpn_loss_inputs, gt_bboxes_ignore=gt_bboxes_ignore) losses.update(rpn_losses) - proposal_inputs = rpn_outs + (img_meta, self.test_cfg.rpn) + proposal_cfg = self.train_cfg.get('rpn_proposal', + self.test_cfg.rpn) + proposal_inputs = rpn_outs + (img_meta, proposal_cfg) proposal_list = self.rpn_head.get_bboxes(*proposal_inputs) else: proposal_list = proposals diff --git a/mmdet/models/detectors/htc.py b/mmdet/models/detectors/htc.py index c1f9f53..b7ac7ae 100644 --- a/mmdet/models/detectors/htc.py +++ b/mmdet/models/detectors/htc.py @@ -175,7 +175,9 @@ class HybridTaskCascade(CascadeRCNN): *rpn_loss_inputs, gt_bboxes_ignore=gt_bboxes_ignore) losses.update(rpn_losses) - proposal_inputs = rpn_outs + (img_meta, self.test_cfg.rpn) + proposal_cfg = self.train_cfg.get('rpn_proposal', + self.test_cfg.rpn) + proposal_inputs = rpn_outs + (img_meta, proposal_cfg) proposal_list = self.rpn_head.get_bboxes(*proposal_inputs) else: proposal_list = proposals diff --git a/mmdet/models/detectors/two_stage.py b/mmdet/models/detectors/two_stage.py index 0e05b16..c300476 100644 --- a/mmdet/models/detectors/two_stage.py +++ b/mmdet/models/detectors/two_stage.py @@ -108,7 +108,9 @@ class TwoStageDetector(BaseDetector, RPNTestMixin, BBoxTestMixin, *rpn_loss_inputs, gt_bboxes_ignore=gt_bboxes_ignore) losses.update(rpn_losses) - proposal_inputs = rpn_outs + (img_meta, self.test_cfg.rpn) + proposal_cfg = self.train_cfg.get('rpn_proposal', + self.test_cfg.rpn) + proposal_inputs = rpn_outs + (img_meta, proposal_cfg) proposal_list = self.rpn_head.get_bboxes(*proposal_inputs) else: proposal_list = proposals -- GitLab