Coder Social home page Coder Social logo

manish-9245 / facial-emotion-recognition-using-opencv-and-deepface Goto Github PK

View Code? Open in Web Editor NEW
24.0 2.0 6.0 185 KB

Facial Emotion Recognition using OpenCV and Deepface

Python 100.00%
cv2 deepface emotion-recognition facial-recognition opencv python facial-emotion-detection facial-emotion-recognition facial-expression-recognition deep-face-recognition

facial-emotion-recognition-using-opencv-and-deepface's Introduction

Facial-Emotion-Recognition-using-OpenCV-and-Deepface

This project implements real-time facial emotion detection using the deepface library and OpenCV. It captures video from the webcam, detects faces, and predicts the emotions associated with each face. The emotion labels are displayed on the frames in real-time. This is probably the shortest code to implement realtime emotion monitoring.

  • Give this repository a ⭐ if you liked it, since it took me time to understand and implement this
  • Made with ❤️ by Manish Tiwari

Dependencies

  • deepface: A deep learning facial analysis library that provides pre-trained models for facial emotion detection. It relies on TensorFlow for the underlying deep learning operations.
  • OpenCV: An open-source computer vision library used for image and video processing.

Usage

Initial steps:

  • Git clone this repository Run: git clone https://github.com/manish-9245/Facial-Emotion-Recognition-using-OpenCV-and-Deepface.git
  • Run: cd Facial-Emotion-Recognition-using-OpenCV-and-Deepface
  1. Install the required dependencies:

    • You can use pip install -r requirements.txt
    • Or you can install dependencies individually:
      • pip install deepface
      • pip install tf_keras
      • pip install opencv-python
  2. Download the Haar cascade XML file for face detection:

  3. Run the code:

    • Execute the Python script.
    • The webcam will open, and real-time facial emotion detection will start.
    • Emotion labels will be displayed on the frames around detected faces.

Approach

  1. Import the necessary libraries: cv2 for video capture and image processing, and deepface for the emotion detection model.

  2. Load the Haar cascade classifier XML file for face detection using cv2.CascadeClassifier().

  3. Start capturing video from the default webcam using cv2.VideoCapture().

  4. Enter a continuous loop to process each frame of the captured video.

  5. Convert each frame to grayscale using cv2.cvtColor().

  6. Detect faces in the grayscale frame using face_cascade.detectMultiScale().

  7. For each detected face, extract the face ROI (Region of Interest).

  8. Preprocess the face image for emotion detection using the deepface library's built-in preprocessing function.

  9. Make predictions for the emotions using the pre-trained emotion detection model provided by the deepface library.

  10. Retrieve the index of the predicted emotion and map it to the corresponding emotion label.

  11. Draw a rectangle around the detected face and label it with the predicted emotion using cv2.rectangle() and cv2.putText().

  12. Display the resulting frame with the labeled emotion using cv2.imshow().

  13. If the 'q' key is pressed, exit the loop.

  14. Release the video capture and close all windows using cap.release() and cv2.destroyAllWindows().

facial-emotion-recognition-using-opencv-and-deepface's People

Contributors

manish-9245 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.