Final year project · NailHealth
Early-Stage Disease Detection via Computer Vision
NailHealth is a non-invasive diagnostic system that analyses fingernail images to detect early-stage systemic diseases. An ensemble of 7 pre-trained CNNs with XGBoost refinement reaches 93% classification accuracy across 17 disease classes.
- Python
- PyTorch
- TensorFlow
- Keras
- XGBoost
- OpenCV
- Flask
- React
- Ensemble Averaging
- classification accuracy
- 93%
- pre-trained CNNs
- 7
- disease classes
- 17
- development methodology
- RAD
The problem
Many systemic conditions leave visible signs in the nails, but checking for them usually means a blood draw, an invasive procedure or a clinic visit.
The solution
Upload one fingernail photo. It is resized, normalised and augmented, then an ensemble of seven CNNs refined by XGBoost predicts the condition, logs it to your private history and surfaces relevant health articles.

Architecture
Press play to follow a request.
Swipe sideways to explore the diagram →
One photo, seven CNNs voting, then XGBoost sharpening the call across 17 nail conditions.
Classification
17 conditions it can recognise.
The five primary classes are filled in. Tap any condition to read what it looks like.
Terry's Nail
Ground-glass opacity covering most of the nail; associated with liver disease, heart failure and diabetes.
Primary class
Ensemble
Seven networks, one answer.
Each pre-trained CNN runs independently on the image. Their softmax outputs are averaged, then an XGBoost layer refines the final disease prediction.
DenseNet121
Dense connectivity, feature reuse
DenseNet169
Deeper dense network
MobileNet
Lightweight depthwise separable convs
MobileNetV2
Inverted residuals, linear bottlenecks
ResNet50V2
50-layer residual network v2
ResNet101V2
101-layer residual network v2
VGG16
16-layer deep CNN baseline
Ensemble average
Averaged softmax probabilities across all 7 models, refined by XGBoost.
Capabilities
What it does well.
- 01
Non-invasive diagnosis
Analyse potential health conditions by uploading a photo of a fingernail: no blood draws, invasive procedures or clinic visits.
- 02
93% classification accuracy
Ensemble averaging across 7 pre-trained convolutional neural networks reaches 93% accuracy, outperforming single-model baselines.
- 03
17 disease classes
Classifies 17 nail conditions, including Terry's nail, Lindsay's nails, splinter haemorrhage and yellow nail, covering a broad range of systemic disease indicators.
- 04
Authentication & profiles
Secure registration and login with personal profiles, so each user manages and revisits their health data privately.
- 05
Diagnosis history
Every prediction is logged to the user's profile and sortable by latest or oldest, giving a longitudinal view of nail health.
- 06
Curated health articles
After each diagnosis the system surfaces articles and advice tailored to the detected condition, promoting informed health decisions.
Stack
Built with.
- Model
- Python · PyTorch · TensorFlow · Keras · XGBoost · OpenCV
- Backend
- Python · Flask · REST API · JWT Auth
- Frontend
- React · JavaScript · Tailwind CSS
- Data processing
- NumPy · Pandas · Pillow · Scikit-learn
- Model strategy
- Ensemble averaging · Transfer learning · Data augmentation
- Database
- MySQL · SQLAlchemy