Inspiration

The inspiration behind Empa stems from the growing challenges of virtual communication, where the nuances of non-verbal cues often get lost. As we transition into a more digital world, understanding and conveying emotions become paramount, and as such, we created a tool to support users in decoding emotions in a personalized and insightful manner.

Empa was conceived with three main purposes, each addressing crucial aspects of our evolving digital landscape:

Social Interaction Aid

Empa serves as a valuable aid for individuals navigating a myriad of social situations by effectively interpreting and responding to others' emotions with confidence and empathy.

Communication Disorders Support Tool

For those facing communication disorders, the challenges of expressing and understanding emotions can be especially daunting. Empa steps in as a supportive tool, offering real-time insights into the emotional context, empowering users to communicate more effectively.

Emotional Education

In an era where emotional intelligence plays a pivotal role in personal and professional success, Empa acts as an educational companion. It not only analyzes emotions but also provides personalized insights, contributing to the user's emotional growth and communication skills.

What it does

  • Radar chart showing emotion metrics
  • Transcribed audio to text, and recommended phrases for the emotion detected/expressed
  • Intuitive GUI and seamless frontend design

How we built it

Backend: Flask Frontend: Vanilla React

Landmarking

  1. Data Collection:
  2. We started by downloading the FER2013 dataset, which contains facial expression images. These images were used as input for our landmarking process.
  3. Landmarking Process Using a Jupyter notebook (landmarking.ipynb), we employed Mediapipe to landmark 463 facial points on each image. The resulting data was then written to a CSV file (fer2013_landmarks_nopathsfixed.csv).

Model Training

  1. Data Preparation:
  2. x represents the emotion label for each image.
  3. y represents the facial coordinates (landmarks) per image.
  4. Model Architecture:
  5. We designed and trained a custom model using TensorFlow and Sci-kit Learn. The model takes facial landmark coordinates as input and predicts the corresponding emotion label.
  6. Training Process:
  7. Input: Landmarked data from the CSV file (fer2013_landmarks_nopathsfixed.csv).
  8. Output: Trained model capable of predicting emotions based on facial landmarks.
  9. The training process involved optimizing the model's parameters to achieve accurate predictions.

Challenges we ran into

  • Refining the data from the FER2013 dataset to create an accurate model
  • Connecting the output of the AI model to the radar chart

Accomplishments that we're proud of

  • Building and training a model from scratch in 36 hours
  • Learning to use the OpenAI API

What's next for Empa

  • Improving the accuracy of the emotion detection model
  • Incorporating recognition for new emotion classes beyond our 6 existing ones
  • Deployment

Built With

Share this project:

Updates