This project attempts to recognize user emotion using a convolutional neural network (CNN). The particular architecture used is a residual neural network based (ResNet).
The neural net can recognize 7 emotions with relatively high accuracy: (1) Anger, (2) Disgust, (3) Fear, (4) Happy, (5) Sad, (6) Surprise and (7) Neutral.
The dataset for training the neural net came from the Carrier and Courville Facial Expression Dataset hosted on Kaggle.
(1) In order to get going quickly, run the face_tracking.py file and the program will begin to track your emotions via webcam.
(1) The neural net can be re-trained to obtain a different model via the emotion_recognition.py file.
The current model has an accuracy of ~94.8% on the test dataset.
(1) Webcam, (2) Graphics card supporting Tensorflow
Note: Program has only been tested under Ubuntu 14.04 with an NVIDIA GTX 1070.
(1) https://github.com/tflearn/tflearn/blob/master/examples/images/residual_network_cifar10.py