martinkersner / train-CRF-RNN

Train CRF-RNN for Semantic Image Segmentation
Other
199 stars 92 forks source link

Trained using three classes but predictions is fully black #15

Closed Shehz closed 8 years ago

Shehz commented 8 years ago

Hi,

I followed the instructions in the readme and sucessfully started training the system. I selected one model from the training and gave correct paths in crfasrnn.py file, but prediction is fully black. I'm new to this and I want to train with my custom dataset. But even with Pascal Voc 2012, im not getting any segmentation result. Should I change any other parameters?

Regards, Shez

martinkersner commented 8 years ago

Hi @Shehz

How many iterations did you train? Training CRF-RNN is rather time-consuming and as any other deep learning approach it requires a lot of training samples. Can you provide more information about your dataset?

You should be also aware that current state of code here does not lead to good segmentation results, but it will hopefully soon, therefore, for now you could try to use different model described here https://github.com/martinkersner/train-DeepLab.

Martin

Shehz commented 8 years ago

Hi Martin,

Thank you for your quick reply. I trained for 5000 iterations and used all the training samples for three classes from Pascal Voc 2012. I just followed the instructions from your readme to generate lmdb data files. I believe that training is done through solve.py, however in that the base weights are being loaded by already pre-trained caffemodel. But, I want to create my own caffemodel, rather than loading from already pre-trained one because I want to include new classes. Also, I had a look into train-DeepLab, does c++ supports Matio.

-Shehz

martinkersner commented 8 years ago

Even though you want to add new classes you can/have to use weights of some pre-trained layers, otherwise training would take too long and wouldn't converge since you don't employ enough training samples.

The only layers that you have to start training from scratch are those whose _outputnum differs from pre-trained model, therefore some convolutional and all deconvolutional layers.

Also, 5000 iterations aren't sufficient, however you shouldn't see predictions fully black.

Shehz commented 8 years ago

Thank you for your reply. There was some problem in my training model, now I'm getting output. Now, I want to train the system with my own training samples, which contains only two categories and these are not there in Pascal Voc 2012. In Phase-I, I have to train the system with CNN until it gets converged and after that I have to load the model to CRN-RNN and start training again until it gets converged. As, you have mentioned I have to change the num_outputs based on number of categories. Is there anything else, which I should be careful of while generating lmdb files and training of the system. I just want to be sure, so that I can start training.

Thank you in advance.

martinkersner commented 8 years ago

Well, you should be careful with everything. But I suspect that current way of initializing deconvolutional layers taken from longjon is not correct.

Shehz commented 8 years ago

ok, is there any other CNN network on which I can rely upon so that I can use it for Phase-I training

martinkersner commented 8 years ago

You can try this https://github.com/martinkersner/train-DeepLab. However, I am not sure if you can mix it as you want. You should better decide for one network and then use it for all training.

Shehz commented 8 years ago

ok. Thank you

prakarshupmanyu commented 7 years ago

@Shehz I am getting a completely black output as well. I know it has been more than an year but by any chance do you still remember what was the problem in your case?