This is with reference to the CamVid dataset and one of its tutorial here: http://mi.eng.cam.ac.uk/projects/segnet/tutorial.html

I'm quite confused by how the model is supposed to be trained on 11 classes, when there are 12 classes in the ground truth segmentation, which includes the void class of 0. How is the network able to predict the 11 classes correctly if it is trained on 12 classes?

Also, how is the network able to know it shouldn't predict a class 0 void and how is it ensured that such prediction would result in no increase/decrease of the loss function?

I am guessing there could be a weighting function involved in the loss function calculation, i.e. void classes have weights of 0 and the rest is something like 1.0. Could anyone confirm this?


You should predict 11 channels, and compute the loss based on the 11 valid classes. The void class (technically $1-void\_class$) is used to mask the loss. I.e. you should split the 12 channel label you have to a 11 channel target and a 1 channel mask.

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.