EmoVision is a real-time emotion recognition project using deep learning. It captures video frames from a camera, detects faces, and predicts emotions in real-time.
- Real-time face detection and emotion recognition.
- Uses a trained deep learning model for accurate emotion predictions.
- Simple integration with OpenCV for video capture.
The model is trained on the Face Expression Recognition Dataset from Kaggle, which consists of 35 thousand images with labeled emotions.
Processed Data can be downloaded from here: emovision-google-drive
The model was trained for 100 epochs, and the final epoch's metrics are as follows:
- Training loss: 0.7405
- Training accuracy: 73.07%
- Validation loss: 1.0369
- Validation accuracy: 63.08%
The training process took a total of 6 hours and 34 minutes on a 2020 M1 MacBook Air.
Trained Models can be downloaded from here: emovision-google-drive
GPU: NVIDIA RTX 3070
- cuDNN version 8.9.7.29
- CUDA 11.8
- nvidia-driver-560
- Tensorflow version 2.12.0
OS: Ubuntu 22.0.4
Dependency: python 3.11.9
others are mentioned in the requirements.txt
file
- Clone the repository:
git clone https://github.com/adistrim/EmoVision.git
- Setup virtual environment:
cd EmoVision
python3 -m venv .venv # python or python3 depending on the system config
source .venv/bin/activate # For Linux and macOS
- Install required libraries:
pip3 install -r requirements.txt # pip or pip3 depending on the system config
-
Execute the realtime.ipynb file.
-
Press 'Q' to end the program.
This project is licensed under the MIT License.