The Problem
Facial expressions can be difficult to interpret during virtual communication. This project explores whether machine learning can automatically recognize common emotional states.
MACHINE LEARNING PROJECT
A machine-learning system that compares multiple neural network architectures to classify facial expressions as angry, happy, sad, surprised, or neutral.
FACIAL ANALYSIS
Facial expressions can be difficult to interpret during virtual communication. This project explores whether machine learning can automatically recognize common emotional states.
Facial images are converted into grayscale pixel arrays and categorized into five emotion classes. Invalid samples are removed before creating training and testing datasets.
The project compares a pixel-based MLP, a facial-landmark neural network, and a convolutional neural network that learns spatial image features.
Each model is evaluated using test accuracy, validation loss, training curves, confidence scores, and a five-class confusion matrix.
INTERACTIVE WALKTHROUGH
Select a model and sample expression, then run the walkthrough to see how an image moves through the system.
The convolutional neural network examines nearby groups of pixels to learn facial patterns such as mouth shape, eyebrow position, and eye structure.
Uploaded images are displayed locally and are not sent to a server.
The model begins with a 48 × 48 grayscale facial image. Reducing the image to grayscale allows the model to focus on facial structure rather than color.
These scores demonstrate how model output is visualized. They are not generated by live inference.
MODEL COMPARISON
Standardized image pixels are flattened into a feature vector and passed through fully connected neural-network layers.
Sixty-eight facial coordinates represent important locations around the eyes, nose, jaw, eyebrows, and mouth.
Convolution, normalization, pooling, and dropout layers learn progressively more complex visual patterns.