Abstract
Emotion Detection is an open-source AI & Machine Learning project. Real-time Facial Emotion Detection using deep learning. This project aims to classify the emotion on a person's face into one of seven categories, using deep convolutional neural networks. The model is trained on the FER-2013 dataset which was published on International Conference on Machine Learning (ICML). It is built using Python, Deep Learning, Computer Vision, OpenCV. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building an AI & Machine Learning mini project or final-year project.
1. Introduction
This project aims to classify the emotion on a person's face into one of seven categories, using deep convolutional neural networks. The model is trained on the FER-2013 dataset which was published on International Conference on Machine Learning (ICML). This dataset consists of 35887 grayscale, 48x48 sized face images with seven emotions - angry, disgusted, fearful, happy, neutral, sad and surprised.
2. Objective
Real-time Facial Emotion Detection using deep learning
This project demonstrates how Python, Deep Learning, Computer Vision can be applied to a real-world AI & Machine Learning problem.
4. Technology Stack
- Python 3, OpenCV, Tensorflow
- To install the required packages, run pip install -r requirements.txt.
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Python 3.8 or later
- pip / virtualenv for dependencies
- VS Code, PyCharm or Jupyter Notebook
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/atulapra/Emotion-detection.git
cd Emotion-detection- First, clone the repository and enter the folder
- Download the FER-2013 dataset inside the src folder.
- If you want to train this model, use:
- If you want to view the predictions without training again, you can download the pre-trained model from here and then run:
- The folder structure is of the form:
- data (folder)
- emotions.py (file)
- haarcascade_frontalface_default.xml (file)
git clone https://github.com/atulapra/Emotion-detection.git
cd Emotion-detectioncd src
python emotions.py --mode traincd src
python emotions.py --mode displayFull setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Deploy the model as a web app with Streamlit, Flask or FastAPI
- Compare against an additional model and report the metric difference
- Add explainability (SHAP / Grad-CAM)
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- What dataset does the project use and how was it pre-processed?
- Which algorithm / model architecture is used and why was it chosen over alternatives?
- How are training and testing data split, and how is overfitting avoided?
- Which evaluation metrics (accuracy, precision, recall, F1) are reported and what do they mean here?
- How would you deploy this model for real users?
9. Source Code & License
This project is developed by atulapra and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on an AI & Machine Learning project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for AI & Machine Learning Internship