zbf1991 / RRM

Reliability Does Matter: An End-to-End Weakly Supervised Semantic Segmentation Approach
94 stars 11 forks source link

Our-RRM-ResNet #8

Closed johnnylu305 closed 4 years ago

johnnylu305 commented 4 years ago

Hi, nice to meet you. I read your paper and the performance of the model is excellent. But, you did not talk too much about Our-RRM-ResNet(101). Can you talk about the details of it? How did you train this model including learning rate, learning schedule, batch size, and others? Did you use any pre-train weight? Is this deeplabv2 the same as the official one? Sorry, I have so many questions, but I could not solve this problem for a long time. If it is possible, can you release the code?

In addition, I also noticed that you might encounter the same problem(resnet-38) before in the repository of psa. The author of psa/irnet did not talk much about the resnet-38 and resnet-50. The author suggested people use official deeplabv2 which was pretrained on COCO dataset(segmentation). However, I did not want to use it because I care about "Weakly Supervised". Also, the author suggested another GitHub with resnet38 but a few people could reproduce the result from it.

zbf1991 commented 4 years ago

Firstly you need to use RRM (one-step) to generate pseudo labels of all training data, then you can use them to train any fully segmentation model (FCN), such as deeplab, PSPnet and so on. when I train the FCN, i.e., deeplab-v1 and v2, I use the official code and all the settings are the same with their papers. If you do not want the pre-trained model on COCO, I suggest you to train another FCN such as deeplab v3 or v3+. If you find the init model without COCO pre-trained using official code, please let me know, because I also think it is not a good choice.

johnnylu305 commented 4 years ago

@zbf1991 Thank you for your explanation. I have gotten a good result from official deeplabv2 with VGG16 and deeplabv3 is helpful. But, I cannot get a good result from official deeplabv2 with resnet101 without loading pretrain weight on MS COCO. Here is where I stuck. Do you train deeplabv2-resnet101 without any pretrained weights such as ImageNet?

Without COCO pretrain weight, I do not think people can get a good result on deeplabv2-resnet101 with the same setting in deeplabv2 paper. For example, in deeplabv2-resnet101, they freeze the batch normalization in each layer so people must load pretrain weight if they use the same setting of deeplabv2. In addition, they set different learning rates to different layers, so people may get a poor result if they train deeplabv2-resnet101 without any pretrain weight. Or, maybe I am wrong.

Another question, which official code of deeplabv2-resnet101 do you use? I think there are two official codes. One is Caffe model and another is Tensorflow(deeplabv3). Do you use its init.caffemodel? I try to delete it before training. However, the performance of deeplabv2-resnet101 became very worse.

zbf1991 commented 4 years ago

I used caffe-version and use its init.caffemodel