A small project where we use the Kaggle Skin Cancer MNIST: HAM10000 dataset to create a Neural Network. The user can upload a picture of a skin lesion and get an estimate back on whether it requires medical attention or not. This project was assigned to us as part of the BeCode education program. The students are three and a half months into the education to become data scientists/ AI Operators and have just finished their Image Processing content. This is a first hands-on project to try and better grasp the essence of Convolutional Neural Networks (CNN from this point on) .
The data for this project comes from Kaggle's Skin Cancer MNIST HAM 10000 dataset. We focus on the two folders containing the images and the metadata.csv. The Pixel data will not be used in this project.
As mentioned before, the CNN will take an uploaded picture of a skin lesion and give an estimate classification between the following possible results:
- Actinic keratoses and intraepithelial carcinoma / Bowen's diseas (akiec)
- Basal cell carcinoma (bcc)
- Benign keratosis-like lesions (bkl)
- Dermatofibroma (df)
- Melanoma (mel)
- Melanocytic nevi (nv)
- Vascular lesions (vasc)
Code Used:
Python
Libraries Used:
Pandas Numpy Tensorflow Sklearn Flask Deployment through Heroku and Git.
In our Jupyter Notebook we can see how we trained our model by the various parameters we used. Our app.py will launch our app making it possible for users to upload pictures and get a classification. This also uses the templates, static and uploads folder to create the aesthetic and buttons. (under construction) procfile and requirements.txt are used to deploy on Heroku.
To use the app go to https://mole-detection-app.herokuapp.com/ and upload your picture of the mole to get a classification (under construction).
You can use the Jupyter notebook to change the model and preprocessing to train your own versions. Save this model and apply it in the app.py. Feel free to improve on this classification.