The objective is to design a custom decoder that predicts segmented masks for the given dataset. The dataset consists of 900 training images with corresponding masks, and 379 test images with masks.
- The images are resized to 128x128 during pre-processing.
- Custom dataloaders are implemented to load the dataset efficiently.
- Utilize a pre-trained MobileNet encoder trained on ImageNetV1.
- Design a custom decoder atop the encoder for the segmentation task.
- Train the decoder while keeping the encoder frozen.
- Options to take input for the decoder from the last layer of the encoder or from multiple layers are explored for potentially better results.
- Keep the same architecture as in Experiment 1.
- Train the segmentation model while fine-tuning encoder weights.
Perform the following tasks for both experiments:
- Intersection over Union (IoU) and Dice Score: Calculate and report IoU and Dice score.
- Loss Plots: Plot training and validation/testing loss curves.
- Results Analysis: Analyze the results and provide observations.
- Visualization: Visualize several samples alongside their generated masks and ground truth.
- Comparative Analysis: Conduct a comparative analysis for both experiments.
- Clone this repository.
- Download the ISIC 2016 dataset and place it in the
data/
directory. - Run the
main.ipynb
files to train the segmentation models.