This project is my first attempt at ISIC 2017: Skin Lesion Analysis Towards Melanoma Detection
The challenge involves classification tasks on the following skin lesions:
- Melanoma – malignant skin tumor, derived from melanocytes (melanocytic)
- Nevus – benign skin tumor, derived from melanocytes (melanocytic)
- Seborrheic keratosis – benign skin tumor, derived from keratinocytes (non-melanocytic)
The two independent binary classification tasks are as follows:
- Melanoma vs Nevus and Seborrheic keratosis
- Seborrheic keratosis vs Melanoma and Nevus
Follow Fast.ai's guide to set up a Google Cloud Platform (GCP) instance to run the notebooks in the repo.
Get the training, validation, and test data from Udacity's repo.
Run create_normalized_dataset.ipynb
to normalize the dataset using a color constancy algorithm called Shades of Gray.
It assumes that your original dataset is organized as follows:
data/
├── test
│ ├── melanoma
│ ├── nevus
│ └── seborrheic_keratosis
├── train
│ ├── melanoma
│ ├── nevus
│ └── seborrheic_keratosis
└── valid
├── melanoma
├── nevus
└── seborrheic_keratosis
and a directory called modified_data
exists in the parent directory of data
.
Run isic_2017_lesion_classification.ipynb
to train and evaluate the CNN which is a modified pre-trained ResNet-152.
Submissions to the competition are evaluated by ROC AUC for:
- Melanoma classification
- Seborrheic keratosis classification
- Melanoma and seborrheic keratosis classifications combined (mean value)
My results are as follows:
- Melanoma classification: 0.75
- Seborrheic keratosis classification: 0.83
- Mean value: 0.79