Giter VIP home page Giter VIP logo

cureskin's Introduction

Cure Skin

License

Overview

Cure Skin is a Python Flask app using a Tensorflow DNN model trained to classify skin conditions from a picture and give a diagnosis with suggested information the user can use to learn more.

Model

The collab notebook used Skin Cancer MNIST: HAM10000 Kaggle dataset for training and testing the model using Tensorflow.

The model uses transfer learning with MobileNet model, to retrain the model to classify the following classes of skin conditions:

  • Melanoma
  • Melanocytic Nevi
  • Actinic Keratoses (Solar Keratoses) or Intraepithelial Carcinoma
  • Benign Keratosis
  • Basal Cell Carcinoma
  • Dermatofibroma
  • Vascular Skin Lesion

The current model has a prediction accuracy of around 86%. While high, there is a class imbalance in the Kaggle dataset and the accuracy could be improved with more samples for the lesser weighted classes in our dataset.

The notebook and some sample test images can be found under the /model folder of this repository. The saved model is around 28MB and can be found at /app/predict_api/model.h5 in this repository where its used for serving predictions to the user in the Flask app.

Try Out Live Version

https://cureskin.onrender.com

The Stripe API is in test mode so you can use 4242 4242 4242 4242 for the card number to add credits to your account.

Walk Through

The user first lands on the home page and signs up for a new account, where they can buy credits to use for diagnosises of skin conditions:

Home Page

Signup Page

A pack of 10 credits for $10 is purchased using Stripe, and 1 credit is deducted per diagnosis:

Signup Page

The user can view a list of their purchases on their user account page:

Signup Page

Once credits have been added to the account, the user can click on the 'Diagnosis' tab to begin uploading images and receiving diagnosises from the AI model. They also have access to a full history of all their previous diagnoses too:

Diagnosis Page Diagnosis Page Diagnosis Page

Setup

Vanilla

  • Install the requirements and setup the development environment.

    make install && make dev

  • Create the database.

    python manage.py initdb

  • Run the application.

    python manage.py runserver

  • Navigate to localhost:5000.

Configuration

The goal is to keep most of the application's configuration in a single file called config.py. I added a config_dev.py and a config_prod.py who inherit from config_common.py. The trick is to symlink either of these to config.py. This is done in by running make dev or make prod.

I have included a working Gmail account to confirm user email addresses and reset user passwords, although in production you should't include the file if you push to GitHub because people can see it. The same goes for API keys, you should keep them secret. You can read more about secret configuration files here.

Read this for information on the possible configuration options.

Contributors

This project was completed by:

Thanks

This Flask app is originally a fork of Max Halford's flask-boilerplate.

License

The MIT License (MIT). Please see the license file for more information.

cureskin's People

Contributors

alectrocute avatar dgildeh avatar haggishm avatar kbman99 avatar manugarri avatar maxhalford avatar renweibo avatar shamod avatar tgoelles avatar

Stargazers

 avatar

Watchers

 avatar

cureskin's Issues

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.