Skip to content

alchemy18/FEEL

Repository files navigation

FEEL: Quantifying Heterogeneity in Physiological Signals for Generalizable Emotion Recognition

Accepted at NeurIPS 2025

This is the code repository for the paper "FEEL: Quantifying Heterogeneity in Physiological Signals for Generalizable Emotion Recognition", which introduces FEEL β€” the first large-scale benchmarking framework for emotion recognition using physiological signals across heterogeneous datasets. For researchers interested in contributing new datasets or evaluation results to FEEL, please refer to our project website: https://alchemy18.github.io/FEEL_Benchmark/

πŸ” Overview

Emotion recognition from physiological signals like EDA (Electrodermal Activity) and PPG (Photoplethysmography) is gaining traction due to its potential in health and affective computing applications. However, comparing model performance across diverse real-world datasets remains a major challenge.

FEEL addresses this gap by:

  • Curating and harmonizing 19 public emotion datasets from lab, real-life, and constrained settings

  • Benchmarking 16 models across four modeling paradigms:

  • Performing cross-dataset generalization analysis across:

    • Experimental setting (Lab, Constraint, Real)
    • Device type (Wearable, Lab Based Device, Custom Wearable)
    • Labeling strategy (Stimulus-Label, Self-report, Expert-Annotated)

Key Features

  • Unified preprocessing and feature extraction pipeline for EDA & PPG
  • Comprehensive cross-domain evaluation using Leave-One-Subject-Out CV
  • Performance analysis across 3 input types: EDA-only, PPG-only, EDA+PPG
  • Few-shot and zero-shot adaptation with CLSP models
  • Results on arousal, valence and four-quadrant classification.

Key Findings

  • CLSP-based models achieved 73/114 best results, demonstrating strong cross-dataset transfer.
  • Models using handcrafted features consistently outperformed raw-signal DL models in noisy or low-resource settings.
  • Models trained in real-world settings transferred well to lab and constraint domains.
  • Labeling method and device heterogeneity were key factors influencing generalization.

Datasets Overview

FEEL benchmarks the following 19 datasets (Appendix A.1 in the paper for details):

  • WESAD, NURSE, EMOGNITION, UBFC_PHYS, VERBIO, PhyMER, EmoWear, MAUS, CLAS, CASE, CEAP-360VR, Unobtrusive, ForDigitStress, Dapper, LAUREATE, ADARP, Exercise, MOCAS, ScientISST MOVE

For each dataset, we generated preprocessed EDA and PPG signals, extracted features for EDA, PPG, and EDA + PPG, defined task descriptions, and standardized arousal/valence labels. Due to the nature of these datasets, most of which are available only upon request, we are unable to share the processed or raw data files publicly. However, the list below includes links to the respective papers for each dataset, through which you can contact the authors to request access to the raw data. Additionally, we have shared the binning details and preprocessing code for these raw files in this GitHub repository and paper.

Below is the list of the 19 publicly available emotion recognition datasets used in the FEEL benchmark, along with their access links:

Set-up

To get started with the FEEL benchmark framework, follow these steps to set up your environment.

  1. Clone the Repository
  2. pip install -r requirements.txt

πŸ“¦ Repository Structure

FFEL/
β”œβ”€β”€ Benchmarking/
β”‚   β”œβ”€β”€ Model_running.py # for running scripts for base model training
β”‚   β”œβ”€β”€ Group_running.py # for running scripts for base model training
β”‚   β”œβ”€β”€ Model_running_fourclass.py  # for running scripts for base model training for four-class binning
β”œβ”€β”€ Fine_tuning/
β”‚   β”œβ”€β”€ finetuning_CLSP_two_class_CNN.py # for fine-tuning clsp pre-trained model on 2-class with CNN Meta-net
β”‚   β”œβ”€β”€ finetuning_CLSP_two_class_MLP.py # for fine-tuning clsp pre-trained model on 2-class with MLP Meta-net
β”‚   β”œβ”€β”€ finetuning_CLSP_four_class_MLP.py # for fine-tuning clsp pre-trained model on 4-class with MLP Meta-net
β”‚   β”œβ”€β”€ finetuning_CLSP_four_class_MLP.py # for fine-tuning clsp pre-trained model on 4-class with CNN Meta-net
β”œβ”€β”€ Scripts/
β”‚   β”œβ”€β”€ LDA.py
β”‚   β”œβ”€β”€ MLP.py
β”‚   β”œβ”€β”€ RandomForest.py
β”‚   β”œβ”€β”€ clsp_com.py
β”‚   β”œβ”€β”€ clsp_eda.py
β”‚   β”œβ”€β”€ clsp_ppg.py
β”‚   β”œβ”€β”€ lstm_features.py
β”‚   β”œβ”€β”€ lstm_signals.py
β”‚   β”œβ”€β”€ resnet_features.py
β”‚   β”œβ”€β”€ resnet_signals.py
β”‚   β”œβ”€β”€ transformer_features.py
β”‚   β”œβ”€β”€ transformer_signals.py
β”‚   β”œβ”€β”€ visualize.py # for visualizating TSNE, UMAP, and data distribution
β”‚   β”œβ”€β”€ model.py # file to load base_model for analyzing PPG artifacts
β”‚   β”œβ”€β”€ ppg_artifact.py
β”‚   β”œβ”€β”€ eda_artifact.py
β”‚   β”œβ”€β”€ SA_Detection.json # resource file for eda-artifacts
β”‚   β”œβ”€β”€ TinyPPG_model_best_params.pth # resource file for ppg-artifacts
β”œβ”€β”€ Group-Benchmarking/
β”‚   β”œβ”€β”€ LDA_group.py
β”‚   β”œβ”€β”€ MLP_group.py
β”‚   β”œβ”€β”€ RandomForest_group.py
β”‚   β”œβ”€β”€ accross_group_mlp_lda_rf.py
β”‚   β”œβ”€β”€ clsp_group_setting.py
β”‚   β”œβ”€β”€ finetuning_CLSP_group_CNN_representative.py
β”‚   β”œβ”€β”€ finetuning_CLSP_group_representative.py
β”‚   β”œβ”€β”€ mlp_rf_clsp_zero_shot_within_group.ipynb
β”œβ”€β”€ Analysis/
β”‚   β”œβ”€β”€ Benchmarking_analysis.ipynb
β”‚   β”œβ”€β”€ vizualize_UMAP.ipynb
β”œβ”€β”€ Tutorial/
β”‚   β”œβ”€β”€ Data_Preparation.ipynb #tutorial for cleaning, bining, pre-processing datasets
β”‚   β”œβ”€β”€ README.md # tutorial for running and extending FEEL Benchmark

πŸ”— Project Continuation

➑️ This repository is a continuation of the previous phase of this project

➑️ For more details and updates, visit the project webpage

🀝 If you want to contribute to the FEEL with new dataset or new models, submit your results here

Citation

@inproceedings{
singh2025feel,
title={{FEEL}: Quantifying Heterogeneity in Physiological Signals for Generalizable Emotion Recognition},
author={Pragya Singh and Ankush Gupta and Somay Jalan and Mohan Kumar and Pushpendra Singh},
booktitle={The Thirty-ninth Annual Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year={2025},
url={https://openreview.net/forum?id=JxuFBB5OpD}
}

License

This code is released under the MIT license. Please see the license file for details.

About

Framework for Emotion Evaluation using Physiological Signal Data

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors