The inspiration for this project started when me and my brother registered for HackTheU, My Brother being a Medical student use to tell me about different types of Chronic Diseases and The diagnosis process through which a patient undergoes to get the complete insight of such Disease and One of them is Skin Cancer and me myself being very interested in the field of Artificial Intelligence (Machine Learning and Deep Learning) always wanted to Develop an end to end Solution for Health care problems which is particularly(in our case) is Self Diagnosis of Skin Cancer without explicit checkups .

Why we particularly choose Skin Cancer Diagnosis (Inspiration Extended)

Skin cancer is the most common form of cancer in the Major countries like US, Russia and India, with the annual cost of care exceeding billions of Dollars. With early detection, the 5-yearsurvival rate of the deadliest form, melanoma, can be up to 99%; however, delayed diagnosis causes the survival rate to dramatically decrease to 23%. furthermore, inaccurate screening for skin cancer can lead to numerous unnecessary, biopsies and excisions of benign skin lesions. Visual inspection of suspicious skin lesions is usually the first of a series of ‘tests’ to diagnose skin cancer. The diagnostic accuracy of visual inspection alone is important to decide whether additional tests, such as a biopsy, are needed. Recently, NN (Neural Network) ML (Machine Learning) implementations have shown great promise in matching and even beating dermatologist’s visual diagnosis accuracy when using dermatoscopic images for training. Hence we got inspired to pursue something which can benefit the society to such a great extent.

What it does

Skin.AI, at its core, is a way to simply Analyze the Skin Lesion and categories it into three highest probability diagnoses for a given skin lesion and based on the Analysis we can predict whether the Lesion is Malignant or benign and Hence the efficient prediction of Skin Cancer. There are so many AI ML Based Models out there which are there in Research phase but what makes Skin.AI stand out is Its Availability to any one who can access the internet can use Skin.AI to Analyze the skin lesions and predict(Thanks to Tensorflow.js for it's ability to run a ML model on web browser) . There are different labels in which the Skin.AI categories the skin lesions and they are as follows :

  1. nv, Melanocytic Nevi
  2. mel, Melanoma
  3. bkl, Benign Keratosis For More Information about the Categories you can read the research paper : link

How we built it

The project entirely relies on the wonders of AI ML (Particularly Computer Vision and Digital Image processing). Starting with creation of Machine Learning Model and ending with a web app. The ML model classifies skin lesions into seven classes. It is a fine tuned MobileNet CNN. All training was done in the google colab. The main challenges were the unbalanced dataset and the small amount of data (information about dataset is given in the last of this section). I used data augmentation to reduce the class imbalance and in so doing get categorical accuracy scores that were not heavily skewed by a single majority class. MobileNet’s small size and speed makes it ideal for web deployment. It’s also a joy to train.

Tensorflow.js is a new library that allows machine learning models to run in the browser - without having to download or install any additional software. Because the model is running locally, any data that a user submits never leaves his or her pc or mobile phone. I imagine that privacy is especially important when it comes to medical data.

After I have this Tensorflow.js Trained model it is very easy to create a web based application with very basic technologies such as Javascript, Html and Css.

The kernel details the process I followed to build the model and then convert it from Keras to Tensorflow.js. The javascript, html and css code for the app is available on github.

Insight About Dataset that I've used: The HAM1000 dataset is a large collection of multi-source dermatoscopic images of common skin lesions. The data set consists of 10,015 JPEG images which were made public through the International Skin Imaging Collaboration (ISIC) archive. The images labels are stored in a CSV file and classified into 7 different disease categories: Actinic keratosis(akiec); Basal cell carcinoma(bcc); Benign keratosis(bkl); Dermatofibroma(df); Melanoma(mel); Melanocytic nevus(nv); Vascular lesion(vasc). The HAM1000 dataset is heavily unbalanced with about 70% of the images belonging to the Melanocytic Nevus (NV) class.

Challenges we ran into

The Biggest challenge I ran into was that since we are working with the medical image data so we have to keep the privacy of the User who are using it so to ensure that I had this Plan in my head that why to upload the picture to external server instead setup the Model in the browser using Tensorflow.js which is very handy tool to run AI ML model on Web Browser, Once the model get downloaded and setup on Browser no need to download it again and again as it is stored in cache of the browser. The Second Challenge that I have Faced is the Dataset being heavily unbalanced and the small amount of data so I have learned various data augmentation techniques to tackle this situation.

Accomplishments that we're proud of

Making this work! Woohoo! I have been working on the research side of this project for a couple of days, but never really had the idea of how we'll make it production ready to user to use it directly through Internet. Now we do! This demo demonstrates exactly how we can do it and make it a proper use of it, and there's nothing more I'm proud of than to have been able to make it!

What we learned

I have learned a lot of Data Augmentation and preprocessing methods from different tutorials online and I have been pursuing AI ML for quite a few years so it's been a great journey doing this project.

What's next for Skin.AI

Skin.AI's journey has been just Started. After finishing the Advanced Cancer Prediction Prototype, we will be testing it on the much bigger dataset and analyze the accuracy on different algorithm as we will Achieve the required Accuracy we will be updating the model on web app. From there, our feedback cycle will begin which will surely help us do something great for the world in the field of Healthcare.

Really Sorry For The Very Basic UI and UX for Web Application as it took complete 2 days to put the ML Model up and running so could'nt work on UI and UX but will definitely improve it :)

Built With

Share this project: