Open zhao34731 opened 3 years ago
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
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 belowif 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.pyodm_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!