# Emotion Recognition Model This repository hosts a custom-tuned Emotion Recognition model designed to analyze facial expressions in real-time video streams. The model predicts seven distinct emotions: **Angry**, **Disgust**, **Fear**, **Happy**, **Neutral**, **Sad**, and **Surprise**, and calculates a positivity level based on the predicted emotions. ## Model Details - **Model Architecture:** The model is based on a fine-tuned VGG16 architecture using TensorFlow. - **Input Size:** 224x224 pixels - **Emotion Labels:** - Angry - Disgust - Fear - Happy - Neutral - Sad - Surprise ## How to Use 1. Clone the repository and install the dependencies: ```bash pip install -r requirements.txt ``` 2. Load the model and run predictions on images: ```python from tensorflow.keras.models import load_model import cv2 import numpy as np from tensorflow.keras.preprocessing.image import img_to_array from tensorflow.keras.applications.vgg16 import preprocess_input model = load_model('emotion_model_finetuned224.h5') # Example usage with an image image = cv2.imread('example.jpg') face = cv2.resize(image, (224, 224)) face = img_to_array(face) face = preprocess_input(face) face = np.expand_dims(face, axis=0) predictions = model.predict(face) print(predictions) ``` ## Gradio Interface (Optional) If you want to deploy the model using Gradio, you can use the `app.py` file provided: ```bash pip install gradio python app.py ``` Visit the Gradio interface at `http://localhost:7860` and upload an image to see the predicted emotion. ## Dependencies - `tensorflow` - `opencv-python` - `numpy` - `requests` - `gradio` (for optional web interface) ## License This project is licensed under the MIT License. Feel free to use and modify as needed. ## Contact For questions or support, please open an issue on the GitHub repository or contact Ahmed directly at [migdady@gmail.com](mailto:migdady@gmail.com).