Performed image segmenatation on the large scale fish dataset
link to Notebook
Images in the dataset were already augmented.
-
Used Scikit-learn to split the dataset into train/test sets.
-
Used PyTorch's Dataset class to create my own Custom Fish Dataset as the images and their masks were not arranged as per my needs.
-
Resized the Images to 224x224 pixels and converted them to Tensors, to perform these trasnformations I used a library called Albumentations
-
Created a custom DataLoader with a batch size of 32
Used a UNet architecture to implement image segmentation.
The model was trained for 5 Epochs over the train dataset yielding:
Average Epoch Accuracy | Average Epoch Loss | Epoch |
---|---|---|
61.4% | 0.209 | 1 |
83.5% | 0.0788 | 2 |
85.8% | 0.0673 | 3 |
86.5% | 0.0635 | 4 |
87% | 0.061 | 5 |
Average training Accuracy was 80.85%
To predict the accuracy I used the IoU (Intersection over Union) metric
The model was then tested using the test dataset yielding:
Average accuracy of 86.69%