Back to Projects
🎨

SkinShade AI

Computer vision system for accurate skin tone analysis and shade matching using deep learning and advanced image processing.

Computer VisionDeep LearningImage ProcessingMLFairness AIK-Means Clustering

Overview

Built a comprehensive skin-tone classification and color recommendation system using MTCNN for face detection, HSV-based skin segmentation, and K-Means clustering to extract dominant skin colors. The system categorizes skin tones into Light, Medium, and Dark categories, utilizing the CelebA dataset during development. Deployed with TensorFlow Lite and an intuitive Gradio UI, the application combines OpenCV image processing, scikit-learn K-Means clustering to find dominant skin colors, and PyTorch MTCNN for accurate face detection. The system generates personalized 5-color palettes tailored to individual skin tones, promoting fairness in computer vision models.

Key Highlights

MTCNN-based face detection with HSV color space segmentation for accurate skin region identification

K-Means clustering algorithm to extract dominant skin colors from detected facial regions

Three-tier classification system categorizing skin tones into Light, Medium, and Dark categories

Leveraged CelebA dataset for model development and validation across diverse demographics

TensorFlow Lite deployment for optimized inference on mobile and edge devices

Interactive Gradio UI providing real-time skin tone analysis and color palette generation

Personalized 5-color palette recommendations tailored to individual skin tones

Promotes fairness in computer vision by ensuring equitable performance across all skin tones

Tech Stack

PythonTensorFlow LitePyTorchMTCNNOpenCVscikit-learnGradioNumPyHSV Color Space

🏗️ System Architecture

System Components

Image Input Module

Gradio interface for image upload and preprocessing

GradioPython

Face Detection Engine

MTCNN model for accurate face detection

PyTorchMTCNN

Skin Segmentation

HSV-based color space segmentation to isolate skin regions

OpenCVHSVNumPy

Color Extraction

K-Means clustering to find dominant skin colors

scikit-learnK-MeansNumPy

Tone Classifier

Classifies skin tone into Light/Medium/Dark categories

TensorFlow LiteCelebA Dataset

Palette Generator

Generates personalized 5-color palettes

PythonColor Theory

Data Flow

Image Input ModuleFace Detection Engine

Uploads and preprocesses user image

Raw image data
Face Detection EngineSkin Segmentation

Detects face regions in image

Face bounding boxes
Skin SegmentationColor Extraction

Segments skin regions using HSV color space

Skin pixel masks
Color ExtractionTone Classifier

Extracts dominant colors using K-Means

Dominant color values
Tone ClassifierPalette Generator

Classifies into Light/Medium/Dark

Tone category
Palette GeneratorImage Input Module

Generates personalized color palette

5-color palette recommendations

Architecture Flow

Image Input Module

Face Detection Engine

Skin Segmentation

Color Extraction

Tone Classifier

Palette Generator

Kushal Adhyaru - AI/ML Engineer & Full-Stack Builder