Skip to content

Commit edaf241

Browse files
authored
refactor nms config (open-mmlab#4636)
* rpn head refactor * guided anchor * add deprecate warning * add more warning for set ori augs * fix unitest * change base * cascade rpn * cornernet and centri * grid frcnn ok * ga anchor ok * legacy ok * pisa ok * tridnet ok * fix tutorals * use ConfigDict
1 parent 6215cc1 commit edaf241

35 files changed

+228
-164
lines changed

configs/_base_/models/cascade_mask_rcnn_r50_fpn.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,9 @@
126126
pos_weight=-1,
127127
debug=False),
128128
rpn_proposal=dict(
129-
nms_across_levels=False,
130129
nms_pre=2000,
131-
nms_post=2000,
132-
max_num=2000,
133-
nms_thr=0.7,
130+
max_per_img=2000,
131+
nms=dict(type='nms', iou_threshold=0.7),
134132
min_bbox_size=0),
135133
rcnn=[
136134
dict(
@@ -187,11 +185,9 @@
187185
]),
188186
test_cfg=dict(
189187
rpn=dict(
190-
nms_across_levels=False,
191188
nms_pre=1000,
192-
nms_post=1000,
193-
max_num=1000,
194-
nms_thr=0.7,
189+
max_per_img=1000,
190+
nms=dict(type='nms', iou_threshold=0.7),
195191
min_bbox_size=0),
196192
rcnn=dict(
197193
score_thr=0.05,

configs/_base_/models/cascade_rcnn_r50_fpn.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,9 @@
113113
pos_weight=-1,
114114
debug=False),
115115
rpn_proposal=dict(
116-
nms_across_levels=False,
117116
nms_pre=2000,
118-
nms_post=2000,
119-
max_num=2000,
120-
nms_thr=0.7,
117+
max_per_img=2000,
118+
nms=dict(type='nms', iou_threshold=0.7),
121119
min_bbox_size=0),
122120
rcnn=[
123121
dict(
@@ -171,11 +169,9 @@
171169
]),
172170
test_cfg=dict(
173171
rpn=dict(
174-
nms_across_levels=False,
175172
nms_pre=1000,
176-
nms_post=1000,
177-
max_num=1000,
178-
nms_thr=0.7,
173+
max_per_img=1000,
174+
nms=dict(type='nms', iou_threshold=0.7),
179175
min_bbox_size=0),
180176
rcnn=dict(
181177
score_thr=0.05,

configs/_base_/models/faster_rcnn_r50_caffe_c4.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,9 @@
8080
pos_weight=-1,
8181
debug=False),
8282
rpn_proposal=dict(
83-
nms_across_levels=False,
8483
nms_pre=12000,
85-
nms_post=2000,
86-
max_num=2000,
87-
nms_thr=0.7,
84+
max_per_img=2000,
85+
nms=dict(type='nms', iou_threshold=0.7),
8886
min_bbox_size=0),
8987
rcnn=dict(
9088
assigner=dict(
@@ -104,11 +102,9 @@
104102
debug=False)),
105103
test_cfg=dict(
106104
rpn=dict(
107-
nms_across_levels=False,
108105
nms_pre=6000,
109-
nms_post=1000,
110-
max_num=1000,
111-
nms_thr=0.7,
106+
max_per_img=1000,
107+
nms=dict(type='nms', iou_threshold=0.7),
112108
min_bbox_size=0),
113109
rcnn=dict(
114110
score_thr=0.05,

configs/_base_/models/faster_rcnn_r50_caffe_dc5.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,9 @@
7171
pos_weight=-1,
7272
debug=False),
7373
rpn_proposal=dict(
74-
nms_across_levels=False,
7574
nms_pre=12000,
76-
nms_post=2000,
77-
max_num=2000,
78-
nms_thr=0.7,
75+
max_per_img=2000,
76+
nms=dict(type='nms', iou_threshold=0.7),
7977
min_bbox_size=0),
8078
rcnn=dict(
8179
assigner=dict(
@@ -95,11 +93,9 @@
9593
debug=False)),
9694
test_cfg=dict(
9795
rpn=dict(
98-
nms_across_levels=False,
96+
nms=dict(type='nms', iou_threshold=0.7),
9997
nms_pre=6000,
100-
nms_post=1000,
101-
max_num=1000,
102-
nms_thr=0.7,
98+
max_per_img=1000,
10399
min_bbox_size=0),
104100
rcnn=dict(
105101
score_thr=0.05,

configs/_base_/models/faster_rcnn_r50_fpn.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,9 @@
7272
pos_weight=-1,
7373
debug=False),
7474
rpn_proposal=dict(
75-
nms_across_levels=False,
7675
nms_pre=2000,
77-
nms_post=1000,
78-
max_num=1000,
79-
nms_thr=0.7,
76+
max_per_img=1000,
77+
nms=dict(type='nms', iou_threshold=0.7),
8078
min_bbox_size=0),
8179
rcnn=dict(
8280
assigner=dict(
@@ -96,11 +94,9 @@
9694
debug=False)),
9795
test_cfg=dict(
9896
rpn=dict(
99-
nms_across_levels=False,
10097
nms_pre=1000,
101-
nms_post=1000,
102-
max_num=1000,
103-
nms_thr=0.7,
98+
max_per_img=1000,
99+
nms=dict(type='nms', iou_threshold=0.7),
104100
min_bbox_size=0),
105101
rcnn=dict(
106102
score_thr=0.05,

configs/_base_/models/mask_rcnn_r50_caffe_c4.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,9 @@
8989
pos_weight=-1,
9090
debug=False),
9191
rpn_proposal=dict(
92-
nms_across_levels=False,
9392
nms_pre=12000,
94-
nms_post=2000,
95-
max_num=2000,
96-
nms_thr=0.7,
93+
max_per_img=2000,
94+
nms=dict(type='nms', iou_threshold=0.7),
9795
min_bbox_size=0),
9896
rcnn=dict(
9997
assigner=dict(
@@ -114,11 +112,9 @@
114112
debug=False)),
115113
test_cfg=dict(
116114
rpn=dict(
117-
nms_across_levels=False,
118115
nms_pre=6000,
119-
nms_post=1000,
120-
max_num=1000,
121-
nms_thr=0.7,
116+
nms=dict(type='nms', iou_threshold=0.7),
117+
max_per_img=1000,
122118
min_bbox_size=0),
123119
rcnn=dict(
124120
score_thr=0.05,

configs/_base_/models/mask_rcnn_r50_fpn.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,9 @@
8686
pos_weight=-1,
8787
debug=False),
8888
rpn_proposal=dict(
89-
nms_across_levels=False,
9089
nms_pre=2000,
91-
nms_post=1000,
92-
max_num=1000,
93-
nms_thr=0.7,
90+
max_per_img=1000,
91+
nms=dict(type='nms', iou_threshold=0.7),
9492
min_bbox_size=0),
9593
rcnn=dict(
9694
assigner=dict(
@@ -111,11 +109,9 @@
111109
debug=False)),
112110
test_cfg=dict(
113111
rpn=dict(
114-
nms_across_levels=False,
115112
nms_pre=1000,
116-
nms_post=1000,
117-
max_num=1000,
118-
nms_thr=0.7,
113+
max_per_img=1000,
114+
nms=dict(type='nms', iou_threshold=0.7),
119115
min_bbox_size=0),
120116
rcnn=dict(
121117
score_thr=0.05,

configs/_base_/models/rpn_r50_caffe_c4.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@
5050
debug=False)),
5151
test_cfg=dict(
5252
rpn=dict(
53-
nms_across_levels=False,
5453
nms_pre=12000,
55-
nms_post=2000,
56-
max_num=2000,
57-
nms_thr=0.7,
54+
max_per_img=2000,
55+
nms=dict(type='nms', iou_threshold=0.7),
5856
min_bbox_size=0)))

configs/_base_/models/rpn_r50_fpn.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# model settings
2+
23
model = dict(
34
type='RPN',
45
pretrained='torchvision://resnet50',
@@ -52,9 +53,7 @@
5253
debug=False)),
5354
test_cfg=dict(
5455
rpn=dict(
55-
nms_across_levels=False,
5656
nms_pre=2000,
57-
nms_post=1000,
58-
max_num=1000,
59-
nms_thr=0.7,
57+
max_per_img=1000,
58+
nms=dict(type='nms', iou_threshold=0.7),
6059
min_bbox_size=0)))

configs/cascade_rpn/crpn_faster_rcnn_r50_caffe_fpn_1x_coco.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,13 @@
8080
pos_weight=-1,
8181
debug=False)
8282
],
83-
rpn_proposal=dict(max_num=300, nms_thr=0.8),
83+
rpn_proposal=dict(max_per_img=300, nms=dict(iou_threshold=0.8)),
8484
rcnn=dict(
8585
assigner=dict(
8686
pos_iou_thr=0.65, neg_iou_thr=0.65, min_pos_iou=0.65),
8787
sampler=dict(type='RandomSampler', num=256))),
8888
test_cfg=dict(
89-
rpn=dict(max_num=300, nms_thr=0.8), rcnn=dict(score_thr=1e-3)))
89+
rpn=dict(max_per_img=300, nms=dict(iou_threshold=0.8)),
90+
rcnn=dict(score_thr=1e-3)))
9091
optimizer_config = dict(
9192
_delete_=True, grad_clip=dict(max_norm=35, norm_type=2))

