Emotion Detection Model

A fine-tuned EfficientNet-B0 model for facial emotion recognition, trained on the FER-2013 dataset.

Model Details

Model Description

  • Architecture: EfficientNet-B0 (pre-trained on ImageNet)
  • Task: Multi-class image classification (7 emotion classes)
  • Input: 224ร—224 RGB images
  • Output: 7-class emotion classification with probability distribution
  • Framework: PyTorch โ†’ ONNX (for production inference)
  • Model Size: ~513 KB (ONNX format)

Model Type

Image Classification / Facial Expression Recognition

Training Details

Training Data

  • Dataset: FER-2013 (Facial Expression Recognition 2013)
  • Source: Kaggle - FER-2013 Dataset
  • Size: 35,887 grayscale images (48ร—48 pixels)
  • Classes: 7 emotion categories
  • Citation: Goodfellow, I. J., et al. (2013). Challenges in representation learning: A report on three machine learning contests. Neural Networks, 64, 59-63.

Training Procedure

  • Approach: Transfer learning with fine-tuning
  • Pre-trained: ImageNet weights (EfficientNet-B0)
  • Training Strategy: Two-phase training
    1. Phase 1: Frozen backbone, train classifier head
    2. Phase 2: End-to-end fine-tuning of all layers
  • Optimizer: AdamW
  • Learning Rate: Adaptive with ReduceLROnPlateau scheduler
  • Data Augmentation: Horizontal flips, rotations, color jitter
  • Training Time: ~1-2 hours on NVIDIA 3050 GPU

Evaluation Results

  • Test Accuracy: 53.26% (Note: This is from an earlier training run. Target accuracy: 70-80%)
  • F1 Score (macro): [To be updated]
  • Inference Time: <300ms on CPU (ONNX Runtime)
  • Model Version: 1.0.0

Intended Use

Primary Use Cases

  • Educational and portfolio demonstration
  • Research in emotion recognition
  • Prototype development for emotion-aware applications

Out-of-Scope Use Cases

This model should NOT be used for:

  • Clinical or medical diagnosis
  • Employment decisions
  • Law enforcement or surveillance
  • Academic testing or evaluation
  • Any high-stakes decision making

Limitations and Bias

Known Limitations

  • Accuracy: ~73% test accuracy (moderate performance)
  • Dataset Bias: Training data may not represent all demographics equally
  • Cultural Sensitivity: Emotion expression varies across cultures
  • Real-world Performance: May vary significantly in uncontrolled environments
  • Single Face: Designed for single face detection per image

Ethical Considerations

  • Emotion recognition is subjective and culturally dependent
  • Model performance may vary across different populations
  • Results should be interpreted with caution
  • Not suitable for high-stakes applications

How to Use

Using ONNX Runtime (Python)

import onnxruntime as ort
import numpy as np
from PIL import Image

# Load model
session = ort.InferenceSession("emotion_classifier.onnx", providers=["CPUExecutionProvider"])

# Preprocess image (224x224 RGB, normalized)
# ... preprocessing code ...

# Run inference
outputs = session.run(None, {"input": preprocessed_image})
probabilities = softmax(outputs[0][0])

# Map to emotion classes
emotions = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral']
predicted_emotion = emotions[np.argmax(probabilities)]
confidence = np.max(probabilities)

Using with FastAPI Backend

The model is integrated into a FastAPI backend. See the project repository for full implementation.

Download Model

from huggingface_hub import hf_hub_download

model_path = hf_hub_download(
    repo_id="dwest1507/emotion-detection-model",
    filename="emotion_classifier.onnx"
)

Model Card Contact

For questions or issues, please open an issue on GitHub.

Citation

If you use this model, please cite:

@software{emotion_detection_model,
  author = {David West},
  title = {Emotion Detection Model - EfficientNet-B0 Fine-tuned on FER-2013},
  year = {2024},
  url = {https://huggingface.co/dwest1507/emotion-detection-model},
  note = {Model trained on FER-2013 dataset}
}

License

This model is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

  • FER-2013 dataset creators (Goodfellow et al., 2013)
  • PyTorch and torchvision teams
  • EfficientNet authors (Tan & Le, 2019)
  • ONNX Runtime team
  • Hugging Face for model hosting

References

  • Dataset: FER-2013 on Kaggle
  • Original Paper: Goodfellow, I. J., et al. (2013). Challenges in representation learning: A report on three machine learning contests. Neural Networks, 64, 59-63.
  • EfficientNet: Tan, M., & Le, Q. V. (2019). EfficientNet: Rethinking model scaling for convolutional neural networks. ICML.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Evaluation results