Done into two main steps:
- Face-detection: from the video source using OpenCV and haarcascade algorithm.
- Emotion recognition:
- First solution: Using a model trained on FER-2013 dataset with Tensorflow.
- Second solution: I've used DeepFace package as a prefabricated solution.
- The dataset and its challenges
- High level roadmap for the project
- The mentioned solutions and demos for how to tackle the problem
- Technologies Used in this project
- Some useful resources
- For more info and getting in touch
- LICENCSE
FER 2013 Dataset:
The data consists of 48x48 pixel grayscale images of faces. The dataset consists of 7 unblanced classes
Note that the data has lots of pitfalls:
So don't expect a high accuracy on training I got about 70% on the validation set
- Imbalanced classes: you can notice from the below charts that the
happy
class represents 25% of the data
- Some other problems exist in the dataset like occulsion, contrast variation and Intra class variation:
Solutions:
Demos:
- Emotion recognition Model training in the fer-2013 dataset
- Realtime face detection demo
- Emotion recognition for multiple faces in a snigle image demo
- Tensorflow 2.0
- Keras
- OpenCV
- Python
- DeepFace
- Fer-2013 dataset link in kaggle
- Realtime emotino recognition hypertuning mobilenet model youtube video
- PAZ a GitHub repo which contains different applications on computer vision
- Email: amshrbo@gmail.com