configs/cascade_rpn/crpn_r50_caffe_fpn_1x_coco.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,9 @@
6969
]),
7070
test_cfg=dict(
7171
rpn=dict(
72-
nms_across_levels=False,
7372
nms_pre=2000,
74-
nms_post=2000,
75-
max_num=2000,
76-
nms_thr=0.8,
73+
max_per_img=2000,
74+
nms=dict(type='nms', iou_threshold=0.8),
7775
min_bbox_size=0)))
7876
optimizer_config = dict(
7977
_delete_=True, grad_clip=dict(max_norm=35, norm_type=2))

configs/centripetalnet/centripetalnet_hourglass104_mstest_16x6_210e_coco.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
distance_threshold=0.5,
3535
score_thr=0.05,
3636
max_per_img=100,
37-
nms_cfg=dict(type='soft_nms', iou_threshold=0.5, method='gaussian')))
37+
nms=dict(type='soft_nms', iou_threshold=0.5, method='gaussian')))
3838
# data settings
3939
img_norm_cfg = dict(
4040
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)

configs/cornernet/cornernet_hourglass104_mstest_10x5_210e_coco.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
distance_threshold=0.5,
3535
score_thr=0.05,
3636
max_per_img=100,
37-
nms_cfg=dict(type='soft_nms', iou_threshold=0.5, method='gaussian')))
37+
nms=dict(type='soft_nms', iou_threshold=0.5, method='gaussian')))
3838
# data settings
3939
img_norm_cfg = dict(
4040
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)

