Authors: Fridah Kimathi, Scholar Chepkirui, Amos Kibet, Anthony Nene, Eugene Kuloba and Beth Mithamor
- Prerequisites
- Overview
- Data Sources
- Focus Diseases
- Data Preprocessing
- Model Architecture
- Model Evaluation
- Web Application
- Demo
- Conclusion
- Limitations
- Recommendations
- Future Work
- For More Information
- Repository Structure
- Python: 3.11.2 or above
- Deep Learning Frameworks such TensorFlow
- Data Scrapping libraries such as Selenium
- Data Preprocessing knowledge, including data cleaning, data augmentation, and data normalization techniques.
- GPU(optional)
- Development Environment such as anaconda 23.3.3
- Dataset:
DermNet NZ Image Library
andISIC 2019 Challenge
- Access to Cloud Computing Services such as Google Colab
Skin diseases can have a significant impact on a person's health and wellbeing. Early diagnosis and treatment are essential for preventing complications, scarring, disfigurement, and even life-threatening conditions such as skin cancer. This project aims to develop an image classifier that can accurately identify common skin diseases in images uploaded by users.
The data used for this project was sourced from two primary websites - DermNet NZ Image Library
and ISIC 2019 Challenge
. The combination of these datasets provides a diverse range of skin conditions for the image classifier to learn from.
The image classifier was trained to identify eight focus diseases: Acne
, Atopic Dermatitis (Eczema)
, Actinic Keratosis
, Benign Keratosis-like Lesions
, Melanoma
, Psoriasis
, Basal Cell Carcinoma
, and Tinea (Ringworm)
. These diseases were selected based on their prevalence and the potential impact they can have on a person's health.
Before training the model, the collected data is preprocessed to ensure its suitability. The images are resized to a standard size to reduce computational load and ensure consistency across the dataset. Additionally, the images are labelled with the corresponding skin disease to facilitate supervised learning.
Derma AI's model architecture is based on Convolutional Neural Networks (CNNs), a deep learning technique widely used for image classification tasks. Transfer learning is employed to utilise pre-trained models such as VGG-19
and EfficientNet
to fine-tune the model and improve its performance.
The model's accuracy, indicating the proportion of correctly classified skin diseases, is used to evaluate its performance.
Training and Validation Accuracy and Loss
To make the skin disease image classifier easily accessible to users, it was integrated into a user-friendly web application. Users can upload images of their skin diseases, and the application provides an accurate diagnosis of the skin condition. The application only accepts images that contain human skin and gives an error message if the uploaded image is not a valid image file or if the skin disease is not in our database yet.
The skin disease image classifier web application is powered by Flask, a popular Python-based web framework, and is hosted on the Google Cloud platform, ensuring reliability and scalability.
Insert gif or link to demo
The skin disease classifier model has shown promising results in accurately identifying various skin diseases with an 88% accuracy rate on the test set. The integration of this model into a website will provides an accessible and efficient platform for users to upload photos of their skin diseases and receive accurate diagnoses. However, the model is not without its limitations, including the potential for bias in the training dataset and variability in image quality uploaded by users. Future work includes expanding the dataset and improving the model's ability to identify other skin conditions, as well as conducting real-world validation studies and integrating the model with telemedicine technologies. Despite these limitations, the model represents a significant step forward in the field of dermatology and has the potential to improve access to healthcare for individuals with skin conditions.
- Limited dataset: The model was trained on a limited dataset, which may not be representative of all skin disease and skin types.
- Lack of diversity: Skin diseases can present differently in different people based on factors such as age, skin type, and ethnicity.Potential bias in the dataset used for training the model, which may lead to inaccurate predictions for certain demographics or skin types.
- Dependence on image quality: The model's perfomance may vary depending on the quality of images uploaded by users. Images that are blurry, poorly lit, or not centered properly may not be accurately classified by the model.
- Human error: The accuracy of the model may also be affected by human error, such as mislabeling or misdiagnosing the skin disease images in the dataset.
-
Collect more diverse and high-quality skin disease images from different populations and sources to improve the model's ability to generalize to new data.
-
Incorporate expert knowledge from dermatologists or other medical professionals to verify and help label and diagnose the skin disease images in the dataset.
-
Incorporate additional metrics such as precision, recall, and F1 score to evaluate the model's performance.
-
Investigate the potential of incorporating additional data sources such as patient history and clinical data to improve the accuracy of the diagnosis.
- Real-world validation: Real-world validation studies can be conducted to evaluate the model's performance in clinical settings and to assess its impact on patient outcomes.
- Expand dataset: Expanding the dataset with more diverse skin types, demographics, and skin conditions can improve the model's generalizability and reduce potential biases.
- Expand to other skin conditions: The model can be further developed to identify a broader range of skin conditions beyond the current scope of skin diseases, such as wounds. This would increase the versatility and usefulness of the model for both patients and healthcare professionals.
- Explainable AI: Implementing explainable AI techniques can help clinicians and patients understand the model's decision-making process, increasing trust and transparency in the model's predictions.
- Integrate model with telemedicine technologies: The model can also be integrated with telemedicine technologies to enable remote diagnosis and treatment of skin diseases.
We appreciate your decision to use our skin disease image classifier, and we hope that it will contribute to your overall skin health and well-being. Should you have any queries or apprehensions, please do not hesitate to reach out to us. Additionally, you can refer to the Jupyter Notebook
for a comprehensive analysis or review the presentation
for further information.
├── Data
├── Images
├── Notebooks
├── website
├── DermaAI.ipynb
├── README.md
└── Skin_Image_Classifier_Presentation.pdf