Skin cancer, characterized by the uncontrolled growth of abnormal skin cells due to UV exposure, poses a significant health risk. Early detection is essential for effective treatment. The primary types of skin cancer include:
- Basal Cell Carcinoma (BCC)
- Squamous Cell Carcinoma (SCC)
- Melanoma
The NeuraDerm App leverages machine learning to improve the accuracy and speed of skin cancer diagnosis, making healthcare more accessible, particularly in resource-limited environments.
Our solution involves a robust sequence of three deep learning models:
- Model 1: Validates if the uploaded image is a skin image.
- Model 2: Classifies dermatoscopic images.
- Model 3: Classifies clinical images.
The detection process follows these steps:
- Image Upload: Users upload a skin image.
- Validation: The image is validated using Model 1.
- Classification: If validated, the image is classified by either Model 2 or Model 3.
- Output: The system predicts the class, which may include:
- Melanoma
- Melanocytic Nevi
- Basal Cell Carcinoma
- Other benign or malignant lesions
Images that do not meet validation criteria are classified as "Unknown."
Our project utilizes the following libraries and tools:
- NumPy
- TensorFlow
- Pandas
- Matplotlib
- Pillow
- Google Colab
- Scikit-Learn
- Kaggle
- Explored the HAM10000 dataset with Python and Matplotlib.
- Addressed data imbalance through techniques such as oversampling and data augmentation.
Each model was trained for 30 epochs, achieving the following accuracies:
- Model 1: 99% training accuracy, 98% testing accuracy.
- Model 2: 97% training accuracy, 93% testing accuracy.
- Model 3: 99% training accuracy, 97% testing accuracy.
Models were saved in TensorFlow Lite format, and an API was created using FastAPI, deployed on AWS EC2 for seamless integration.
The NeuraDerm mobile application empowers patients and healthcare providers by analyzing skin images to deliver valuable diagnostic insights.
- AI Image Testing: Users can upload images for instant analysis.
- Clinic Information: Access to specialized dermatology clinics.
- Appointment Booking: Streamlined process for scheduling appointments.
- QR Code Generation: Unique QR codes for easy clinic interactions.
The app adheres to Clean Architecture principles, structured into three main layers:
- Feature Layer: Responsible for user interface components.
- Data Layer: Manages data retrieval and storage.
- Model Layer: Defines data structures used throughout the app.
The backend is built with .NET and includes:
- LINQ for data querying
- SQL Server for database storage
- Entity Framework for data access
- JwtBearer for secure authentication
- Stripe for payment processing
We utilized various design patterns to ensure a robust architecture:
- N-Tier Architecture
- Repository Pattern
- Unit of Work Pattern
- Dependency Injection
The database encompasses tables for:
- Users
- Roles
- Clinics
- Appointments
- Detection data
The project is organized into several key components:
- SkinCancer.Api: Main application entry point
- SkinCancer.Entities: Data model definitions
- SkinCancer.Repositories: Data access layers
- SkinCancer.Services: Service classes for business logic
The NeuraDerm App combines Convolutional Neural Networks with a user-friendly mobile interface and a robust .NET backend, emphasizing the critical role of early skin cancer detection and the transformative potential of AI in medical diagnostics.
Thank you for your interest in the NeuraDerm project! ✨
To get started, clone the repository. You can find the machine learning notebooks and models in the MachineLearning directory, along with instructions for running the models. The latest build of the app is available here. Documentation and other assets are on the associated GoogleDrive.
This project is licensed under the MIT License. For more details, please refer to the LICENSE.md file.