This emotion recognition program can be a useful tool for people who suffer from Social-Emotional Agnosia to better understand emotions in social interactions. An application of the program is a Social-Emotional Agnosia affected individual running the script during a zoom meeting or during a class.

This designed and created convolutional neural network detects 8 primary emotions on human faces ["anger", "contempt", "disgust", "fear", "happiness", "neutrality", "sadness", "surprise"]

The AI was created with the Tensorflow and Keras libraries and used data from: https://www.kaggle.com/datasets/sudarshanvaidya/random-images-for-face-emotion-recognition. Additionally, the program uses an xml file to detect faces in the screenshot taken from the desktop. The xml files was created by Rainer Lienhart, we did not implement our own face detection software as the technology has been around for a long time and does not contribute anything to the project. However, we implemented everything else from data preprocessing, to data normalization, and convolutional neural network design.

The repository comes with many saved trained models being ['finalModel', 'm1', 'm2', 'm3', 'm4'] all of which are based on various network configurations. Additionally, opening tensorboard to view our log/fit directory you can view the various performance of models that we tested and ultimately decided against using.

If you want to test the program I recommend downloading the "emotion detection.py" script and the "finalModel" model and running it with all the python dependencies installed.

Built With

Share this project:

Updates