Skip to content

SRIMATHI-T/Emotion-Detection-from-Uploaded-Images

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

Emotion Detection from Uploaded Images

Project Overview

This project aims to develop a comprehensive system that detects and classifies human emotions from uploaded images using Convolutional Neural Networks (CNNs). The application is built using Python and integrated into a user-friendly Streamlit interface. The project combines cutting-edge techniques from machine learning, computer vision, and user interface design to provide real-time emotion classification. The solution targets real-world applications in domains like healthcare, education, and customer service, where emotion recognition can offer valuable insights.

Objective

The primary objective of this project is to design, implement, and optimize a complete system that allows users to upload images, detects faces, and classifies emotions using pre-trained CNN models. The system is designed to be efficient, accurate, and easy to use, with a focus on enhancing emotion detection capabilities using state-of-the-art models and techniques.

Features

User Interface Development:

A Streamlit-based web application allows users to easily upload images and receive real-time emotion classification results. The interface is intuitive, responsive, and provides clear instructions to the user.

Facial Detection:

The application utilizes Mediapipe for accurate facial detection, ensuring that emotions are classified based only on faces detected in the uploaded images. Bounding boxes are drawn around detected faces in the images for visual feedback.

Emotion Classification:

Multiple pre-trained CNN models, including DenseNet, ResNet, VGG, MobileNet, EfficientNet, and a custom CNN, are used to classify emotions such as 'angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', and 'neutral'.

Ethical Considerations:

The project includes an analysis of the ethical implications of emotion detection technology, discussing privacy concerns, bias in data, and the ethical use of such technologies in sensitive areas like healthcare and law enforcement.

Project Scope

1. User Interface Development

Developed an intuitive and responsive user interface using Streamlit, allowing users to upload images for emotion classification. The application provides real-time feedback by displaying uploaded images alongside the detected faces and predicted emotions.

2. Facial Detection Implementation

Implemented facial detection using Mediapipe’s FaceDetection solution, ensuring accurate face detection in uploaded images. Visual feedback is provided by drawing bounding boxes around detected faces in the image.

3. Emotion Classification

Fine-tuned multiple CNN models including DenseNet, ResNet, VGG, MobileNet, EfficientNet, and a custom-built CNN for emotion classification. Models are trained on the FER-2013 dataset, which contains a wide variety of facial expressions. The project ensures high accuracy by experimenting with different CNN architectures and optimizing model performance through data preprocessing and model tuning.

4. Performance and Optimization

Evaluated the model performance using accuracy, precision, and recall metrics. Optimized the system for real-time performance, ensuring quick processing and classification of emotions from images.

5. Ethical Analysis

The project includes a comprehensive ethical analysis, addressing concerns related to privacy, bias in training data, and the responsible use of emotion detection technology. Strategies like data anonymization and regular audits are proposed to mitigate privacy concerns and bias.

Expected Results

A fully functional Streamlit-based web application that allows users to upload images and receive accurate emotion classification results. Comprehensive performance analysis covering the accuracy of different CNN architectures. A detailed report discussing system design, methodology, experimental results, and potential real-world applications. Ethical analysis focusing on privacy concerns, data bias, and mitigation strategies.

Tools and Technologies

Programming Language:

Python

Frameworks and Libraries:

Streamlit, OpenCV, TensorFlow/Keras, Mediapipe, NumPy, PIL

Pre-trained Models:

DenseNet, ResNet, VGG, MobileNet, EfficientNet

Model :

Custom CNN

Datasets:

FER-2013

Development Environment:

Local setup, with models and assets stored locally for streamlined performance

Deliverables

Streamlit Application:

A fully functional web application where users can upload images and receive real-time emotion classification.

Codebase:

Well-structured and documented Python code that includes the Streamlit interface, model loading, and facial detection and classification logic.

Trained Models:

Pre-trained CNN models for emotion classification, stored in .keras format.

Project Report:

A detailed report covering system design, implementation, model evaluation, and future directions.

Ethical Analysis:

An in-depth exploration of the ethical implications of emotion detection technology, including privacy concerns and bias mitigation strategies.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 98.9%
  • Python 1.1%