Inspiration
Our inspiration for this project comes from our desire to better understand image classification using Convolutional Neural Networks, while also creating a useful and applicable product. We initially considered creating a project that classifies chest x-ray images based on diagnoses but ultimately switched to building a skin cancer identifier, as it is more relevant and aligned with our original idea. Moreover, we believe a product that implements this technology could be immensely beneficial in alerting individuals to potentially cancerous lesions they might otherwise ignore. Our goal is for this project to mark the beginning of using AI in a variety of meaningful applications.
What it does
The model takes an image of a patch of skin with a lesion as input and assigns probabilities across seven different categories based on what the it could be. Potential outputs include melanocytic nevi (nv), basal cell carcinoma (bcc), and melanoma (mel). Out of them all, melanoma is the most serious, and would require immediate medical attention. Rather than providing a hard classification, the model outputs probabilistic results to avoid false positives or negatives. We believe this approach is crucial for serious medical conditions to prevent either undue panic or a false sense of security. Additionally, the model can incorporate three meta parameters—age, sex, and lesion location—to further improve the accuracy of predictions.
How we built it
Our final model was built using the PyTorch library and the EfficientNet-B2 pre-trained model. We trained our model on the Skin Cancer MNIST: HAM10000 dataset, which contains 10,000 images of skin lesions, each labeled according to its classification. The dataset includes a variety of patient information, such as age, sex, and lesion location. To provide a user-friendly interface, we developed a Flask-based HTML interface, designed to mimic a mobile app layout.
Challenges we ran into
We encountered two major challenges during this project. The first was the difficulty of training our model within the limited time frame of the hackathon. Model training can be time-consuming, especially for beginners, and troubleshooting and retraining further delayed progress. The second challenge was ensuring the model's accuracy. Without sufficient accuracy, the model wouldn’t be useful. It took considerable time and multiple adjustments to the training script to achieve optimal accuracy across all categories.
Accomplishments that we're proud of
We are most proud of completing a fully functioning model by the end of the hackathon. We began this project with limited conceptual knowledge of image classification and even less practical experience. Given this, the fact that we were able to figure it out and produce a tangible result is something we are extremely proud of.
What we learned
This project taught us a great deal—both through formal learning and hands-on experience. We became much more familiar with machine learning libraries like PyTorch and TensorFlow, as well as image processing and utilizing pre-trained models. Additionally, we gained valuable insights into collaborative project work and how to manage tasks as a team.
What's next for Skin Lesion Identifier
There are many potential directions for this project to evolve, and several improvements we'd like to explore. Training the model on larger datasets for more extended periods would likely enhance its accuracy and flexibility. Incorporating additional user information, such as medical history, could also improve results. Additionally, developing a more comprehensive mobile app could enable users to quickly and easily identify lesions using their phone's camera. There are certainly many possibilities for further development if we continue with this project.
Log in or sign up for Devpost to join the conversation.