diff --git a/MODEL_ZOO.md b/MODEL_ZOO.md index 263850d680284f797ee862828ec841612dafdab7..105ac2ae410bfba80a77fb29c8e0964f75cc3dad 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 44666137b5395c4257350578e5d9eb1bf0f770e0..9915c2ef7476c21b0878ecc8f690bf5b3b297577 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 cd50d75565f004d66442a628464bacf00268f0a9..d60a165c10341289234453e49f1fbc753e26db40 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 af39dc643618dc1e5c1ab8686a27e9c2a2246390..7d89be37258cdac064742d1e8708a43c7553720d 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 90c9b076b441606658e1433cd70716b0384ea3ab..73774323e4b10813003a7ebd147165fc4bc19ef5 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 3915579b4e9fbec17be00e25d53849fd0e326d93..d71351e04502ba9d7b4e941628c3b0e51e38085a 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 ccacc0130ae78aaed9eef39cf1bdecb9f62d0fba..0c115987d1be770fdb73f3bff1dc7dda5ae3fe7c 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 adc3818a887a4a6308d284b4f2e44bc15537fe53..d2ea3d0457a1a2813677861dd4f315ff528830e0 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 75d9edd88d184220d3916ef1ef6bc897b27cdf70..de0ca006958bc5e7810955493c67cf14b3ef7758 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 46a5503442eac14f1f521ba2036c1ce10cb4f4bf..ba7c890fe28288013c2f7b61acbd85f8302bc61b 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 8091d261c369b04ccfd4bc7e6165372e35cac7ef..420395631e23a953f49435002f9b7c9589d568d6 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 4b2a36dac00b068dd26c448bcde6270816d2b2da..d95ee40ec59f4be4dcc3ea035635c564d4077aab 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 8ca3047c18b89407ae2c8cbe4a7cd6c4cb06a236..afd31839e5987e76f26364d68ef462d3190f29fe 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 649eb543c286b19ff83a9d01094823f4bf25f817..19f281f0cc4cbe5b910be388e4cb28ab089b0f9e 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 a8fdc73b199d7051719d6d5f224826fdfbf26eee..5d24d81e15c91a48187c8cfe211bb6926cf6b8b5 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 137cf783daefa9a5ff9463b58a0d9a3591d93b17..aab40b977301c299643dfcae2c1d9d455b6ad83d 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 2b8d1bf6282c44edda01b9b83cfb5b86090d045a..9d94e57561dc0e8a6c2ef1e733f0dbf3c00194e3 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 c9e50a4048be0f7859f33270bc9be151d1655fb7..10279acc89376b5353d788f832a5017b8504d71a 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 3aeceddcc2b519ed54628cd009899bf45dee62c9..b55a34c2a7c5660e7419697f7d9bf9a6acf7fe9f 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 0ba9d599cf1ea2c3c508697de1a18f39df85e153..33259432922adc543204dfaf41343093bba16aed 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 b887c3bdf04bd958c06b735c9488c5efa204f405..9311c5f2ca30260906b8b421ecb1ca5e45a58d0b 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 2ff48c567c999df25193541fd28a2c2018d10af4..90a3aadb7a5d8783b2f5feb83badcc01dbc76bb2 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 900b2e8cfa09e5e8ad4556868560fbc4b054ecdf..01183203bfbebf3a69d8c4788dbe48d0f9136ab3 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 e88e348d9ef4f2c021e3a9a6768af781f2c0c618..bcfcd15651ec76bde463faab6c241ecf9a2a84cc 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 6db66250f272fc5eb0153503624ad9c37fcca70a..cdeee64f4bec5b521078dad4094c8bf81cc39676 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 f4df48b97220b6204de136ec1b905f367cfc8669..647d07c39f3b261a5b9076f14e537e7759eba47a 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 83fc821ad3bdf65860dd0705252d6654276d7be7..067703db1473c30562e58547e082bf26a8153660 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 ed71cc1a95fb81651fc63cc7b74d4f6dedf8ec1e..12a0c2b7aa006c42df631959cb55ff14bc7f88fd 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 799e2af83cf38daeafe7ef92d712beb17ec959c8..7ae7740e27c687e0368aeddb92b89d24ea314f64 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 e0b2aa3154464662e06db87a9ab4fca38c507fde..1d5fb980c951a24d11f6fc4a6375365f2680b4a6 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 2ff700835dcdf016458b051f3bd9c443d4af7c56..6bced47cb7e48150e1815300e39152a416bbd93a 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 bc08720f16d1ccb70d8a79f1a9fb9ad37cbc4207..97b0c95c7d1b494009a188d309c90a9342b3eae9 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 d19633ffaec434d6032962a556a8f7f0a146c0d0..edbd7d8349c72d4f9ce98780a7ac9f891be9a868 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 eb3fa2be84c4ca7928ce626189e8a82ecd12b4e2..5c63992f0f932547e844278f90c4e873c3a4b3f9 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 7b7c5acc518f9f009c140ea4871987e15dbf7bc7..7a819ed988cf08c06392ca9ee87d21a82e9e48bc 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 2e322af60c110c99717133772cc63e6011ad5c27..dbebfe3b25f140f3a7d116e9af945e32c637cf1d 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 29ba42f795b55cbc5493468f4cab3d03508df959..8736c8178f2f4873090de98c43adc297939c802c 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 ca612b413a2b31f7df8d4588a7f0ab9344d220c5..22914704e0a5866dc10db63f208f7db3fb629594 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 4087d0b12912315a582745f9bf84ba691d957c8f..e37cae28293bf945ff2b0b81e0ed1ea633279bab 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 94421cfbbd5b3a6bb222005b45389ebc01bcd5ce..83d45378c67bf9a3a6fc1ffcdc95eca6982c2701 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 97bd96c53934455779bc42575ef2106905f503ef..7a1f2340aecddea7046b04f4cd948824abe5a77a 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 df502876b1afe3068d7b4d4c0827aa2834ed4947..025b36ddd6c48fb615f4658b481ed2e0263cc17d 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 3675a809cf4c27ff931fdac50ba26dc5967290a3..1059120773b980e810ec87281915e4a7c882114e 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 4bdf36c27b530b9697158b0d994e9912c1c75629..63884a4ed6746eb2e625787229ec607eeec86d26 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 364944f3c5498e54657a11ea51778820affdebe5..eb4330b81fb22f0994707e095dd61ff20e8bcff5 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 7333545c5e4d11fb2a55876adcd821fdd41b9b17..6772f2b94b3fdfcd354167cf75120bda3c8f01b3 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 c19160db8f6a4ee1cb4a138be166c9bca282df28..8c61e332f8e9ff0953de06382406ffca6463a7bd 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 cae0a06be36085b3fabb2c6c7fa28b6c16877074..88f0ae0a7d912208001e49bf9060feadd1278c70 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 b20274b30e6c042620f6b0469264ed67405e7143..6eb83e8eaa85b50f644225e524fde9c6689fd66f 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 c1f9f538a9bde5bea5f5593d1e6dfaec1cc47463..b7ac7ae0cc9a9a05029c3a4508b1cfb349780982 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 0e05b16ace317596d405380f95b2a1c01c79a4bb..c30047648c11b1bb903e5496ddc7db72e1417891 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