Skip to content

A emotion detection tool based on TensorFlow and OpenCV

License

Notifications You must be signed in to change notification settings

msiddhu/Emotion-detection

Repository files navigation

Emotion-detection

Introduction

This project aims to classify the emotion on a person's face into one of seven categories, using deep convolutional neural networks. This repository is an implementation of this research paper. The model is trained on the FER-2013 dataset which was published on International Conference on Machine Learning (ICML). Face images with seven emotions - angry, disgusted, fearful, happy, neutral, sad and surprised.

Dependencies

Usage

The repository is currently compatible with tensorflow-2.0 and makes use of the Keras API using the tensorflow.keras library.

  • pretrained model link-

  • The folder structure is of the form:
    Tensorflow:

    • data (folder)
    • emotions.py (file)
    • haarcascade_frontalface_default.xml (file)
    • model.h5 (file)
  • This implementation by default detects emotions on all faces in the webcam feed.

  • With a simple 4-layer CNN, the test accuracy peaked at around 50 epochs at an accuracy of 63.2%.

Accuracy plot

Algorithm

  • First, we use haar cascade to detect faces in each frame of the webcam feed.

  • The region of image containing the face is resized to 48x48 and is passed as input to the CNN.

  • The network outputs a list of softmax scores for the seven classes.

  • The emotion with maximum score is displayed on the screen.

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages