An AI-powered skin disease identification system using Convolutional Neural Networks — built as a capstone thesis project in partnership with CCIS.
2
CNN Models
10K+
Training Images
7
Skin Lesion Classes
95%
Mpox Accuracy
Overview
The aim of this project is to reduce the cases of skin lesion diseases. For the model processing, we studied and utilized a Convolutional Neural Network (CNN). This is our capstone thesis project.
Statement of the Problem
Traditional methods in diagnosing viral skin infections are expensive, time-consuming, costly, inaccurate and are not available in other areas of the world.
Research Question: What is an alternative approach in detecting skin diseases efficiently, accurately, and with little to no cost?
Key Features
Implementation
We applied transfer learning using pre-trained convolutional neural networks, which were fine-tuned on our dataset comprising 10,015 skin lesion images. Among the pre-trained models tested, EfficientNetB0 with an input resolution of 224×224 pixels achieved optimal performance.
Deep Learning Pipeline
Import Required Libraries
Import all necessary libraries
Load and Explore Dataset
Visualize imbalanced data, missing data, and class distribution
Data Preprocessing
Transform data features by splitting data, encoding labels, resizing, and normalizing
Handle Class Imbalance
Address the severe imbalance using a Hybrid Approach for best balance of accuracy and generalization
Data Augmentation
Create realistic transformations that can improve model performance by 5–10%
Build EfficientNetB0 Model
Load pre-trained ImageNet weights
Compile Model
Configure how the model will learn during training
Setup Callbacks
Monitor training metrics such as validation accuracy or validation loss
Train Phase 1 (Frozen Base)
Use pre-trained features (frozen)
Fine-tuning Phase 2
Unfreeze and fine-tune pre-trained layers
Combine Training History
Merge training results from both phases
Plot Training History
Visualize training performance over time
Evaluate on Test Set
Assess model performance on unseen data
Classification Report
Generate detailed performance metrics
Per-Class Accuracy
Analyze accuracy for each disease class
Save Model
Export the trained model for deployment
Prediction Function
Use the fine-tuned model to make predictions
Results
Our model achieved 74% accuracy on the test dataset, demonstrating its effectiveness in identifying various skin diseases.
Per-Class Performance
| Class | Accuracy | Precision | Recall | F1-Score | Samples |
|---|---|---|---|---|---|
| akiec | 52.3% | 55.7% | 52.3% | 54.0% | 65 |
| bcc | 78.6% | 55.5% | 78.6% | 65.1% | 103 |
| bkl | 65.0% | 53.0% | 65.0% | 58.4% | 220 |
| df | 82.6% | 30.7% | 82.6% | 44.7% | 23 |
| mel | 49.3% | 48.7% | 49.3% | 49.0% | 223 |
| nv | 79.8% | 93.2% | 79.8% | 86.0% | 1341 |
| vasc | 100.0% | 31.1% | 100.0% | 47.5% | 28 |
| Macro Avg | — | 52.5% | 72.5% | 57.8% | 2003 |
| Weighted Avg | — | 79.1% | 74.1% | 75.7% | 2003 |
Model 1 · HAM10000
Trained on the HAM10000 dataset — 10,015 dermatoscopic images across 7 lesion categories including Melanoma, Basal Cell Carcinoma, and Melanocytic Nevus.
Model 2 · Monkeypox
A binary classifier trained to detect Monkeypox virus infection from skin lesion images. Uses TFLite quantization for fast, lightweight inference on constrained hardware.
Technology
Framework
Flask · Python
ML Engine
TensorFlow · TFLite
Frontend
Tailwind · Alpine.js
Deployment
Render · gunicorn
Image Processing
Pillow · OpenCV
Dataset
HAM10000
Institution
College of Computer and Information Sciences (CCIS) · Capstone Thesis Project · 2026