Questions about accuracy
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.
- Why do you compute union as
tot_class_preds + tot_class_labels - intersection? I think it's wrong because the union should be justtot_class_preds + tot_class_labels... - 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','*.*')))
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!
@Krissy93 , did you find the answer to the second question too?