Giter Site home page Giter Site logo

jpaulrajredhat / a-deep-learning-approach-to-skin-cancer-diagnosis Goto Github PK

View Code? Open in Web Editor NEW

This project forked from olanix2002/a-deep-learning-approach-to-skin-cancer-diagnosis

0.0 0.0 0.0 329.84 MB

License: Apache License 2.0

Python 0.10% PureBasic 1.14% HTML 0.22% Jupyter Notebook 98.55%

a-deep-learning-approach-to-skin-cancer-diagnosis's Introduction

A-Deep-Learning-Approach-to-Skin-Cancer-Diagnosis

This project aims to detect three types of skin cancer, namely basal cell carcinoma, melanoma, and squamous cell carcinoma using a deep learning-based approach.

Table of Contents

Introduction

Skin cancer is one of the most common forms of cancer, and early detection is crucial for successful treatment. This project focuses on the detection of three types of skin cancer, namely basal cell carcinoma, melanoma, and squamous cell carcinoma, using a deep learning-based approach.

The model used in this project is a convolutional neural network (CNN), which is trained on a dataset of skin images. The CNN can take an image of a skin lesion as input and output the probability of the lesion being one of the three types of skin cancer.

Installation

To install the required packages, please use the following command: pip install -r requirements.txt

Dataset

The dataset used in this project is a collection of dermoscopic images of skin lesions, which have been labeled as one of the three types of skin cancer. The dataset was preprocessed and split into training, validation, and test sets. The images were resized and normalized to improve the performance of the model. The dataset used in this project is small, and the model's accuracy is affected due to a lack of data. The dataset can be downloaded from here.

Model Architecture

The model architecture used in this project is a CNN with the following layers:

  • Input layer
  • Data preprocessing layer (resizing and rescaling)
  • Convolutional layers
  • Max-pooling layers
  • Flatten layer
  • Fully connected layers

Training

To train the model, follow these steps:

Download the dataset using the instructions mentioned in the Dataset section.

Run the following command: python train.py --data_path

The trained model will be saved in the models directory.

Evaluation

To evaluate the model, follow these steps:

Download the dataset using the instructions mentioned in the Dataset section.

Run the following command: python evaluate.py --data_path

The evaluation results will be printed on the console.

Results

The model achieved an accuracy of 85% on the test set, which is not optimal due to the small size of the dataset.

Deployment

The skin cancer detection system was deployed using a FastAPI web application, which allows users to upload images of skin lesions and get a diagnosis. The model was packaged as a Python module and loaded into the FastAPI server. The server returns the accuracy and confidence level of the prediction. The code was committed to GitHub, and an Azure web app was created to deploy the model. The model was deployed successfully, and the API is accessible from a public URL.

GitHub Workflow Development Process

The development process for this project was streamlined using the Azure GitHub workflow. The workflow consists of multiple steps, including linting, testing, building the application, and deploying the application to Azure. The workflow has been designed to automatically run on every commit to the repository, ensuring that the application is always up-to-date and functioning correctly.

To run the GitHub workflow, follow these steps:

  • Clone the repository to your local machine
  • Install the required dependencies by running the command pip install -r requirements.txt
  • Create a new virtual environment by running the command python -m venv env
  • Activate the virtual environment by running the command source env/bin/activate
  • Run the GitHub workflow by running the command python .github/workflows/main.yml

The GitHub workflow will automatically run, and you can view the results in the GitHub Actions tab.

Future Work

There are several areas where this project can be extended in the future:

  • Use more advanced architectures for improved accuracy.
  • Train the model on larger datasets to improve performance.
  • Develop a user-friendly interface for the system.

License

This project is licensed under the Apache License - see the LICENSE file for details.

a-deep-learning-approach-to-skin-cancer-diagnosis's People

Contributors

olanix2002 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.