Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/madhanmohanreddy2301/melanoma-detection-assignment

This project aims to develop a deep learning model using a Convolutional Neural Network (CNN) to detect melanoma, a deadly form of skin cancer, from medical images. By leveraging image classification techniques, the model helps automate early detection of melanoma, potentially aiding dermatologists in faster and more accurate diagnoses.
https://github.com/madhanmohanreddy2301/melanoma-detection-assignment

ai convolutional-neural-networks deep-learning ml neural-network

Last synced: 2 days ago
JSON representation

This project aims to develop a deep learning model using a Convolutional Neural Network (CNN) to detect melanoma, a deadly form of skin cancer, from medical images. By leveraging image classification techniques, the model helps automate early detection of melanoma, potentially aiding dermatologists in faster and more accurate diagnoses.

Awesome Lists containing this project

README

        

# Melanoma Detection

> A CNN-based model to accurately detect melanoma, a type of skin cancer that accounts for 75% of skin cancer deaths. This solution evaluates images and alerts dermatologists about the presence of melanoma, potentially reducing manual diagnostic effort.

## Table of Contents
- [Problem Statement](#problem-statement)
- [Business Understanding](#business-understanding)
- [Business Goal](#business-goal)
- [Business Risk](#business-risk)
- [Project Pipeline](#project-pipeline)
- [Technologies Used](#technologies-used)
- [Acknowledgements](#acknowledgements)
- [Contact](#contact)

## Problem Statement

### Business Understanding

The dataset consists of 2,357 images of malignant and benign oncological diseases from the International Skin Imaging Collaboration (ISIC). The images are classified into multiple disease categories with melanomas and moles slightly dominant.

The dataset includes the following diseases:
- Actinic keratosis
- Basal cell carcinoma
- Dermatofibroma
- Melanoma
- Nevus
- Pigmented benign keratosis
- Seborrheic keratosis
- Squamous cell carcinoma
- Vascular lesion

### Business Goal

To build a multiclass classification model using a custom convolutional neural network (CNN) in TensorFlow to classify skin diseases.

### Sample Dataset Images

Here are a few samples from the dataset:

![Sample Image 1](images/dataset.png)

### Business Risk

- Incorrect classification of skin cancer poses significant health risks.

## Project Pipeline

1. **Data Reading/Data Understanding**: Define the path for train and test images.
2. **Dataset Creation**: Create train & validation datasets with a batch size of 32. Resize images to 180x180.
3. **Dataset Visualization**: Visualize one instance of each of the nine classes present in the dataset.
4. **Model Building & Training**:
- Build a CNN model to detect the 9 classes. Normalize pixel values (0,1).
- Choose an optimizer and loss function.
- Train for ~20 epochs, checking for overfitting or underfitting.
5. **Data Augmentation**: Apply augmentation to resolve overfitting/underfitting.
6. **Class Distribution**: Examine class distribution, identifying the least and most dominant classes.
7. **Handling Class Imbalances**: Use the Augmentor library to address class imbalances.
8. **Final Model Training**: Train the model for ~30 epochs on the augmented and balanced data.

## Results

Below is the accuracy and loss graph for the model:

![Training Results](images/results.png)

## Technologies Used
- `pandas` - 1.3.4
- `numpy` - 1.20.3
- `matplotlib` - 3.4.3
- `seaborn` - 0.11.2
- `plotly` - 5.8.0
- `sklearn` - 1.1.2
- `statsmodel` - 0.13.2
- `tensorflow` - 2.11.0

## Acknowledgements
- This project was developed as part of a group case study.
- Resources:
- [GeeksforGeeks](https://www.geeksforgeeks.org/)
- [Seaborn](https://seaborn.pydata.org/)
- [Plotly](https://plotly.com/)
- [Pandas](https://pandas.pydata.org/)
- [TensorFlow](https://www.tensorflow.org/)

## Contact
Created by [@madhanmohan2301] - feel free to contact me!