Flask Firebase Web application with Python

The International Skin Imaging Collaboration: Melanoma Project is an academia and industry partnership designed to facilitate the application of digital skin imaging to help reduce melanoma mortality. When recognized and treated in its earliest stages, melanoma is readily curable. Based on the ISIC Detection Dataset with over 23.000 images of skin lesions, labeled as 'benign' or 'malignant', the web application provides a Hands on API for uploading and classifiying and image easily.

Included in the WebApp is a SignUp and Login functionality as well as a database provided for user account information all based onto firebase. In addition to it a paywall is added with two options: Paypal and Stripe. So all potential users should be able to handle a payment for a fast and accurate diagnosis.

Getting started

Local Installation

Clone the repo

git clone https://github.com/JanMarcelKezmann/python-flask-firebase-web-application.git

Install requirements

pip install -r requirements.txt

Make sure you have the following installed:

  • tensorflow
  • keras
  • flask
  • pillow
  • h5py
  • gevent
  • flask_dropzone
  • pyrebase
  • numpy
  • stripe
  • paypalrestsdk
  • werkzeug

Run with Python (3.6)

Python 3.6 is supported and tested.

For Linux & Windows

python app.py

Try it out!

Open http://localhost:5000 or http://127.0.0.1:5000 and have fun. 😃

Accuracy Information

Training the model with a on the imagenet dataset pretrained InceptionV3 model gives the follwing scores:

  • Accuracy: 0.831
  • F1 Score: 0.8456
  • Precision Score: 0.925
  • Recall Score: 0.7786

The Confusion Matrix of the Model evaluated on 2000 images

Some insights

Testing Stripe & Paypal Payment

Pick the login E-Mail and type in the credentials shown in the picture below

For testing Paypal payment a developer account is neccessary. Here is the test-e-mail and test-password I used:

E-Mail: sb-ychg6329905@personal.example.com | PW: J[0k$44M

References