Always thankful for providing a good framework.
I have a question about nms in rpn_head code below. https://github.com/open-mmlab/mmdetection/blob/554e20a2e77863a01bb870f528bc835603f4fab4/mmdet/models/anchor_heads/rpn_head.py#L43-L92
As I have never seen nms_pre and nms_post before, but could you let me know the reference paper of these?
test_cfg = dict(
rpn=dict(
nms_across_levels=False,
nms_pre=2000,
nms_post=2000,
max_num=2000,
nms_thr=0.7,
min_bbox_size=0),
rcnn=dict(
score_thr=0.05, nms=dict(type='nms', iou_thr=0.5), max_per_img=100)
# soft-nms is also supported for rcnn testing
# e.g., nms=dict(type='soft_nms', iou_thr=0.5, min_score=0.05)
)
I think Faster-RCNN can be a classic paper for you to learn this knowledge.
@ybai62868 Thanks. I can find the statement and does not contain nms_pre and nms_post related information.
We fix the IoU threshold for NMS at 0.7, which leaves us about 2000 proposal regions per image,
As we will show, NMS does not harm the ultimate detection accuracy, but substantially reduces the
number of proposals. After NMS, we use the top-N ranked proposal regions for detection.
I have same question.
nms_pre means bbox num before nms, nms_post means bbox num after nms. Please see this method for details.
Thanks, I've seen the method you mentioned and if possible, i want to know reference paper of it.
Faster R-CNN and FPN are the papers you need, but some details will not be in the paper, you need to look through the official source code.
Ah, OK i'll check them. Thank you so much for help.
@hellock Hi, I found that the value of nms_pre and nms_post are both set to 2000 in most train config file. Only some caffe version of config file with value:

which I think is correct.
Could you please explain why should set the nms_pre=2000 instead of 12000, in this setting I don't think NMS will make some contributions.
Thanks,
Zhang
@scut-salmon I am also have the same probleam, have you sloved it?
Most helpful comment
The setting of nms_pre and nms_post can be found in configs/xxxx.py
test_cfg = dict(
rpn=dict(
nms_across_levels=False,
nms_pre=2000,
nms_post=2000,
max_num=2000,
nms_thr=0.7,
min_bbox_size=0),
rcnn=dict(
score_thr=0.05, nms=dict(type='nms', iou_thr=0.5), max_per_img=100)
# soft-nms is also supported for rcnn testing
# e.g., nms=dict(type='soft_nms', iou_thr=0.5, min_score=0.05)
)
I think Faster-RCNN can be a classic paper for you to learn this knowledge.