Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

arm filter redundant anchors in training phase? #6

Open
zhao34731 opened this issue Apr 5, 2021 · 1 comment
Open

arm filter redundant anchors in training phase? #6

zhao34731 opened this issue Apr 5, 2021 · 1 comment

Comments

@zhao34731
Copy link

Hello coder, I'm learning RefineDet architecture these days. After comparing different implements below

  1. https://github.com/luuuyi/RefineDet.PyTorch
  2. https://github.com/lzx1413/PytorchSSD
  3. yours
    I found there is a different when training the model. That's do we need to filter redundant anchors using ARM when training model.
    In the first implement. The author use below in RefineDetMultiBoxLoss function
    if self.use_ARM: P = F.softmax(arm_conf_data, 2) arm_conf_tmp = P[:,:,1] object_score_index = arm_conf_tmp <= self.theta pos = conf_t > 0 pos[object_score_index.data] = 0
    They filter the positive anchors using arm_conf
    However, In the second Implement, the author lzx1413 wrote below
    if arm_data and filter_object: arm_conf_data = arm_conf.data[:,:,1] pos = conf_t > 0 object_score_index = arm_conf_data <= self.object_score pos[object_score_index] = 0
    but in training code: refinedet_train_test.py
    odm_loss_l, odm_loss_c = odm_criterion((odm_loc,odm_conf),priors,targets,(arm_loc,arm_conf),False)
    The filter_object is disabled.
    However in the original paper, the author zhangshifeng write
    image
    I wonder whether It's a big difference to enable or disable this filter object ?
    Thanks!
@dd604
Copy link
Owner

dd604 commented Apr 8, 2021

If you use an objectness threshold in inference, you would better to filter objectness samples in training to keep consistency. I would have checked the performance difference between the two operations, and the difference is not bigger than 1ap in VOC. But I'm not sure. Maybe you can have a try.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants