Emotion AI, also known as Artificial Emotional Intelligence, is a branch of AI that enables machines to understand human emotions based on non-verbal cues such as body language and facial expressions. This project aims to classify people's emotions by analyzing their facial images.
The system employs deep learning techniques to predict facial keypoints and classify emotions. The project is divided into two parts: Key Facial Points Detection and Emotion Detection.
The project uses two datasets:
-
Facial Keypoints Detection Dataset:
- Source: Kaggle Facial Keypoints Detection Dataset
- Details: Contains x and y coordinates of 15 key facial points.
- Image Size: 96x96 pixels, grayscale.
-
Facial Expression Recognition Dataset:
- Source: Kaggle Emotion Detection Dataset
- Details: Images categorized into 5 emotions: Angry, Disgust, Sad, Happy, Surprise.
- Image Size: 48x48 pixels, grayscale.
-
Key Facial Points Detection Model:
- Built using a Convolutional Neural Network (CNN) with Residual Blocks to predict facial keypoints.
- The model outputs the coordinates of 15 key points on the face.
-
Emotion Detection Model:
- A deep learning classifier is used to categorize the input image into one of five emotion classes.
- Emotions classified are: Angry, Disgust, Sad, Happy, Surprise.
Both models are integrated to produce combined predictions of facial key points and emotions from a given image.
The models are evaluated using performance metrics like accuracy, precision, and recall. A confusion matrix is used to illustrate the classification results.
- Emotion Prediction: Happiness
- Facial Keypoints: Predicted with x, y coordinates of 15 key points.
- Python
- TensorFlow: For model training and serving.
- Keras: High-level neural network API.
- OpenCV: For image preprocessing.
- Matplotlib: For visualizing training results.
Special thanks to the teams that provided the datasets used in this project: