zhanghang1989 / PyTorch-Encoding

A CV toolkit for my papers.
https://hangzhang.org/PyTorch-Encoding/
MIT License
2.04k stars 452 forks source link

trivial questions and suggestions #179

Open qiulesun opened 5 years ago

qiulesun commented 5 years ago

It is an awesome and developing repo., containing more SOTA methods. Question 1 For obtaining mIoU with backgroud , computing mIoU with backgroud, i,e,. 60 classes for PContext, fisrt need to get mIoU without backgroud (mIoU_59) as you did in repo, then mIoU_60 is directly equal to mIoU_59 * 59 / 60 and will be slightly weaker than mIoU_59. Do I understand correctly? Question 2 For multisize evaluation, will you consider employing dense crop on feature map rather than on input image? It drastically reduces computational overhead and may further boost the performance. Question 3 Do you consdier the usage of accumulation gradient strategy to update param. due to limited GPU memory (small batchsize)? Question 4 Your work appeals to me. When will you release your cvpr2019 paper Co-occurrent Features in Semantic Segmentation ?

Thank you for your consideration and I am looking forward to your reply.

zhanghang1989 commented 5 years ago

Q1: yes, we just simply assume the pixels from background category are all misclassied. Q2: I agree. But for some model you may need to seperate the backbone and "head" to apply that trick, as they may not be fully convolutional (or change behavior when image size changes). Q3: That won't work. Please see the blog for how batch normalization works https://hangzhang.org/blog/SynchronizeBN/ . Basically, the forward pass is blocked at that layer, if not all batches are ready at that time. Q4: Will do. Currently blocked by the Amazon legal apprvoal.

Thanks!

qiulesun commented 4 years ago

@zhanghang1989 Performance on Pascal Context #78 shows the different strategy for computing mIoU_60 on PASCAL Context. Do you agree with their strategy ?

qiulesun commented 3 years ago

@zhanghang1989 I note that there are two different ways to compute mIoU on 60 classes for PASCAL Context. One is used like EncNet (mIoU_60 = mIoU_59 * 59 / 60), another is from issue Performance on Pascal Context #78. Which one is more common ?

zhanghang1989 commented 3 years ago

I agree with the comment https://github.com/HRNet/HRNet-Semantic-Segmentation/issues/78#issuecomment-571777824

Giving up predicting the back ground class is actually easier for the network. Depending on how you want to tackle this problem, you may choose a consistent way to compare with other work. Either way is okay, as long as the comparisons are fair.