BACK_TO_PORTFOLIO
// SYS.ID: 001
AI / ML

SKIN DISEASE
CLASSIFICATION_

A clinically-relevant 7-class skin lesion classifier trained on the HAM10000 dermatoscopy dataset using ResNet50 transfer learning, with real-time inference exposed via REST APIs and a React web frontend.

VIEW_ON_GITHUB
7
Classes
10K+
Images
89%
Accuracy
REST
API
// OVERVIEW

This project addresses the challenge of automated skin lesion classification, a task critical to dermatological triage and clinical decision support. The model is trained on the HAM10000 (Human Against Machine) dataset — a collection of 10,015 dermatoscopic images spanning 7 lesion categories.

A ResNet50 backbone pretrained on ImageNet was fine-tuned with custom classification heads. The full inference pipeline is exposed via a Node.js REST API, with a React frontend allowing users to upload images and receive real-time predictions.

// TECH_STACK
ML / Model
  • → PyTorch + torchvision
  • → ResNet50 Transfer Learning
  • → HAM10000 dataset
  • → Data augmentation (albumentations)
  • → Class-weighted loss for imbalance
Backend / Frontend
  • → Node.js REST API server
  • → Python model serving endpoint
  • → React.js frontend (drag & drop UI)
  • → OpenCV image preprocessing
  • → JSON response with confidence scores
// LESION_CLASSES
Melanoma
Nevus
BCC
AK
BKL
DF
VASC
// CHALLENGES & SOLUTIONS
01.
Class Imbalance — HAM10000 is heavily biased toward Melanocytic Nevi. Applied class-weighted cross-entropy and oversampling to balance training distribution.
02.
Overfitting — Used aggressive augmentation (random flip, rotation, color jitter) and dropout layers before the final FC layer.
03.
Inference Latency — Model is quantized post-training and served via a dedicated Python subprocess called from Node.js, keeping API response times under 300ms.
ResNet50 PyTorch React Node.js OpenCV Transfer Learning REST API HAM10000