configs/cornernet/cornernet_hourglass104_mstest_32x3_210e_coco.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
distance_threshold=0.5,
3535
score_thr=0.05,
3636
max_per_img=100,
37-
nms_cfg=dict(type='soft_nms', iou_threshold=0.5, method='gaussian')))
37+
nms=dict(type='soft_nms', iou_threshold=0.5, method='gaussian')))
3838
# data settings
3939
img_norm_cfg = dict(
4040
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)

configs/cornernet/cornernet_hourglass104_mstest_8x6_210e_coco.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
distance_threshold=0.5,
3535
score_thr=0.05,
3636
max_per_img=100,
37-
nms_cfg=dict(type='soft_nms', iou_threshold=0.5, method='gaussian')))
37+
nms=dict(type='soft_nms', iou_threshold=0.5, method='gaussian')))
3838
# data settings
3939
img_norm_cfg = dict(
4040
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)

configs/dynamic_rcnn/dynamic_rcnn_r50_fpn_1x.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
1818
loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0))),
1919
train_cfg=dict(
20-
rpn_proposal=dict(nms_thr=0.85),
20+
rpn_proposal=dict(nms=dict(iou_threshold=0.85)),
2121
rcnn=dict(
2222
dynamic_rcnn=dict(
2323
iou_topk=75,
2424
beta_topk=10,
2525
update_iter_interval=100,
2626
initial_iou=0.4,
2727
initial_beta=1.0))),
28-
test_cfg=dict(rpn=dict(nms_thr=0.85)))
28+
test_cfg=dict(rpn=dict(nms=dict(iou_threshold=0.85))))

