gaviotas / AMN

Official PyTorch implementation of "Threshold Matters in WSSS: Manipulating the Activation for the Robust and Accurate Segmentation Model Against Thresholds", CVPR2022
39 stars 2 forks source link

the process #4

Closed woqiaow closed 2 years ago

woqiaow commented 2 years ago

First of all, thank you for your code. I ran the code according to the steps in the file generate_pseudo_mask.sh. Is it the complete experiment process to run all the comments in the file generate_pseudo_mask.sh?

gaviotas commented 2 years ago

Hello, @woqiaow.

The overall pipeline of WSSS consists of two stages. [1] The pseudo-mask is first generated from an image classifier, and then [2] it is used as supervision to train a segmentation network.

The process in the scripts/generate_pseudo_mask.sh corresponds to [1].

To complete the experiment process, you should train a segmentation network with the generated pseudo-masks.

For the segmentation network, please check DeepLab-V2 and AdvCAM.

woqiaow commented 2 years ago

Hello! @gaviotas. Thank you for your patience! Your answer helped me a lot! Thanks very much! In addition, the images generated in the experiment are black. Do I need additional code to get color images?

gaviotas commented 2 years ago

The generated pseudo-mask seems black because it has the category id (e.g., [0, 20]) as the pixel value among the pixel values in the range [0, 255].

To change the color of the pseudo-mask, you need to change the color palette.

You can check the code of colorization in step/make_sem_seg_labels.py of AdvCAM.

woqiaow commented 2 years ago

Hi,@gaviotas Thanks for the answer.

After reading your paper, I want to ask whether the better the pseudo-mask generated is, the better the network segmentation effect will be?

And have you ever checked a network segmentation experiment with the generated pseudo-mask? Thanks again for your help.

gaviotas commented 2 years ago

Although increasing the performance of pseudo-masks does not necessarily increase the accuracy of segmentation maps, it is somewhat positively correlated as shown in Table 3 and Table 4 of our paper.

We also train a segmentation network with the generated pseudo-masks. Table 4 shows the accuracy of segmentation results from the final segmentation network.

Please check it and let me know if you have any further questions :)

woqiaow commented 2 years ago

OK, I understand. One last question, I want to use pseudo_mask to supervise the segmentation network. Do I use pseudo_mask to replace the SegmentationClass in the voc2012 dataset?

gaviotas commented 2 years ago

Yes, it is. To train a segmentation network with the generated pseudo-masks, the SegmentationClass (or SegmentationClassAug) path should be replaced with the path of the generated pseudo-masks.

Thanks.

woqiaow commented 2 years ago

Thanks!

woqiaow commented 2 years ago

Yes, it is. To train a segmentation network with the generated pseudo-masks, the SegmentationClass (or SegmentationClassAug) path should be replaced with the path of the generated pseudo-masks.

Thanks.

Hello, I try to replace the SegmentationClass with the generated pseudo-masks, but I found that the SegmentationClass has 2913 pictures, but the generated pseudo-masks only has 1464 pictures. Is there anything else to do?

How to deal with it so as to complete the segmentation network training with the generated pseudo-masks?