Inspiration

Last year, one of my relatives had a scare with skin cancer because he didn't have access to services that help detect skin cancer, so I wanted to code a project that gives people who don't have access to certain resources a cheap and easy way to check if they might have skin cancer.

What it does

An image gets uploaded to the website, which then uses a custom-trained machine learning model to detect whether they have skin cancer or not.

How we built it

  1. We got all of our data from the ISIC ham10000 dataset
  2. We created a custom dataset to load the Ham10000
  3. We preprocessed the data by augmenting the images
  4. We trained a pretrained densenet121 with the Ham10000 data until we got to 79% accuracy with the help of link
  5. We coded a script to transform the PyTorch model into a .onnx file
  6. We used the ONNX Runtime Web
  7. we coded the front end
  8. done

Challenges we ran into

  1. We spent 3 hours trying to turn our PyTorch model into a TensorFlow.js model, but in the end, we realized that we can just use a .onnx converted file instead
  2. The training was extremely slow, but we used a loss regulator to lead to faster convergence
  3. The loss fluctuated a lot, but we implemented a learning rate scheduling that prevented loss spikes by dynamically adjusting the learning rate.

Accomplishments that we're proud of

We achieved a 79 percent accuracy, and we created a fully working implementation of the idea in the given timeframe

What we learned

We learned a lot about how to train, preprocess, and implement a custom machine learning model and we also learned a lot about the theory behind machine learning and ai.

What's next for SkinSavers

  1. Improve the custom machine learning model with better architecture and more training time.
  2. Implement OpenAI API for better AI responses
  3. Add a feature that detects the stage of cancer.
  4. Contact healthcare professionals to suggest improvement and potential future partnerships.
Share this project:

Updates