configs/grid_rcnn/grid_rcnn_r50_fpn_gn-head_1x_coco.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
_base_ = ['../grid_rcnn/grid_rcnn_r50_fpn_gn-head_2x_coco.py']
1+
_base_ = ['grid_rcnn_r50_fpn_gn-head_2x_coco.py']
22
# learning policy
33
lr_config = dict(
44
policy='step',

configs/grid_rcnn/grid_rcnn_r50_fpn_gn-head_2x_coco.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,9 @@
8787
pos_weight=-1,
8888
debug=False),
8989
rpn_proposal=dict(
90-
nms_across_levels=False,
9190
nms_pre=2000,
92-
nms_post=2000,
93-
max_num=2000,
94-
nms_thr=0.7,
91+
max_per_img=2000,
92+
nms=dict(type='nms', iou_threshold=0.7),
9593
min_bbox_size=0),
9694
rcnn=dict(
9795
assigner=dict(
@@ -112,11 +110,9 @@
112110
debug=False)),
113111
test_cfg=dict(
114112
rpn=dict(
115-
nms_across_levels=False,
116113
nms_pre=1000,
117-
nms_post=1000,
118-
max_num=1000,
119-
nms_thr=0.7,
114+
max_per_img=1000,
115+
nms=dict(type='nms', iou_threshold=0.7),
120116
min_bbox_size=0),
121117
rcnn=dict(
122118
score_thr=0.03,

configs/guided_anchoring/ga_faster_r50_caffe_fpn_1x_coco.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@
5555
allowed_border=-1,
5656
center_ratio=0.2,
5757
ignore_ratio=0.5),
58-
rpn_proposal=dict(max_num=300),
58+
rpn_proposal=dict(nms_post=1000, max_per_img=300),
5959
rcnn=dict(
6060
assigner=dict(pos_iou_thr=0.6, neg_iou_thr=0.6, min_pos_iou=0.6),
6161
sampler=dict(type='RandomSampler', num=256))),
62-
test_cfg=dict(rpn=dict(max_num=300), rcnn=dict(score_thr=1e-3)))
62+
test_cfg=dict(
63+
rpn=dict(nms_post=1000, max_per_img=300), rcnn=dict(score_thr=1e-3)))
6364
optimizer_config = dict(
6465
_delete_=True, grad_clip=dict(max_norm=35, norm_type=2))

configs/guided_anchoring/ga_faster_r50_fpn_1x_coco.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@
5555
allowed_border=-1,
5656
center_ratio=0.2,
5757
ignore_ratio=0.5),
58-
rpn_proposal=dict(max_num=300),
58+
rpn_proposal=dict(nms_post=1000, max_per_img=300),
5959
rcnn=dict(
6060
assigner=dict(pos_iou_thr=0.6, neg_iou_thr=0.6, min_pos_iou=0.6),
6161
sampler=dict(type='RandomSampler', num=256))),
62-
test_cfg=dict(rpn=dict(max_num=300), rcnn=dict(score_thr=1e-3)))
62+
test_cfg=dict(
63+
rpn=dict(nms_post=1000, max_per_img=300), rcnn=dict(score_thr=1e-3)))
6364
optimizer_config = dict(
6465
_delete_=True, grad_clip=dict(max_norm=35, norm_type=2))

configs/guided_anchoring/ga_rpn_r50_caffe_fpn_1x_coco.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
add_gt_as_proposals=False),
5353
allowed_border=-1,
5454
center_ratio=0.2,
55-
ignore_ratio=0.5)))
55+
ignore_ratio=0.5)),
56+
test_cfg=dict(rpn=dict(nms_post=1000)))
5657
optimizer_config = dict(
5758
_delete_=True, grad_clip=dict(max_norm=35, norm_type=2))

configs/guided_anchoring/ga_rpn_r50_fpn_1x_coco.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
add_gt_as_proposals=False),
5353
allowed_border=-1,
5454
center_ratio=0.2,
55-
ignore_ratio=0.5)))
55+
ignore_ratio=0.5)),
56+
test_cfg=dict(rpn=dict(nms_post=1000)))
5657
optimizer_config = dict(
5758
_delete_=True, grad_clip=dict(max_norm=35, norm_type=2))

0 commit comments

Comments
 (0)