You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
I wonder whether It's a big difference to enable or disable this filter object ?
Thanks!
The text was updated successfully, but these errors were encountered:
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.
Hello coder, I'm learning RefineDet architecture these days. After comparing different implements below
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
I wonder whether It's a big difference to enable or disable this filter object ?
Thanks!
The text was updated successfully, but these errors were encountered: