jnkl314 / DeepLabV3FineTuning

Semantic Segmentation : Multiclass fine tuning of DeepLabV3 with PyTorch
MIT License
34 stars 10 forks source link

Questions about accuracy #3

Open Krissy93 opened 3 years ago

Krissy93 commented 3 years ago

I have some questions about the iou function in train.py. According to literature, for segmentation tasks it is computed as the intersection over union and it should be the mean over the number of classes for multiclass segmentation.

  1. Why do you compute union as tot_class_preds + tot_class_labels - intersection? I think it's wrong because the union should be just tot_class_preds + tot_class_labels...
  2. Why do you exclude the background class in the iou computation?

Plus, I suggest to add sorted in the dataloader to ensure that images and masks are loaded in correct order (otherwise the pairing may not be right):

self.imgs_files = sorted(glob.glob(os.path.join(folder_path,'Images','*.*')))
self.masks_files = sorted(glob.glob(os.path.join(folder_path,'Masks','*.*')))
Krissy93 commented 3 years ago

Ah, nevermind, I found the answer to my first question! Basically by doing tot_class_preds + tot_class_labels we are considering the overlaying pixels twice, hence we should remove them to get the correct union!

fabrizioschiano commented 2 years ago

@Krissy93 , did you find the answer to the second question too?