kemaloksuz / aLRPLoss

Official PyTorch Implementation of aLRP Loss [NeurIPS2020]
Apache License 2.0
136 stars 17 forks source link

The aLRPLoss on FCOS #4

Open Xudangliatiger opened 3 years ago

Xudangliatiger commented 3 years ago

Hi! Nice work.

I am wondering that, since you adopted the ATSS which reveals that whether use the anchor (RetinaNet) or not (FCOS) would achieve same performances, then why not just show the performance of FCOS, I think its more elegant and fast.

Or the performance on FCOS is not as good as that on RetinaNet, which means the anchor is important for aLRPLoss?

kemaloksuz commented 3 years ago

Hi!

The reason why we adopted RetinaNet is our baseline, AP Loss, was trained on RetinaNet, and we did not want to replace it for fair comparison. We only replaced the IoU-based assigner of RetinaNet by "ATSS assigner"+"sparser set of anchors". At that stage, we did not employ other improvements of "ATSS detector" (e.g. using an additional centerness branch).

As for anchor-free detectors, I think aLRPLoss seems working well. We trained a FoveaBox and observed the same improvement from AP Loss (more than 3 points in Table 7 in the paper). I believe, as shown by ATSS paper and mentioned by you, it should not matter whether you use anchors or points as your initial object hypotheses. However, the performance of FoveaBox was worse than that of RetinaNet (Compare Tables 2 and 7).

Finally, why we did not use FCOS, but choose RetinaNet, FoveaBox and FasterRCNN: As you can note all these networks have only two prediction branches as classification and localisation. In contrast, ATSS detector and FCOS have an additional centerness branch, and it is not clear how the loss of centerness branch (i.e. cross entropy) can be unified into aLRP Loss. aLRPLoss+centernessweight*cross entropy will probably work, but we preferred not to add an additional hyperparameter to keep the design simple.

Comparing RetinaNet with sparse anchors+ATSS assigner (the design in our paper) with FCOS, I did not check but I am not very sure if FCOS is faster because the architectures are similar. Their main difference is FCOS has an additional centerness branch and we use 2x more hypotheses (anchors vs pixels) than FCOS. I am nor sure which has more effect on efficiency.