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
- We got all of our data from the ISIC ham10000 dataset
- We created a custom dataset to load the Ham10000
- We preprocessed the data by augmenting the images
- We trained a pretrained densenet121 with the Ham10000 data until we got to 79% accuracy with the help of link
- We coded a script to transform the PyTorch model into a .onnx file
- We used the ONNX Runtime Web
- we coded the front end
- done
Challenges we ran into
- 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
- The training was extremely slow, but we used a loss regulator to lead to faster convergence
- 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
- Improve the custom machine learning model with better architecture and more training time.
- Implement OpenAI API for better AI responses
- Add a feature that detects the stage of cancer.
- Contact healthcare professionals to suggest improvement and potential future partnerships.
Built With
- css
- grok
- ham10000
- html5
- javascript
- machine-learning
- onnx
- python
- pytorch
Log in or sign up for Devpost to join the conversation.