py-R-FCN icon indicating copy to clipboard operation
py-R-FCN copied to clipboard

what's the difference between class-aware and agnostic?

Open scut-salmon opened this issue 6 years ago • 6 comments

Hello, I found that the classification is also work for agnostic method, so what's the difference between class-aware and agnostic? Are they produce the same mAP result? Thanks for your time.

scut-salmon avatar Mar 01 '18 15:03 scut-salmon

agnostic have 8 bbox_pred num_output(for foreground and background). It may have some difference in mAP. agnostic can be faster and use less memory

SunskyF avatar Mar 02 '18 08:03 SunskyF

Hi, the background part is not trained, why not use only 4 bbox_pred num_output

xiaohu2015 avatar Mar 07 '18 13:03 xiaohu2015

@xiaohu2015 I think that background part is used in training. In proposal_target_layer.py, https://github.com/YuwenXiong/py-R-FCN/blob/290dba7fad47f1ec74e2d1675e72cca6efb6cc14/lib/rpn/proposal_target_layer.py#L188 , we use it to get bbox_inside_weights which used in loss_bbox

SunskyF avatar Mar 07 '18 16:03 SunskyF

@SunskyF The code you presented is to select the RoI of negative (bg), usually, we only train the class score for RoI of bg, but not train the locations. Hence, I don't understand why use 8 (K^2) bbox_pred num_output. In original paper, it is said that only 4(k^2) outputs are needed

xiaohu2015 avatar Mar 08 '18 05:03 xiaohu2015

@xiaohu2015 I think u are right. The bg roi are not used in training bbox. 4(k^2) is enough. However, I try that training with 4 num_output in pascal_voc. It gets 74.3 mAP, compare with 76.2 mAP which has 8 num_output. Maybe my modify is wrong or random?

SunskyF avatar Mar 10 '18 04:03 SunskyF

@SunskyF Maybe some other reasons, but I still think 4 is enough. The author of this git can answer our question?

xiaohu2015 avatar Mar 10 '18 08:03 xiaohu2015